16 #ifndef BT_DISCRETE_DYNAMICS_WORLD_H
17 #define BT_DISCRETE_DYNAMICS_WORLD_H
void updateActions(btScalar timeStep)
BT_DECLARE_ALIGNED_ALLOCATOR()
virtual void clearForces()
the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.
void integrateTransformsInternal(btRigidBody **bodies, int numBodies, btScalar timeStep)
btSimulationIslandManager * m_islandManager
virtual void saveKinematicState(btScalar timeStep)
virtual void solveConstraints(btContactSolverInfo &solverInfo)
void setApplySpeculativeContactRestitution(bool enable)
virtual btConstraintSolver * getConstraintSolver()
virtual void removeRigidBody(btRigidBody *body)
virtual void serialize(btSerializer *serializer)
Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see B...
InplaceSolverIslandCallback * m_solverIslandCallback
virtual void removeConstraint(btTypedConstraint *constraint)
bool m_applySpeculativeContactRestitution
virtual void createPredictiveContacts(btScalar timeStep)
void synchronizeSingleMotionState(btRigidBody *body)
this can be useful to synchronize a single rigid body -> graphics object
void createPredictiveContactsInternal(btRigidBody **bodies, int numBodies, btScalar timeStep)
virtual void addRigidBody(btRigidBody *body)
virtual void removeCharacter(btActionInterface *character)
obsolete, use removeAction instead
bool m_ownsConstraintSolver
btAlignedObjectArray< btRigidBody * > & getNonStaticRigidBodies()
void serializeRigidBodies(btSerializer *serializer)
btAlignedObjectArray< btRigidBody * > m_nonStaticRigidBodies
virtual btVector3 getGravity() const
virtual void synchronizeMotionStates()
bool m_synchronizeAllMotionStates
virtual btTypedConstraint * getConstraint(int index)
virtual void setGravity(const btVector3 &gravity)
void serializeDynamicsWorldInfo(btSerializer *serializer)
virtual void addCollisionObject(btCollisionObject *collisionObject, int collisionFilterGroup=btBroadphaseProxy::StaticFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter)
virtual void addAction(btActionInterface *)
bool getApplySpeculativeContactRestitution() const
virtual void addVehicle(btActionInterface *vehicle)
obsolete, use addAction instead
bool getSynchronizeAllMotionStates() const
virtual void updateActivationState(btScalar timeStep)
btDiscreteDynamicsWorld(btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete thos...
virtual int getNumConstraints() const
virtual void addConstraint(btTypedConstraint *constraint, bool disableCollisionsBetweenLinkedBodies=false)
virtual btDynamicsWorldType getWorldType() const
virtual void removeAction(btActionInterface *)
virtual void calculateSimulationIslands()
virtual void debugDrawWorld()
virtual void predictUnconstraintMotion(btScalar timeStep)
btAlignedObjectArray< btTypedConstraint * > m_constraints
btAlignedObjectArray< btPersistentManifold * > m_predictiveManifolds
virtual void integrateTransforms(btScalar timeStep)
virtual void setNumTasks(int numTasks)
btSimulationIslandManager * getSimulationIslandManager()
virtual void removeCollisionObject(btCollisionObject *collisionObject)
removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise ca...
btCollisionWorld * getCollisionWorld()
bool getLatencyMotionStateInterpolation() const
virtual void addCharacter(btActionInterface *character)
obsolete, use addAction instead
btAlignedObjectArray< btActionInterface * > m_actions
virtual void setConstraintSolver(btConstraintSolver *solver)
bool m_latencyMotionStateInterpolation
virtual int stepSimulation(btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
virtual void removeVehicle(btActionInterface *vehicle)
obsolete, use removeAction instead
void setLatencyMotionStateInterpolation(bool latencyInterpolation)
virtual void debugDrawConstraint(btTypedConstraint *constraint)
btSpinMutex m_predictiveManifoldsMutex
btConstraintSolver * m_constraintSolver
virtual ~btDiscreteDynamicsWorld()
virtual void applyGravity()
apply gravity, call this once per timestep
virtual void updateVehicles(btScalar timeStep)
obsolete, use updateActions instead
virtual void internalSingleStepSimulation(btScalar timeStep)
void setSynchronizeAllMotionStates(bool synchronizeAll)
void releasePredictiveContacts()
void startProfiling(btScalar timeStep)
@ BT_DISCRETE_DYNAMICS_WORLD
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
btSequentialImpulseConstraintSolverMt int numBodies
btTypedConstraint(btTypedConstraintType type, btRigidBody &rbA)
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...
Basic interface to allow actions such as vehicles and characters to be updated inside a btDynamicsWor...
CollisionWorld is interface and container for the collision detection.
The btDynamicsWorld is the interface class for several dynamics implementation, basic,...
SimulationIslandManager creates and handles simulation islands, using btUnionFind.
SyclQueue void void size_t num_bytes void
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
btTypedConstraint ** m_sortedConstraints