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

Declarations of the Body class, and functions associated with it. More...

#include <cassert>
#include <cstdint>
#include <limits>
#include <type_traits>
#include <utility>
#include <vector>
#include <playrho/BodyType.hpp>
#include <playrho/NonNegative.hpp>
#include <playrho/Real.hpp>
#include <playrho/ShapeID.hpp>
#include <playrho/Units.hpp>
#include <playrho/Vector2.hpp>
#include <playrho/ZeroToUnderOne.hpp>
#include <playrho/d2/Acceleration.hpp>
#include <playrho/d2/BodyConf.hpp>
#include <playrho/d2/Math.hpp>
#include <playrho/d2/Position.hpp>
#include <playrho/d2/Sweep.hpp>
#include <playrho/d2/Transformation.hpp>
#include <playrho/d2/UnitVec.hpp>
#include <playrho/d2/Velocity.hpp>
Include dependency graph for Body.hpp:
This graph shows which files directly or indirectly include this file:

Classes

class  playrho::d2::Body
 A "body" physical entity. More...
 

Namespaces

 playrho
 
 playrho::d2
 

Functions

void playrho::d2::Advance (Body &body, ZeroToUnderOneFF< Real > value) noexcept
 
void playrho::d2::Advance0 (Body &body, ZeroToUnderOneFF< Real > value) noexcept
 Calls the body sweep's Advance0 function to advance to the given value. More...
 
void playrho::d2::ApplyAngularImpulse (Body &body, AngularMomentum impulse) noexcept
 Applies an angular impulse. More...
 
void playrho::d2::ApplyLinearImpulse (Body &body, const Momentum2 &impulse, const Length2 &point) noexcept
 Applies an impulse at a point. More...
 
bool playrho::d2::Awaken (Body &body) noexcept
 Awakens the body if it's asleep. More...
 
Acceleration playrho::d2::GetAcceleration (const Body &body) noexcept
 Gets the given body's acceleration. More...
 
Angle playrho::d2::GetAngle (const Body &body) noexcept
 Gets the body's angle. More...
 
AngularAcceleration playrho::d2::GetAngularAcceleration (const Body &body) noexcept
 Gets this body's angular acceleration. More...
 
NonNegative< Frequency > playrho::d2::GetAngularDamping (const Body &body) noexcept
 Gets the angular damping of the body. More...
 
AngularVelocity playrho::d2::GetAngularVelocity (const Body &body) noexcept
 Gets the angular velocity. More...
 
Force2 playrho::d2::GetForce (const Body &body) noexcept
 Gets the net force that the given body is currently experiencing.
 
NonNegativeFF< InvMass > playrho::d2::GetInvMass (const Body &body) noexcept
 Gets the inverse total mass of the body. More...
 
NonNegativeFF< InvRotInertia > playrho::d2::GetInvRotInertia (const Body &body) noexcept
 Gets the inverse rotational inertia of the body. More...
 
LinearAcceleration2 playrho::d2::GetLinearAcceleration (const Body &body) noexcept
 Gets this body's linear acceleration. More...
 
NonNegative< Frequency > playrho::d2::GetLinearDamping (const Body &body) noexcept
 Gets the linear damping of the body. More...
 
LinearVelocity2 playrho::d2::GetLinearVelocity (const Body &body) noexcept
 Gets the linear velocity of the center of mass. More...
 
LinearVelocity2 playrho::d2::GetLinearVelocityFromLocalPoint (const Body &body, const Length2 &localPoint) noexcept
 Gets the linear velocity from a local point. More...
 
LinearVelocity2 playrho::d2::GetLinearVelocityFromWorldPoint (const Body &body, const Length2 &worldPoint) noexcept
 Gets the linear velocity from a world point attached to this body. More...
 
Length2 playrho::d2::GetLocalCenter (const Body &body) noexcept
 Gets the local position of the center of mass.
 
Length2 playrho::d2::GetLocalPoint (const Body &body, const Length2 &worldPoint) noexcept
 Gets a local point relative to the body's origin given a world point. More...
 
