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