#include "TA/Physics/CollisionObjectCombo.h"
Inheritance diagram for TA::CollisionObjectCombo:
Call the static function TA::CollisionObjectCombo::CreateNew to create a new instance of this class.
All dynamic objects contain a collision object of type TA::CollisionObjectCombo . This can be retrieved by the function TA::DynamicObject::GetCollisionObject. These objects are meant to be simple and small to allow for fast collision testing. They are not designed to be more than a few meters big.
A combo collision object is built with a list of collision objects of type TA::CollisionObjectSimple. These can be any combination of:
To make a concave polygon collision object it is necessary to combine multiple convex objects.
AddRef()
and Release()
can be called to increment and decrement the reference count. If the reference count is zero after a call to Release()
the object will be automatically deleted. Reference counted objects should only be created using new.
Public Member Functions | |
void | Initialise () |
void | InitialiseAsABox (float fSizeX, float fSizeY, float fSizeZ) |
void | InitialiseAsABox (const AABB &aabb) |
void | InitialiseAsAnOrientedBox (const AABB &aabb, const MFrame &mFrame) |
void | InitialiseAsACapsule (const Vec3 &v3Start, const Vec3 &v3End, float fRadius) |
void | InitialiseAsASphere (const Vec3 &v3Center, float fRadius) |
void | InitialiseAsACylinder (const Vec3 &v3Start, const Vec3 &v3End, float fRadius) |
bool | InitialiseFromPointList (const Vec3 *pv3PointList, int nNumPoints) |
void | Finalise () |
virtual bool | Serialisable () const |
void | AddCollisionObject (CollisionObjectSimple *pCollisionObject) |
void | RemoveCollisionObject (CollisionObjectSimple *pCollisionObject) |
void | RemoveCollisionObject (int nIndex) |
int | GetNumCollisionObjects () const |
CollisionObjectSimple * | GetCollisionObject (int nIndex) |
void | Render (const MFrame &mFrame) |
const AABB & | GetAABB () const |
void | CalculateMass (float fDensity, float &fMass, Vec3 &v3CenterOfMass, Mat33 &m33Inertia) const |
bool | TestLineForCollision (const Vec3 &v3Start, const Vec3 &v3Normal, float fLength, Collision &collision) const |
int | GetMaxNumLineCollisions () const |
Internal | |
void | Serialise (Serialiser &serialiser, const Version &version) |
Static Public Member Functions | |
static CollisionObjectCombo *TAC_CALL | CreateNew () |