PlayRho  2.0.0
An interactive physics engine & library.
World.hpp File Reference

Definitions of the World class and closely related code. More...

#include <iterator>
#include <memory>
#include <optional>
#include <tuple>
#include <typeinfo>
#include <type_traits>
#include <utility>
#include <vector>
#include <playrho/BodyID.hpp>
#include <playrho/BodyShapeFunction.hpp>
#include <playrho/Contact.hpp>
#include <playrho/ContactFunction.hpp>
#include <playrho/ContactID.hpp>
#include <playrho/ContactKey.hpp>
#include <playrho/Interval.hpp>
#include <playrho/KeyedContactID.hpp>
#include <playrho/JointFunction.hpp>
#include <playrho/JointID.hpp>
#include <playrho/Positive.hpp>
#include <playrho/Settings.hpp>
#include <playrho/ShapeFunction.hpp>
#include <playrho/ShapeID.hpp>
#include <playrho/StepConf.hpp>
#include <playrho/StepStats.hpp>
#include <playrho/Templates.hpp>
#include <playrho/TypeInfo.hpp>
#include <playrho/Units.hpp>
#include <playrho/Vector2.hpp>
#include <playrho/pmr/StatsResource.hpp>
#include <playrho/d2/Body.hpp>
#include <playrho/d2/BodyConf.hpp>
#include <playrho/d2/ContactImpulsesFunction.hpp>
#include <playrho/d2/ContactManifoldFunction.hpp>
#include <playrho/d2/Joint.hpp>
#include <playrho/d2/Manifold.hpp>
#include <playrho/d2/Shape.hpp>
#include <playrho/d2/WorldConf.hpp>
#include <playrho/d2/detail/WorldConcept.hpp>
#include <playrho/d2/detail/WorldModel.hpp>
Include dependency graph for World.hpp:
This graph shows which files directly or indirectly include this file:

Classes

class  playrho::d2::World
 Definition of an independent and simulatable "world". More...
 

Namespaces

 playrho
 
 playrho::d2
 

Functions

void playrho::d2::Clear (World &world) noexcept
 Clears the given world. More...
 
BodyID playrho::d2::CreateBody (World &world, const Body &body=Body{}, bool resetMassData=true)
 Creates a rigid body within the world that's a copy of the given one. More...
 
JointID playrho::d2::CreateJoint (World &world, const Joint &def)
 Creates a new joint within the given world. More...
 
template<typename T >
JointID playrho::d2::CreateJoint (World &world, const T &value)
 Creates a new joint from a configuration. More...
 
ShapeID playrho::d2::CreateShape (World &world, const Shape &def)
 Creates an identifiable copy of the given shape within the specified world. More...
 
template<typename T >
auto playrho::d2::CreateShape (World &world, const T &shapeConf) -> decltype(CreateShape(world, Shape{shapeConf}))
 Creates a shape within the specified world using a configuration of the shape. More...
 
void playrho::d2::Destroy (World &world, BodyID id)
 Destroys the identified body. More...
 
void playrho::d2::Destroy (World &world, JointID id)
 Destroys the identified joint. More...
 
void playrho::d2::Destroy (World &world, ShapeID id)
 Destroys the identified shape. More...
 
std::vector< BodyID > playrho::d2::GetBodies (const World &world)
 Gets the valid world body identifiers container for this constant world. More...
 
std::vector< BodyID > playrho::d2::GetBodiesForProxies (const World &world)
 Gets the bodies-for-proxies container for this world. More...
 
Body playrho::d2::GetBody (const World &world, BodyID id)
 Gets the state of the identified body. More...
 
BodyCounter playrho::d2::GetBodyRange (const World &world) noexcept
 Gets the extent of the currently valid body range. More...
 
Contact playrho::d2::GetContact (const World &world, ContactID id)
 Gets the identified contact. More...
 
ContactCounter playrho::d2::GetContactCount (const World &world) noexcept
 Gets the count of contacts in the given world. More...
 
ContactCounter playrho::d2::GetContactRange (const World &world) noexcept
 Gets the extent of the currently valid contact range. More...
 
std::vector< KeyedContactID > playrho::d2::GetContacts (const World &world)
 Gets the contacts identified within the given world. More...
 
std::vector< std::tuple< ContactKey, ContactID > > playrho::d2::GetContacts (const World &world, BodyID id)
 Gets the container of contacts attached to the identified body. More...
 
Frequency playrho::d2::GetInvDeltaTime (const World &world) noexcept
 Gets the inverse delta time. More...
 
Joint playrho::d2::GetJoint (const World &world, JointID id)
 Gets the value of the identified joint. More...
 
JointCounter playrho::d2::GetJointCount (const World &world)
 
JointCounter playrho::d2::GetJointRange (const World &world) noexcept
 Gets the extent of the currently valid joint range. More...
 
std::vector< JointID > playrho::d2::GetJoints (const World &world)
 Gets the joints of the specified world. More...
 
std::vector< std::pair< BodyID, JointID > > playrho::d2::GetJoints (const World &world, BodyID id)
 Gets the container of valid joints attached to the identified body. More...
 
Manifold playrho::d2::GetManifold (const World &world, ContactID id)
 Gets the manifold for the identified contact. More...
 
