23 #include <Box2D/Common/b2Math.h>
24 #include <Box2D/Common/b2BlockAllocator.h>
25 #include <Box2D/Common/b2StackAllocator.h>
26 #include <Box2D/Dynamics/b2ContactManager.h>
27 #include <Box2D/Dynamics/b2WorldCallbacks.h>
28 #include <Box2D/Dynamics/b2TimeStep.h>
29 #include <Box2D/Particle/b2ParticleSystem.h>
97 void Step( float32 timeStep,
98 int32 velocityIterations,
99 int32 positionIterations);
149 bool GetAllowSleeping()
const {
return m_allowSleep; }
153 bool GetWarmStarting()
const {
return m_warmStarting; }
157 bool GetContinuousPhysics()
const {
return m_continuousPhysics; }
161 bool GetSubStepping()
const {
return m_subStepping; }
264 bool callDestructionListener);
347 b2Vec2* GetParticlePositionBuffer();
348 b2Vec2* GetParticleVelocityBuffer();
351 void** GetParticleUserDataBuffer();
353 const b2Vec2* GetParticlePositionBuffer()
const;
354 const b2Vec2* GetParticleVelocityBuffer()
const;
357 void*
const* GetParticleUserDataBuffer()
const;
363 void SetParticlePositionBuffer(
b2Vec2* buffer, int32 capacity);
364 void SetParticleVelocityBuffer(
b2Vec2* buffer, int32 capacity);
366 void SetParticleUserDataBuffer(
void** buffer, int32 capacity);
370 int32 GetParticleContactCount();
374 int32 GetParticleBodyContactCount();
381 return m_liquidFunVersion;
386 return m_liquidFunVersionString;
394 e_newFixture = 0x0001,
396 e_clearForces = 0x0004
402 friend class b2Controller;
408 void DrawJoint(
b2Joint* joint);
438 bool m_continuousPhysics;
450 const char *m_liquidFunVersionString;
475 return m_contactManager.m_contactList;
480 return m_contactManager.m_contactList;
495 return m_contactManager.m_contactCount;
510 return (m_flags & e_locked) == e_locked;
517 m_flags |= e_clearForces;
521 m_flags &= ~e_clearForces;
528 return (m_flags & e_clearForces) == e_clearForces;
533 return m_contactManager;
543 return m_particleSystem.GetParticleGroupList();
548 return m_particleSystem.GetParticleGroupList();
553 return m_particleSystem.GetParticleGroupCount();
558 return m_particleSystem.GetParticleCount();
b2Vec2 GetGravity() const
Get the global gravity vector.
Definition: b2World.h:503
Definition: b2WorldCallbacks.h:38
Profiling data. Times are in milliseconds.
Definition: b2TimeStep.h:25
int32 GetParticleMaxCount() const
Get the maximum number of particles.
Definition: b2World.cpp:1377
int32 GetParticleCount() const
Get the number of particles.
Definition: b2World.h:556
void SetDebugDraw(b2Draw *debugDraw)
Definition: b2World.cpp:109
Definition: b2ParticleGroup.h:37
b2Contact * GetContactList()
Definition: b2World.h:473
int32 GetTreeBalance() const
Get the balance of the dynamic tree.
Definition: b2World.cpp:1285
Definition: b2WorldCallbacks.h:160
float32 GetParticleGravityScale() const
Get the particle gravity scale.
Definition: b2World.cpp:1402
const b2Version * GetVersion() const
Get API version.
Definition: b2World.h:380
void SetContactFilter(b2ContactFilter *filter)
Definition: b2World.cpp:99
void SetParticleGravityScale(float32 gravityScale)
Definition: b2World.cpp:1397
void SetParticleRadius(float32 radius)
Definition: b2World.cpp:1417
Definition: b2StackAllocator.h:37
int32 GetProxyCount() const
Get the number of broad-phase proxies.
Definition: b2World.cpp:1275
float32 GetParticleDensity() const
Get the particle density.
Definition: b2World.cpp:1392
Definition: b2ParticleSystem.h:74
float32 GetTreeQuality() const
Definition: b2World.cpp:1290
void DrawDebugData()
Call this to draw shapes and other debug draw data.
Definition: b2World.cpp:1170
bool GetAutoClearForces() const
Get the flag that controls automatic clearing of forces after each time step.
Definition: b2World.h:526
void ShiftOrigin(const b2Vec2 &newOrigin)
Definition: b2World.cpp:1295
b2Joint * CreateJoint(const b2JointDef *def)
Definition: b2World.cpp:219
Definition: b2BlockAllocator.h:35
Color for debug drawing. Each value has the range [0,1].
Definition: b2Draw.h:26
Definition: b2Joint.h:103
b2Body * GetBodyList()
Definition: b2World.h:453
void Dump()
Definition: b2World.cpp:1318
void DestroyParticlesInGroup(b2ParticleGroup *group)
Definition: b2World.h:291
void SetSubStepping(bool flag)
Enable/disable single stepped continuous physics. For testing.
Definition: b2World.h:160
Definition: b2Particle.h:85
void DestroyJoint(b2Joint *joint)
Definition: b2World.cpp:279
int32 GetParticleGroupCount() const
Get the number of particle groups.
Definition: b2World.h:551
void JoinParticleGroups(b2ParticleGroup *groupA, b2ParticleGroup *groupB)
Definition: b2World.cpp:1466
Definition: b2Settings.h:168
void SetParticleMaxCount(int32 count)
Set the maximum number of particles.
Definition: b2World.cpp:1382
void SetContinuousPhysics(bool flag)
Enable/disable continuous physics. For testing.
Definition: b2World.h:156
float32 GetParticleRadius() const
Get the particle radius.
Definition: b2World.cpp:1422
void DestroyBody(b2Body *body)
Definition: b2World.cpp:138
A group of particles. These are created via b2World::CreateParticleGroup.
Definition: b2ParticleGroup.h:93
float32 GetParticleDamping() const
Get damping for particles.
Definition: b2World.cpp:1412
An axis aligned bounding box.
Definition: b2Collision.h:161
int32 GetContactCount() const
Get the number of contacts (each may have 0 or more contact points).
Definition: b2World.h:493
void SetAutoClearForces(bool flag)
Set flag to control automatic clearing of forces after each time step.
Definition: b2World.h:513
b2Body * CreateBody(const b2BodyDef *def)
Definition: b2World.cpp:114
This is an internal structure.
Definition: b2TimeStep.h:38
void SetParticleDamping(float32 damping)
Definition: b2World.cpp:1407
const b2ParticleBodyContact * GetParticleBodyContacts()
Get contacts between particles and bodies.
Definition: b2World.cpp:1581
void SetContactListener(b2ContactListener *listener)
Definition: b2World.cpp:104
b2Joint * GetJointList()
Definition: b2World.h:463
int32 GetJointCount() const
Get the number of joints.
Definition: b2World.h:488
Joint definitions are used to construct joints.
Definition: b2Joint.h:74
Definition: b2ParticleSystem.h:55
int32 GetBodyCount() const
Get the number of bodies.
Definition: b2World.h:483
A rigid body. These are created via b2World::CreateBody.
Definition: b2Body.h:127
void SetParticleFlagsBuffer(uint32 *buffer, int32 capacity)
Definition: b2World.cpp:1541
b2World(const b2Vec2 &gravity)
Definition: b2World.cpp:38
b2ParticleGroup * GetParticleGroupList()
Definition: b2World.h:541
const b2ParticleContact * GetParticleContacts()
Get contacts between particles.
Definition: b2World.cpp:1571
~b2World()
Destruct the world. All physics entities are destroyed and all heap memory is released.
Definition: b2World.cpp:73
void ClearForces()
Definition: b2World.cpp:979
int32 CreateParticle(const b2ParticleDef &def)
Definition: b2World.cpp:1427
const char * GetVersionString() const
Get API version string.
Definition: b2World.h:385
void SetWarmStarting(bool flag)
Enable/disable warm starting. For testing.
Definition: b2World.h:152
void DestroyParticlesInGroup(b2ParticleGroup *group, bool callDestructionListener)
Definition: b2World.cpp:1476
void RayCast(b2RayCastCallback *callback, const b2Vec2 &point1, const b2Vec2 &point2) const
Definition: b2World.cpp:1034
void DestroyParticle(int32 index)
Definition: b2World.h:226
void Step(float32 timeStep, int32 velocityIterations, int32 positionIterations)
Definition: b2World.cpp:910
Small color object for each particle.
Definition: b2Particle.h:42
bool IsLocked() const
Is the world locked (in the middle of a time step).
Definition: b2World.h:508
float32 ComputeParticleCollisionEnergy() const
Compute the kinetic energy that can be lost by damping force.
Definition: b2World.cpp:1591
void SetAllowSleeping(bool flag)
Enable/disable sleep.
Definition: b2World.cpp:375
uint32 * GetParticleFlagsBuffer()
Definition: b2World.cpp:1486
Definition: b2ParticleSystem.h:39
A 2D column vector.
Definition: b2Math.h:64
void SetParticleDensity(float32 density)
Change the particle density.
Definition: b2World.cpp:1387
const b2ContactManager & GetContactManager() const
Get the contact manager for testing.
Definition: b2World.h:531
b2ParticleGroup * CreateParticleGroup(const b2ParticleGroupDef &def)
Definition: b2World.cpp:1455
void SetGravity(const b2Vec2 &gravity)
Change the global gravity vector.
Definition: b2World.h:498
const b2Profile & GetProfile() const
Get the current profile.
Definition: b2World.h:536
Definition: b2WorldCallbacks.h:140
void QueryAABB(b2QueryCallback *callback, const b2AABB &aabb) const
Definition: b2World.cpp:1000
int32 GetTreeHeight() const
Get the height of the dynamic tree.
Definition: b2World.cpp:1280
int32 DestroyParticlesInShape(const b2Shape &shape, const b2Transform &xf)
Definition: b2World.h:247
Definition: b2Fixture.h:108
void SetDestructionListener(b2DestructionListener *listener)
Definition: b2World.cpp:94