This node is the abstract base class for all vertex-based shapes that are constructed from indices, including
SoIndexedFaceSet,
SoIndexedTriangleStripSet, and
SoIndexedLineSet.
SoIndexedShape defines fields that are used in all of its subclasses.
All subclasses of
SoNonIndexedShape construct
objects by using the coordinates specified by the
vertexProperty field (from
SoVertexShape), or the current inherited coordinates. The
coordIndex field defined by this class contains the indices into the current coordinates of the vertices
of the shape. These indices are also used for materials, normals, or texture coordinates when the appropriate binding is
PER_VERTEX_INDEXED.
Material and normal bindings are interpreted as follows for each subclass:
OVERALL One material for the entire shape.
PER_PART Specific to the subclass.
PER_PART_INDEXED Same as PER_PART, using indices from the
materialIndex or normalIndex field.
PER_FACE Specific to the subclass.
PER_FACE_INDEXED Same as PER_FACE, using indices from the
materialIndex or normalIndex field.
PER_VERTEX One material per vertex.
PER_VERTEX_INDEXED One material per vertex, using indices from the
materialIndex or normalIndex field.
When
any
_INDEXED binding is used for materials or normals, the
materialIndex or
normalIndex field is used to determine the indices for the materials or normals. If this field contains a single value of -1 (the default), the coordinate indices
from the
coordIndex field are used as well for materials or normals. When the binding is
PER_VERTEX_INDEXED, indices in these fields that correspond to negative indices in
coordIndex are skipped; for other index bindings all the values in
the fields are used, in order.
Explicit texture coordinates (as defined by
SoTextureCoordinate2) may be bound to vertices of an indexed shape consecutively (if the texture coordinate binding is
PER_VERTEX) or by using the indices in
the
textureCoordIndex field (if the binding is
PER_VERTEX_INDEXED). As with all vertex-based shapes, if there is a current texture but no texture coordinates are specified, a default texture coordinate mapping is calculated using the bounding
box of the shape.
Be sure that the indices contained in the
coordIndex,
materialIndex,
normalIndex, and
textureCoordIndex fields are valid with respect to the current state, or errors will occur.
SoMFInt32 textureCoordIndex
The indices of the materials, normals, and texture coordinates that are used for the shape. These fields are used only when the appropriate binding is one of the _INDEXED bindings. By default, the values of these
fields indicate that the coordinate indices should be used for materials, normals, or texture coordinates as well.
This is an abstract class. See the reference page of a derived class for the format and default values.