Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
b2World Class Reference

#include <b2World.h>

Public Member Functions

 b2World (const b2Vec2 &gravity)
 
void ClearForces ()
 
b2BodyCreateBody (const b2BodyDef *def)
 
b2JointCreateJoint (const b2JointDef *def)
 
void DestroyBody (b2Body *body)
 
void DestroyJoint (b2Joint *joint)
 
void DrawDebugData ()
 Call this to draw shapes and other debug draw data. This is intentionally non-const. More...
 
void Dump ()
 
bool GetAllowSleeping () const
 
bool GetAutoClearForces () const
 Get the flag that controls automatic clearing of forces after each time step. More...
 
int32 GetBodyCount () const
 Get the number of bodies. More...
 
b2BodyGetBodyList ()
 
const b2BodyGetBodyList () const
 
int32 GetContactCount () const
 Get the number of contacts (each may have 0 or more contact points). More...
 
b2ContactGetContactList ()
 
const b2ContactGetContactList () const
 
const b2ContactManagerGetContactManager () const
 Get the contact manager for testing. More...
 
bool GetContinuousPhysics () const
 
b2Vec2 GetGravity () const
 Get the global gravity vector. More...
 
int32 GetJointCount () const
 Get the number of joints. More...
 
b2JointGetJointList ()
 
const b2JointGetJointList () const
 
const b2ProfileGetProfile () const
 Get the current profile. More...
 
int32 GetProxyCount () const
 Get the number of broad-phase proxies. More...
 
bool GetSubStepping () const
 
int32 GetTreeBalance () const
 Get the balance of the dynamic tree. More...
 
int32 GetTreeHeight () const
 Get the height of the dynamic tree. More...
 
float32 GetTreeQuality () const
 
bool GetWarmStarting () const
 
bool IsLocked () const
 Is the world locked (in the middle of a time step). More...
 
void QueryAABB (b2QueryCallback *callback, const b2AABB &aabb) const
 
void RayCast (b2RayCastCallback *callback, const b2Vec2 &point1, const b2Vec2 &point2) const
 
void SetAllowSleeping (bool flag)
 Enable/disable sleep. More...
 
void SetAutoClearForces (bool flag)
 Set flag to control automatic clearing of forces after each time step. More...
 
void SetContactFilter (b2ContactFilter *filter)
 
void SetContactListener (b2ContactListener *listener)
 
void SetContinuousPhysics (bool flag)
 Enable/disable continuous physics. For testing. More...
 
void SetDebugDraw (b2Draw *debugDraw)
 
void SetDestructionListener (b2DestructionListener *listener)
 
void SetGravity (const b2Vec2 &gravity)
 Change the global gravity vector. More...
 
void SetSubStepping (bool flag)
 Enable/disable single stepped continuous physics. For testing. More...
 
void SetWarmStarting (bool flag)
 Enable/disable warm starting. For testing. More...
 
void ShiftOrigin (const b2Vec2 &newOrigin)
 
void Step (float32 timeStep, int32 velocityIterations, int32 positionIterations)
 
 ~b2World ()
 Destruct the world. All physics entities are destroyed and all heap memory is released. More...
 

Private Types

enum  { e_newFixture = 0x0001, e_locked = 0x0002, e_clearForces = 0x0004 }
 

Private Member Functions

void DrawJoint (b2Joint *joint)
 
void DrawShape (b2Fixture *shape, const b2Transform &xf, const b2Color &color)
 
void Solve (const b2TimeStep &step)
 
void SolveTOI (const b2TimeStep &step)
 

Private Attributes

b2Drawg_debugDraw
 
bool m_allowSleep
 
b2BlockAllocator m_blockAllocator
 
int32 m_bodyCount
 
b2Bodym_bodyList
 
b2ContactManager m_contactManager
 
bool m_continuousPhysics
 
b2DestructionListenerm_destructionListener
 
int32 m_flags
 
b2Vec2 m_gravity
 
