|
| RWPEIsland () |
| Create a new empty RWPEIsland.
|
|
| RWPEIsland (rw::common::Ptr< rwsim::contacts::ContactDetector > detector) |
| Create a new empty RWPEIsland. More...
|
|
| RWPEIsland (rw::common::Ptr< rwsim::dynamics::DynamicWorkCell > dwc, rw::common::Ptr< rwsim::contacts::ContactDetector > detector=NULL) |
| Create a new RWPEIsland physics engine based on a complete dynamic workcell. More...
|
|
| ~RWPEIsland () |
| Destructor.
|
|
const rw::math::Vector3D & | getGravity () const |
| Get the currently used gravity in world frame. More...
|
|
void | setGravity (const rw::math::Vector3D<> &gravity) |
| Set the gravity. More...
|
|
void | step (double dt, rw::common::Ptr< rw::common::ThreadTask > task) |
| Step the simulator by adding work to ThreadTask. More...
|
|
RWPEIslandState | getRWPEState () const |
| Get a copy of the internal state of the engine. More...
|
|
rw::kinematics::State | getState () const |
| Get the current internal state of the simulator. More...
|
|
void | resetScene (const RWPEIslandState &state) |
| Reset the internal engine state. More...
|
|
virtual void | load (rw::common::Ptr< rwsim::dynamics::DynamicWorkCell > dwc) |
|
bool | setContactDetector (rw::common::Ptr< rwsim::contacts::ContactDetector > detector) |
|
void | step (double dt) |
|
void | step (double dt, rw::kinematics::State &state) |
|
void | resetScene (rw::kinematics::State &state) |
|
void | initPhysics (rw::kinematics::State &state) |
|
void | exitPhysics () |
|
double | getTime () |
|
void | setEnabled (rw::common::Ptr< rwsim::dynamics::Body > body, bool enabled) |
|
void | setDynamicsEnabled (rw::common::Ptr< rwsim::dynamics::Body > body, bool enabled) |
|
rwsim::drawable::SimulatorDebugRender::Ptr | createDebugRender () |
|
rw::common::PropertyMap & | getPropertyMap () |
|
const rw::common::PropertyMap & | getPropertyMap () const |
|
const rw::common::PropertyMap & | getPropertyMapDefault () const |
| Get a map with the default properties. More...
|
|
void | emitPropertyChanged () |
|
void | addController (rw::common::Ptr< rwlibs::simulation::SimulatedController > controller) |
|
void | removeController (rw::common::Ptr< rwlibs::simulation::SimulatedController > controller) |
|
void | addBody (rw::common::Ptr< rwsim::dynamics::Body > body, rw::kinematics::State &state) |
|
void | addDevice (rw::common::Ptr< rwsim::dynamics::DynamicDevice > dev, rw::kinematics::State &state) |
|
void | addSensor (rwlibs::simulation::SimulatedSensor::Ptr sensor, rw::kinematics::State &state) |
|
void | removeSensor (rwlibs::simulation::SimulatedSensor::Ptr sensor) |
|
void | attach (rw::common::Ptr< rwsim::dynamics::Body > b1, rw::common::Ptr< rwsim::dynamics::Body > b2) |
|
void | detach (rw::common::Ptr< rwsim::dynamics::Body > b1, rw::common::Ptr< rwsim::dynamics::Body > b2) |
|
std::vector< rwlibs::simulation::SimulatedSensor::Ptr > | getSensors () |
|
void | setSimulatorLog (rw::common::Ptr< rwsim::log::SimulatorLogScope > log) |
|
virtual | ~PhysicsEngine () |
| destructor
|
|
The RWPEIsland engine.
A RWPEIsland is a basic engine that will solve for all bodies, constraints and contacts in one large equation system. If the system can be decomposed into smaller independent RWPEIslands, it is the responsibility of the user to do this.
Under normal circumstances this engine should not be used by the user directly, as it will be too computationally expensive to solve dynamics for large dynamic workcells as one unit. Instead the RWPEWorld engine should be used, which will decompose and manage independent RWPEIslands dynamically to achieve best possible performance. It will also manage time synchronization between islands.
Consider using the RWPEIsland directly in rare circumstances if the dynamic system is extremely simple, and the overhead in managing independent islands would be too big.
Please note that the simulator uses many thresholds, tolerances and other properties. These are documented in the documentation for the getDefaultPropertyMap function.