palSolver Class Reference

#include <palSolver.h>

List of all members.

Public Member Functions

virtual void SetSolverAccuracy (Float fAccuracy)=0
virtual void Iterate (Float timestep)=0
virtual void StartIterate (Float timestep)=0
virtual void SetFixedTimeStep (Float fixedStep)=0
virtual bool QueryIterationComplete ()=0
virtual void WaitForIteration ()=0
virtual void SetPE (int n)=0
virtual void SetSubsteps (int n)=0
virtual void SetHardware (bool status)=0
virtual bool GetHardware (void)=0


Detailed Description

The solver class This exposes the physics engine solver subsystem, allowing the use of multiprocessor or hardware devices for accelerated physics. The solver subsystem calculates the new position of the physics objects (integrator) and ensures all constraints are met (solver). To use the physics engine in parallel, you must first configure the solver, (ie: SetPE, SetSubsteps) then create the physics engine. To perform a multithreaded update, call the StartIterate method, then perform some other calculations until QueryIterationComplete returns true. The performance enhancements and support gained is engine and hardware specific.

Member Function Documentation

virtual bool palSolver::GetHardware ( void   )  [pure virtual]

Queries whether the physics is running on special hardware

virtual void palSolver::Iterate ( Float  timestep  )  [pure virtual]

This advances the physics simulation by the specified ammount of time.

This simply steps the entire simulation. eg: StartIterate(); WaitForIteration();

Parameters:
timestep The increment in time since the last update

virtual bool palSolver::QueryIterationComplete (  )  [pure virtual]

This queries whether the calculation of the next state of the physics simulation has been completed.

virtual void palSolver::SetFixedTimeStep ( Float  fixedStep  )  [pure virtual]

Sets the size of the physics timestep. Even if the timestep from iterate varies, the physics engine will still only step in this size increment, and try to accumulate the error for addition

virtual void palSolver::SetHardware ( bool  status  )  [pure virtual]

Sets whether to take advantage of special hardware eg: GPU, or CELL acceleration. This may cause restrictions on what and how much can be simulated

virtual void palSolver::SetPE ( int  n  )  [pure virtual]

Set the number of concurrent physics processing elements the physics simulation may use. eg: Threads.

virtual void palSolver::SetSolverAccuracy ( Float  fAccuracy  )  [pure virtual]

Sets the accuracy of the solver

Parameters:
fAccuracy Ranges from 0..1, 0 indicates fast and inaccurate, 1 indicates accurate and slow.

virtual void palSolver::SetSubsteps ( int  n  )  [pure virtual]

Sets the number of substeps the solver may use.

virtual void palSolver::StartIterate ( Float  timestep  )  [pure virtual]

This starts the calculation of the next state of the physics simulation by the specified ammount of time.

Parameters:
timestep The increment in time since the last update

virtual void palSolver::WaitForIteration (  )  [pure virtual]

This waits for the the calculation of the next state of the physics simulation to complete.


The documentation for this class was generated from the following files:

Generated on Mon Aug 31 13:58:02 2009 for pal by  doxygen 1.5.7.1