Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

PhysicsManager Class Reference

Physics don't get much higher-level than this. More...

#include <physicsManager.h>

List of all members.

Public Member Functions

 PhysicsManager (void)
 Default Constructor.

virtual ~PhysicsManager (void)
 Simple Destructor.

void attach_linear_integrator (LinearIntegrator *i)
 Hooks a linear integrator into the manager.

void attach_angular_integrator (AngularIntegrator *i)
 Hooks an angular integrator into the manager.

void attach_physical (Physical *p)
 Registers a Physical class with the manager.

void attach_physicalnode (PhysicalNode *p)
 Registers an physicalnode with the manager.

void add_linear_force (LinearForce *f)
 Adds a global linear force to the physics manager.

void add_angular_force (AngularForce *f)
 Adds a global angular force to the physics manager.

void clear_linear_forces (void)
 Resets the physics manager force vector.

void clear_angular_forces (void)
 Resets the physics manager force vector.

void clear_physicals (void)
 Resets the physics manager objects vector.

void remove_physical (Physical *p)
 takes a physical out of the object list

void remove_linear_force (LinearForce *f)
 takes a linear force out of the physics list

void remove_angular_force (AngularForce *f)
 takes an angular force out of the physics list

void do_physics (float dt)
 This is the main high-level API call.


Private Attributes

pvector< Physical * > _physicals
pvector< PointerTo< LinearForce > > _linear_forces
pvector< PointerTo< AngularForce > > _angular_forces
PointerTo< LinearIntegrator_linear_integrator
PointerTo< AngularIntegrator_angular_integrator

Friends

class Physical


Detailed Description

Physics don't get much higher-level than this.

Attach as many Physicals (particle systems, etc..) as you want, pick an integrator and go.

Definition at line 49 of file physicsManager.h.


Constructor & Destructor Documentation

PhysicsManager::PhysicsManager void   ) 
 

Default Constructor.

NOTE: EulerIntegrator is the standard default.

Definition at line 39 of file physicsManager.cxx.

PhysicsManager::~PhysicsManager void   )  [virtual]
 

Simple Destructor.

Definition at line 53 of file physicsManager.cxx.

References _linear_forces.


Member Function Documentation

void PhysicsManager::add_angular_force AngularForce f  )  [inline]
 

Adds a global angular force to the physics manager.

Definition at line 92 of file physicsManager.I.

References _physicals, and INLINE.

void PhysicsManager::add_linear_force LinearForce f  )  [inline]
 

Adds a global linear force to the physics manager.

Definition at line 48 of file physicsManager.I.

References attach_physical(), PhysicalNode::get_num_physicals(), PhysicalNode::get_physical(), and INLINE.

void PhysicsManager::attach_angular_integrator AngularIntegrator i  )  [inline]
 

Hooks an angular integrator into the manager.

Definition at line 148 of file physicsManager.I.

void PhysicsManager::attach_linear_integrator LinearIntegrator i  )  [inline]
 

Hooks a linear integrator into the manager.

Definition at line 135 of file physicsManager.I.

void PhysicsManager::attach_physical Physical p  )  [inline]
 

Registers a Physical class with the manager.

Definition at line 31 of file physicsManager.I.

Referenced by add_linear_force().

void PhysicsManager::attach_physicalnode PhysicalNode p  )  [inline]
 

Registers an physicalnode with the manager.

Definition at line 65 of file physicsManager.I.

References _linear_forces.

void PhysicsManager::clear_angular_forces void   )  [inline]
 

Resets the physics manager force vector.

Definition at line 109 of file physicsManager.I.

References _linear_integrator.

void PhysicsManager::clear_linear_forces void   )  [inline]
 

Resets the physics manager force vector.

Definition at line 79 of file physicsManager.I.

References _angular_forces.

void PhysicsManager::clear_physicals void   )  [inline]
 

Resets the physics manager objects vector.

Definition at line 122 of file physicsManager.I.

void PhysicsManager::do_physics float  dt  ) 
 

This is the main high-level API call.

Performs integration on every attached Physical.

Definition at line 129 of file physicsManager.cxx.

void PhysicsManager::remove_angular_force AngularForce f  ) 
 

takes an angular force out of the physics list

Definition at line 86 of file physicsManager.cxx.

References _physicals, Physical::_physics_manager, and NULL.

void PhysicsManager::remove_linear_force LinearForce f  ) 
 

takes a linear force out of the physics list

Definition at line 65 of file physicsManager.cxx.

References _angular_forces, and PT.

void PhysicsManager::remove_physical Physical p  ) 
 

takes a physical out of the object list

Definition at line 107 of file physicsManager.cxx.

References _linear_integrator, and _physicals.


Friends And Related Function Documentation

friend class Physical [friend]
 

Definition at line 85 of file physicsManager.h.


Member Data Documentation

pvector< PointerTo< AngularForce > > PhysicsManager::_angular_forces [private]
 

Definition at line 60 of file physicsManager.h.

Referenced by clear_linear_forces(), and remove_linear_force().

PointerTo< AngularIntegrator > PhysicsManager::_angular_integrator [private]
 

Definition at line 63 of file physicsManager.h.

pvector< PointerTo< LinearForce > > PhysicsManager::_linear_forces [private]
 

Definition at line 59 of file physicsManager.h.

Referenced by attach_physicalnode(), and ~PhysicsManager().

PointerTo< LinearIntegrator > PhysicsManager::_linear_integrator [private]
 

Definition at line 62 of file physicsManager.h.

Referenced by clear_angular_forces(), and remove_physical().

pvector< Physical * > PhysicsManager::_physicals [private]
 

Definition at line 58 of file physicsManager.h.

Referenced by add_angular_force(), remove_angular_force(), and remove_physical().


The documentation for this class was generated from the following files:
Generated on Fri May 2 00:53:38 2003 for Panda by doxygen1.3