float32 m_inv_dt0
 
int32 m_jointCount
 
b2Jointm_jointList
 
b2Profile m_profile
 
b2StackAllocator m_stackAllocator
 
bool m_stepComplete
 
bool m_subStepping
 
bool m_warmStarting
 

Friends

class b2Body
 
class b2ContactManager
 
class b2Controller
 
class b2Fixture
 

Detailed Description

The world class manages all physics entities, dynamic simulation, and asynchronous queries. The world also contains efficient memory management facilities.

Definition at line 41 of file b2World.h.

Member Enumeration Documentation

anonymous enum
private
Enumerator
e_newFixture 
e_locked 
e_clearForces 

Definition at line 215 of file b2World.h.

Constructor & Destructor Documentation

b2World::b2World ( const b2Vec2 gravity)

Construct a world object.

Parameters
gravitythe world gravity vector.

Definition at line 37 of file b2World.cpp.

b2World::~b2World ( )

Destruct the world. All physics entities are destroyed and all heap memory is released.

Definition at line 66 of file b2World.cpp.

Member Function Documentation

void b2World::ClearForces ( )

Manually clear the force buffer on all bodies. By default, forces are cleared automatically after each call to Step. The default behavior is modified by calling SetAutoClearForces. The purpose of this function is to support sub-stepping. Sub-stepping is often used to maintain a fixed sized time step under a variable frame-rate. When you perform sub-stepping you will disable auto clearing of forces and instead call ClearForces after all sub-steps are complete in one pass of your game loop.

See also
SetAutoClearForces

Definition at line 965 of file b2World.cpp.

b2Body * b2World::CreateBody ( const b2BodyDef def)

Create a rigid body given a definition. No reference to the definition is retained.

Warning
This function is locked during callbacks.

Definition at line 107 of file b2World.cpp.

b2Joint * b2World::CreateJoint ( const b2JointDef def)

Create a joint to constrain bodies together. No reference to the definition is retained. This may cause the connected bodies to cease colliding.

Warning
This function is locked during callbacks.

Definition at line 212 of file b2World.cpp.

void b2World::DestroyBody ( b2Body body)

Destroy a rigid body given a definition. No reference to the definition is retained. This function is locked during callbacks.

Warning
This automatically deletes all associated shapes and joints.
This function is locked during callbacks.

Definition at line 131 of file b2World.cpp.

void b2World::DestroyJoint ( b2Joint joint)

Destroy a joint. This may cause the connected bodies to begin colliding.

Warning
This function is locked during callbacks.

Definition at line 272 of file b2World.cpp.

void b2World::DrawDebugData ( )

Call this to draw shapes and other debug draw data. This is intentionally non-const.

Definition at line 1135 of file b2World.cpp.

void b2World::DrawJoint ( b2Joint joint)
private

Definition at line 1094 of file b2World.cpp.

void b2World::DrawShape ( b2Fixture shape,
const b2Transform xf,
const b2Color color 
)
private

Definition at line 1031 of file b2World.cpp.

void b2World::Dump ( )

Dump the world into the log file.

Warning
this should be called outside of a time step.

Definition at line 1282 of file b2World.cpp.

bool b2World::GetAllowSleeping ( ) const
inline

Definition at line 146 of file b2World.h.

bool b2World::GetAutoClearForces ( ) const
inline

Get the flag that controls automatic clearing of forces after each time step.

Definition at line 339 of file b2World.h.

int32 b2World::GetBodyCount ( ) const
inline

Get the number of bodies.

Definition at line 296 of file b2World.h.

b2Body * b2World::GetBodyList ( )
inline

Get the world body list. With the returned body, use b2Body::GetNext to get the next body in the world list. A NULL body indicates the end of the list.

Returns
the head of the world body list.

Definition at line 266 of file b2World.h.

const b2Body * b2World::GetBodyList ( ) const
inline

Definition at line 271 of file b2World.h.

int32 b2World::GetContactCount ( ) const
inline

