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. |
![]() | AddBBoxCollisionCallback | Obsolete.
Use BBoxCollision event instead.
Adds bounding box collision delegate.
Bounding box collision delegates are called after the bounding box collision
detection and before real detection, allowing the programmer to change the
ObjectBBoxOnly and SceneBBoxOnly flags. The delegate are
passed the paths of the two nodes whose bounding boxes are colliding.
|
![]() | AddCollisionCallback | Obsolete.
Use Collision event instead.
Adds collision delegate.
|
![]() | Dispose | |
![]() | Equals | (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. |
![]() | RemoveCollisionCallback(SoCollisionManagerBBoxCollisionUserDataCB, Object) | Obsolete.
Use BBoxCollision event instead.
|
![]() | RemoveCollisionCallback(SoCollisionManagerCollisionUserDataCB, Object) | Obsolete.
Use Collision event instead.
|
![]() | SetFilterCallback(SoCollisionManagerFilterCollisionCB) | Obsolete.
Use FilterCallback property instead.
Sets the delegate called when an object shape collides with a scene
shape. If the delegate returns true, the Collision Manager looks
forward for collisions; else, it aborts searching. If it is null, no filter is
applied.
|
![]() | SetFilterCallback(SoCollisionManagerFilterCollisionUserDataCB, Object) | Obsolete.
Use FilterCallback property instead.
|
![]() | 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 | |
![]() | bBoxCollisionCB | Obsolete.
Use BBoxCollision event instead.
BBoxCollisionCB delegate invocation list
|
![]() | Collision | |
![]() | collisionCB | Obsolete.
Use Collision event instead.
CollisionCB delegate invocation list
|
The 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.