RotInertia playrho::d2::GetLocalRotInertia (const Body &body) noexcept
 Gets the rotational inertia of the body about the local origin. More...
 
UnitVec playrho::d2::GetLocalVector (const Body &body, const UnitVec &uv) noexcept
 Gets a locally oriented unit vector given a world oriented unit vector. More...
 
Length2 playrho::d2::GetLocation (const Body &body) noexcept
 Gets the body's origin location. More...
 
Mass playrho::d2::GetMass (const Body &body) noexcept
 Gets the mass of the body. More...
 
Position playrho::d2::GetPosition (const Body &body) noexcept
 Gets the body's position.
 
Position playrho::d2::GetPosition0 (const Body &body) noexcept
 Gets the "position 0" Position information for the given body.
 
Position playrho::d2::GetPosition1 (const Body &body) noexcept
 Gets the "position 1" Position information for the given body.
 
RotInertia playrho::d2::GetRotInertia (const Body &body) noexcept
 Gets the rotational inertia of the body. More...
 
const std::vector< ShapeID > & playrho::d2::GetShapes (const Body &body) noexcept
 Gets the identifiers of the shapes attached to the body.
 
const Sweep & playrho::d2::GetSweep (const Body &body) noexcept
 Gets the body's sweep. More...
 
Torque playrho::d2::GetTorque (const Body &body) noexcept
 Gets the net torque that the given body is currently experiencing.
 
const Transformation & playrho::d2::GetTransformation (const Body &body) noexcept
 Gets the body's transformation. More...
 
BodyType playrho::d2::GetType (const Body &body) noexcept
 Gets the type of this body. More...
 
Time playrho::d2::GetUnderActiveTime (const Body &body) noexcept
 Gets the given body's under-active time. More...
 
Velocity playrho::d2::GetVelocity (const Body &body) noexcept
 Gets the velocity. More...
 
Velocity playrho::d2::GetVelocity (const Body &body, Time h) noexcept
 Gets the velocity of the body after the given time accounting for the body's acceleration and capped by the given configuration. More...
 
Length2 playrho::d2::GetWorldCenter (const Body &body) noexcept
 Get the world position of the center of mass.
 
Length2 playrho::d2::GetWorldPoint (const Body &body, const Length2 &localPoint) noexcept
 Gets the world coordinates of a point given in coordinates relative to the body's origin. More...
 
Length2 playrho::d2::GetWorldVector (const Body &body, const Length2 &localVector) noexcept
 Gets the world coordinates of a vector given the local coordinates. More...
 
UnitVec playrho::d2::GetWorldVector (const Body &body, const UnitVec &localVector) noexcept
 Gets the world vector for the given local vector from the given body's transformation.
 
bool playrho::d2::IsAccelerable (const Body &body) noexcept
 Is "accelerable". More...
 
bool playrho::d2::IsAwake (const Body &body) noexcept
 Gets the awake/asleep state of this body. More...
 
constexpr auto playrho::d2::IsDestroyed (const Body &body) noexcept -> bool
 Whether or not the given body was destroyed. More...
 
bool playrho::d2::IsEnabled (const Body &body) noexcept
 Gets the enabled/disabled state of the body. More...
 
bool playrho::d2::IsFixedRotation (const Body &body) noexcept
 Does this body have fixed rotation? More...
 
bool playrho::d2::IsImpenetrable (const Body &body) noexcept
 Is this body treated like a bullet for continuous collision detection? More...
 
bool playrho::d2::IsMassDataDirty (const Body &body) noexcept
 Gets whether the mass data for this body is "dirty".
 
bool playrho::d2::IsSleepingAllowed (const Body &body) noexcept
 Gets whether or not this body allowed to sleep. More...
 
bool playrho::d2::IsSpeedable (const Body &body) noexcept
 Is "speedable". More...
 
bool playrho::d2::operator!= (const Body &lhs, const Body &rhs)
 Not-equals operator. More...
 
