Blender  V3.3
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
btSoftMultiBodyDynamicsWorld Class Reference

#include <btSoftMultiBodyDynamicsWorld.h>

Inheritance diagram for btSoftMultiBodyDynamicsWorld:
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 More...
 
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

Member Function Documentation

◆ addSoftBody()

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

◆ debugDrawWorld()

void btSoftMultiBodyDynamicsWorld::debugDrawWorld ( )
virtual

◆ 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

◆ predictUnconstraintMotion()

void btSoftMultiBodyDynamicsWorld::predictUnconstraintMotion ( btScalar  timeStep)
protectedvirtual

◆ 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, getBroadphaseHandle(), 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 btVector3, btSoftBody::eFeature::Face, btSoftBody::sRayCast::feature, btSoftBody::sRayCast::fraction, btSoftBody::sRayCast::index, btSoftBody::m_faces, btCollisionWorld::LocalShapeInfo::m_shapePart, btCollisionWorld::LocalShapeInfo::m_triangleIndex, normal, 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 removeCollisionObject(), removeSoftBody(), and btSoftBody::upcast().

◆ removeSoftBody()

void btSoftMultiBodyDynamicsWorld::removeSoftBody ( btSoftBody *  body)

◆ serialize()

void btSoftMultiBodyDynamicsWorld::serialize ( btSerializer *  serializer)
virtual

◆ 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: