com.bulletphysics.dynamics
Class DiscreteDynamicsWorld

java.lang.Object
  extended by com.bulletphysics.collision.dispatch.CollisionWorld
      extended by com.bulletphysics.dynamics.DynamicsWorld
          extended by com.bulletphysics.dynamics.DiscreteDynamicsWorld

public class DiscreteDynamicsWorld
extends DynamicsWorld

DiscreteDynamicsWorld provides discrete rigid body simulation. Those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.bulletphysics.collision.dispatch.CollisionWorld
CollisionWorld.ClosestConvexResultCallback, CollisionWorld.ClosestRayResultCallback, CollisionWorld.ConvexResultCallback, CollisionWorld.LocalConvexResult, CollisionWorld.LocalRayResult, CollisionWorld.LocalShapeInfo, CollisionWorld.RayResultCallback
 
Field Summary
protected  java.util.List<TypedConstraint> constraints
           
protected  ConstraintSolver constraintSolver
           
protected  javax.vecmath.Vector3f gravity
           
protected  SimulationIslandManager islandManager
           
protected  float localTime
           
protected  boolean ownsConstraintSolver
           
protected  boolean ownsIslandManager
           
protected  int profileTimings
           
protected  java.util.List<RaycastVehicle> vehicles
           
 
Fields inherited from class com.bulletphysics.dynamics.DynamicsWorld
internalTickCallback, solverInfo, worldUserInfo
 
Fields inherited from class com.bulletphysics.collision.dispatch.CollisionWorld
broadphasePairCache, collisionObjects, debugDrawer, dispatcher1, dispatchInfo
 
