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)
 
btSoftBodyWorldInfogetWorldInfo ()
 
const btSoftBodyWorldInfogetWorldInfo () const
 
virtual btDynamicsWorldType getWorldType () const
 
btSoftBodyArraygetSoftBodyArray ()
 
const btSoftBodyArraygetSoftBodyArray () 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
 
btMultiBodygetMultiBody (int mbIndex)
 
const btMultiBodygetMultiBody (int mbIndex) const
 
virtual void addMultiBodyConstraint (btMultiBodyConstraint *constraint)
 
virtual int getNumMultiBodyConstraints () const
 
virtual btMultiBodyConstraintgetMultiBodyConstraint (int constraintIndex)
 
virtual const btMultiBodyConstraintgetMultiBodyConstraint (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
 
MultiBodyInplaceSolverIslandCallbackm_solverMultiBodyIslandCallback
 
btAlignedObjectArray< btQuaternionm_scratch_world_to_local
 
btAlignedObjectArray< btVector3m_scratch_local_origin
 
btAlignedObjectArray< btQuaternionm_scratch_world_to_local1
 
btAlignedObjectArray< btVector3m_scratch_local_origin1
 
btAlignedObjectArray< btScalarm_scratch_r
 
btAlignedObjectArray< btVector3m_scratch_v
 
btAlignedObjectArray< btMatrix3x3m_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: