SoCollisionManager Class |
Class to manage collisions.
Namespace: OIV.Inventor.Collision
The SoCollisionManager type exposes the following members.
Name | Description | |
---|---|---|
SoCollisionManager | Constructor. |
Name | Description | |
---|---|---|
Activate | Calls Activate(true). | |
Activate(Boolean) | Sets a flag to activate the collision manager, for instance, to tell it to watch the transformation and start collision detection computations when the transformation changes. | |
Dispose | ||
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
GetGluingLevel | Returns the gluing level. | |
GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) | |
GetObject | Returns the object that will be transformed. | |
GetScene | Returns the scene the object is interacting with. | |
GetTransform | Returns the transformation that will be watched. | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
IsActivated | Returns a flag indicating whether the collision manager is activated. | |
IsGluing | Returns a flag indicating whether the collision manager should place the object at the position just before the first collision that would occur along the transformation path. | |
IsObjectBBoxOnly | Returns a flag indicating whether to use the object's bounding box instead of the actual primitives when computing collisions. | |
IsSceneBBoxOnly | Returns a flag indicating whether to use the bounding boxes of objects in the scene instead of the actual primitives when computing collisions. | |
SetGluing | Calls SetGluing(true). | |
SetGluing(Boolean) | Sets a flag indicating that the collision manager should place the object at the position just before the first collision that would occur along the transformation path. | |
SetGluingLevel | Sets the gluing level. | |
SetObject | Sets the object that will be transformed. | |
SetObjectBBoxOnly | Calls SetObjectBBoxOnly(true). | |
SetObjectBBoxOnly(Boolean) | Sets a flag indicating whether to use the object's bounding box instead of the actual primitives when computing collisions. | |
SetScene | Sets the scene the object is interacting with. | |
SetSceneBBoxOnly | Calls SetSceneBBoxOnly(true). | |
SetSceneBBoxOnly(Boolean) | Sets a flag indicating whether to use the bounding boxes of objects in the scene instead of the actual primitives when computing collisions. | |
SetTransform | Sets the transformation that will be watched. | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
FilterCallback | Sets the callback function called when an object shape collides with a scene shape. |
Name | Description | |
---|---|---|
BBoxCollision | ||
Collision |
The OIV.Inventor.Collision.SoCollisionManager class manages collisions, i.e., it controls the position of an object in a scene, preventing it from colliding with other objects in the scene.
The collision manager references a scene, an object and a transformation. It can prevent collisions between the specified object and other objects within the scene.
It can use the actual primitives of the objects during the computation, or for faster performance, it may use their bounding boxes.
When the referenced transformation changes, the collision manager looks for a collision between the bounding box of the object and the bounding boxes of objects within the scene. If a collision between the bounding boxes is detected, the algorithm can (depending on what the programmer specifies) compute a more precise intersection using the actual primitives of the object and/or the objects of the scene.
The algorithm can call programmer-supplied delegateswhen there is a collision between the bounding boxes, and when there is a collision between the primitives of the shapes.
When there is a collision, the collision manager can "glue" the object on the scene. This refers to placing the object at the position just before the first collision that would occur along the transformation path. For example, if an object would collide with (intersect) a wall, the object would be placed directly against the wall.