Difference between revisions of "W4 Collision System"
From Ciliz|W4
(Created page with "== Scope == The collision system provides the handling of intersections between objects. For one object, you can set several different volumes (bounding boxes, spheres) at onc...") |
(→Scope) |
||
Line 3: | Line 3: | ||
The W4 Engine implements the following types of interactions with colliders: | The W4 Engine implements the following types of interactions with colliders: | ||
− | * Intersect - intersection of two colliders. | + | * '''Intersect''' - intersection of two colliders. |
− | * Raycast - collider and ray intersection. | + | * '''Raycast''' - collider and ray intersection. |
− | * Screencast - intersection of the collider and the ray emitted from the given screen coordinates. | + | * '''Screencast''' - intersection of the collider and the ray emitted from the given screen coordinates. |
The following examples of the working code of the collision system can be found in the W4 Engine: | The following examples of the working code of the collision system can be found in the W4 Engine: | ||
Line 14: | Line 14: | ||
Let's take a closer look at the Collision system. | Let's take a closer look at the Collision system. | ||
Consider the main elements of the Collision system: | Consider the main elements of the Collision system: | ||
− | * BoundingVolume | + | * '''BoundingVolume''' - interface. This is a visitor whose descendants implement methods for calculating intersections. |
− | * CollisionInfo - structure containing an intersection data. The data depends on the type of interaction and the types of interacting volumes. | + | * '''CollisionInfo''' - structure containing an intersection data. The data depends on the type of interaction and the types of interacting volumes. |
− | * Collider - class containing BoundingVolume, local Transform, and callback management mechanisms. | + | * '''Collider''' - class containing BoundingVolume, local Transform, and callback management mechanisms. |
− | * ColliderEventDispatcher - utility static class containing arrays of colliders, distributed by type of interaction. This class also contains general onUpdate event handling methods for calculating Intersect and onTouch (Screencast calculation). | + | * '''ColliderEventDispatcher''' - utility static class containing arrays of colliders, distributed by type of interaction. This class also contains general onUpdate event handling methods for calculating Intersect and onTouch (Screencast calculation). |
− | * Node (see [[W4_Coordinate_system_and_Node_structure]]) contains the collider management interface. | + | * '''Node''' (see [[W4_Coordinate_system_and_Node_structure]]) contains the collider management interface. |
+ | |||
== Collider management == | == Collider management == | ||
Revision as of 15:35, 28 July 2020
Contents
Scope
The collision system provides the handling of intersections between objects. For one object, you can set several different volumes (bounding boxes, spheres) at once and subscribe to intersections.
The W4 Engine implements the following types of interactions with colliders:
- Intersect - intersection of two colliders.
- Raycast - collider and ray intersection.
- Screencast - intersection of the collider and the ray emitted from the given screen coordinates.
The following examples of the working code of the collision system can be found in the W4 Engine:
- apps/internal/gist-colliding
- apps/internal/test-screencast-blocking
- apps/samples/gist-raycast
Let's take a closer look at the Collision system. Consider the main elements of the Collision system:
- BoundingVolume - interface. This is a visitor whose descendants implement methods for calculating intersections.
- CollisionInfo - structure containing an intersection data. The data depends on the type of interaction and the types of interacting volumes.
- Collider - class containing BoundingVolume, local Transform, and callback management mechanisms.
- ColliderEventDispatcher - utility static class containing arrays of colliders, distributed by type of interaction. This class also contains general onUpdate event handling methods for calculating Intersect and onTouch (Screencast calculation).
- Node (see W4_Coordinate_system_and_Node_structure) contains the collider management interface.
Collider management
Adding a collider
Getting a collider
Removing a collider
The Collider class
This class implements control of collider interactions
Bounding Volume
Local Transform
Intersect
Screencast
Reaction to TouchEvent