logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Description

       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.

Fields

SoMFInt32coordIndex
          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.

     SoMFInt32materialIndexSoMFInt32normalIndexSoMFInt32textureCoordIndex
          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.

File Format/Defaults

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

Inherits From

       SoBase > SoFieldContainer > SoNode > SoShape > SoVertexShape > SoIndexedShape

Methods

staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

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

See Also

SoIndexedFaceSet,SoIndexedLineSet,SoIndexedTriangleStripSet,SoMaterialBinding,SoNonIndexedShape,SoNormalBinding,SoShapeHints,SoTextureCoordinateBindingSoIndexedShape(3IV)()

Synopsis

#include<Inventor/nodes/SoIndexedShape.h>

          Fields from class SoIndexedShape:

     SoMFInt32coordIndexSoMFInt32materialIndexSoMFInt32normalIndexSoMFInt32textureCoordIndex

          Fields from class SoVertexShape:

     SoSFNodevertexProperty

          Methods from class SoIndexedShape:

     staticSoTypegetClassTypeId()

          Methods from class SoNode:

     voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)

          Methods from class SoFieldContainer:

     voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)

          Methods from class SoBase:

     voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

See Also