#include <spPhysicsSimulator.hpp>
Public Member Functions | |
| virtual | ~PhysicsSimulator () |
| virtual io::stringc | getVersion () const =0 |
| Returns the version of the physics system. | |
| virtual void | updateSimulation (const f32 StepTime=1.0f/60.0f)=0 |
| virtual void | setGravity (const dim::vector3df &Gravity) |
| virtual PhysicsMaterial * | createMaterial (f32 StaticFriction=0.5f, f32 DynamicFriction=0.5f, f32 Restitution=0.3f)=0 |
| virtual void | deleteMaterial (PhysicsMaterial *Material) |
| Deletes the specified physics material. | |
| virtual StaticPhysicsObject * | createStaticObject (PhysicsMaterial *Material, scene::Mesh *Mesh)=0 |
| virtual void | deleteStaticObject (StaticPhysicsObject *Object) |
| Deletes the specified static body. | |
| virtual RigidBody * | createRigidBody (PhysicsMaterial *Material, const ERigidBodies Type, scene::SceneNode *RootNode, const SRigidBodyConstruction &Construct=SRigidBodyConstruction())=0 |
| virtual RigidBody * | createRigidBody (PhysicsMaterial *Material, scene::Mesh *Mesh)=0 |
| virtual void | deleteRigidBody (RigidBody *Object) |
| Delete the specified rigid body but not its root node. | |
| virtual PhysicsJoint * | createJoint (const EPhysicsJoints Type, PhysicsBaseObject *Object, const SPhysicsJointConstruct &Construct)=0 |
| Creates a new physics joint (also called "constraint"). | |
| virtual PhysicsJoint * | createJoint (const EPhysicsJoints Type, PhysicsBaseObject *ObjectA, PhysicsBaseObject *ObjectB, const SPhysicsJointConstruct &Construct)=0 |
| virtual void | deleteJoint (PhysicsJoint *Object) |
| virtual void | clearScene (bool RigidBodies=true, bool StaticObjects=true, bool Joints=true) |
| virtual void | setThreadCount (s32 Count) |
| Sets the count of threads used for physics computations. | |
| virtual s32 | getThreadCount () const |
| Returns the count of threads. | |
| virtual void | setSolverModel (s32 Model) |
| EPhysicsSimulators | getType () const |
| Returns the type of the simulator. | |
| dim::vector3df | getGravity () const |
| Returns the global gravity. | |
| std::list< RigidBody * > | getRigidBodyList () const |
| std::list< StaticPhysicsObject * > | getStaticBodyList () const |
| std::list< PhysicsMaterial * > | getMaterialList () const |
| std::list< PhysicsJoint * > | getJointList () const |
Static Public Member Functions | |
| static void | setContactCallback (const PhysicsContactCallback &Callback) |
| Sets the contact callback. This callback procedure will be called when a collision contact occured. | |
| static PhysicsContactCallback | getContactCallback () |
Protected Member Functions | |
| PhysicsSimulator (const EPhysicsSimulators Type) | |
Protected Attributes | |
| EPhysicsSimulators | Type_ |
| std::list< RigidBody * > | RigidBodyList_ |
| std::list< StaticPhysicsObject * > | StaticBodyList_ |
| std::list< PhysicsMaterial * > | MaterialList_ |
| std::list< PhysicsJoint * > | JointList_ |
| dim::vector3df | Gravity_ |
Static Protected Attributes | |
| static PhysicsContactCallback | ContactCallback_ |
| virtual sp::physics::PhysicsSimulator::~PhysicsSimulator | ( | ) | [virtual] |
| sp::physics::PhysicsSimulator::PhysicsSimulator | ( | const EPhysicsSimulators | Type | ) | [protected] |
| virtual void sp::physics::PhysicsSimulator::clearScene | ( | bool | RigidBodies = true, |
|
| bool | StaticObjects = true, |
|||
| bool | Joints = true | |||
| ) | [virtual] |
Deletes all physics objects
| RigidBodies,: | Specifies whether all rigid bodies are to be deleted. | |
| StaticObjects,: | Specifies whether all static objects are to be deleted. | |
| Joints,: | Specifies whether all joints are to be deleted. |
| virtual PhysicsJoint* sp::physics::PhysicsSimulator::createJoint | ( | const EPhysicsJoints | Type, | |
| PhysicsBaseObject * | Object, | |||
| const SPhysicsJointConstruct & | Construct | |||
| ) | [pure virtual] |
Creates a new physics joint (also called "constraint").
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
| virtual PhysicsJoint* sp::physics::PhysicsSimulator::createJoint | ( | const EPhysicsJoints | Type, | |
| PhysicsBaseObject * | ObjectA, | |||
| PhysicsBaseObject * | ObjectB, | |||
| const SPhysicsJointConstruct & | Construct | |||
| ) | [pure virtual] |
Adds a new joint connected child body to this rigid body.
| Child,: | Specifies the child rigid body which is to be added with a joint. If this parameter is 0 this rigid body is the child and will be appended to the physics world. | |
| Type,: | Specifies the type of the joint. E.g. when you want to have a physics door use the JOINT_HINGE type. | |
| PivotPoint,: | Specifies the global point where the joint is to be set. |
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
| virtual PhysicsMaterial* sp::physics::PhysicsSimulator::createMaterial | ( | f32 | StaticFriction = 0.5f, |
|
| f32 | DynamicFriction = 0.5f, |
|||
| f32 | Restitution = 0.3f | |||
| ) | [pure virtual] |
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
| virtual RigidBody* sp::physics::PhysicsSimulator::createRigidBody | ( | PhysicsMaterial * | Material, | |
| scene::Mesh * | Mesh | |||
| ) | [pure virtual] |
Creates a new mesh physics rigid body. If you only want to use the mesh as the physics geometry you can change the root node by calling RigidBody::setRootNode".
| Material,: | Specifies the physics material which is to be used for the rigid body. | |
| MeshGeom,: | Specifies the root mesh node. |
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
| virtual RigidBody* sp::physics::PhysicsSimulator::createRigidBody | ( | PhysicsMaterial * | Material, | |
| const ERigidBodies | Type, | |||
| scene::SceneNode * | RootNode, | |||
| const SRigidBodyConstruction & | Construct = SRigidBodyConstruction() | |||
| ) | [pure virtual] |
Creates a new physics rigid body. This is an interactive physics object.
| Material,: | Specifies the physics material which is to be used for the rigid body. | |
| RootNode,: | Specifies the root scene node which is to be manipulated in its location and orientation. | |
| Type,: | Specifies the type of the body. | |
| Construct,: | Specifies the construction of the body. E.g. size, radius and/or height. |
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
| virtual StaticPhysicsObject* sp::physics::PhysicsSimulator::createStaticObject | ( | PhysicsMaterial * | Material, | |
| scene::Mesh * | Mesh | |||
| ) | [pure virtual] |
Creates a new physics static body. This is a none interactive environment object. Those objects represents the physics world.
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
| virtual void sp::physics::PhysicsSimulator::deleteJoint | ( | PhysicsJoint * | Object | ) | [virtual] |
| virtual void sp::physics::PhysicsSimulator::deleteMaterial | ( | PhysicsMaterial * | Material | ) | [virtual] |
Deletes the specified physics material.
| virtual void sp::physics::PhysicsSimulator::deleteRigidBody | ( | RigidBody * | Object | ) | [virtual] |
Delete the specified rigid body but not its root node.
| virtual void sp::physics::PhysicsSimulator::deleteStaticObject | ( | StaticPhysicsObject * | Object | ) | [virtual] |
Deletes the specified static body.
| static PhysicsContactCallback sp::physics::PhysicsSimulator::getContactCallback | ( | ) | [static] |
| dim::vector3df sp::physics::PhysicsSimulator::getGravity | ( | ) | const [inline] |
Returns the global gravity.
| std::list<PhysicsJoint*> sp::physics::PhysicsSimulator::getJointList | ( | ) | const [inline] |
| std::list<PhysicsMaterial*> sp::physics::PhysicsSimulator::getMaterialList | ( | ) | const [inline] |
| std::list<RigidBody*> sp::physics::PhysicsSimulator::getRigidBodyList | ( | ) | const [inline] |
| std::list<StaticPhysicsObject*> sp::physics::PhysicsSimulator::getStaticBodyList | ( | ) | const [inline] |
| virtual s32 sp::physics::PhysicsSimulator::getThreadCount | ( | ) | const [virtual] |
Returns the count of threads.
Reimplemented in sp::physics::NewtonSimulator.
| EPhysicsSimulators sp::physics::PhysicsSimulator::getType | ( | ) | const [inline] |
Returns the type of the simulator.
| virtual io::stringc sp::physics::PhysicsSimulator::getVersion | ( | ) | const [pure virtual] |
Returns the version of the physics system.
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
| static void sp::physics::PhysicsSimulator::setContactCallback | ( | const PhysicsContactCallback & | Callback | ) | [static] |
Sets the contact callback. This callback procedure will be called when a collision contact occured.
Reimplemented in sp::physics::NewtonSimulator.
| virtual void sp::physics::PhysicsSimulator::setGravity | ( | const dim::vector3df & | Gravity | ) | [virtual] |
Sets the gravity for each object. You can also set the gravity individually for each rigid body.
| Gravity,: | Specifies the gravity vector which is to be set. By default (0 | -9.81 | 0). |
Reimplemented in sp::physics::NewtonSimulator.
| virtual void sp::physics::PhysicsSimulator::setSolverModel | ( | s32 | Model | ) | [virtual] |
Sets the solver model. Use higher values if speed is more important than accuracy.
| Model,: | If 0 the accuracy is exact. If greater than 0 you can configure the accuracy if speed is more important. |
Reimplemented in sp::physics::NewtonSimulator.
| virtual void sp::physics::PhysicsSimulator::setThreadCount | ( | s32 | Count | ) | [virtual] |
Sets the count of threads used for physics computations.
Reimplemented in sp::physics::NewtonSimulator.
| virtual void sp::physics::PhysicsSimulator::updateSimulation | ( | const f32 | StepTime = 1.0f/60.0f |
) | [pure virtual] |
Updates the whole simulation. Call this in each frame of your game loop.
| StepTime,: | Specifies the speed of simulation for the current frame. |
Implemented in sp::physics::NewtonSimulator, and sp::physics::PhysXSimulator.
PhysicsContactCallback sp::physics::PhysicsSimulator::ContactCallback_ [static, protected] |
std::list<PhysicsJoint*> sp::physics::PhysicsSimulator::JointList_ [protected] |
std::list<PhysicsMaterial*> sp::physics::PhysicsSimulator::MaterialList_ [protected] |
std::list<RigidBody*> sp::physics::PhysicsSimulator::RigidBodyList_ [protected] |
std::list<StaticPhysicsObject*> sp::physics::PhysicsSimulator::StaticBodyList_ [protected] |
1.7.1