bool playrho::d2::operator== (const Body &lhs, const Body &rhs)
 Equals operator. More...
 
void playrho::d2::SetAcceleration (Body &body, AngularAcceleration value) noexcept
 Sets the given angular acceleration of the given body. More...
 
void playrho::d2::SetAcceleration (Body &body, const Acceleration &value) noexcept
 Sets the accelerations on the given body. More...
 
void playrho::d2::SetAcceleration (Body &body, const LinearAcceleration2 &linear, AngularAcceleration angular) noexcept
 Sets the linear and rotational accelerations on this body. More...
 
void playrho::d2::SetAcceleration (Body &body, const LinearAcceleration2 &value) noexcept
 Sets the given linear acceleration of the given body. More...
 
void playrho::d2::SetAngle (Body &body, Angle value)
 Sets the body's angular orientation. More...
 
void playrho::d2::SetAngularDamping (Body &body, NonNegative< Frequency > value) noexcept
 Sets the angular damping of the body. More...
 
void playrho::d2::SetAwake (Body &body) noexcept
 Awakens this body. More...
 
constexpr void playrho::d2::SetDestroyed (Body &body) noexcept
 Sets the destroyed property of the given body. More...
 
void playrho::d2::SetEnabled (Body &body) noexcept
 Sets the enabled state. More...
 
void playrho::d2::SetEnabled (Body &body, bool value) noexcept
 Sets the enabled state to the given value. More...
 
void playrho::d2::SetFixedRotation (Body &body, bool value)
 Sets this body to have fixed rotation. More...
 
void playrho::d2::SetImpenetrable (Body &body) noexcept
 Sets the impenetrable status of this body. More...
 
void playrho::d2::SetLinearDamping (Body &body, NonNegative< Frequency > value) noexcept
 Sets the linear damping of the body. More...
 
void playrho::d2::SetLocation (Body &body, const Length2 &value)
 Sets the body's location. More...
 
void playrho::d2::SetMass (Body &body, Mass mass)
 Sets the mass of the given body.
 
void playrho::d2::SetPosition0 (Body &body, const Position &value) noexcept
 Sets the "position 0" Position information for the given body.
 
void playrho::d2::SetPosition1 (Body &body, const Position &value) noexcept
 Sets the "position 1" Position information for the given body.
 
void playrho::d2::SetRotInertia (Body &body, RotInertia value) noexcept
 Sets the rotational inertia of the body.
 
void playrho::d2::SetSleepingAllowed (Body &body, bool value) noexcept
 
void playrho::d2::SetSweep (Body &body, const Sweep &value) noexcept
 Sets the sweep value of the given body. More...
 
void playrho::d2::SetTransformation (Body &body, const Transformation &value) noexcept
 Sets the body's transformation. More...
 
void playrho::d2::SetType (Body &body, BodyType value) noexcept
 Sets the type of this body. More...
 
void playrho::d2::SetVelocity (Body &body, AngularVelocity value) noexcept
 Sets the angular velocity. More...
 
void playrho::d2::SetVelocity (Body &body, const LinearVelocity2 &value) noexcept
 Sets the linear velocity of the center of mass. More...
 
void playrho::d2::SetVelocity (Body &body, const Velocity &value) noexcept
 Sets the body's velocity (linear and angular velocity). More...
 
bool playrho::d2::Unawaken (Body &body) noexcept
 Puts the body to sleep if it's awake. More...
 
void playrho::d2::UnsetAwake (Body &body) noexcept
 Sets this body to asleep if sleeping is allowed. More...
 
constexpr void playrho::d2::UnsetDestroyed (Body &body) noexcept
 Unsets the destroyed property of the given body. More...
 
void playrho::d2::UnsetEnabled (Body &body) noexcept
 Unsets the enabled state. More...
 
void playrho::d2::UnsetImpenetrable (Body &body) noexcept
 Unsets the impenetrable status of this body. More...
 

Detailed Description

Declarations of the Body class, and functions associated with it.