Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | Related Pages

PhysicsManager Class Reference

#include <physics.h>

Inheritance diagram for PhysicsManager:

Inheritance graph
[legend]
Collaboration diagram for PhysicsManager:

Collaboration graph
[legend]
List of all members.

Detailed Description

Manager of rigidbody nodes in a scene.

Author:
Mattias Jansson (mattias@realityrift.com)


Public Types

enum  PHYSICSMANAGERDEFS { DEFAULTCOLLISIONPASSES = 5, DEFAULTCONTACTPASSES = 5 }

Public Member Functions

 PhysicsManager (Room *pkRoom, unsigned int uiCollisionPasses=DEFAULTCOLLISIONPASSES, unsigned int uiContactPasses=DEFAULTCONTACTPASSES)
virtual ~PhysicsManager ()
void SetGravity (const Vector3d &rkGravity)
virtual void Update (float fDeltaTime)
virtual void AddRigidBody (RigidBody *pkBody)
virtual void RemoveRigidBody (RigidBody *pkBody)
const std::vector< RigidBody * > & GetRigidBodies ()
bool IsActive () const
virtual void Activate ()
virtual void Deactivate ()
bool Toggle ()

Protected Attributes

unsigned int m_uiCollisionPasses
unsigned int m_uiContactPasses
Roomm_pkRoom
Vector3d m_kGravity
std::vector< RigidBody * > m_vpkBodies
std::vector< ContactNode * > m_vpkBodyNodes
bool m_bActive


Member Enumeration Documentation

enum PHYSICSMANAGERDEFS
 

Defines and default values for physics manager

Enumeration values:
DEFAULTCOLLISIONPASSES  Default number of collision passes
DEFAULTCONTACTPASSES  Default number of contact passes


Constructor & Destructor Documentation

PhysicsManager Room pkRoom,
unsigned int  uiCollisionPasses = DEFAULTCOLLISIONPASSES,
unsigned int  uiContactPasses = DEFAULTCONTACTPASSES
 

Parameters:
pkRoom Room this manager resides in

virtual ~PhysicsManager  )  [virtual]
 


Member Function Documentation

void SetGravity const Vector3d rkGravity  ) 
 

Set gravity

Parameters:
rkGravity Gravity acceleration vector

virtual void Update float  fDeltaTime  )  [virtual]
 

Update the physics simulation

Parameters:
fDeltaTime Delta time passed since last update

Reimplemented from UpdateEntity.

virtual void AddRigidBody RigidBody pkBody  )  [virtual]
 

Add a rigidbody to the physics simulation

Parameters:
pkBody Rigidbody object

virtual void RemoveRigidBody RigidBody pkBody  )  [virtual]
 

Remove a rigidbody from the physics simulation

Parameters:
pkBody Rigidbody object

const std::vector< RigidBody* >& GetRigidBodies  )  [inline]
 

Get all rigidbodies managed by system

Returns:
Vector with pointers to all managed rigidbody objects

bool IsActive  )  const [inline, inherited]
 

Query state of object

Returns:
true if active, false if not

void Activate  )  [inline, virtual, inherited]
 

Activate object

void Deactivate  )  [inline, virtual, inherited]
 

Deactivate object

bool Toggle  )  [inline, inherited]
 

Toggle active state. This method does not need to be overloaded, it is only a wrapper to Activate and Deactivate

Returns:
true if activated, false if deactivated


Member Data Documentation

unsigned int m_uiCollisionPasses [protected]
 

Number of collision passes

unsigned int m_uiContactPasses [protected]
 

Number of contact passes

Room* m_pkRoom [protected]
 

Room

Vector3d m_kGravity [protected]
 

Gravity

std::vector< RigidBody* > m_vpkBodies [protected]
 

Managed rigidbodies

std::vector< ContactNode* > m_vpkBodyNodes [protected]
 

Contact DAG nodes for each managed rigidbody

bool m_bActive [protected, inherited]
 

Active flag


The documentation for this class was generated from the following file:
Generated on Wed Jan 21 14:21:13 2004 for NeoEngine by doxygen 1.3.5