SoVertexProperty

InventorModule
genre InventorNodesAutomatic
author Silicon Graphics Inc
package MeVisLab/Standard
definition inventor.def

Purpose

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., IndexedShapes or NonIndexedShapes. 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 Ordered RGBA 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), and 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 Tex Coord 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 Material Binding field replaces the value field of the SoMaterialBinding node. The Material Binding field in a directly referenced SoVertexProperty node has no effect unless there is a nonempty Ordered RGBA field, in which case the material binding specifies the assignment of diffuse colors and alpha values to the shape. The Material Binding field can take as value any of the material bindings supported by Inventor.

The Normal Binding field replaces the value field of the SoNormalBinding node. The Normal Binding 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 Normal Binding field can be any of the normal bindings supported by Inventor.

Windows

Default Panel

../../../Modules/Inventor/InventorBase/mhelp/Images/Screenshots/SoVertexProperty._default.png

Output Fields

self

name: self, type: SoNode

Parameter Fields

Field Index

Material Binding: Enum
Normal: Vector3List
Normal Binding: Enum
Ordered RGBA: IntegerList
Tex Coord: Vector2List
Vertex: Vector3List

Visible Fields

Vertex

name: vertex, type: Vector3List, default: [  ]

Vertex coordinate(s).

Normal

name: normal, type: Vector3List, default: [  ]

Normal vector(s).

Tex Coord

name: texCoord, type: Vector2List, default: [  ]

Texture coordinate(s).

Ordered RGBA

name: orderedRGBA, type: IntegerList, default: [  ]

Packed color(s), including transparencies.

Material Binding

name: materialBinding, type: Enum, default: OVERALL

Material binding.

Values:

Title Name Description
Overall OVERALL Whole object has same material.
Per Vertex PER_VERTEX One material for each vertex of object.
Per Vertex Indexed PER_VERTEX_INDEXED One material for each vertex, indexed.
Per Face PER_FACE One material for each face of object.
Per Face Indexed PER_FACE_INDEXED One material for each face, indexed.
Per Part PER_PART One material for each part of object.
Per Part Indexed PER_PART_INDEXED One material for each part, indexed.

Normal Binding

name: normalBinding, type: Enum, default: PER_VERTEX_INDEXED

Normal binding.

Values:

Title Name Description
Overall OVERALL Whole object has same normal.
Per Vertex PER_VERTEX One normal for each vertex of object.
Per Vertex Indexed PER_VERTEX_INDEXED One normal for each vertex, indexed.
Per Face PER_FACE One normal for each face of object.
Per Face Indexed PER_FACE_INDEXED One normal for each face, indexed.
Per Part PER_PART One normal for each part of object.
Per Part Indexed PER_PART_INDEXED One normal for each part, indexed.