Blender V4.5
btSoftMultiBodyDynamicsWorld Class Reference

#include <btSoftMultiBodyDynamicsWorld.h>

Inherits btMultiBodyDynamicsWorld.

Public Member Functions

 btSoftMultiBodyDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btMultiBodyConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration, btSoftBodySolver *softBodySolver=0)
virtual ~btSoftMultiBodyDynamicsWorld ()
virtual void debugDrawWorld ()
void addSoftBody (btSoftBody *body, int collisionFilterGroup=btBroadphaseProxy::DefaultFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter)
void removeSoftBody (btSoftBody *body)
virtual void removeCollisionObject (btCollisionObject *collisionObject)
 removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btDiscreteDynamicsWorld::removeCollisionObject
int getDrawFlags () const
void setDrawFlags (int f)
btSoftBodyWorldInfo & getWorldInfo ()
const btSoftBodyWorldInfo & getWorldInfo () const
virtual btDynamicsWorldType getWorldType () const
btSoftBodyArray & getSoftBodyArray ()
const btSoftBodyArray & getSoftBodyArray () const
virtual void rayTest (const btVector3 &rayFromWorld, const btVector3 &rayToWorld, RayResultCallback &resultCallback) const
virtual void serialize (btSerializer *serializer)
Public Member Functions inherited from btMultiBodyDynamicsWorld
 btMultiBodyDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btMultiBodyConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
virtual ~btMultiBodyDynamicsWorld ()
virtual void solveConstraints (btContactSolverInfo &solverInfo)
virtual void addMultiBody (btMultiBody *body, int group=btBroadphaseProxy::DefaultFilter, int mask=btBroadphaseProxy::AllFilter)
virtual void removeMultiBody (btMultiBody *body)
virtual int getNumMultibodies () const
btMultiBody * getMultiBody (int mbIndex)
const btMultiBody * getMultiBody (int mbIndex) const
virtual void addMultiBodyConstraint (btMultiBodyConstraint *constraint)
virtual int getNumMultiBodyConstraints () const
virtual btMultiBodyConstraint * getMultiBodyConstraint (int constraintIndex)
virtual const btMultiBodyConstraint * getMultiBodyConstraint (int constraintIndex) const
virtual void removeMultiBodyConstraint (btMultiBodyConstraint *constraint)
virtual void integrateTransforms (btScalar timeStep)
void integrateMultiBodyTransforms (btScalar timeStep)
void predictMultiBodyTransforms (btScalar timeStep)
virtual void debugDrawMultiBodyConstraint (btMultiBodyConstraint *constraint)
void forwardKinematics ()
virtual void clearForces ()
virtual void clearMultiBodyConstraintForces ()
virtual void clearMultiBodyForces ()
virtual void applyGravity ()
virtual void setMultiBodyConstraintSolver (btMultiBodyConstraintSolver *solver)
virtual void setConstraintSolver (btConstraintSolver *solver)
virtual void getAnalyticsData (btAlignedObjectArray< struct btSolverAnalyticsData > &m_islandAnalyticsData) const
virtual void solveExternalForces (btContactSolverInfo &solverInfo)
virtual void solveInternalConstraints (btContactSolverInfo &solverInfo)
void buildIslands ()

Static Public Member Functions

static void rayTestSingle (const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, RayResultCallback &resultCallback)

Protected Member Functions

virtual void predictUnconstraintMotion (btScalar timeStep)
virtual void internalSingleStepSimulation (btScalar timeStep)
void solveSoftBodiesConstraints (btScalar timeStep)
void serializeSoftBodies (btSerializer *serializer)
Protected Member Functions inherited from btMultiBodyDynamicsWorld
virtual void calculateSimulationIslands ()
virtual void updateActivationState (btScalar timeStep)
virtual void serializeMultiBodies (btSerializer *serializer)

Additional Inherited Members

Protected Attributes inherited from btMultiBodyDynamicsWorld
btAlignedObjectArray< btMultiBody * > m_multiBodies
btAlignedObjectArray< btMultiBodyConstraint * > m_multiBodyConstraints
btAlignedObjectArray< btMultiBodyConstraint * > m_sortedMultiBodyConstraints
btMultiBodyConstraintSolver * m_multiBodyConstraintSolver
MultiBodyInplaceSolverIslandCallback * m_solverMultiBodyIslandCallback
btAlignedObjectArray< btQuaternion > m_scratch_world_to_local
btAlignedObjectArray< btVector3 > m_scratch_local_origin
btAlignedObjectArray< btQuaternion > m_scratch_world_to_local1
btAlignedObjectArray< btVector3 > m_scratch_local_origin1
btAlignedObjectArray< btScalar > m_scratch_r
btAlignedObjectArray< btVector3 > m_scratch_v
btAlignedObjectArray< btMatrix3x3 > m_scratch_m

Detailed Description

Definition at line 29 of file btSoftMultiBodyDynamicsWorld.h.

Constructor & Destructor Documentation

◆ btSoftMultiBodyDynamicsWorld()

btSoftMultiBodyDynamicsWorld::btSoftMultiBodyDynamicsWorld ( btDispatcher * dispatcher,
btBroadphaseInterface * pairCache,
btMultiBodyConstraintSolver * constraintSolver,
btCollisionConfiguration * collisionConfiguration,
btSoftBodySolver * softBodySolver = 0 )

◆ ~btSoftMultiBodyDynamicsWorld()

btSoftMultiBodyDynamicsWorld::~btSoftMultiBodyDynamicsWorld ( )
virtual

