Click or drag to resize
SoVRMLCollision Class

Note: This API is now obsolete.

Grouping node that controls collision detection. <font color="#FF0000">Action partially implemented for this node.

Inheritance Hierarchy

Namespace: OIV.Inventor.VRMLnodes
Assembly: OIV.Inventor (in OIV.Inventor.dll) Version: 9.9.13.0 (9.9.13.0)
Syntax
[ObsoleteAttribute("See documentation for more details")]
[EditorBrowsableAttribute(EditorBrowsableState.Never)]
public class SoVRMLCollision : SoVRMLGroup

The SoVRMLCollision type exposes the following members.

Constructors
  NameDescription
Public methodSoVRMLCollision

Constructor.

Public methodSoVRMLCollision(Int32)

Constructor that takes approximate number of children.

Top
Methods
  NameDescription
Public methodAddChild

Adds a child as last one in group.

(Inherited from SoVRMLParent.)
Public methodAffectsState

Returns true if a node has an effect on the state during traversal.

(Inherited from SoVRMLParent.)
Public methodCallback
(Inherited from SoVRMLGroup.)
Public methodCopy
Calls Copy(false).
(Inherited from SoNode.)
Public methodCopy(Boolean)

Creates and returns an exact copy of the node.

(Inherited from SoNode.)
Public methodCopyFieldValues(SoFieldContainer)
Calls CopyFieldValues(fc, false).
(Inherited from SoFieldContainer.)
Public methodCopyFieldValues(SoFieldContainer, Boolean)

Copies the contents of fc's fields into this object's fields.

(Inherited from SoFieldContainer.)
Public methodDispose
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.)
Public methodDistribute
(Inherited from SoVRMLGroup.)
Public methodDoAction
(Inherited from SoVRMLGroup.)
Public methodEnableNotify

Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false).

(Inherited from SoFieldContainer.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodFieldsAreEqual

Returns true if this object's fields are exactly equal to fc's fields.

(Inherited from SoFieldContainer.)
Public methodFindChild

Finds index of given child within group.

(Inherited from SoVRMLParent.)
Public methodGet

Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string.

(Inherited from SoFieldContainer.)
Public methodGetAllFields

Returns a list of fields, including the eventIn's and eventOut's.

(Inherited from SoFieldContainer.)
Public methodGetAlternateRep

This method is called by actions to allow the node to provide an "alternate representation" when appropriate (typically depending on the action type).

(Inherited from SoNode.)
Public methodGetBoundingBox
(Inherited from SoVRMLGroup.)
Public methodGetChild

Returns the nth child node.

(Inherited from SoVRMLParent.)
Public methodGetEventIn

Returns a the eventIn with the given name.

(Inherited from SoFieldContainer.)
Public methodGetEventOut

Returns the eventOut with the given name.

(Inherited from SoFieldContainer.)
Public methodGetField

Returns a the field of this object whose name is fieldName.

(Inherited from SoFieldContainer.)
Public methodGetFieldName

Returns the name of the given field in the fieldName argument.

(Inherited from SoFieldContainer.)
Public methodGetFields

Appends references to all of this object's fields to resultList, and returns the number of fields appended.

(Inherited from SoFieldContainer.)
Public methodGetHashCode
Overrides GetHashCode().
(Inherited from SoNetBase.)
Public methodGetMatrix
(Inherited from SoVRMLGroup.)
Public methodGetName

Returns the name of an instance.

(Inherited from SoBase.)
Public methodGetNumChildren

Returns number of children.

(Inherited from SoVRMLParent.)
Public methodGetPrimitiveCount
(Inherited from SoVRMLGroup.)
Public methodGetRenderUnitID
(Inherited from SoNode.)
Public methodGetStringName (Inherited from SoBase.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGLRender
(Inherited from SoVRMLGroup.)
Public methodGLRenderBelowPath
(Inherited from SoVRMLGroup.)
Public methodGLRenderInPath
(Inherited from SoVRMLGroup.)
Public methodGLRenderOffPath
(Inherited from SoVRMLGroup.)
Public methodGrabEventsCleanup
(Inherited from SoNode.)
Public methodGrabEventsSetup
(Inherited from SoNode.)
Public methodHandleEvent
(Inherited from SoGroup.)
Public methodHasDefaultValues

Returns true if all of the object's fields have their default values.

(Inherited from SoFieldContainer.)
Public methodInsertChild

Adds a child so that it becomes the one with the given index.

(Inherited from SoVRMLParent.)
Public methodIsBoundingBoxIgnoring

Used by BoundingBoxAction to known if bounding box computation should be ignored or not.

(Inherited from SoGroup.)
Public methodIsNotifyEnabled

Notification is the process of telling interested objects that this object has changed.

(Inherited from SoFieldContainer.)
Public methodIsOverride

Returns the state of the override flag.

(Inherited from SoNode.)
Public methodIsSynchronizable

Gets the ScaleViz synchronizable state of this object.

(Inherited from SoBase.)
Public methodPick
(Inherited from SoGroup.)
Public methodRayPick
(Inherited from SoVRMLGroup.)
Public methodRemoveAllChildren

Removes all children from group.

(Inherited from SoVRMLParent.)
Public methodRemoveChild(Int32)

Removes child with given index from group.

(Inherited from SoVRMLParent.)
Public methodRemoveChild(SoNode)

Removes first instance of given child from group.

(Inherited from SoVRMLParent.)
Public methodReplaceChild(Int32, SoNode)

Replaces child with given index with new child.

(Inherited from SoVRMLParent.)
Public methodReplaceChild(SoNode, SoNode)

Replaces first instance of given child with new child.

(Inherited from SoVRMLParent.)
Public methodSearch
(Inherited from SoVRMLGroup.)
Public methodSet

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.

(Inherited from SoFieldContainer.)
Public methodSetName (Inherited from SoBase.)
Public methodSetOverride

Turns the override flag on or off.

(Inherited from SoNode.)
Public methodSetSynchronizable

Sets this to be a ScaleViz synchronizable object.

(Inherited from SoBase.)
Public methodSetToDefaults

Sets all fields in this object to their default values.

(Inherited from SoFieldContainer.)
Public methodToString
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.)
Public methodTouch

Marks an instance as modified, simulating a change to it.

(Inherited from SoNode.)
Public methodWrite
(Inherited from SoVRMLGroup.)
Top
Properties
  NameDescription
Public propertybboxCenter

The bboxCenter and bboxSize fields specify a bounding box that encloses the SoVRMLParent's children.

(Inherited from SoVRMLParent.)
Public propertybboxSize

The bboxCenter and bboxSize fields specify a bounding box that encloses the SoVRMLParents's children.

(Inherited from SoVRMLParent.)
Public propertyboundingBoxCaching

Whether to cache during bounding box traversal.

(Inherited from SoVRMLGroup.)
Public propertyboundingBoxIgnoring

Whether to ignore this node during bounding box traversal.

(Inherited from SoGroup.)
Public propertychildren

Field that contains a list of children nodes.

(Inherited from SoVRMLParent.)
Public propertycollide

(Note: Not implemented) Enables (true) or disables (false) collision detection.

Public propertycollideTime

Output event on collide time changes.

Public propertydirectVizCaching

Whether to cache during DirectViz rendering traversal.

(Inherited from SoVRMLGroup.)
Public propertyenabled

(Note: Not implemented) Enables (true) or disables (false) collision detection.

Public propertyisActive

Output event if active.

Public propertyIsDisposable
ISafeDisposable interface implementation.
(Inherited from SoDisposable.)
Public propertymetadata

Specifies the metadata node.

(Inherited from SoVRMLParent.)
Public propertypickCulling

Whether to cull during pick traversal.

(Inherited from SoVRMLGroup.)
Public propertyproxy

(Note: Not implemented) Child node that is used as a substitute for the SoVRMLCollision's children during collision detection.

Public propertyrenderCaching

Whether to cache during rendering traversal.

(Inherited from SoVRMLGroup.)
Public propertyrenderCulling

Whether to cull during rendering traversal.

(Inherited from SoVRMLGroup.)
Public propertyrenderUnitId

Used during the ScaleViz depth compositing process, this field specifies which render unit (OIRU) will render the sub scene graph below this separator.

(Inherited from SoVRMLGroup.)
Public propertyUserData
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.)
Top
Remarks

</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.

VRML97 SPECIFICATION

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.

FILE FORMAT/DEFAULT

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
}

EVENTS

eventIn

SoMFNodeaddChildren
SoMFNoderemoveChildren
SoMFNodeset_children
SoSFBoolset_collide // VRML97 only (Note: Not implemented)
SoSFBoolset_enabled // X3D only (Note: Not implemented)
SoSFNodeset_metadata

eventOut

SoSFTimecollideTime (Note: Not implemented)
SoMFNodechildren_changed
SoSFBoolcollide_changed // VRML97 only (Note: Not implemented)
SoSFBoolenabled_changed // X3D only (Note: Not implemented)
SoSFNodemetadata_changed

ACTION BEHAVIOR

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.

See Also