public class DiscreteDynamicsWorld extends DynamicsWorld
CollisionWorld.ClosestConvexResultCallback, CollisionWorld.ClosestRayResultCallback, CollisionWorld.ConvexResultCallback, CollisionWorld.LocalConvexResult, CollisionWorld.LocalRayResult, CollisionWorld.LocalShapeInfo, CollisionWorld.RayResultCallback
Modifier and Type | Field and Description |
---|---|
protected ObjectArrayList<ActionInterface> |
actions |
protected ObjectArrayList<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 ObjectArrayList<RaycastVehicle> |
vehicles |
internalTickCallback, solverInfo, worldUserInfo
broadphasePairCache, collisionObjects, debugDrawer, dispatcher1, dispatchInfo
Constructor and Description |
---|
DiscreteDynamicsWorld(Dispatcher dispatcher,
BroadphaseInterface pairCache,
ConstraintSolver constraintSolver,
CollisionConfiguration collisionConfiguration) |
Modifier and Type | Method and Description |
---|---|
void |
addAction(ActionInterface action) |
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() |
ActionInterface |
getAction(int index) |
CollisionWorld |
getCollisionWorld() |
TypedConstraint |
getConstraint(int index) |
ConstraintSolver |
getConstraintSolver() |
javax.vecmath.Vector3f |
getGravity(javax.vecmath.Vector3f out) |
int |
getNumActions() |
int |
getNumConstraints() |
SimulationIslandManager |
getSimulationIslandManager() |
DynamicsWorldType |
getWorldType() |
protected void |
integrateTransforms(float timeStep) |
protected void |
internalSingleStepSimulation(float timeStep) |
protected void |
predictUnconstraintMotion(float timeStep) |
void |
removeAction(ActionInterface action) |
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.
|
void |
setNumTasks(int numTasks) |
protected void |
solveConstraints(ContactSolverInfo solverInfo) |
protected void |
startProfiling(float timeStep) |
int |
stepSimulation(float timeStep,
int maxSubSteps,
float fixedTimeStep)
Proceeds the simulation over 'timeStep', units in preferably in seconds.
|
protected void |
synchronizeMotionStates() |
void |
updateActions(float timeStep) |
protected void |
updateActivationState(float timeStep) |
protected void |
updateVehicles(float timeStep) |
addConstraint, getSolverInfo, getWorldUserInfo, setInternalTickCallback, setWorldUserInfo, stepSimulation, stepSimulation
addCollisionObject, addCollisionObject, convexSweepTest, destroy, getBroadphase, getCollisionObjectArray, getDebugDrawer, getDispatcher, getDispatchInfo, getNumCollisionObjects, getPairCache, objectQuerySingle, performDiscreteCollisionDetection, rayTest, rayTestSingle, removeCollisionObject, setBroadphase, setDebugDrawer, updateAabbs, updateSingleAabb
protected ConstraintSolver constraintSolver
protected SimulationIslandManager islandManager
protected final ObjectArrayList<TypedConstraint> constraints
protected final javax.vecmath.Vector3f gravity
protected float localTime
protected boolean ownsIslandManager
protected boolean ownsConstraintSolver
protected ObjectArrayList<RaycastVehicle> vehicles
protected ObjectArrayList<ActionInterface> actions
protected int profileTimings
public DiscreteDynamicsWorld(Dispatcher dispatcher, BroadphaseInterface pairCache, ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
protected void saveKinematicState(float timeStep)
public void debugDrawWorld()
debugDrawWorld
in class DynamicsWorld
public void clearForces()
clearForces
in class DynamicsWorld
public void applyGravity()
protected void synchronizeMotionStates()
public int stepSimulation(float timeStep, int maxSubSteps, float fixedTimeStep)
DynamicsWorld
By default, Bullet will subdivide the timestep in constant substeps of each 'fixedTimeStep'.
In order to keep the simulation real-time, the maximum number of substeps can be clamped to 'maxSubSteps'.
You can disable subdividing the timestep/substepping by passing maxSubSteps=0 as second argument to stepSimulation, but in that case you have to keep the timeStep constant.
stepSimulation
in class DynamicsWorld
protected void internalSingleStepSimulation(float timeStep)
public void setGravity(javax.vecmath.Vector3f gravity)
DynamicsWorld
setGravity
in class DynamicsWorld
public javax.vecmath.Vector3f getGravity(javax.vecmath.Vector3f out)
getGravity
in class DynamicsWorld
public void removeRigidBody(RigidBody body)
removeRigidBody
in class DynamicsWorld
public void addRigidBody(RigidBody body)
addRigidBody
in class DynamicsWorld
public void addRigidBody(RigidBody body, short group, short mask)
public void updateActions(float timeStep)
protected void updateVehicles(float timeStep)
protected void updateActivationState(float timeStep)
public void addConstraint(TypedConstraint constraint, boolean disableCollisionsBetweenLinkedBodies)
addConstraint
in class DynamicsWorld
public void removeConstraint(TypedConstraint constraint)
removeConstraint
in class DynamicsWorld
public void addAction(ActionInterface action)
addAction
in class DynamicsWorld
public void removeAction(ActionInterface action)
removeAction
in class DynamicsWorld
public void addVehicle(RaycastVehicle vehicle)
addVehicle
in class DynamicsWorld
public void removeVehicle(RaycastVehicle vehicle)
removeVehicle
in class DynamicsWorld
protected void solveConstraints(ContactSolverInfo solverInfo)
protected void calculateSimulationIslands()
protected void integrateTransforms(float timeStep)
protected void predictUnconstraintMotion(float timeStep)
protected void startProfiling(float timeStep)
protected void debugDrawSphere(float radius, Transform transform, javax.vecmath.Vector3f color)
public void debugDrawObject(Transform worldTransform, CollisionShape shape, javax.vecmath.Vector3f color)
public void setConstraintSolver(ConstraintSolver solver)
setConstraintSolver
in class DynamicsWorld
public ConstraintSolver getConstraintSolver()
getConstraintSolver
in class DynamicsWorld
public int getNumConstraints()
getNumConstraints
in class DynamicsWorld
public TypedConstraint getConstraint(int index)
getConstraint
in class DynamicsWorld
public int getNumActions()
getNumActions
in class DynamicsWorld
public ActionInterface getAction(int index)
getAction
in class DynamicsWorld
public SimulationIslandManager getSimulationIslandManager()
public CollisionWorld getCollisionWorld()
public DynamicsWorldType getWorldType()
getWorldType
in class DynamicsWorld
public void setNumTasks(int numTasks)
Copyright © 2013. All Rights Reserved.