SoVRMLBillboard Class |
Note: This API is now obsolete.
Grouping node that modifies its coordinate system so that its local Z-axis always points at the viewer.
Namespace: OIV.Inventor.VRMLnodes
The SoVRMLBillboard type exposes the following members.
Name | Description | |
---|---|---|
![]() | SoVRMLBillboard | Constructor. |
![]() | SoVRMLBillboard(Int32) | Initializes a new instance of the SoVRMLBillboard class |
Name | Description | |
---|---|---|
![]() | AddChild | Adds a child as last one in group. |
![]() | AffectsState | Returns true if a node has an effect on the state during traversal. |
![]() | Callback | (Overrides SoVRMLGroupCallback(SoCallbackAction).) |
![]() | Copy | Calls Copy(false). (Inherited from SoNode.) |
![]() | Copy(Boolean) | Creates and returns an exact copy of the node. |
![]() | CopyFieldValues(SoFieldContainer) | Calls CopyFieldValues(fc, false). (Inherited from SoFieldContainer.) |
![]() | CopyFieldValues(SoFieldContainer, Boolean) | Copies the contents of fc's fields into this object's fields. |
![]() | Dispose |
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.) |
![]() | Distribute | (Inherited from SoVRMLGroup.) |
![]() | DoAction | (Overrides SoVRMLGroupDoAction(SoAction).) |
![]() | EnableNotify | Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false). |
![]() | Equals | (Inherited from Object.) |
![]() | FieldsAreEqual | Returns true if this object's fields are exactly equal to fc's fields. |
![]() | FindChild | Finds index of given child within group. |
![]() | Get | Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string. |
![]() | GetAllFields | Returns a list of fields, including the eventIn's and eventOut's. |
![]() | GetAlternateRep | This method is called by actions to allow the node to provide an "alternate representation" when appropriate (typically depending on the action type). |
![]() | GetBoundingBox | (Overrides SoVRMLGroupGetBoundingBox(SoGetBoundingBoxAction).) |
![]() | GetChild | Returns the nth child node. |
![]() | GetEventIn | Returns a the eventIn with the given name. |
![]() | GetEventOut | Returns the eventOut with the given name. |
![]() | GetField | Returns a the field of this object whose name is fieldName. |
![]() | GetFieldName | Returns the name of the given field in the fieldName argument. |
![]() | GetFields | Appends references to all of this object's fields to resultList, and returns the number of fields appended. |
![]() | GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) |
![]() | GetMatrix | (Inherited from SoVRMLGroup.) |
![]() | GetName | Returns the name of an instance. |
![]() | GetNumChildren | Returns number of children. |
![]() | GetPrimitiveCount | (Inherited from SoVRMLGroup.) |
![]() | GetRenderUnitID | (Inherited from SoNode.) |
![]() | GetStringName | (Inherited from SoBase.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GLRender | (Overrides SoVRMLGroupGLRender(SoGLRenderAction).) |
![]() | GLRenderBelowPath | (Overrides SoVRMLGroupGLRenderBelowPath(SoGLRenderAction).) |
![]() | GLRenderInPath | (Overrides SoVRMLGroupGLRenderInPath(SoGLRenderAction).) |
![]() | GLRenderOffPath | (Overrides SoVRMLGroupGLRenderOffPath(SoGLRenderAction).) |
![]() | GrabEventsCleanup | (Inherited from SoNode.) |
![]() | GrabEventsSetup | (Inherited from SoNode.) |
![]() | HandleEvent | (Inherited from SoGroup.) |
![]() | HasDefaultValues | Returns true if all of the object's fields have their default values. |
![]() | InsertChild | Adds a child so that it becomes the one with the given index. |
![]() | IsBoundingBoxIgnoring | Used by BoundingBoxAction to known if bounding box computation should be ignored or not. |
![]() | IsNotifyEnabled | Notification is the process of telling interested objects that this object has changed. |
![]() | IsOverride | Returns the state of the override flag. |
![]() | IsSynchronizable | Gets the ScaleViz synchronizable state of this object. |
![]() | Pick | (Inherited from SoGroup.) |
![]() | RayPick | (Overrides SoVRMLGroupRayPick(SoRayPickAction).) |
![]() | RemoveAllChildren | Removes all children from group. |
![]() | RemoveChild(Int32) | Removes child with given index from group. |
![]() | RemoveChild(SoNode) | Removes first instance of given child from group. |
![]() | ReplaceChild(Int32, SoNode) | Replaces child with given index with new child. |
![]() | ReplaceChild(SoNode, SoNode) | Replaces first instance of given child with new child. |
![]() | Search | (Inherited from SoVRMLGroup.) |
![]() | Set | Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format. |
![]() | SetName | (Inherited from SoBase.) |
![]() | SetOverride | Turns the override flag on or off. |
![]() | SetSynchronizable | Sets this to be a ScaleViz synchronizable object. |
![]() | SetToDefaults | Sets all fields in this object to their default values. |
![]() | ToString |
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.) |
![]() | Touch | Marks an instance as modified, simulating a change to it. |
![]() | Write | (Inherited from SoVRMLGroup.) |
Name | Description | |
---|---|---|
![]() | axisOfRotation | Specifies which axis to use to perform the rotation. |
![]() | bboxCenter | The bboxCenter and bboxSize fields specify a bounding box that encloses the SoVRMLParent's children. |
![]() | bboxSize | The bboxCenter and bboxSize fields specify a bounding box that encloses the SoVRMLParents's children. |
![]() | boundingBoxCaching | Whether to cache during bounding box traversal. |
![]() | boundingBoxIgnoring | Whether to ignore this node during bounding box traversal. |
![]() | children | Field that contains a list of children nodes. |
![]() | directVizCaching | Whether to cache during DirectViz rendering traversal. |
![]() | IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) |
![]() | metadata | Specifies the metadata node. |
![]() | pickCulling | Whether to cull during pick traversal. |
![]() | renderCaching | Whether to cache during rendering traversal. |
![]() | renderCulling | Whether to cull during rendering traversal. |
![]() | renderUnitId | Used during the ScaleViz depth compositing process, this field specifies which render unit (OIRU) will render the sub scene graph below this separator. |
![]() | UserData |
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.) |
![]() | useSphereBBox | Specifies if the bounding box returned by SoVRMLBillBoard.getBoundingBox() method should be extended to completely contain the bounding sphere of the children. |
The SoVRMLBillboard node is a grouping node which modifies its coordinate system so that the billboard node's local Z-axis turns to point at the viewer. The SoVRMLBillboard node has children which may be other grouping or leaf nodes.
<font color="#0000FF">NOTE:</font> This class does not exist in Open Inventor 10.0 and later. Use SoBillboard.
Performance:
SoVRMLBillboard nodes recompute the screen alignment transformation on every render traversal. A large number of billboard nodes will reduce performance.
The orientation of an SoVRMLBillboard depends on the current camera settings, so this node should not be render cached.
SoVRMLBillboard nodes prohibit auto-caching, so no SoSeparator (or other render caching node) above an SoVRMLBillboard in the scene graph will automatically create a render cache. This can significantly reduce performance and applications should put nodes that can be render cached (especially geometry nodes) under their own SoSeparator below the SoVRMLBillboard.
We recommend setting the useSphereBBox field to true. This will significantly improve performance when using billboard nodes.
Notes:
This implementation contains one additional field, useSphereBBox, which is not part of the X3D / VRML standard.
Export limitations:
SoVRMLBillboard can be exported to PDF3D/U3D (SoToPDFAction) as a group node, but due to limitations of that file format, it will not act as a billboard. In other words, the geometry will not be "screen locked".
This section describes the expected behavior of the node in a conforming X3D / VRML97 browser application. In some cases, the application is responsible for implementing portions of the expected behavior. Open Inventor viewer classes and IVF classes implement some of the application behaviors.
This section may reference portions of the VRML97 specification that are not present in this help file. The complete VRML97 spec is available at http://www.web3d.org.
The SoVRMLBillboard node is a grouping node which modifies its coordinate system so that the billboard node's local Z-axis turns to point at the viewer. The SoVRMLBillboard node has children which may be other grouping or leaf nodes.
The axisOfRotation field specifies which axis to use to perform the rotation. This axis is defined in the local coordinates of the SoVRMLBillboard node. The default (0,1,0) is useful for objects such as images of trees and lamps positioned on a ground plane. But when an object is oriented at an angle, for example, on the incline of a mountain, then the axisOfRotation may also need to be oriented at a similar angle.
A special case of billboarding is screen-alignment the object rotates to always stay aligned with the viewer even when the viewer elevates, pitches and rolls. This special case is distinguished by setting the axisOfRotation to (0, 0, 0).
To rotate the SoVRMLBillboard to face the viewer, determine the line between the SoVRMLBillboard's origin and the viewer's position; call this the billboard-to-viewer line. The axisOfRotation and the billboard-to-viewer line define a plane. The local z-axis of the SoVRMLBillboard is then rotated into that plane, pivoting around the axisOfRotation.
If the axisOfRotation and the billboard-to-viewer line are coincident (the same line), then the plane cannot be established, and the rotation results of the SoVRMLBillboard are undefined. For example, if the axisOfRotation is set to (0,1,0) (Y-axis) and the viewer flies over the SoVRMLBillboard and peers directly down the Y-axis the results are undefined .
Multiple instances of SoVRMLBillboards (DEF/USE) operate as expected - each instance rotates in its unique coordinate system to face the viewer.
See the "Concepts - Grouping and Children Nodes" section for a description the children , addChildren , and removeChildren fields and eventIns.
The bboxCenter and bboxSize fields specify a bounding box that encloses the SoVRMLBillboard's children. This is a hint that may be used for optimization purposes. If the specified bounding box is smaller than the actual bounding box of the children at any time, then the results are undefined. A default bboxSize value, (-1 -1 -1), implies that the bounding box is not specified and if needed must be calculated by the browser. See "Concepts - Bounding Boxes" for a description of bboxCenter and bboxSize fields.
VRMLBillboard {
axisOfRotation | 0 1 0 |
children | [] |
metadata | NULL |
bboxCenter | 0 0 0 |
bboxSize | -1 -1 -1 |
useSphereBBox | false |
SoMFNode | addChildren |
SoMFNode | removeChildren |
SoSFVec3f | set_axisOfRotation |
SoMFNode | set_children |
SoSFNode | set_metadata |
SoSFVec3f | axisOfRotation_changed |
SoMFNode | children_changed |
SoSFNode | metadata_changed |