World-concept internal pure virtual base interface class. More...
#include <playrho/d2/detail/WorldConcept.hpp>
Public Member Functions | |
| virtual | ~WorldConcept ()=default | 
| Destructor.  | |
| virtual void | Clear_ () noexcept=0 | 
| Clears the world.  More... | |
| virtual std::unique_ptr< WorldConcept > | Clone_ () const =0 | 
| Clones the instance - making a deep copy.  | |
| virtual BodyID | CreateBody_ (const Body &body)=0 | 
| Creates a rigid body that's a copy of the given one.  More... | |
| virtual JointID | CreateJoint_ (const Joint &def)=0 | 
| Creates a joint to constrain one or more bodies.  More... | |
| virtual ShapeID | CreateShape_ (const Shape &def)=0 | 
| Creates an identifiable copy of the given shape within this world.  More... | |
| virtual void | Destroy_ (BodyID id)=0 | 
| Destroys the identified body.  More... | |
| virtual void | Destroy_ (JointID id)=0 | 
| Destroys the identified joint.  More... | |
| virtual void | Destroy_ (ShapeID id)=0 | 
| Destroys the identified shape.  More... | |
| virtual std::vector< BodyID > | GetBodies_ () const =0 | 
| Gets the world body range for this constant world.  More... | |
| virtual std::vector< BodyID > | GetBodiesForProxies_ () const =0 | 
| Gets the bodies-for-proxies range for this world.  More... | |
| virtual Body | GetBody_ (BodyID id) const =0 | 
| Gets the state of the identified body.  More... | |
| virtual BodyCounter | GetBodyRange_ () const noexcept=0 | 
| Gets the extent of the currently valid body range.  More... | |
| virtual Contact | GetContact_ (ContactID id) const =0 | 
| Gets the identified contact.  More... | |
| virtual ContactCounter | GetContactRange_ () const noexcept=0 | 
| Gets the extent of the currently valid contact range.  More... | |
| virtual std::vector< KeyedContactID > | GetContacts_ () const =0 | 
| Gets the world contact range.  More... | |
| virtual std::vector< std::tuple< ContactKey, ContactID > > | GetContacts_ (BodyID id) const =0 | 
| Gets the container of contacts attached to the identified body.  More... | |
| virtual const void * | GetData_ () const noexcept=0 | 
| Gets the data for the underlying configuration.  | |
| virtual void * | GetData_ () noexcept=0 | 
| Gets the data for the underlying configuration.  | |
| virtual Frequency | GetInvDeltaTime_ () const noexcept=0 | 
| Gets the inverse delta time.  More... | |
| virtual Joint | GetJoint_ (JointID id) const =0 | 
| Gets the value of the identified joint.  More... | |
| virtual JointCounter | GetJointRange_ () const noexcept=0 | 
| Gets the extent of the currently valid joint range.  More... | |
| virtual std::vector< JointID > | GetJoints_ () const =0 | 
| Gets the world joint range.  More... | |
| virtual std::vector< std::pair< BodyID, JointID > > | GetJoints_ (BodyID id) const =0 | 
| Gets the range of joints attached to the identified body.  More... | |
| virtual Manifold | GetManifold_ (ContactID id) const =0 | 
| Gets the collision manifold for the identified contact.  More... | |
| virtual std::optional< pmr::StatsResource::Stats > | GetResourceStats_ () const noexcept=0 | 
| Gets the polymorphic memory resource statistics.  More... | |
| virtual Shape | GetShape_ (ShapeID id) const =0 | 
| virtual ShapeCounter | GetShapeRange_ () const noexcept=0 | 
| Gets the extent of the currently valid shape range.  More... | |
| virtual std::vector< ShapeID > | GetShapes_ (BodyID id) const =0 | 
| Gets the identities of the shapes associated with the identified body.  More... | |
| virtual bool | GetSubStepping_ () const noexcept=0 | 
| Gets whether or not sub-stepping is enabled.  More... | |
| virtual const DynamicTree & | GetTree_ () const noexcept=0 | 
| Gets access to the broad-phase dynamic tree information.  More... | |
| virtual TypeID | GetType_ () const noexcept=0 | 
| Gets the use type information.  More... | |
| virtual Interval< Positive< Length > > | GetVertexRadiusInterval_ () const noexcept=0 | 
| Gets the vertex radius range that shapes in this world can be within.  | |
| virtual bool | IsEqual_ (const WorldConcept &other) const noexcept=0 | 
| Equality checking function.  | |
| virtual bool | IsLocked_ () const noexcept=0 | 
| Is the world locked (in the middle of a time step).  | |
| virtual bool | IsStepComplete_ () const noexcept=0 | 
| Whether or not "step" is complete.  More... | |
| virtual void | SetBeginContactListener_ (ContactFunction listener) noexcept=0 | 
| Sets a begin contact event listener.  | |
| virtual void | SetBody_ (BodyID id, const Body &value)=0 | 
| Sets the state of the identified body.  More... | |
| virtual void | SetContact_ (ContactID id, const Contact &value)=0 | 
| Sets the identified contact's state.  More... | |
| virtual void | SetDetachListener_ (BodyShapeFunction listener) noexcept=0 | 
| Sets the detach listener for shapes detaching from bodies.  | |
| virtual void | SetEndContactListener_ (ContactFunction listener) noexcept=0 | 
| Sets an end contact event listener.  | |
| virtual void | SetJoint_ (JointID id, const Joint &def)=0 | 
| Sets the identified joint to the given value.  More... | |
| virtual void | SetJointDestructionListener_ (JointFunction listener) noexcept=0 | 
| Sets a destruction listener for joints.  More... | |
| virtual void | SetManifold_ (ContactID id, const Manifold &value)=0 | 
| Sets the collision manifold for the identified contact.  More... | |
| virtual void | SetPostSolveContactListener_ (ContactImpulsesFunction listener) noexcept=0 | 
| Sets a post-solve contact event listener.  | |
| virtual void | SetPreSolveContactListener_ (ContactManifoldFunction listener) noexcept=0 | 
| Sets a pre-solve contact event listener.  | |
| virtual void | SetShape_ (ShapeID id, const Shape &def)=0 | 
| Sets the identified shape to the new value.  More... | |
| virtual void | SetShapeDestructionListener_ (ShapeFunction listener) noexcept=0 | 
| Sets the destruction listener for shapes.  More... | |
| virtual void | SetSubStepping_ (bool flag) noexcept=0 | 
| Enables/disables single stepped continuous physics.  More... | |
| virtual void | ShiftOrigin_ (const Length2 &newOrigin)=0 | 
| Shifts the world origin.  More... | |
| virtual StepStats | Step_ (const StepConf &conf)=0 | 
| Steps the world simulation according to the given configuration.  More... | |
World-concept internal pure virtual base interface class.
      
  | 
  pure virtualnoexcept | 
