|
| CollisionVolumeOBB (const CollisionVolumeOBB &)=delete |
|
CollisionVolumeOBB & | operator= (const CollisionVolumeOBB &)=delete |
|
void | ComputeData (Model *mod, const Matrix &mat) override |
| Computes the OBB data from a model and transformation matrix.
|
|
const Vect & | GetCenter () const |
| Gets the center of the OBB in world space.
|
|
const Vect & | GetHalfDiagonal () const |
| Gets the half-diagonal (half-extents) of the OBB in world space.
|
|
const Matrix & | GetWorldMatrix () const |
| Gets the world matrix representing the OBB's orientation and position.
|
|
const Vect | GetMin () const |
| Gets the minimum point of the OBB in world space.
|
|
const Vect | GetMax () const |
| Gets the maximum point of the OBB in world space.
|
|
Model * | GetModel () const |
| Gets the model associated with this OBB.
|
|
void | DebugView (const Vect &col) const override |
| Visualizes the OBB for debugging purposes.
|
|
bool | IntersectAccept (const CollisionVolume &other) const override |
| Accepts a collision test with another collision volume (double dispatch).
|
|
bool | IntersectVisit (const CollisionVolumeBSphere &other) const override |
| Tests intersection with a bounding sphere.
|
|
bool | IntersectVisit (const CollisionVolumeAABB &other) const override |
| Tests intersection with an axis-aligned bounding box (AABB).
|
|
bool | IntersectVisit (const CollisionVolumeOBB &other) const override |
| Tests intersection with another OBB.
|
|
void | ComputeDataFromMinMax (const Vect ¢er, const Vect &halfDiagonal) |
| Sets the OBB data from a center and half-diagonal in world space.
|
|
VolumeType | GetType () const override |
| Gets the type of this collision volume.
|
|
| CollisionVolume (const CollisionVolume &)=delete |
|
CollisionVolume & | operator= (const CollisionVolume &)=delete |
|
void * | operator new (size_t, void *p) noexcept |
|
void * | operator new (size_t size) noexcept |
|
void | operator delete (void *p) |
|
void * | operator new[] (size_t size) noexcept |
|
void | operator delete[] (void *p) |
|
void * | operator new (size_t size, int _BlockUse, char const *_FileName, int _LineNumber) noexcept |
|
void | operator delete (void *p, int _BlockUse, char const *_FileName, int _LineNumber) |
|
void * | operator new[] (size_t size, int _BlockUse, char const *_FileName, int _LineNumber) noexcept |
|
void | operator delete[] (void *p, int _BlockUse, char const *_FileName, int _LineNumber) |
|
Represents an Oriented Bounding Box (OBB) collision volume.
The CollisionVolumeOBB class implements an oriented bounding box for collision detection. An OBB is a rectangular box that can be arbitrarily rotated in 3D space, defined by its center, half-diagonal (half-extents), and orientation (world matrix). This class provides methods to compute the OBB from a model and transformation matrix, retrieve its properties, and perform intersection tests with other collision volumes.
Typical usage involves calling ComputeData() to initialize the OBB from a model and world matrix, then using intersection methods for collision queries.
- See also
- CollisionVolume, CollisionVolumeAABB, CollisionVolumeBSphere, SUNENGINEMathTools