std::optional< pmr::StatsResource::Stats > playrho::d2::GetResourceStats (const World &world) noexcept
 Gets the polymorphic memory resource allocator statistics of the specified world. More...
 
Shape playrho::d2::GetShape (const World &world, ShapeID id)
 Gets the shape associated with the identifier. More...
 
ShapeCounter playrho::d2::GetShapeRange (const World &world) noexcept
 Gets the extent of the currently valid shape range. More...
 
std::vector< ShapeID > playrho::d2::GetShapes (const World &world, BodyID id)
 Gets the identities of the shapes associated with the identified body. More...
 
bool playrho::d2::GetSubStepping (const World &world) noexcept
 Gets whether or not sub-stepping is enabled. More...
 
const DynamicTree & playrho::d2::GetTree (const World &world)
 Gets access to the broad-phase dynamic tree information. More...
 
TypeID playrho::d2::GetType (const World &world) noexcept
 Gets the identifier of the type of data the given world can be casted to. More...
 
Interval< Positive< Length > > playrho::d2::GetVertexRadiusInterval (const World &world) noexcept
 Gets the vertex radius interval allowable for the given world. More...
 
auto playrho::d2::IsDestroyed (const World &world, BodyID id) -> bool
 Gets whether the given identifier is to a body that's been destroyed. More...
 
auto playrho::d2::IsDestroyed (const World &world, ContactID id) -> bool
 Gets whether the given identifier is to a contact that's been destroyed. More...
 
auto playrho::d2::IsDestroyed (const World &world, JointID id) -> bool
 Gets whether the given identifier is to a joint that's been destroyed. More...
 
auto playrho::d2::IsDestroyed (const World &world, ShapeID id) -> bool
 Gets whether the given identifier is to a shape that's been destroyed. More...
 
bool playrho::d2::IsLocked (const World &world) noexcept
 Is the specified world locked. More...
 
bool playrho::d2::IsStepComplete (const World &world) noexcept
 Whether or not "step" is complete. More...
 
bool playrho::d2::operator!= (const World &lhs, const World &rhs) noexcept
 Inequality operator for world comparisons. More...
 
bool playrho::d2::operator== (const World &lhs, const World &rhs) noexcept
 Equality operator for world comparisons. More...
 
template<class F >
void playrho::d2::SetAccelerations (World &world, F fn)
 Sets the accelerations of all the world's bodies. More...
 
void playrho::d2::SetBeginContactListener (World &world, ContactFunction listener) noexcept
 Sets the begin-contact lister. More...
 
void playrho::d2::SetBody (World &world, BodyID id, const Body &body)
 Sets the state of the identified body. More...
 
void playrho::d2::SetContact (World &world, ContactID id, const Contact &value)
 Sets the identified contact's state. More...
 
void playrho::d2::SetDetachListener (World &world, BodyShapeFunction listener) noexcept
 Sets the detach listener for shapes detaching from bodies. More...
 
void playrho::d2::SetEndContactListener (World &world, ContactFunction listener) noexcept
 Sets the end-contact lister. More...
 
void playrho::d2::SetJoint (World &world, JointID id, const Joint &def)
 Sets the value of the identified joint. More...
 
template<typename T >
void playrho::d2::SetJoint (World &world, JointID id, const T &value)
 Sets a joint's value from a configuration. More...
 
void playrho::d2::SetJointDestructionListener (World &world, JointFunction listener) noexcept
 Sets the destruction listener for joints. More...
 
void playrho::d2::SetManifold (World &world, ContactID id, const Manifold &value)
 Sets the identified manifold's state. More...
 
void playrho::d2::SetPostSolveContactListener (World &world, ContactImpulsesFunction listener) noexcept
 Sets the post-solve-contact lister. More...
 
void playrho::d2::SetPreSolveContactListener (World &world, ContactManifoldFunction listener) noexcept
 Sets the pre-solve-contact lister. More...
 
void playrho::d2::SetShape (World &world, ShapeID, const Shape &def)
 Sets the identified shape to the new value. More...
 
void playrho::d2::SetShapeDestructionListener (World &world, ShapeFunction listener) noexcept
 Sets the destruction listener for shapes. More...
 
void playrho::d2::SetSubStepping (World &world, bool flag) noexcept
 Enables/disables single stepped continuous physics. More...
 
void playrho::d2::ShiftOrigin (World &world, const Length2 &newOrigin)
 Shifts the origin of the specified world. More...
 
StepStats playrho::d2::Step (World &world, const StepConf &conf=StepConf{})
 Steps the given world simulation according to the given configuration. More...
 
template<typename T >
playrho::d2::TypeCast (const World &value)
 Converts the given joint into its current configuration value. More...
 
template<typename T >
std::add_pointer_t< std::add_const_t< T > > playrho::d2::TypeCast (const World *value) noexcept
 Casts the given world into its current underlying configuration value. More...
 
template<typename T >
playrho::d2::TypeCast (World &&value)
 Converts the given joint into its current configuration value. More...
 
template<typename T >
playrho::d2::TypeCast (World &value)
 Converts the given joint into its current configuration value. More...
 
template<typename T >
std::add_pointer_t< T > playrho::d2::TypeCast (World *value) noexcept
 Casts the given world into its current configuration value. More...
 

Detailed Description

Definitions of the World class and closely related code.