CrystalSpace

Public API Reference

iODEDynamicSystemState Struct Reference

This class exposes parameters specific to odedynam as an implementation of iDynamicsSystem. More...

#include <ivaria/ode.h>

Inheritance diagram for iODEDynamicSystemState:

List of all members.

Public Member Functions

virtual csPtr< iODEAMotorJointCreateAMotorJoint ()=0
 Create a AMotor joint and add it to he simulation.
virtual csPtr< iODEBallJointCreateBallJoint ()=0
 Create a ball joint and add it to he simulation.
virtual csPtr< iODEHinge2JointCreateHinge2Joint ()=0
 Create a hinge2 joint and add it to he simulation.
virtual csPtr< iODEHingeJointCreateHingeJoint ()=0
 Create a hinge joint and add it to he simulation.
virtual csPtr< iODESliderJoint > CreateSliderJoint ()=0
 Create a Slider joint and add it to he simulation.
virtual csPtr< iODEUniversalJointCreateUniversalJoint ()=0
 Create a Universal joint and add it to he simulation.
virtual void EnableAutoDisable (bool enable)=0
 Turn on/off AutoDisable functionality.
virtual void EnableFastObjects (bool enable)=0
 The following enables special robustness checks for fast moving objects to determine if they will tunneling and adjusts the physics frame resolution (rate) to a double for that step (possible doing this recursively down to a potentially infinite resolution for a given step, depending on the speed of the objects being tested) Only enable this if you are experiencing tunneling problems and can't afford to increase the standard FrameRate in the settings above Setting this in iODEDynamicState will set it for each System Use this only if you want a specific system to behave differently.
virtual void EnableFrameRate (bool enable)=0
 NOTE: This should not be done here if its been done in iODEDynamicState The following code enables a constant framerate on processing this means if you set the frame rate to (default) 50 The stepsize passed into Step is treated as the elapsed time in seconds received from the virtual clock GetElapsedTicks.
virtual void EnableOldInertia (bool enable)=0
 Set the code to use previous and broken inertia calculation.
virtual void EnableStepFast (bool enable)=0
 Enables the experimental StepFast code in ode Setting this in ODEDynamicState sets it here Only modify it if you want a specific system to behave differently.
virtual float GetContactMaxCorrectingVel ()=0
 Get the maximum correcting velocity that contacts are allowed to generate.
virtual float GetContactSurfaceLayer ()=0
 Get the depth of the surface layer around all geometry objects.
virtual void RemoveJoint (iODEHinge2Joint *joint)=0
 Remove a Slider joint from the simulation.
virtual void RemoveJoint (iODESliderJoint *joint)=0
 Remove a Slider joint from the simulation.
virtual void RemoveJoint (iODEUniversalJoint *joint)=0
 Remove a Universal joint from the simulation.
virtual void RemoveJoint (iODEAMotorJoint *joint)=0
 Remove a AMotor joint from the simulation.
virtual void RemoveJoint (iODEHingeJoint *joint)=0
 Remove a hinge joint from the simulation.
virtual void RemoveJoint (iODEBallJoint *joint)=0
 Remove a ball joint from the simulation.
virtual void SetAutoDisableParams (float linear, float angular, int steps, float time)=0
 Set the parameters for AutoDisable.
virtual void SetCFM (float cfm)=0
 Sets ODE's Constraint Force Mixing (see ode docs for details) Setting this in iODEDynamicState will set it for each System Use this only if you want a specific system to behave differently.
virtual void SetContactMaxCorrectingVel (float v)=0
 Set the maximum correcting velocity that contacts are allowed to generate.
virtual void SetContactSurfaceLayer (float depth)=0
 Set the depth of the surface layer around all geometry objects.
virtual void SetERP (float erp)=0
 Sets ODE's Error Resolution Parameter (see ode docs for details) Setting this in iODEDynamicState will set it for each System Use this only if you want a specific system to behave differently.

Detailed Description

This class exposes parameters specific to odedynam as an implementation of iDynamicsSystem.

In most cases SystemState should not be modified directly unless you want the behavior of a specific system different from others.

See also:
iDynamicSystem CS::Physics::Bullet::iDynamicSystem

Definition at line 134 of file ode.h.


Member Function Documentation

virtual csPtr<iODEAMotorJoint> iODEDynamicSystemState::CreateAMotorJoint (  )  [pure virtual]

Create a AMotor joint and add it to he simulation.

virtual csPtr<iODEBallJoint> iODEDynamicSystemState::CreateBallJoint (  )  [pure virtual]

Create a ball joint and add it to he simulation.

virtual csPtr<iODEHinge2Joint> iODEDynamicSystemState::CreateHinge2Joint (  )  [pure virtual]

Create a hinge2 joint and add it to he simulation.

virtual csPtr<iODEHingeJoint> iODEDynamicSystemState::CreateHingeJoint (  )  [pure virtual]

Create a hinge joint and add it to he simulation.

virtual csPtr<iODESliderJoint> iODEDynamicSystemState::CreateSliderJoint (  )  [pure virtual]

Create a Slider joint and add it to he simulation.

virtual csPtr<iODEUniversalJoint> iODEDynamicSystemState::CreateUniversalJoint (  )  [pure virtual]

Create a Universal joint and add it to he simulation.

