![]() |
Public API Reference |
Property class representing a dynamic system. More...
#include <propclass/mechsys.h>
Public Member Functions | |
| virtual void | AddBodyToGroup (iRigidBody *body, const char *group)=0 |
| Add a body to the specified group. | |
| virtual void | AddForceDuration (iPcMechanicsObject *pcobject, const csVector3 &force, bool relative, const csVector3 &position, float seconds)=0 |
| During the specified time (in milliseconds) add the force every step to the given body. | |
| virtual void | AddForceFrame (iPcMechanicsObject *pcobject, const csVector3 &force, bool relative, const csVector3 &position)=0 |
| During the next frame add the force every step. | |
| virtual void | AddForceTagged (iPcMechanicsObject *pcobject, const csVector3 &force, bool relative, const csVector3 &position, uint32 forceid)=0 |
| Add a force with the given tag, to be manually removed later. | |
| virtual void | ClearAllForces ()=0 |
| Clear all forces. | |
| virtual void | ClearForces (iPcMechanicsObject *pcobject)=0 |
| Remove the given body from the force queues (filled with AddForceFrame() and AddForceDuration()). | |
| virtual csPtr< iRigidBody > | CreateBody ()=0 |
| Create an iRigidBody and add it to the system. | |
| virtual iJoint * | CreateJoint (iRigidBody *body1, iRigidBody *body2)=0 |
| Create a joint between the two given bodies. | |
| virtual void | DisableStepFast ()=0 |
| Disable fast stepping. | |
| virtual void | EnableQuickStep ()=0 |
| Very fast but not accurate. | |
| virtual void | EnableStepFast ()=0 |
| Enable fast stepping. | |
| virtual iDynamicSystem * | GetDynamicSystem ()=0 |
| Get the dynamic system. | |
| virtual const csVector3 | GetGravity ()=0 |
| Get the current gravity. | |
| virtual float | GetSimulationSpeed ()=0 |
| Get the current simulation speed. | |
| virtual float | GetStepTime () const =0 |
| Get the current step time. | |
| virtual void | RemoveBody (iRigidBody *body)=0 |
| Remove a given iRigidBody from the system. | |
| virtual void | RemoveBodyFromGroup (iRigidBody *body, const char *group)=0 |
| Remove a body from the specified group. | |
| virtual void | RemoveForceTagged (iPcMechanicsObject *pcobject, uint32 forceid)=0 |
| Remove the force with the given tag. | |
| virtual void | RemoveJoint (iJoint *joint)=0 |
| Remove a given joint from the system. | |
| virtual void | SetDynamicSystem (iDynamicSystem *dynsys)=0 |
| Set the dynamic system. | |
| virtual void | SetDynamicSystem (const char *dynsysname)=0 |
| Set the dynamic system. | |
| virtual void | SetGravity (const csVector3 &grav)=0 |
| Define the gravity for the system. | |
| virtual void | SetSimulationSpeed (float simulationspeed)=0 |
| Define the how fast we want the simulation to go. | |
| virtual void | SetStepTime (float delta)=0 |
| Define the time we want for one step. | |
Property class representing a dynamic system.
This property class supports the following actions (add prefix 'cel.mechanics.system.action.' if you want to access this action through a message):
| virtual void iPcMechanicsSystem::AddBodyToGroup | ( | iRigidBody * | body, |
| const char * | group | ||
| ) | [pure virtual] |
Add a body to the specified group.
| body | the body to add to the group. |
| group | the name of the group to add the body to. Creates the group if it does not exist. |
| virtual void iPcMechanicsSystem::AddForceDuration | ( | iPcMechanicsObject * | pcobject, |
| const csVector3 & | force, | ||
| bool | relative, | ||
| const csVector3 & | position, | ||
| float | seconds | ||
| ) | [pure virtual] |
During the specified time (in milliseconds) add the force every step to the given body.
This function is called by iPcMechanicsObject::AddForceDuration().
| pcobject | a pointer to the object that will receive this force every step until the end of the given time. |
| force | a vector representing the force to add to this object. |
| relative | if set to true, the given force and position are both in object space; otherwise they are in world space. |
| position | the position of the force. |
| seconds | the number of seconds that this force should last. |
| virtual void iPcMechanicsSystem::AddForceFrame | ( | iPcMechanicsObject * | pcobject, |
| const csVector3 & | force, | ||
| bool | relative, | ||
| const csVector3 & | position | ||
| ) | [pure virtual] |
During the next frame add the force every step.
This function is called by iPcMechanicsObject::AddForceFrame().
| pcobject | a pointer to the object that will receive this force every step until the end of the frame. |
| force | a vector representing the force to add to this object. |
| relative | if set to true, the given force and position are both in object space; otherwise they are in world space. |
| position | the position of the force. |
| virtual void iPcMechanicsSystem::AddForceTagged | ( | iPcMechanicsObject * | pcobject, |
| const csVector3 & | force, | ||
| bool | relative, | ||
| const csVector3 & | position, | ||
| uint32 | forceid | ||
| ) | [pure virtual] |
Add a force with the given tag, to be manually removed later.
This function is called by iPcMechanicsObject::AddForceTagged().
| pcobject | a pointer to the object that will receive this force every step until it is removed. |
| force | a vector representing the force to add to this object. |
| relative | if set to true, the given force and position are both in object space; otherwise they are in world space. |
| position | the position of the force. |
| forceid | the tag for this force. (use iCelPlLayer::FetchStringID() to get this.) |
| virtual void iPcMechanicsSystem::ClearAllForces | ( | ) | [pure virtual] |
Clear all forces.
| virtual void iPcMechanicsSystem::ClearForces | ( | iPcMechanicsObject * | pcobject | ) | [pure virtual] |
Remove the given body from the force queues (filled with AddForceFrame() and AddForceDuration()).
| pcobject | a pointer to the iPcMechanicsObject to remove all forces from. |
| virtual csPtr<iRigidBody> iPcMechanicsSystem::CreateBody | ( | ) | [pure virtual] |
Create an iRigidBody and add it to the system.
| virtual iJoint* iPcMechanicsSystem::CreateJoint | ( | iRigidBody * | body1, |
| iRigidBody * | body2 | ||
| ) | [pure virtual] |
Create a joint between the two given bodies.
| virtual void iPcMechanicsSystem::DisableStepFast | ( | ) | [pure virtual] |
Disable fast stepping.
This is very accurate but can quickly break with lots of objects.
| virtual void iPcMechanicsSystem::EnableQuickStep | ( | ) | [pure virtual] |
Very fast but not accurate.
| virtual void iPcMechanicsSystem::EnableStepFast | ( | ) | [pure virtual] |
Enable fast stepping.
This is a lot faster then DisableStepFast(). Default.
| virtual iDynamicSystem* iPcMechanicsSystem::GetDynamicSystem | ( | ) | [pure virtual] |
Get the dynamic system.
| virtual const csVector3 iPcMechanicsSystem::GetGravity | ( | ) | [pure virtual] |
Get the current gravity.
| virtual float iPcMechanicsSystem::GetSimulationSpeed | ( | ) | [pure virtual] |
Get the current simulation speed.
| virtual float iPcMechanicsSystem::GetStepTime | ( | ) | const [pure virtual] |
Get the current step time.
| virtual void iPcMechanicsSystem::RemoveBody | ( | iRigidBody * | body | ) | [pure virtual] |
Remove a given iRigidBody from the system.
| body | the body to remove from the system. |
| virtual void iPcMechanicsSystem::RemoveBodyFromGroup | ( | iRigidBody * | body, |
| const char * | group | ||
| ) | [pure virtual] |
Remove a body from the specified group.
| body | the body to remove from the group. |
| group | the name of the group to remove the body from. |
| virtual void iPcMechanicsSystem::RemoveForceTagged | ( | iPcMechanicsObject * | pcobject, |
| uint32 | forceid | ||
| ) | [pure virtual] |
Remove the force with the given tag.
This function is called by iPcMechanicsObject::RemoveForceTagged().
| pcobject | a pointer to the object that is currently being affected by the given force. |
| forceid | the tag of the desired force. |
| virtual void iPcMechanicsSystem::RemoveJoint | ( | iJoint * | joint | ) | [pure virtual] |
Remove a given joint from the system.
| virtual void iPcMechanicsSystem::SetDynamicSystem | ( | iDynamicSystem * | dynsys | ) | [pure virtual] |
Set the dynamic system.
| dynsys | a pointer to the iDynamicSystem that this iPcMechanicsSystem represents. |
| virtual void iPcMechanicsSystem::SetDynamicSystem | ( | const char * | dynsysname | ) | [pure virtual] |
Set the dynamic system.
| dynsysname | the name of the iDynamicSystem that this iPcMechanicsSystem represents. |
| virtual void iPcMechanicsSystem::SetGravity | ( | const csVector3 & | grav | ) | [pure virtual] |
Define the gravity for the system.
By default this is (0,-9.8,0).
| grav | a vector representing the force of gravity for this system. |
| virtual void iPcMechanicsSystem::SetSimulationSpeed | ( | float | simulationspeed | ) | [pure virtual] |
Define the how fast we want the simulation to go.
Default is 1.0. Less is slower, more is faster
| dsimulationspeed | factor of speed. |
| virtual void iPcMechanicsSystem::SetStepTime | ( | float | delta | ) | [pure virtual] |
Define the time we want for one step.
By default this is 0.01 milliseconds.
| delta | the time (in milliseconds) that one step represents. |