SoVRMLCollision Class |
Note: This API is now obsolete.
Grouping node that controls collision detection. <font color="#FF0000">Action partially implemented for this node.
Namespace: OIV.Inventor.VRMLnodes
The SoVRMLCollision type exposes the following members.
Name | Description | |
---|---|---|
![]() | SoVRMLCollision | Constructor. |
![]() | SoVRMLCollision(Int32) | Constructor that takes approximate number of children. |
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 | (Inherited from SoVRMLGroup.) |
![]() | 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 | (Inherited from SoVRMLGroup.) |
![]() | 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 | (Inherited from SoVRMLGroup.) |
![]() | 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 | (Inherited from SoVRMLGroup.) |
![]() | GLRenderBelowPath | (Inherited from SoVRMLGroup.) |
![]() | GLRenderInPath | (Inherited from SoVRMLGroup.) |
![]() | GLRenderOffPath | (Inherited from SoVRMLGroup.) |
![]() | 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 | (Inherited from SoVRMLGroup.) |
![]() | 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 | |
---|---|---|
![]() | 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. |
![]() | collide | (Note: Not implemented) Enables (true) or disables (false) collision detection. |
![]() | collideTime | Output event on collide time changes. |
![]() | directVizCaching | Whether to cache during DirectViz rendering traversal. |
![]() | enabled | (Note: Not implemented) Enables (true) or disables (false) collision detection. |
![]() | isActive | Output event if active. |
![]() | IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) |
![]() | metadata | Specifies the metadata node. |
![]() | pickCulling | Whether to cull during pick traversal. |
![]() | proxy | (Note: Not implemented) Child node that is used as a substitute for the SoVRMLCollision's children during collision detection. |
![]() | 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.) |
</font>
See the VRML97 Specification, below.
<font color="#0000FF">NOTE:</font> This class does not exist in Open Inventor 10.0 and later.
Note: This node is partially implemented. It functions correctly as a grouping node, but does not currently implement the collision detection feature.
IV_SEPARATOR_MAX_CACHES specifies the maximum number of render caches. To disable caching entirely, set it to 0. (This can reduce memory requirements at the cost of degraded performance.) See SoSeparator for additional information on caching in general, and SoVRMLGroup for information on the CacheEnabled enum values.
This section describes the expected behavior of the node in a conforming 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.
By default, all objects in the scene are collidable . The browser must detect geometric collisions between the user's avatar (see SoVRMLNavigationInfo) and the scene's geometry, and prevent the avatar from 'entering' the geometry. The SoVRMLCollision node is a grouping node that may turn off collision detection for its descendants, specify alternative objects to use for collision detection, and send events signalling that a collision has occurred between the user's avatar and the SoVRMLCollision group's geometry or alternate. If there are no SoVRMLCollision nodes specified in a scene, browsers must detect collision with all objects during navigation.
See the "Concepts - Grouping and Children Nodes" section for a description the children , addChildren , and removeChildren fields and eventIns.
The SoVRMLCollision node's collide field enables and disables collision detection. If collide is set to false, the children and all descendants of the SoVRMLCollision node will not be checked for collision, even though they are drawn. This includes any descendant SoVRMLCollision nodes that have collide set to true - (i.e., setting collide to false turns it off for every node below it).
SoVRMLCollision nodes with the collide field set to true detect the nearest collision with their descendant geometry (or proxies). Note that not all geometry is collidable - see each geometry node's sections for details. When the nearest collision is detected, the collided SoVRMLCollision node sends the time of the collision through its collideTime eventOut. This behavior is recursive - if an SoVRMLCollision node contains a child, descendant, or proxy (see below) that is an SoVRMLCollision node, and both SoVRMLCollisions detect that a collision has occurred, then both send a collideTime event out at the same time, and so on.
The bboxCenter and bboxSize fields specify a bounding box that encloses the SoVRMLCollision'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 the bboxCenter and bboxSize fields.
The collision proxy, defined in the proxy field, is a legal child node, (see "Concepts - Grouping and Children Nodes"), that is used as a substitute for the SoVRMLCollision's children during collision detection. The proxy is used strictly for collision detection - it is not drawn.
If the value of the collide field is false, then collision detection is not performed with the children or proxy descendant nodes. If the root node of a scene is an SoVRMLCollision node with the collide field set to false, then collision detection is disabled for the entire scene, regardless of whether descendant SoVRMLCollision nodes have set collide true.
If the value of the collide field is true and the proxy field is non-NULL, then the proxy field defines the scene which collision detection is performed. If the proxy value is NULL, the children of the collision node are collided against.
If proxy is specified, then any descendant children of the SoVRMLCollision node are ignored during collision detection. If children is empty, collide is true and proxy is specified, then collision detection is done against the proxy but nothing is displayed (i.e., invisible collision objects).
The collideTime eventOut generates an event specifying the time when the user's avatar (see SoVRMLNavigationInfo) intersects the collidable children or proxy of the SoVRMLCollision node. An ideal implementation computes the exact time of intersection. Implementations may approximate the ideal by sampling the positions of collidable objects and the user. Refer to the SoVRMLNavigationInfo node for parameters that control the user's size.
Browsers are responsible for defining the navigation behavior when collisions occur. For example, when the user comes sufficiently close to an object to trigger a collision, the browser may have the user bounce off the object, come to a stop, or glide along the surface.
VRMLCollision {
children | [] |
collide | true // VRML97 only |
enabled | true // X3D only |
bboxCenter | 0 0 0 |
bboxSize | -1 -1 -1 |
proxy | NULL (Note: Not implemented) |
metadata | NULL |
renderCaching | AUTO |
boundingBoxCaching | AUTO |
renderCulling | AUTO |
pickCulling | AUTO |
SoMFNode | addChildren |
SoMFNode | removeChildren |
SoMFNode | set_children |
SoSFBool | set_collide // VRML97 only (Note: Not implemented) |
SoSFBool | set_enabled // X3D only (Note: Not implemented) |
SoSFNode | set_metadata |
SoSFTime | collideTime (Note: Not implemented) |
SoMFNode | children_changed |
SoSFBool | collide_changed // VRML97 only (Note: Not implemented) |
SoSFBool | enabled_changed // X3D only (Note: Not implemented) |
SoSFNode | metadata_changed |
Sets: SoCacheElementObsoletesince Open Inventor 9500 The VRML API is no longer supported. See section http://oivdoc95.vsg3d.com/content/compatibility-notes-4#Deprecation of the Reference Manual.