Provided by: inventor-doc_2.1.5-10-18_all bug

NAME

       SoVertexProperty — vertex property node

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoVertexProperty

SYNOPSIS

       #include <Inventor/nodes/SoVertexProperty.h>

     enum Binding {
          SoVertexProperty::OVERALL   Whole object has same material/normal
          SoVertexProperty::PER_PART  One material/normal for each part of object
          SoVertexProperty::PER_PART_INDEXED
                                      One material/normal for each part, indexed
          SoVertexProperty::PER_FACE  One material/normal for each face of object
          SoVertexProperty::PER_FACE_INDEXED
                                      One material/normal for each face, indexed
          SoVertexProperty::PER_VERTEX
                                      One material/normal for each vertex of object
          SoVertexProperty::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

          Methods from class SoVertexProperty:

                         SoVertexProperty()

          Methods from class SoNode:

     void                setOverride(SbBool state)
     SbBool              isOverride() const
     SoNode *            copy(SbBool copyConnections = FALSE) const
     virtual SbBool      affectsState() const
     static SoNode *     getByName(const SbName &name)
     static int          getByName(const SbName &name, SoNodeList &list)
     static SoType       getClassTypeId()

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName) const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const

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.

METHODS

                         SoVertexProperty()
          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

                                                                                         SoVertexProperty(3IV)()