CEL

Public API Reference

iPcMechanicsSystem Struct Reference

Property class representing a dynamic system. More...

#include <propclass/mechsys.h>

List of all members.

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 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 (const char *dynsysname)=0
 Set the dynamic system.
virtual void SetDynamicSystem (iDynamicSystem *dynsys)=0
 Set the dynamic system.
virtual void SetGravity (const csVector3 &grav)=0
 Define the gravity for the system.
virtual void SetStepTime (float delta)=0
 Define the time we want for one step.


Detailed Description

Property class representing a dynamic system.

This property class supports the following actions (add prefix 'cel.action.' to get the ID of the action and add prefix 'cel.parameter.' to get the ID of the parameter):

Definition at line 56 of file mechsys.h.


Member Function Documentation

virtual void iPcMechanicsSystem::AddBodyToGroup iRigidBody *  body,
const char *  group
[pure virtual]
 

Add a body to the specified group.

Parameters:
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().

Parameters:
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().

Parameters:
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().

Parameters:
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()).

Parameters:
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::GetStepTime  )  const [pure virtual]
 

Get the current step time.

virtual void iPcMechanicsSystem::RemoveBody iRigidBody *  body  )  [pure virtual]
 

Remove a given iRigidBody from the system.

Parameters:
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.

Parameters:
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().

Parameters:
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 const char *  dynsysname  )  [pure virtual]
 

Set the dynamic system.

Parameters:
dynsysname the name of the iDynamicSystem that this iPcMechanicsSystem represents.

virtual void iPcMechanicsSystem::SetDynamicSystem iDynamicSystem *  dynsys  )  [pure virtual]
 

Set the dynamic system.

Parameters:
dynsys a pointer to 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).

Parameters:
grav a vector representing the force of gravity for this system.

virtual void iPcMechanicsSystem::SetStepTime float  delta  )  [pure virtual]
 

Define the time we want for one step.

By default this is 0.01 milliseconds.

Parameters:
delta the time (in milliseconds) that one step represents.


The documentation for this struct was generated from the following file:
Generated for CEL: Crystal Entity Layer by doxygen 1.4.6