Provided by: inventor-doc_2.1.5-10-18_all bug


       SoIndexedShape — abstract base class for all indexed vertex-based shapes


       SoBase > SoFieldContainer > SoNode > SoShape > SoVertexShape > SoIndexedShape


       #include <Inventor/nodes/SoIndexedShape.h>

          Fields from class SoIndexedShape:

     SoMFInt32           coordIndex
     SoMFInt32           materialIndex
     SoMFInt32           normalIndex
     SoMFInt32           textureCoordIndex

          Fields from class SoVertexShape:

     SoSFNode            vertexProperty

          Methods from class SoIndexedShape:

     static SoType       getClassTypeId()

          Methods from class SoNode:

     void                setOverride(SbBool state)
     SbBool              isOverride() const
     SoNode *            copy(SbBool copyConnections = FALSE) const
     virtual SbBool      affectsState() const
     static SoNode *     getByName(const SbName &name)
     static int          getByName(const SbName &name, SoNodeList &list)

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const  SoFieldContainer  *fc,  SbBool  copyConnections =
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName) const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const


       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

     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           coordIndex
          The  indices  of  the  coordinates that the shape uses as its vertices. The coordinates
          connect to form faces, lines, or other shapes. Each subclass defines  special  negative
          indices to use to indicate separation between faces, lines, and so on.

     SoMFInt32           materialIndex
     SoMFInt32           normalIndex
     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.


     static SoType       getClassTypeId()
          Returns type identifier for this class.


       This is an abstract class. See the reference page of a derived class for  the  format  and
       default values.


       SoIndexedFaceSet,    SoIndexedLineSet,    SoIndexedTriangleStripSet,    SoMaterialBinding,
       SoNonIndexedShape, SoNormalBinding, SoShapeHints, SoTextureCoordinateBinding