True Axis Physics SDK 1.2.0.1 Beta Documentation
www.trueaxis.com

TA::CollisionObjectCombo Class Reference

#include "TA/Physics/CollisionObjectCombo.h"

Inheritance diagram for TA::CollisionObjectCombo:

Inheritance graph

Detailed Description

Provides the collision representation for TA::DynamicObject.

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.

Note:
It is recommended that collision objects are kept as simple as possible for efficiency.
Serialisation:
This class may be saved an loaded to file or memory using these functions inherited from TA::CollisionObject :

Reference Counting:
This class is reference counted. After the object is created it will have a reference count of one. 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.
Examples:

CollisionObjectComboExample.cpp.


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


© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.