SoVertexProperty(3IV)NAMESoVertexProperty (SoVertProp) - vertex property node
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoVertexPropertySYNOPSIS
#include <Inventor_c/nodes/SoVertexProperty.h>
typedef SoVertexProperty SoVertProp
enum SoVertexPropertyBinding {
OVERALL Whole object has same material/normal
PER_PART One material/normal for each part of object
PER_PART_INDEXED One material/normal for each part, indexed
PER_FACE One material/normal for each face of object
PER_FACE_INDEXED One material/normal for each face, indexed
PER_VERTEX One material/normal for each vertex of object
PER_VERTEX_INDEXED One material/normal for each vertex, indexed
}
Fields from class SoVertexProperty:
SoMFVec3f vertex
SoMFVec3f normal
SoMFUInt32 orderedRGBA
SoMFVec2f texCoord
SoSFEnum normalBinding
SoSFEnum materialBinding
Functions from class SoVertexProperty:
SoVertexProperty * SoVertPropCreate()
Functions from class SoNode:
void SoVertPropSetOverride(SoVertProp *this, SbBool state)
SbBool SoVertPropIsOverride(const SoVertProp *this)
SoNode * SoVertPropCopy(const SoVertProp *this, SbBool
copyConnections = FALSE)
SbBool SoVertPropAffectsState(const SoVertProp *this)
SoNode * SoVertPropGetByName(const char *name)
int SoVertPropGetByNameList(const char *name, SoNodeList
*list)
SoType SoVertPropGetClassTypeId()
Functions from class SoFieldContainer:
void SoVertPropSetToDflts(SoVertProp *this)
SbBool SoVertPropHasDfltVals(const SoVertProp *this)
SbBool SoVertPropFldsAreEq(const SoVertProp *this, const
SoFieldContainer *fc)
Page 1SoVertexProperty(3IV)
void SoVertPropCopyFieldVals(SoVertProp *this, const
SoFieldContainer *fc, SbBool copyConnections =
FALSE)
SbBool SoVertPropSet(SoVertProp *this, const char
*fieldDataString)
void SoVertPropGet(SoVertProp *this, SbString
*fieldDataString)
int SoVertPropGetFields(const SoVertProp *this,
SoFieldList *resultList)
SoField * SoVertPropGetField(const SoVertProp *this, const char
*fieldName)
SbBool SoVertPropGetFieldName(const SoVertProp *this, const
SoField *field, SbName *fieldName)
SbBool SoVertPropIsNotifyEnabled(const SoVertProp *this)
SbBool SoVertPropEnableNotify(SoVertProp *this, SbBool flag)
Functions from class SoBase:
void SoVertPropRef(SoVertProp *this)
void SoVertPropUnref(const SoVertProp *this)
void SoVertPropUnrefNoDelete(const SoVertProp *this)
void SoVertPropTouch(SoVertProp *this)
SoType SoVertPropGetTypeId(const SoVertProp *this)
SbBool SoVertPropIsOfType(const SoVertProp *this, SoType
type)
void SoVertPropSetName(SoVertProp *this, const char *name)
SbName SoVertPropGetName(const SoVertProp *this)
DESCRIPTION
This property node may be used to efficiently specify coordinates,
normals, texture coordinates, colors, transparency values, material
binding and normal binding for vertex-based shapes, i.e., shapes of class
SoVertexShape. An SoVertexProperty node can be used as a child of a group
node in a scene graph, in which case the properties it specifies are
inherited by subsequent shape nodes in the graph. It can also be directly
referenced as the VertexProperty SoSFField of a vertex-based shape,
bypassing scene graph inheritance.
When directly referenced by a VertexProperty SoSFField of a vertex-based
shape, the SoVertexProperty node is the most efficient way of specifying
vertex-based shapes. Use of the directly referenced SoVertexProperty node
results in significantly faster scene rendering than scene graph
inheritance of vertex properties, provided all required vertex properties
are specified in the SoVertexProperty node.
Because the class SoVertexProperty is derived from SoNode, a vertex
property node can be inserted as a child node in a scene graph. When
inserted as a node in a scene graph, the SoVertexProperty node is
traversed as any other property node and the properties it specifies are
inherited by subsequent shape nodes in the scene graph. It specifies the
current material and normal bindings, and can be used to specify the
Page 2SoVertexProperty(3IV)
current 3D coordinates, the current normals, the current texture
coordinates, the current diffuse colors, and the current transparencies.
All multiple-valued fields in the SoVertexProperty node are optional. If
a field is not present (i.e. if it has 0 values), then shapes that
require the missing information are required to obtain it from the
current traversal state. However, users are cautioned that, for optimal
performance, the vertex property node should be referenced as the
VertexProperty field of an SoVertexShape, and should specify in its
fields all values required to render that shape.
The various fields in a vertex property node can be used in place of
corresponding fields in other property nodes, as follows: The vertex
field contains 3D coordinates, as in the point field of an SoCoordinate3
node. The normal field contains normal vectors, as in the vector field of
the SoNormal node. The orderedRGBA field contains packed colors in the
hexadecimal format 0xrrggbbaa, where rr is the red value (between 00 and
0xFF hex) gg is the green value (between 00 and 0xFF hex) bb is the blue
value (between 00 and 0xFF hex) aa is the alpha value (between 00 =
transparent and 0xFF = opaque). The packed colors are equivalent to an
SoPackedColor node, and provide values for both diffuse color and
transparency. The texCoord field replaces the point field of the
SoTextureCoordinate2 node.
If the transparency type is SoGLRenderAction::SCREEN_DOOR, only the first
transparency value will be used. With other transparency types, multiple
transparencies will be used.
The materialBinding field replaces the value field of the
SoMaterialBinding node. The materialBinding field in a directly
referenced SoVertexProperty node has no effect unless there is a nonempty
orderedRGBA field, in which case the material binding specifies the
assignment of diffuse colors and alpha values to the shape. The
materialBinding field can take as value any of the material bindings
supported by Inventor.
The normalBinding field replaces the value field of the SoNormalBinding
node. The normalBinding field of a directly referenced SoVertexProperty
node has no effect unless there is a nonempty normal field, in which case
the normal binding specifies the assignment of normal vectors to the
shape. The value of the normalBinding field can be any of the normal
bindings supported by Inventor.
FIELDS
SoMFVec3f vertex
vertex coordinate(s).
SoMFVec3f normal
normal vector(s).
SoMFUInt32 orderedRGBA
packed color(s), including transparencies.
Page 3SoVertexProperty(3IV)
SoMFVec2f texCoord
texture coordinate(s).
SoSFEnum normalBinding
normal binding.
SoSFEnum materialBinding
material binding.
FUNCTIONSSoVertexProperty * SoVertPropCreate()
Creates an SoVertexProperty node with default settings.
ACTION BEHAVIOR
SoGLRenderAction, SoCallbackAction, SoPickAction
When traversed in a scene graph, sets coordinates, normals, texture
coordinates, diffuse colors, transparency, normal binding and
material binding in current traversal state. If not traversed, has
no effect on current traversal state associated with action. The
normalBinding field has no effect if there are no normals. The
materialBinding has no effect if there are no packed colors.
SoGetBoundingBoxAction
When traversed in a scene graph, sets coordinates in current
traversal state. If not traversed, has no effect on current
traversal state associated with action.
FILE FORMAT/DEFAULTS
VertexProperty {
vertex [ ]
normal [ ]
texCoord [ ]
orderedRGBA [ ]
materialBinding OVERALL
normalBinding PER_VERTEX_INDEXED
}
SEE ALSO
SoIndexedTriangleStripSet SoIndexedFaceSet SoIndexedLineSet
SoTriangleStripSet SoLineSet SoFaceSet SoPointSet SoQuadMesh
SoVertexShape SoIndexedShape SoNonindexedShape
Page 4