Clears the world.
Implemented in playrho::d2::detail::WorldModel< T >.
Creates a rigid body that's a copy of the given one.
GetBodies_() function. | body | A customized body or its default value. | 
Destroy_(BodyID) function. | WrongState | if this function is called while the world is locked. | 
| LengthError | if this operation would create more than MaxBodies.  | 
| std::out_of_range | if the given body references any invalid shape identifiers. | 
Implemented in playrho::d2::detail::WorldModel< T >.
Creates a joint to constrain one or more bodies.
GetJoints_() function. Destroy_(JointID) function. | WrongState | if this function is called while the world is locked. | 
| LengthError | if this operation would create more than MaxJoints.  | 
Implemented in playrho::d2::detail::WorldModel< T >.
Creates an identifiable copy of the given shape within this world.
| InvalidArgument | if called for a shape with a vertex radius that's either: less than the minimum vertex radius, or greater than the maximum vertex radius. | 
| WrongState | if this function is called while the world is locked. | 
| LengthError | if this operation would create more than MaxShapes.  | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Destroys the identified body.
Destroys the identified body that had previously been created by a call to this world's CreateBody_(const Body&) function. 
GetBodies_() function. | id | Identifier of body to destroy that had been created by this world. | 
| WrongState | if this function is called while the world is locked. | 
| std::out_of_range | If given an invalid body identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Destroys the identified joint.
Destroys the identified joint that had previously been created by a call to this world's CreateJoint_(const Joint&) function. 
GetJoints_() function. | id | Identifier of joint to destroy that had been created by this world. | 
| WrongState | if this function is called while the world is locked. | 
| std::out_of_range | If given an invalid joint identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Destroys the identified shape.
| std::out_of_range | If given an invalid shape identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Gets the world body range for this constant world.
Gets a range enumerating the bodies currently existing within this world. These are the bodies that had been created from previous calls to the CreateBody_(const Body&) function that haven't yet been destroyed. 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Gets the bodies-for-proxies range for this world.
Provides insight on what bodies have been queued for proxy processing during the next call to the world step function.
Implemented in playrho::d2::detail::WorldModel< T >.
Gets the state of the identified body.
| std::out_of_range | If given an invalid body identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets the extent of the currently valid body range.
BodyID that is in range for body related functions. Implemented in playrho::d2::detail::WorldModel< T >.
Gets the identified contact.
| std::out_of_range | If given an invalid contact identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets the extent of the currently valid contact range.
ContactID that is in range for contact related functions. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Gets the world contact range.
ContactFunction to avoid missing contacts. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Gets the container of contacts attached to the identified body.
ContactFunction. | std::out_of_range | If given an invalid body identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets the inverse delta time.
Gets the inverse delta time that was set on construction or assignment, and updated on every call to the Step_ function having a non-zero delta-time. 
Implemented in playrho::d2::detail::WorldModel< T >.
Gets the value of the identified joint.
| std::out_of_range | If given an invalid joint identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets the extent of the currently valid joint range.
JointID that is in range for joint related functions. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Gets the world joint range.
Gets a range enumerating the joints currently existing within this world. These are the joints that had been created from previous calls to the CreateJoint_ function that haven't yet been destroyed. 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Gets the range of joints attached to the identified body.
| std::out_of_range | If given an invalid body identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
Gets the collision manifold for the identified contact.
| std::out_of_range | If given an invalid contact identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets the polymorphic memory resource statistics.
Implemented in playrho::d2::detail::WorldModel< T >.
| std::out_of_range | If given an invalid shape identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets the extent of the currently valid shape range.
ShapeID that is in range for shape related functions. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Gets the identities of the shapes associated with the identified body.
| std::out_of_range | If given an invalid body identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets whether or not sub-stepping is enabled.
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets access to the broad-phase dynamic tree information.
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Gets the use type information.
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Whether or not "step" is complete.
A "step" is completed when there are no more TOI events for the current time step.
true unless sub-stepping is enabled and the step function returned without finishing all of its sub-steps. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Sets the state of the identified body.
| std::out_of_range | if given an invalid id of if the given body references any invalid shape identifiers. | 
| InvalidArgument | if the specified ID was destroyed. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Sets the identified contact's state.
| id | Identifier of the contact whose state is to be set. | 
| value | Value the contact is to be set to. | 
| std::out_of_range | If given an invalid identifier. | 
| InvalidArgument | if the identifier is to a freed contact or if the new state is not allowable. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Sets the identified joint to the given value.
| WrongState | if this function is called while the world is locked. | 
| std::out_of_range | If given an invalid joint identifier. | 
| InvalidArgument | if the specified ID was destroyed. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Sets a destruction listener for joints.
Clear_() for every joint. It's also called on Destroy_(BodyID) for every joint associated with the identified body. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Sets the collision manifold for the identified contact.
| std::out_of_range | If given an invalid contact identifier. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Sets the identified shape to the new value.
| std::out_of_range | If given an invalid shape identifier. | 
| InvalidArgument | if the specified ID was destroyed. | 
Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Sets the destruction listener for shapes.
Clear_() for every shape. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtualnoexcept | 
Enables/disables single stepped continuous physics.
GetSubStepping_() function will return the value this function was called with. Implemented in playrho::d2::detail::WorldModel< T >.
      
  | 
  pure virtual | 
Shifts the world origin.
position -= newOrigin. | newOrigin | the new origin with respect to the old origin | 
| WrongState | if this function is called while the world is locked. | 
Implemented in playrho::d2::detail::WorldModel< T >.
Steps the world simulation according to the given configuration.
Performs position and velocity updating, sleeping of non-moving bodies, updating of the contacts, and notifying the contact listener of begin-contact, end-contact, pre-solve, and post-solve events.
p0) going velocity 0 (v0) fast with a sum acceleration of a, after time t and barring any collisions, will have a new velocity (v1) of v0 + (a * t) and a new position (p1) of p0 + v1 * t. | conf | Configuration for the simulation step. | 
| WrongState | if this function is called while the world is locked. | 
Implemented in playrho::d2::detail::WorldModel< T >.