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