Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Static Private Member Functions | Friends
physics::PhysicsManager Class Reference

#include <PhysicsManager.h>

Inheritance diagram for physics::PhysicsManager:
engine::Object core::Singleton< PhysicsManager >

List of all members.

Public Member Functions

void addCollisionEventReceiver (CollisionEventReceiver *newEventReceiver)
BodycreateBody (const std::string &name, const std::string &bodyFilename, scene::Node *parent=NULL)
BodycreateBody (const std::string &bodyFilename, scene::Node *parent=NULL)
 Creates a body to be managed by physics manager.
BodycreateBody (const std::string &name, BodyData *bodyData, scene::Node *parent=NULL)
BodycreateBody (BodyData *bodyData, scene::Node *parent=NULL)
 Creates a body to be managed by physics manager.
JointcreateJoint (JointType type)
 Creates a joint to be managed by physics manager.
JointcreateJoint (const std::string &name, JointType type)
MaterialcreateMaterial (const std::string &materialFilename)
ShapecreateShape (ShapeType type)
BodygetBody (const u32 &id)
 Retrieves a pointer to a body by id.
JointgetJoint (const u32 &id)
 Retrieves a pointer to a joint by id.
u32 getNumberOfBodies () const
 Retrieves the total number of created bodies.
u32 getNumberOfJoints () const
 Retrieves the total number of created joints.
void initialize ()
 Initialize object.
 PhysicsManager ()
void registerDefaultFactories ()
void removeAllBodies ()
 Removes (and destroys) all bodies.
void removeAllJoints ()
 Removes (and destroys) all bodies.
void removeBody (const u32 &id)
 Removes a body.
void removeBody (Body *actor)
 Removes a body.
void removeBodyFactory ()
void removeCollisionEventReceiver (CollisionEventReceiver *oldEventReceiver)
void removeDefaultFactories ()
void removeJoint (const u32 &id)
 Removes a joint.
void removeJoint (Joint *joint)
 Removes a joint.
void removeJointFactory ()
void removePhysicsDriver ()
void removeShapeFactory ()
void setBodyFactory (BodyFactory *factory)
void setCollisionAccuracy (f32 accuracy)
void setGravity (const core::vector3d &gravity)
void setHardware (bool state)
void setJointFactory (JointFactory *factory)
void setPhysicsDriver (PhysicsDriver *driver)
void setShapeFactory (ShapeFactory *factory)
void setSolverAccuracy (f32 accuracy)
void start ()
void stop ()
 ~PhysicsManager ()

Static Public Member Functions

static PhysicsManagergetInstance ()
 Get instance.

Protected Member Functions

void initializeImpl ()
void uninitializeImpl ()
void updateImpl (f32 elapsedTime)

Protected Attributes

std::map< u32, Body * > mBodies
 Central list of bodies - for easy memory management and lookup.
BodyFactorymBodyFactory
f32 mCollisionAccuracy
BodyDataFactorymDefaultBodyDataFactory
core::vector3d mGravity
bool mHardware
JointFactorymJointFactory
std::map< u32, Joint * > mJoints
 Central list of joints - for easy memory management and lookup.
std::map< u32, Material * > mMaterials
 Central list of materials - for easy memory management and lookup.
PhysicsDrivermPhysicsDriver
ShapeFactorymShapeFactory
f32 mSolverAccuracy
bool mUpdatePhysics
 Physics loop control.

Static Protected Attributes

static CollisionEventmCollisionEvent = NULL
static std::list
< CollisionEventReceiver * > 
mCollisionEventReceivers

Static Private Member Functions

static void fireCollisionEnded (Body *body1, Body *body2)
static void fireCollisionStarted (Body *body1, Body *body2, const std::vector< CollisionPoint * > &points)
static void fireCollisionUpdate (Body *body1, Body *body2, const std::vector< CollisionPoint * > &points)

Friends

class PhysicsDriver

Detailed Description

Physics Manager.

This class handles everything related to physics.

Author:
: Kat'Oun
Version:
: 1.0

Constructor & Destructor Documentation

physics::PhysicsManager::PhysicsManager ( )
physics::PhysicsManager::~PhysicsManager ( )

Member Function Documentation

void physics::PhysicsManager::addCollisionEventReceiver ( CollisionEventReceiver newEventReceiver)
Body * physics::PhysicsManager::createBody ( const std::string &  name,
const std::string &  bodyFilename,
scene::Node parent = NULL 
)
Body * physics::PhysicsManager::createBody ( BodyData bodyData,
scene::Node parent = NULL 
)
Body * physics::PhysicsManager::createBody ( const std::string &  name,
BodyData bodyData,
scene::Node parent = NULL 
)
Body * physics::PhysicsManager::createBody ( const std::string &  bodyFilename,
scene::Node parent = NULL 
)
Joint * physics::PhysicsManager::createJoint ( JointType  type)

Creates a joint to be managed by physics manager.

