See Javadoc
Geometry defines the leaf node of a scene graph. This is the end point of a particular path along the tree starting from the root. This leaf contains the geometric data used for actual rendering and intersection operations. Geometry contains a number of subclasses, where the most common is TriMesh. Geometry defines FloatBuffer objects that contain the information for a geometric object. This buffer includes: color, vertices, normals and texture coordinates.
Geometry defines a local model bounds as well, this is used to generate the world bounds for each level of the scene graph. This is discussed in more detail below.
Geometric objects in jME are defined by a collection of points in 3D space. These points can maintain a number of attributes. Geometry keeps track of these attributes in a number of FloatBuffers. The only required buffer to be filled is the buffer defining the vertices of the points. That is, the point's positions. All other attributes are optional.
BufferUtils can be used to ease the use of the buffers. However, a general understanding of what each buffer is and it's relative size will aid usage.
NOTE: P - number of points in the Geometry.
TextureBuffer is a bit of a special case due to the fact that is can contain any number of buffers. This is used for multitexturing and is discussed there.
The model bounds defines the BoundingVolume that contains the geometric data about its origin. That is, the model bounds is not translated into world space, but kept in the Geometry's space. This bound is used to calculate the world bound of the Geometry, and subsequently the world bounds of the Node objects of the scene graph.
See BoundingVolume for more information.
Geometry maintains a list of RenderStates that are the compiled final version that will be used during rendering. This list is built upon a call to updateRenderStates.
Geometry does not actually do any drawing itself. This is taken care of by any subclasses that use Geometry. It does, however, apply the states that are in the compiled list to prepare OpenGL for rendering the data appropriately.
setSolidColor - will fill the color float buffer with a supplied color value.setRandomColors - will fill the color float buffer with randomly selected color values.copyTextureCoordinates - will copy a float buffer from one unit to another.randomVertice - will return a random point in the Geometry as a Vector3f.