org.jbox2d.dynamics
Class World

java.lang.Object
  extended by org.jbox2d.dynamics.World

public class World
extends Object

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

Author:
Daniel Murphy

Field Summary
 int activeContacts
           
static int CLEAR_FORCES
           
 int contactPoolCount
           
static int LOCKED
           
protected  ContactManager m_contactManager
           
protected  int m_flags
           
static int NEW_FIXTURE
           
static int WORLD_POOL_CONTAINER_SIZE
           
static int WORLD_POOL_SIZE
           
 
Constructor Summary
World(Vec2 gravity)
          Construct a world object.
World(Vec2 gravity, IWorldPool pool)
          Construct a world object.
World(Vec2 gravity, IWorldPool argPool, BroadPhaseStrategy broadPhaseStrategy)
           
 
Method Summary
 void clearForces()
          Call this after you are done with time steps to clear the forces.
 Body createBody(BodyDef def)
          create a rigid body given a definition.
 Joint createJoint(JointDef def)
          create a joint to constrain bodies together.
 void destroyBody(Body body)
          destroy a rigid body given a definition.
 void destroyJoint(Joint j)
          destroy a joint.
 void drawDebugData()
          Call this to draw shapes and other debug draw data.
 boolean getAutoClearForces()
          Get the flag that controls automatic clearing of forces after each time step.
 int getBodyCount()
          Get the number of bodies.
 Body getBodyList()
          Get the world body list.
 int getContactCount()
          Get the number of contacts (each may have 0 or more contact points).
 Contact getContactList()
          Get the world contact list.
 ContactManager getContactManager()
          Get the contact manager for testing purposes
 Vec2 getGravity()
          Get the global gravity vector.
 int getJointCount()
          Get the number of joints.
 Joint getJointList()
          Get the world joint list.
 IWorldPool getPool()
           
 Profile getProfile()
           
 int getProxyCount()
          Get the number of broad-phase proxies.
 int getTreeBalance()
          Gets the balance of the dynamic tree
 int getTreeHeight()
          Gets the height of the dynamic tree
 float getTreeQuality()
          Gets the quality of the dynamic tree
 boolean isAllowSleep()
           
 boolean isContinuousPhysics()
           
 boolean isLocked()
          Is the world locked (in the middle of a time step).
 boolean isSleepingAllowed()
           
 boolean isSubStepping()
           
 boolean isWarmStarting()
           
 Contact popContact(Fixture fixtureA, int indexA, Fixture fixtureB, int indexB)
           
 void pushContact(Contact contact)
           
 void queryAABB(QueryCallback callback, AABB aabb)
          Query the world for all fixtures that potentially overlap the provided AABB.
 void raycast(RayCastCallback callback, Vec2 point1, Vec2 point2)
          Ray-cast the world for all fixtures in the path of the ray.
 void setAllowSleep(boolean flag)
           
 void setAutoClearForces(boolean flag)
          Set flag to control automatic clearing of forces after each time step.
 void setContactFilter(ContactFilter filter)
          Register a contact filter to provide specific control over collision.
 void setContactListener(ContactListener listener)
          Register a contact event listener.
 void setContinuousPhysics(boolean flag)
          Enable/disable continuous physics.
 void setDebugDraw(DebugDraw debugDraw)
          Register a routine for debug drawing.
 void setDestructionListener(DestructionListener listener)
          Register a destruction listener.
 void setGravity(Vec2 gravity)
          Change the global gravity vector.
 void setSleepingAllowed(boolean sleepingAllowed)
           
 void setSubStepping(boolean subStepping)
           
 void setWarmStarting(boolean flag)
          Enable/disable warm starting.
 void step(float dt, int velocityIterations, int positionIterations)
          Take a time step.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WORLD_POOL_SIZE

public static final int WORLD_POOL_SIZE
See Also:
Constant Field Values

WORLD_POOL_CONTAINER_SIZE

public static final int WORLD_POOL_CONTAINER_SIZE
See Also:
Constant Field Values

NEW_FIXTURE

public static final int NEW_FIXTURE
See Also:
Constant Field Values

LOCKED

public static final int LOCKED
See Also:
Constant Field Values

CLEAR_FORCES

public static final int CLEAR_FORCES
See Also:
Constant Field Values

activeContacts

public int activeContacts

contactPoolCount

public int contactPoolCount

m_flags

protected int m_flags

m_contactManager

protected ContactManager m_contactManager
Constructor Detail

World

public World(Vec2 gravity)
Construct a world object.

Parameters:
gravity - the world gravity vector.

World

public World(Vec2 gravity,
             IWorldPool pool)
Construct a world object.

Parameters:
gravity - the world gravity vector.

World

public World(Vec2 gravity,
             IWorldPool argPool,
             BroadPhaseStrategy broadPhaseStrategy)
Method Detail

