logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoVertexProperty — vertex property node

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.

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 VertexPropertySoSFField  of  a  vertex-based  shape,  bypassing  scene  graph
       inheritance.

       When directly referenced by a VertexPropertySoSFField 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

SoMFVec3fvertex
          vertex coordinate(s).

     SoMFVec3fnormal
          normal vector(s).

     SoMFUInt32orderedRGBA
          packed color(s), including transparencies.

     SoMFVec2ftexCoord
          texture coordinate(s).

     SoSFEnumnormalBinding
          normal binding.

     SoSFEnummaterialBinding
          material binding.

File Format/Defaults

VertexProperty{vertex[]normal[]texCoord[]orderedRGBA[]materialBindingOVERALLnormalBindingPER_VERTEX_INDEXED}

Inherits From

       SoBase > SoFieldContainer > SoNode > SoVertexProperty

Methods

SoVertexProperty()
          Creates an SoVertexProperty node with default settings.

Name

       SoVertexProperty — vertex property node

See Also

SoIndexedTriangleStripSetSoIndexedFaceSetSoIndexedLineSetSoTriangleStripSetSoLineSetSoFaceSetSoPointSetSoQuadMeshSoVertexShapeSoIndexedShapeSoNonindexedShapeSoVertexProperty(3IV)()

Synopsis

#include<Inventor/nodes/SoVertexProperty.h>enumBinding{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:

     SoMFVec3fvertexSoMFVec3fnormalSoMFUInt32orderedRGBASoMFVec2ftexCoordSoSFEnumnormalBindingSoSFEnummaterialBinding

          Methods from class SoVertexProperty:

                         SoVertexProperty()

          Methods from class SoNode:

     voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)staticSoTypegetClassTypeId()

          Methods from class SoFieldContainer:

     voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)

          Methods from class SoBase:

     voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

See Also