SoVertexProperty(3IV)

SoVertexProperty (SoVertProp) - vertex property node

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoVertexProperty (SoVertProp) - vertex property node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoVertexProperty

SYNOPSIS
     #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)
     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
     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.
     SoMFVec2f           texCoord
          texture coordinate(s).

     SoSFEnum            normalBinding
          normal binding.

     SoSFEnum            materialBinding
          material binding.


FUNCTIONS
     SoVertexProperty *  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