Class SoIndexedShape
- java.lang.Object
-
- All Implemented Interfaces:
SafeDisposable
- Direct Known Subclasses:
SoIndexedFaceSet
,SoIndexedLineSet
,SoIndexedPointSet
,SoIndexedQuadMesh
,SoIndexedTriangleFanSet
,SoIndexedTriangleSet
,SoIndexedTriangleStripSet
public abstract class SoIndexedShape extends SoVertexShape
Abstract base class for all indexed vertex-based shapes. This node is the abstract base class for all vertex-based shapes that are constructed from indices, includingSoIndexedFaceSet
,SoIndexedTriangleStripSet
, andSoIndexedLineSet
.SoIndexedShape
defines fields that are used in all of its subclasses.All subclasses of
SoNonIndexedShape
construct objects by using the coordinates specified by thevertexProperty
field (fromSoVertexShape
), or the current inherited coordinates. ThecoordIndex
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, tangents or texture coordinates when the appropriate binding is PER_VERTEX_INDEXED.Material, normal and tangent 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
,normalIndex
ortangentIndex
field.PER_FACE Specific to the subclass. PER_FACE_INDEXED Same as PER_FACE, using indices from the materialIndex
,normalIndex
ortangentIndex
field.PER_VERTEX One material per vertex. PER_VERTEX_INDEXED One material per vertex, using indices from the materialIndex
,normalIndex
ortangentIndex
field.When any _INDEXED binding is used for materials, normals or tangents, the
materialIndex
,normalIndex
ortangentIndex
field is used to determine the indices for the materials, normals or tangents. If this field contains a single value of -1 (the default), the coordinate indices from thecoordIndex
field are used as well for materials, normals or tangents. When the binding is PER_VERTEX_INDEXED, indices in these fields that correspond to negative indices incoordIndex
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 thetextureCoordIndex
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
,tangentIndex
, andtextureCoordIndex
fields are valid with respect to the current state, or errors will occur.Limitations:
- Due to limitations of the OpenGL VBO (vertex buffer object) rendering model, in general it is not possible to use VBO rendering (and performance may be lower) if either the normal binding, tangent binding or the material binding is set to either PER_PART(_INDEXED) or PER_FACE(_INDEXED). See individual derived classes for exceptions.
File format/default:
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
, SoTangentBinding,SoShapeHints
,SoTextureCoordinateBinding
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoShape
SoShape.ShapeTypes
-
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModes
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
Fields Modifier and Type Field Description SoMFInt32
coordIndex
The indices of the coordinates that the shape uses as its vertices.SoMFInt32
materialIndex
The indices of the materials that are used for the shape.SoMFInt32
normalIndex
The indices of the normals that are used for the shape.SoMFInt32
tangentIndex
The indices of the tangents that are used for the shape.SoMFInt32
textureCoordIndex
The indices of the texture coordinates that are used for the shape.-
Fields inherited from class com.openinventor.inventor.nodes.SoVertexShape
vertexProperty
-
Fields inherited from class com.openinventor.inventor.nodes.SoShape
boundingBoxIgnoring
-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Method Summary
-
Methods inherited from class com.openinventor.inventor.nodes.SoVertexShape
getNormalCache, getTangentCache
-
Methods inherited from class com.openinventor.inventor.nodes.SoShape
getShapeType, isPrimitiveRestartAvailable, isPrimitiveRestartAvailable
-
Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
-
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
-
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
-
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
-
-
-
Field Detail
-
coordIndex
public final 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.
-
materialIndex
public final SoMFInt32 materialIndex
The indices of the materials that are used for the shape. This field is used only when the material binding is one of the _INDEXED bindings. By default, the value of this field indicates that the coordinate indices should be used for materials as well.
-
normalIndex
public final SoMFInt32 normalIndex
The indices of the normals that are used for the shape. This field is used only when the normal binding is one of the _INDEXED bindings. By default, the value of this field indicates that the coordinate indices should be used for normals as well.
-
tangentIndex
public final SoMFInt32 tangentIndex
The indices of the tangents that are used for the shape. This field is used only when the tangent binding is one of the _INDEXED bindings. By default, the value of this field indicates that the coordinate indices should be used for tangents as well.
-
textureCoordIndex
public final SoMFInt32 textureCoordIndex
The indices of the texture coordinates that are used for the shape. This field is used only when the texture coordinate binding is one of the _INDEXED bindings. By default, the value of this field indicates that the coordinate indices should be used for texture coordinates as well.
-
-