'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SoVertexProperty(3IV) .SH NAME SoVertexProperty \(em vertex property node .SH INHERITS FROM SoBase > SoFieldContainer > SoNode > SoVertexProperty .SH SYNOPSIS .ps -1 \*(Cr#include .sp .in 0.5i \*(Crenum \*(CbBinding\*(Cr { .in 1i .ta 28m .in 1.5i+28n .ti 1i .ta 28m .ds Pt \*(CbSoVertexProperty::OVERALL\f1 .ie \w'\*(Pt'>=28n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Whole object has same material/normal .br .in 1.5i+28n .ti 1i .ta 28m .ds Pt \*(CbSoVertexProperty::PER_PART\f1 .ie \w'\*(Pt'>=28n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} One material/normal for each part of object .br .in 1.5i+28n .ti 1i .ta 28m .ds Pt \*(CbSoVertexProperty::PER_PART_INDEXED\f1 .ie \w'\*(Pt'>=28n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} One material/normal for each part, indexed .br .in 1.5i+28n .ti 1i .ta 28m .ds Pt \*(CbSoVertexProperty::PER_FACE\f1 .ie \w'\*(Pt'>=28n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} One material/normal for each face of object .br .in 1.5i+28n .ti 1i .ta 28m .ds Pt \*(CbSoVertexProperty::PER_FACE_INDEXED\f1 .ie \w'\*(Pt'>=28n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} One material/normal for each face, indexed .br .in 1.5i+28n .ti 1i .ta 28m .ds Pt \*(CbSoVertexProperty::PER_VERTEX\f1 .ie \w'\*(Pt'>=28n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} One material/normal for each vertex of object .br .in 1.5i+28n .ti 1i .ta 28m .ds Pt \*(CbSoVertexProperty::PER_VERTEX_INDEXED\f1 .ie \w'\*(Pt'>=28n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} One material/normal for each vertex, indexed .br .in 0.5i \*(Cr} .sp .in 1i \f1Fields from class SoVertexProperty: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbvertex .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbnormal .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFUInt32 .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CborderedRGBA .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFVec2f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbtexCoord .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbnormalBinding .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbmaterialBinding .sp .in 1i \f1Methods from class SoVertexProperty: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoVertexProperty\*(Cr() .sp .in 1i \f1Methods from class SoNode: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetOverride\*(Cr(SbBool state) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOverride\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoNode * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbcopy\*(Cr(SbBool copyConnections = FALSE) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbaffectsState\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic SoNode * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetByName\*(Cr(const SbName &name) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic int .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetByName\*(Cr(const SbName &name, SoNodeList &list) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassTypeId\*(Cr() .sp .in 1i \f1Methods from class SoFieldContainer: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetToDefaults\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbhasDefaultValues\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbfieldsAreEqual\*(Cr(const SoFieldContainer *fc) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbcopyFieldValues\*(Cr(const SoFieldContainer *fc, SbBool copyConnections = FALSE) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbset\*(Cr(const char *fieldDataString) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbget\*(Cr(SbString &fieldDataString) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual int .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetFields\*(Cr(SoFieldList &resultList) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SoField * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetField\*(Cr(const SbName &fieldName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetFieldName\*(Cr(const SoField *field, SbName &fieldName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisNotifyEnabled\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbenableNotify\*(Cr(SbBool flag) .sp .in 1i \f1Methods from class SoBase: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbref\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbunref\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbunrefNoDelete\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbtouch\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTypeId\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOfType\*(Cr(SoType type) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetName\*(Cr(const SbName &name) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SbName .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetName\*(Cr() const .sp .SH 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 \*(CbSoVertexShape\f1. An \*(CbSoVertexProperty\f1 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 \*(CbVertexProperty\f1 \*(CbSoSFField\f1 of a vertex-based shape, bypassing scene graph inheritance. .sp When directly referenced by a \*(CbVertexProperty\f1 \*(CbSoSFField\f1 of a vertex-based shape, the \*(CbSoVertexProperty\f1 node is the most efficient way of specifying vertex-based \&shapes. Use of the directly referenced \*(CbSoVertexProperty\f1 node results in significantly faster scene rendering than scene graph inheritance of vertex properties, provided all required vertex properties are specified in \&the \*(CbSoVertexProperty\f1 node. .sp Because the class \*(CbSoVertexProperty\f1 is derived from \*(CbSoNode\f1, 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 \*(CbSoVertexProperty\f1 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 current 3D coordinates, \&the current normals, the current texture coordinates, the current diffuse colors, and the current transparencies. .sp All multiple-valued fields in the \*(CbSoVertexProperty\f1 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 \*(CbVertexProperty\f1 field of an \*(CbSoVertexShape\f1, and should specify in its fields all values required to render that shape. .sp The various fields in a vertex property node can be used in place of \&corresponding fields in other property nodes, as follows: The \*(Cbvertex\f1 field contains 3D coordinates, as in the \*(Cbpoint\f1 field of an \*(CbSoCoordinate3\f1 node. The \*(Cbnormal\f1 field contains normal vectors, as in the \*(Cbvector\f1 field of the \*(CbSoNormal\f1 node. The \*(CborderedRGBA\f1 field \&contains packed colors in the hexadecimal format \*(Cb0xrrggbbaa\f1, where \*(Cbrr\f1 is the red value (between 00 and 0xFF hex) \*(Cbgg\f1 is the green value (between 00 and 0xFF hex) \*(Cbbb\f1 is the blue value (between 00 and 0xFF hex) \*(Cbaa\f1 is \&the alpha value (between 00 = transparent and 0xFF = opaque). The packed colors are equivalent to an \*(CbSoPackedColor\f1 node, and provide values for both diffuse color and transparency. The \*(CbtexCoord\f1 field replaces the \*(Cbpoint\f1 field \&of the \*(CbSoTextureCoordinate2\f1 node. .sp If the transparency type is \*(CbSoGLRenderAction::SCREEN_DOOR\f1, only the first transparency value will be used. With other transparency types, multiple transparencies will be used. .sp The \*(CbmaterialBinding\f1 field replaces the \*(Cbvalue\f1 field of the \*(CbSoMaterialBinding\f1 \&node. The \*(CbmaterialBinding\f1 field in a directly referenced \*(CbSoVertexProperty\f1 node has no effect unless there is a nonempty \*(CborderedRGBA\f1 field, in which case the material binding specifies the assignment of diffuse colors and alpha values to the shape. \&The \*(CbmaterialBinding\f1 field can take as value any of the material bindings supported by Inventor. .sp The \*(CbnormalBinding\f1 field replaces the \*(Cbvalue\f1 field of the \*(CbSoNormalBinding\f1 node. The \*(CbnormalBinding\f1 field of a directly referenced \*(CbSoVertexProperty\f1 node has no effect unless there \&is a nonempty \*(Cbnormal\f1 field, in which case the normal binding specifies the assignment of normal vectors to the shape. The value of the \*(CbnormalBinding\f1 field can be any of the normal bindings supported by Inventor. .SH FIELDS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbvertex .br .in 1i \f1vertex coordinate(s). .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbnormal .br .in 1i \f1normal vector(s). .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFUInt32 .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CborderedRGBA .br .in 1i \f1packed color(s), including transparencies. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoMFVec2f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbtexCoord .br .in 1i \f1texture coordinate(s). .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbnormalBinding .br .in 1i \f1normal binding. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoSFEnum .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbmaterialBinding .br .in 1i \f1material binding. .sp .in 0.5i .SH METHODS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoVertexProperty\*(Cr() .br .in 1i \f1Creates an SoVertexProperty node with default settings. .sp .in 0.5i .SH ACTION BEHAVIOR \*(CbSoGLRenderAction, SoCallbackAction, SoPickAction .br .in 1i \f1When 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. .sp .in 0.5i \*(CbSoGetBoundingBoxAction .br .in 1i \f1When traversed in a scene graph, sets coordinates in current traversal state. If not traversed, has no effect on current traversal state associated with action. .sp .in 0.5i .SH FILE FORMAT/DEFAULTS .nf \*(CrVertexProperty { .in 1i .ta 17m vertex [ ] normal [ ] texCoord [ ] orderedRGBA [ ] materialBinding OVERALL normalBinding PER_VERTEX_INDEXED .in 0.5i } .SH SEE ALSO \*(CbSoIndexedTriangleStripSet SoIndexedFaceSet SoIndexedLineSet SoTriangleStripSet SoLineSet SoFaceSet SoPointSet SoQuadMesh SoVertexShape SoIndexedShape SoNonindexedShape