Get the number of contacts (each may have 0 or more contact points).

Definition at line 306 of file b2World.h.

b2Contact * b2World::GetContactList ( )
inline

Get the world contact list. With the returned contact, use b2Contact::GetNext to get the next contact in the world list. A NULL contact indicates the end of the list.

Returns
the head of the world contact list.
Warning
contacts are created and destroyed in the middle of a time step. Use b2ContactListener to avoid missing contacts.

Definition at line 286 of file b2World.h.

const b2Contact * b2World::GetContactList ( ) const
inline

Definition at line 291 of file b2World.h.

const b2ContactManager & b2World::GetContactManager ( ) const
inline

Get the contact manager for testing.

Definition at line 344 of file b2World.h.

bool b2World::GetContinuousPhysics ( ) const
inline

Definition at line 154 of file b2World.h.

b2Vec2 b2World::GetGravity ( ) const
inline

Get the global gravity vector.

Definition at line 316 of file b2World.h.

int32 b2World::GetJointCount ( ) const
inline

Get the number of joints.

Definition at line 301 of file b2World.h.

b2Joint * b2World::GetJointList ( )
inline

Get the world joint list. With the returned joint, use b2Joint::GetNext to get the next joint in the world list. A NULL joint indicates the end of the list.

Returns
the head of the world joint list.

Definition at line 276 of file b2World.h.

const b2Joint * b2World::GetJointList ( ) const
inline

Definition at line 281 of file b2World.h.

const b2Profile & b2World::GetProfile ( ) const
inline

Get the current profile.

Definition at line 349 of file b2World.h.

int32 b2World::GetProxyCount ( ) const

Get the number of broad-phase proxies.

Definition at line 1239 of file b2World.cpp.

bool b2World::GetSubStepping ( ) const
inline

Definition at line 158 of file b2World.h.

int32 b2World::GetTreeBalance ( ) const

Get the balance of the dynamic tree.

Definition at line 1249 of file b2World.cpp.

int32 b2World::GetTreeHeight ( ) const

Get the height of the dynamic tree.

Definition at line 1244 of file b2World.cpp.

float32 b2World::GetTreeQuality ( ) const

Get the quality metric of the dynamic tree. The smaller the better. The minimum is 1.

Definition at line 1254 of file b2World.cpp.

bool b2World::GetWarmStarting ( ) const
inline

Definition at line 150 of file b2World.h.

bool b2World::IsLocked ( ) const
inline

Is the world locked (in the middle of a time step).

Definition at line 321 of file b2World.h.

void b2World::QueryAABB ( b2QueryCallback callback,
const b2AABB aabb 
) const

Query the world for all fixtures that potentially overlap the provided AABB.

Parameters
callbacka user implemented callback class.
aabbthe query box.

Definition at line 986 of file b2World.cpp.

void b2World::RayCast ( b2RayCastCallback callback,
const b2Vec2 point1,
const b2Vec2 point2 
) const

Ray-cast the world for all fixtures in the path of the ray. Your callback controls whether you get the closest point, any point, or n-points. The ray-cast ignores shapes that contain the starting point.

Parameters
callbacka user implemented callback class.
point1the ray starting point
point2the ray ending point

Definition at line 1019 of file b2World.cpp.

void b2World::SetAllowSleeping ( bool  flag)

Enable/disable sleep.

Definition at line 368 of file b2World.cpp.

void b2World::SetAutoClearForces ( bool  flag)
inline

Set flag to control automatic clearing of forces after each time step.

Definition at line 326 of file b2World.h.

void b2World::SetContactFilter ( b2ContactFilter filter)

Register a contact filter to provide specific control over collision. Otherwise the default filter is used (b2_defaultFilter). The listener is owned by you and must remain in scope.

Definition at line 92 of file b2World.cpp.

void b2World::SetContactListener ( b2ContactListener listener)

Register a contact event listener. The listener is owned by you and must remain in scope.

Definition at line 97 of file b2World.cpp.

