CEL

Public API Reference

Public Member Functions
iPcMechanicsSystem Struct Reference

Property class representing a dynamic system. More...

#include <propclass/mechsys.h>

Inheritance diagram for iPcMechanicsSystem:
iBase

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< iRigidBodyCreateBody ()=0
 Create an iRigidBody and add it to the system.
virtual iJointCreateJoint (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 iDynamicSystemGetDynamicSystem ()=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.

Detailed Description

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):

Definition at line 52 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:
bodythe body to add to the group.
groupthe 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:
pcobjecta pointer to the object that will receive this force every step until the end of the given time.
forcea vector representing the force to add to this object.
relativeif set to true, the given force and position are both in object space; otherwise they are in world space.
positionthe position of the force.
secondsthe 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:
pcobjecta pointer to the object that will receive this force every step until the end of the frame.
forcea vector representing the force to add to this object.
relativeif set to true, the given force and position are both in object space; otherwise they are in world space.
positionthe 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:
pcobjecta pointer to the object that will receive this force every step until it is removed.
forcea vector representing the force to add to this object.
relativeif set to true, the given force and position are both in object space; otherwise they are in world space.
positionthe position of the force.
forceidthe 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:
pcobjecta 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.

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.

Parameters:
bodythe 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:
bodythe body to remove from the group.
groupthe 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:
pcobjecta pointer to the object that is currently being affected by the given force.
forceidthe 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.

Parameters:
dynsysa pointer to the iDynamicSystem that this iPcMechanicsSystem represents.
virtual void iPcMechanicsSystem::SetDynamicSystem ( const char *  dynsysname) [pure virtual]

Set the dynamic system.

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

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

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

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

The documentation for this struct was generated from the following file:

Generated for CEL: Crystal Entity Layer 2.0 by doxygen 1.7.6.1