virtual void iODEDynamicSystemState::EnableAutoDisable ( bool  enable  )  [pure virtual]

Turn on/off AutoDisable functionality.

AutoDisable will stop moving objects if they are stable in order to save processing time.

virtual void iODEDynamicSystemState::EnableFastObjects ( bool  enable  )  [pure virtual]

The following enables special robustness checks for fast moving objects to determine if they will tunneling and adjusts the physics frame resolution (rate) to a double for that step (possible doing this recursively down to a potentially infinite resolution for a given step, depending on the speed of the objects being tested) Only enable this if you are experiencing tunneling problems and can't afford to increase the standard FrameRate in the settings above Setting this in iODEDynamicState will set it for each System Use this only if you want a specific system to behave differently.

virtual void iODEDynamicSystemState::EnableFrameRate ( bool  enable  )  [pure virtual]

NOTE: This should not be done here if its been done in iODEDynamicState The following code enables a constant framerate on processing this means if you set the frame rate to (default) 50 The stepsize passed into Step is treated as the elapsed time in seconds received from the virtual clock GetElapsedTicks.

The physics will iterate a number of steps at 1/50th of a second until enough time has passed to account for the time Beware the default setting for frame limit is 10, which means if the stepsize passed to Step is longer than 1/10 a second the physics will stop iterating and slow down. Never set this parameter to 0 or else you could incur cycle of death where the number of physics steps increases the amount of elapsed time between frames which increases the number of physics steps toward infinity

virtual void iODEDynamicSystemState::EnableOldInertia ( bool  enable  )  [pure virtual]

Set the code to use previous and broken inertia calculation.

Use only if you know you need it

virtual void iODEDynamicSystemState::EnableStepFast ( bool  enable  )  [pure virtual]

Enables the experimental StepFast code in ode Setting this in ODEDynamicState sets it here Only modify it if you want a specific system to behave differently.

virtual float iODEDynamicSystemState::GetContactMaxCorrectingVel (  )  [pure virtual]

Get the maximum correcting velocity that contacts are allowed to generate.

The default value is infinity (i.e. no limit). Reducing this value can help prevent "popping" of deeply embedded objects.

virtual float iODEDynamicSystemState::GetContactSurfaceLayer (  )  [pure virtual]

Get the depth of the surface layer around all geometry objects.

Contacts are allowed to sink into the surface layer up to the given depth before coming to rest. The default value is zero. Increasing this to some small value (e.g. 0.001) can help prevent jittering problems due to contacts being repeatedly made and broken.

Returns:
the distance two bodies are allowed to interpenetrate
virtual void iODEDynamicSystemState::RemoveJoint ( iODEHinge2Joint joint  )  [pure virtual]

Remove a Slider joint from the simulation.

virtual void iODEDynamicSystemState::RemoveJoint ( iODESliderJoint *  joint  )  [pure virtual]

Remove a Slider joint from the simulation.

virtual void iODEDynamicSystemState::RemoveJoint ( iODEUniversalJoint joint  )  [pure virtual]

Remove a Universal joint from the simulation.

virtual void iODEDynamicSystemState::RemoveJoint ( iODEAMotorJoint joint  )  [pure virtual]

Remove a AMotor joint from the simulation.

virtual void iODEDynamicSystemState::RemoveJoint ( iODEHingeJoint joint  )  [pure virtual]

Remove a hinge joint from the simulation.

virtual void iODEDynamicSystemState::RemoveJoint ( iODEBallJoint joint  )  [pure virtual]

Remove a ball joint from the simulation.

virtual void iODEDynamicSystemState::SetAutoDisableParams ( float  linear,
float  angular,
int  steps,
float  time 
) [pure virtual]

Set the parameters for AutoDisable.

Parameters:
linear Maximum linear movement to disable a body
angular Maximum angular movement to disable a body
steps Minimum number of steps the body meets linear and angular requirements before it is disabled.
time Minimum time the body needs to meet linear and angular movement requirements before it is disabled.
virtual void iODEDynamicSystemState::SetCFM ( float  cfm  )  [pure virtual]

Sets ODE's Constraint Force Mixing (see ode docs for details) Setting this in iODEDynamicState will set it for each System Use this only if you want a specific system to behave differently.

virtual void iODEDynamicSystemState::SetContactMaxCorrectingVel ( float  v  )  [pure virtual]

Set the maximum correcting velocity that contacts are allowed to generate.

The default value is infinity (i.e. no limit). Reducing this value can help prevent "popping" of deeply embedded objects.

Parameters:
v velocity
virtual void iODEDynamicSystemState::SetContactSurfaceLayer ( float  depth  )  [pure virtual]

Set the depth of the surface layer around all geometry objects.

Contacts are allowed to sink into the surface layer up to the given depth before coming to rest. The default value is zero. Increasing this to some small value (e.g. 0.001) can help prevent jittering problems due to contacts being repeatedly made and broken.

Parameters:
depth the distance two bodies are allowed to interpenetrate
virtual void iODEDynamicSystemState::SetERP ( float  erp  )  [pure virtual]

Sets ODE's Error Resolution Parameter (see ode docs for details) Setting this in iODEDynamicState will set it for each System Use this only if you want a specific system to behave differently.


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

Generated for Crystal Space 2.0 by doxygen 1.6.1