setAllowSleep

public void setAllowSleep(boolean flag)

setSubStepping

public void setSubStepping(boolean subStepping)

isSubStepping

public boolean isSubStepping()

isAllowSleep

public boolean isAllowSleep()

popContact

public Contact popContact(Fixture fixtureA,
                          int indexA,
                          Fixture fixtureB,
                          int indexB)

pushContact

public void pushContact(Contact contact)

getPool

public IWorldPool getPool()

setDestructionListener

public void setDestructionListener(DestructionListener listener)
Register a destruction listener. The listener is owned by you and must remain in scope.

Parameters:
listener -

setContactFilter

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

Parameters:
filter -

setContactListener

public void setContactListener(ContactListener listener)
Register a contact event listener. The listener is owned by you and must remain in scope.

Parameters:
listener -

setDebugDraw

public void setDebugDraw(DebugDraw debugDraw)
Register a routine for debug drawing. The debug draw functions are called inside with World.DrawDebugData method. The debug draw object is owned by you and must remain in scope.

Parameters:
debugDraw -

createBody

public Body createBody(BodyDef def)
create a rigid body given a definition. No reference to the definition is retained.

Parameters:
def -
Returns:

destroyBody

public void destroyBody(Body body)
destroy a rigid body given a definition. No reference to the definition is retained. This function is locked during callbacks.

Parameters:
body -

createJoint

public Joint createJoint(JointDef def)
create a joint to constrain bodies together. No reference to the definition is retained. This may cause the connected bodies to cease colliding.

Parameters:
def -
Returns:

destroyJoint

public void destroyJoint(Joint j)
destroy a joint. This may cause the connected bodies to begin colliding.

Parameters:
joint -

step

public void step(float dt,
                 int velocityIterations,
                 int positionIterations)
Take a time step. This performs collision detection, integration, and constraint solution.

Parameters:
timeStep - the amount of time to simulate, this should not vary.
velocityIterations - for the velocity constraint solver.
positionIterations - for the position constraint solver.

clearForces

public void clearForces()
Call this after you are done with time steps to clear the forces. You normally call this after each call to Step, unless you are performing sub-steps. By default, forces will be automatically cleared, so you don't need to call this function.

See Also:
setAutoClearForces

drawDebugData

public void drawDebugData()
Call this to draw shapes and other debug draw data.


queryAABB

public void queryAABB(QueryCallback callback,
                      AABB aabb)
Query the world for all fixtures that potentially overlap the provided AABB.

Parameters:
callback - a user implemented callback class.
aabb - the query box.

raycast

public void raycast(RayCastCallback callback,
                    Vec2 point1,
                    Vec2 point2)
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:
callback - a user implemented callback class.
point1 - the ray starting point
point2 - the ray ending point

getBodyList

public Body getBodyList()
Get the world body list. With the returned body, use Body.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.

getJointList

public Joint getJointList()
Get the world joint list. With the returned joint, use Joint.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.

getContactList

public Contact getContactList()
Get the world contact list. With the returned contact, use Contact.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.

isSleepingAllowed

public boolean isSleepingAllowed()

setSleepingAllowed

public void setSleepingAllowed(boolean sleepingAllowed)

setWarmStarting

public void setWarmStarting(boolean flag)
Enable/disable warm starting. For testing.

Parameters:
flag -

isWarmStarting

public boolean isWarmStarting()

setContinuousPhysics

public void setContinuousPhysics(boolean flag)
Enable/disable continuous physics. For testing.

Parameters:
flag -

isContinuousPhysics

public boolean isContinuousPhysics()

getProxyCount

public int getProxyCount()
Get the number of broad-phase proxies.

Returns:

getBodyCount

public int getBodyCount()
Get the number of bodies.

Returns:

getJointCount

public int getJointCount()
Get the number of joints.

Returns:

getContactCount

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

Returns:

getTreeHeight

public int getTreeHeight()
Gets the height of the dynamic tree

Returns:

getTreeBalance

public int getTreeBalance()
Gets the balance of the dynamic tree

Returns:

getTreeQuality

public float getTreeQuality()
Gets the quality of the dynamic tree

Returns:

setGravity

public void setGravity(Vec2 gravity)
Change the global gravity vector.

Parameters:
gravity -

getGravity

public Vec2 getGravity()
Get the global gravity vector.

Returns:

isLocked

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

Returns:

setAutoClearForces

public void setAutoClearForces(boolean flag)
Set flag to control automatic clearing of forces after each time step.

Parameters:
flag -

getAutoClearForces

public boolean getAutoClearForces()
Get the flag that controls automatic clearing of forces after each time step.

Returns:

getContactManager

public ContactManager getContactManager()
Get the contact manager for testing purposes

Returns:

getProfile

public Profile getProfile()


Copyright © 2013. All Rights Reserved.