void b2World::SetContinuousPhysics ( bool  flag)
inline

Enable/disable continuous physics. For testing.

Definition at line 153 of file b2World.h.

void b2World::SetDebugDraw ( b2Draw debugDraw)

Register a routine for debug drawing. The debug draw functions are called inside with b2World::DrawDebugData method. The debug draw object is owned by you and must remain in scope.

Definition at line 102 of file b2World.cpp.

void b2World::SetDestructionListener ( b2DestructionListener listener)

Register a destruction listener. The listener is owned by you and must remain in scope.

Definition at line 87 of file b2World.cpp.

void b2World::SetGravity ( const b2Vec2 gravity)
inline

Change the global gravity vector.

Definition at line 311 of file b2World.h.

void b2World::SetSubStepping ( bool  flag)
inline

Enable/disable single stepped continuous physics. For testing.

Definition at line 157 of file b2World.h.

void b2World::SetWarmStarting ( bool  flag)
inline

Enable/disable warm starting. For testing.

Definition at line 149 of file b2World.h.

void b2World::ShiftOrigin ( const b2Vec2 newOrigin)

Shift the world origin. Useful for large worlds. The body shift formula is: position -= newOrigin

Parameters
newOriginthe new origin with respect to the old origin

Definition at line 1259 of file b2World.cpp.

void b2World::Solve ( const b2TimeStep step)
private

Definition at line 386 of file b2World.cpp.

void b2World::SolveTOI ( const b2TimeStep step)
private

Definition at line 577 of file b2World.cpp.

void b2World::Step ( float32  timeStep,
int32  velocityIterations,
int32  positionIterations 
)

Take a time step. This performs collision detection, integration, and constraint solution.

Parameters
timeStepthe amount of time to simulate, this should not vary.
velocityIterationsfor the velocity constraint solver.
positionIterationsfor the position constraint solver.

Definition at line 897 of file b2World.cpp.

Friends And Related Function Documentation

friend class b2Body
friend

Definition at line 222 of file b2World.h.

friend class b2ContactManager
friend

Definition at line 224 of file b2World.h.

friend class b2Controller
friend

Definition at line 225 of file b2World.h.

friend class b2Fixture
friend

Definition at line 223 of file b2World.h.

Member Data Documentation

b2Draw* b2World::g_debugDraw
private

Definition at line 250 of file b2World.h.

bool b2World::m_allowSleep
private

Definition at line 247 of file b2World.h.

b2BlockAllocator b2World::m_blockAllocator
private

Definition at line 233 of file b2World.h.

int32 b2World::m_bodyCount
private

Definition at line 243 of file b2World.h.

b2Body* b2World::m_bodyList
private

Definition at line 240 of file b2World.h.

b2ContactManager b2World::m_contactManager
private

Definition at line 238 of file b2World.h.

bool b2World::m_continuousPhysics
private

Definition at line 258 of file b2World.h.

b2DestructionListener* b2World::m_destructionListener
private

Definition at line 249 of file b2World.h.

int32 b2World::m_flags
private

Definition at line 236 of file b2World.h.

b2Vec2 b2World::m_gravity
private

Definition at line 246 of file b2World.h.

float32 b2World::m_inv_dt0
private

Definition at line 254 of file b2World.h.

int32 b2World::m_jointCount
private

Definition at line 244 of file b2World.h.

b2Joint* b2World::m_jointList
private

Definition at line 241 of file b2World.h.

b2Profile b2World::m_profile
private

Definition at line 263 of file b2World.h.

b2StackAllocator b2World::m_stackAllocator
private

Definition at line 234 of file b2World.h.

bool b2World::m_stepComplete
private

Definition at line 261 of file b2World.h.

bool b2World::m_subStepping
private

Definition at line 259 of file b2World.h.

bool b2World::m_warmStarting
private

Definition at line 257 of file b2World.h.


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


mvsim
Author(s):
autogenerated on Fri May 7 2021 03:05:52