References physics::JointFactory::createJoint(), engine::Object::getID(), mJointFactory, and mJoints.

Joint * physics::PhysicsManager::createJoint ( const std::string &  name,
JointType  type 
)
Material * physics::PhysicsManager::createMaterial ( const std::string &  materialFilename)
Shape * physics::PhysicsManager::createShape ( ShapeType  type)
void physics::PhysicsManager::fireCollisionEnded ( Body body1,
Body body2 
) [static, private]
void physics::PhysicsManager::fireCollisionStarted ( Body body1,
Body body2,
const std::vector< CollisionPoint * > &  points 
) [static, private]
void physics::PhysicsManager::fireCollisionUpdate ( Body body1,
Body body2,
const std::vector< CollisionPoint * > &  points 
) [static, private]
Body * physics::PhysicsManager::getBody ( const u32 id)

Retrieves a pointer to a body by id.

References mBodies.

PhysicsManager * physics::PhysicsManager::getInstance ( ) [static]
Joint * physics::PhysicsManager::getJoint ( const u32 id)

Retrieves a pointer to a joint by id.

References mJoints.

u32 physics::PhysicsManager::getNumberOfBodies ( ) const

Retrieves the total number of created bodies.

References mBodies.

u32 physics::PhysicsManager::getNumberOfJoints ( ) const

Retrieves the total number of created joints.

References mJoints.

void physics::PhysicsManager::initialize ( )
void physics::PhysicsManager::initializeImpl ( ) [protected, virtual]
void physics::PhysicsManager::registerDefaultFactories ( )
void physics::PhysicsManager::removeAllBodies ( )

Removes (and destroys) all bodies.

References scene::SceneManager::getInstance(), and mBodies.

Referenced by uninitializeImpl().

void physics::PhysicsManager::removeAllJoints ( )

Removes (and destroys) all bodies.

References mJoints.

Referenced by uninitializeImpl().

void physics::PhysicsManager::removeBody ( Body actor)

Removes a body.

References engine::Object::getID().

void physics::PhysicsManager::removeBody ( const u32 id)

Removes a body.

References getInstance(), and mBodies.

void physics::PhysicsManager::removeBodyFactory ( )

References mBodyFactory.

void physics::PhysicsManager::removeCollisionEventReceiver ( CollisionEventReceiver oldEventReceiver)
void physics::PhysicsManager::removeDefaultFactories ( )
void physics::PhysicsManager::removeJoint ( Joint joint)

Removes a joint.

References engine::Object::getID().

void physics::PhysicsManager::removeJoint ( const u32 id)

Removes a joint.

References mJoints.

void physics::PhysicsManager::removeJointFactory ( )

References mJointFactory.

void physics::PhysicsManager::removePhysicsDriver ( )

References mPhysicsDriver.

void physics::PhysicsManager::removeShapeFactory ( )

References mShapeFactory.

void physics::PhysicsManager::setBodyFactory ( BodyFactory factory)

References mBodyFactory.

void physics::PhysicsManager::setCollisionAccuracy ( f32  accuracy)
void physics::PhysicsManager::setGravity ( const core::vector3d gravity)
void physics::PhysicsManager::setHardware ( bool  state)
void physics::PhysicsManager::setJointFactory ( JointFactory factory)

References mJointFactory.

void physics::PhysicsManager::setPhysicsDriver ( PhysicsDriver driver)

References mPhysicsDriver.

void physics::PhysicsManager::setShapeFactory ( ShapeFactory factory)

References mShapeFactory.

void physics::PhysicsManager::setSolverAccuracy ( f32  accuracy)
void physics::PhysicsManager::start ( )
void physics::PhysicsManager::stop ( )
void physics::PhysicsManager::uninitializeImpl ( ) [protected, virtual]
void physics::PhysicsManager::updateImpl ( f32  elapsedTime) [protected, virtual]

Reimplemented from engine::Object.

References mPhysicsDriver, and physics::PhysicsDriver::update().


Friends And Related Function Documentation

friend class PhysicsDriver [friend]

Member Data Documentation

std::map<u32, Body*> physics::PhysicsManager::mBodies [protected]

Central list of bodies - for easy memory management and lookup.

Referenced by createBody(), getBody(), getNumberOfBodies(), removeAllBodies(), and removeBody().

std::map<u32, Joint*> physics::PhysicsManager::mJoints [protected]

Central list of joints - for easy memory management and lookup.

Referenced by createJoint(), getJoint(), getNumberOfJoints(), removeAllJoints(), and removeJoint().

Central list of materials - for easy memory management and lookup.

Referenced by createMaterial(), and uninitializeImpl().

Physics loop control.

Referenced by PhysicsManager(), start(), and stop().


The documentation for this class was generated from the following files:

The KG Game Engine
The KG Game Engine Documentation © 2006-2011 by Kat'Oun. Generated on Sat Jul 2 2011 00:50:08 by Doxygen (1.7.4)