Constructor Summary
DiscreteDynamicsWorld(Dispatcher dispatcher, BroadphaseInterface pairCache, ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
           
 
Method Summary
 void addConstraint(TypedConstraint constraint, boolean disableCollisionsBetweenLinkedBodies)
           
 void addRigidBody(RigidBody body)
           
 void addRigidBody(RigidBody body, short group, short mask)
           
 void addVehicle(RaycastVehicle vehicle)
           
 void applyGravity()
          Apply gravity, call this once per timestep.
protected  void calculateSimulationIslands()
           
 void clearForces()
           
 void debugDrawObject(Transform worldTransform, CollisionShape shape, javax.vecmath.Vector3f color)
           
protected  void debugDrawSphere(float radius, Transform transform, javax.vecmath.Vector3f color)
           
 void debugDrawWorld()
           
 CollisionWorld getCollisionWorld()
           
 TypedConstraint getConstraint(int index)
           
 ConstraintSolver getConstraintSolver()
           
 javax.vecmath.Vector3f getGravity(javax.vecmath.Vector3f out)
           
 int getNumConstraints()
           
 SimulationIslandManager getSimulationIslandManager()
           
 DynamicsWorldType getWorldType()
           
protected  void integrateTransforms(float timeStep)
           
protected  void internalSingleStepSimulation(float timeStep)
           
protected  void predictUnconstraintMotion(float timeStep)
           
 void removeConstraint(TypedConstraint constraint)
           
 void removeRigidBody(RigidBody body)
           
 void removeVehicle(RaycastVehicle vehicle)
           
protected  void saveKinematicState(float timeStep)
           
 void setConstraintSolver(ConstraintSolver solver)
           
 void setGravity(javax.vecmath.Vector3f gravity)
          Once a rigidbody is added to the dynamics world, it will get this gravity assigned.
protected  void solveConstraints(ContactSolverInfo solverInfo)
           
protected  void startProfiling(float timeStep)
           
 int stepSimulation(float timeStep, int maxSubSteps, float fixedTimeStep)
          stepSimulation proceeds the simulation over timeStep units.
protected  void synchronizeMotionStates()
           
protected  void updateActivationState(float timeStep)
           
protected  void updateVehicles(float timeStep)
           
 
Methods inherited from class com.bulletphysics.dynamics.DynamicsWorld
addConstraint, getSolverInfo, getWorldUserInfo, setInternalTickCallback, setWorldUserInfo, stepSimulation, stepSimulation
 
Methods inherited from class com.bulletphysics.collision.dispatch.CollisionWorld
addCollisionObject, addCollisionObject, destroy, getBroadphase, getCollisionObjectArray, getDebugDrawer, getDispatcher, getDispatchInfo, getNumCollisionObjects, getPairCache, performDiscreteCollisionDetection, rayTest, rayTestSingle, removeCollisionObject, setBroadphase, setDebugDrawer, updateAabbs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

constraintSolver

protected ConstraintSolver constraintSolver

islandManager

protected SimulationIslandManager islandManager

constraints

protected final java.util.List<TypedConstraint> constraints

gravity

protected final javax.vecmath.Vector3f gravity

localTime

protected float localTime

ownsIslandManager

protected boolean ownsIslandManager

ownsConstraintSolver

protected boolean ownsConstraintSolver

vehicles

protected java.util.List<RaycastVehicle> vehicles

profileTimings

protected int profileTimings
Constructor Detail

DiscreteDynamicsWorld

public DiscreteDynamicsWorld(Dispatcher dispatcher,
                             BroadphaseInterface pairCache,
                             ConstraintSolver constraintSolver,
                             CollisionConfiguration collisionConfiguration)
Method Detail

saveKinematicState

protected void saveKinematicState(float timeStep)

debugDrawWorld

public void debugDrawWorld()
Specified by:
debugDrawWorld in class DynamicsWorld

clearForces

public void clearForces()
Specified by:
clearForces in class DynamicsWorld

applyGravity

public void applyGravity()
Apply gravity, call this once per timestep.


synchronizeMotionStates

protected void synchronizeMotionStates()

stepSimulation

public int stepSimulation(float timeStep,
                          int maxSubSteps,
                          float fixedTimeStep)
Description copied from class: DynamicsWorld
stepSimulation proceeds the simulation over timeStep units. if maxSubSteps > 0, it will interpolate time steps.

Specified by:
stepSimulation in class DynamicsWorld

internalSingleStepSimulation

protected void internalSingleStepSimulation(float timeStep)

setGravity

public void setGravity(javax.vecmath.Vector3f gravity)
Description copied from class: DynamicsWorld
Once a rigidbody is added to the dynamics world, it will get this gravity assigned. Existing rigidbodies in the world get gravity assigned too, during this method.

Specified by:
setGravity in class DynamicsWorld

getGravity

public javax.vecmath.Vector3f getGravity(javax.vecmath.Vector3f out)
Specified by:
getGravity in class DynamicsWorld

removeRigidBody

public void removeRigidBody(RigidBody body)
Specified by:
removeRigidBody in class DynamicsWorld

addRigidBody

public void addRigidBody(RigidBody body)
Specified by:
addRigidBody in class DynamicsWorld

addRigidBody

public void addRigidBody(RigidBody body,
                         short group,
                         short mask)

updateVehicles

protected void updateVehicles(float timeStep)

updateActivationState

protected void updateActivationState(float timeStep)

addConstraint

public void addConstraint(TypedConstraint constraint,
                          boolean disableCollisionsBetweenLinkedBodies)
Overrides:
addConstraint in class DynamicsWorld

removeConstraint

public void removeConstraint(TypedConstraint constraint)
Overrides:
removeConstraint in class DynamicsWorld

addVehicle

public void addVehicle(RaycastVehicle vehicle)
Overrides:
addVehicle in class DynamicsWorld

removeVehicle

public void removeVehicle(RaycastVehicle vehicle)
Overrides:
removeVehicle in class DynamicsWorld

solveConstraints

protected void solveConstraints(ContactSolverInfo solverInfo)

calculateSimulationIslands

protected void calculateSimulationIslands()

integrateTransforms

protected void integrateTransforms(float timeStep)

predictUnconstraintMotion

protected void predictUnconstraintMotion(float timeStep)

startProfiling

protected void startProfiling(float timeStep)

debugDrawSphere

protected void debugDrawSphere(float radius,
                               Transform transform,
                               javax.vecmath.Vector3f color)

debugDrawObject

public void debugDrawObject(Transform worldTransform,
                            CollisionShape shape,
                            javax.vecmath.Vector3f color)

setConstraintSolver

public void setConstraintSolver(ConstraintSolver solver)
Specified by:
setConstraintSolver in class DynamicsWorld

getConstraintSolver

public ConstraintSolver getConstraintSolver()
Specified by:
getConstraintSolver in class DynamicsWorld

getNumConstraints

public int getNumConstraints()
Overrides:
getNumConstraints in class DynamicsWorld

getConstraint

public TypedConstraint getConstraint(int index)
Overrides:
getConstraint in class DynamicsWorld

getSimulationIslandManager

public SimulationIslandManager getSimulationIslandManager()

getCollisionWorld

public CollisionWorld getCollisionWorld()

getWorldType

public DynamicsWorldType getWorldType()
Specified by:
getWorldType in class DynamicsWorld