Definition at line 60 of file btSoftMultiBodyDynamicsWorld.cpp.

References btAlignedFree.

Member Function Documentation

◆ addSoftBody()

void btSoftMultiBodyDynamicsWorld::addSoftBody ( btSoftBody * body,
int collisionFilterGroup = btBroadphaseProxy::DefaultFilter,
int collisionFilterMask = btBroadphaseProxy::AllFilter )

◆ debugDrawWorld()

◆ getDrawFlags()

int btSoftMultiBodyDynamicsWorld::getDrawFlags ( ) const
inline

Definition at line 64 of file btSoftMultiBodyDynamicsWorld.h.

◆ getSoftBodyArray() [1/2]

btSoftBodyArray & btSoftMultiBodyDynamicsWorld::getSoftBodyArray ( )
inline

Definition at line 81 of file btSoftMultiBodyDynamicsWorld.h.

Referenced by internalSingleStepSimulation().

◆ getSoftBodyArray() [2/2]

const btSoftBodyArray & btSoftMultiBodyDynamicsWorld::getSoftBodyArray ( ) const
inline

Definition at line 86 of file btSoftMultiBodyDynamicsWorld.h.

◆ getWorldInfo() [1/2]

btSoftBodyWorldInfo & btSoftMultiBodyDynamicsWorld::getWorldInfo ( )
inline

Definition at line 67 of file btSoftMultiBodyDynamicsWorld.h.

◆ getWorldInfo() [2/2]

const btSoftBodyWorldInfo & btSoftMultiBodyDynamicsWorld::getWorldInfo ( ) const
inline

Definition at line 71 of file btSoftMultiBodyDynamicsWorld.h.

◆ getWorldType()

virtual btDynamicsWorldType btSoftMultiBodyDynamicsWorld::getWorldType ( ) const
inlinevirtual

Definition at line 76 of file btSoftMultiBodyDynamicsWorld.h.

References BT_SOFT_MULTIBODY_DYNAMICS_WORLD.

◆ internalSingleStepSimulation()

void btSoftMultiBodyDynamicsWorld::internalSingleStepSimulation ( btScalar timeStep)
protectedvirtual

solve soft bodies constraints

update soft bodies

Definition at line 78 of file btSoftMultiBodyDynamicsWorld.cpp.

References btAssert, btSoftBody::defaultCollisionHandler(), getSoftBodyArray(), i, and solveSoftBodiesConstraints().

◆ predictUnconstraintMotion()

void btSoftMultiBodyDynamicsWorld::predictUnconstraintMotion ( btScalar timeStep)
protectedvirtual

Reimplemented from btMultiBodyDynamicsWorld.

Definition at line 69 of file btSoftMultiBodyDynamicsWorld.cpp.

References BT_PROFILE.

◆ rayTest()

void btSoftMultiBodyDynamicsWorld::rayTest ( const btVector3 & rayFromWorld,
const btVector3 & rayToWorld,
RayResultCallback & resultCallback ) const
virtual

use the broadphase to accelerate the search for objects, based on their aabb and for each object with ray-aabb overlap, perform an exact ray test

Definition at line 249 of file btSoftMultiBodyDynamicsWorld.cpp.

References BT_PROFILE, btVector3, getBroadphaseHandle(), i, and btSoftSingleRayCallback::process().

◆ rayTestSingle()

void btSoftMultiBodyDynamicsWorld::rayTestSingle ( const btTransform & rayFromTrans,
const btTransform & rayToTrans,
btCollisionObject * collisionObject,
const btCollisionShape * collisionShape,
const btTransform & colObjWorldTransform,
RayResultCallback & resultCallback )
static

rayTestSingle performs a raycast call and calls the resultCallback. It is used internally by rayTest. In a future implementation, we consider moving the ray test as a virtual method in btCollisionShape. This allows more customization.

Definition at line 266 of file btSoftMultiBodyDynamicsWorld.cpp.

References btCollisionObject, btCollisionShape, btTransform, btVector3, btSoftBody::eFeature::Face, btSoftBody::sRayCast::feature, btSoftBody::sRayCast::fraction, btSoftBody::sRayCast::index, btSoftBody::m_faces, btCollisionWorld::LocalShapeInfo::m_shapePart, btCollisionWorld::LocalShapeInfo::m_triangleIndex, btSoftBody::rayTest(), btCollisionWorld::rayTestSingle(), and btSoftBody::upcast().

Referenced by btSoftSingleRayCallback::process().

◆ removeCollisionObject()

void btSoftMultiBodyDynamicsWorld::removeCollisionObject ( btCollisionObject * collisionObject)
virtual

removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btDiscreteDynamicsWorld::removeCollisionObject

Definition at line 140 of file btSoftMultiBodyDynamicsWorld.cpp.

References btCollisionObject, removeSoftBody(), and btSoftBody::upcast().

◆ removeSoftBody()

void btSoftMultiBodyDynamicsWorld::removeSoftBody ( btSoftBody * body)

◆ serialize()

◆ serializeSoftBodies()

void btSoftMultiBodyDynamicsWorld::serializeSoftBodies ( btSerializer * serializer)
protected

◆ setDrawFlags()

void btSoftMultiBodyDynamicsWorld::setDrawFlags ( int f)
inline

Definition at line 65 of file btSoftMultiBodyDynamicsWorld.h.

◆ solveSoftBodiesConstraints()

void btSoftMultiBodyDynamicsWorld::solveSoftBodiesConstraints ( btScalar timeStep)
protected

The documentation for this class was generated from the following files: