Blender
V3.3
|
#include <btSoftMultiBodyDynamicsWorld.h>
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) |
![]() | |
virtual void | calculateSimulationIslands () |
virtual void | updateActivationState (btScalar timeStep) |
virtual void | serializeMultiBodies (btSerializer *serializer) |
Additional Inherited Members | |
![]() | |
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 |
Definition at line 29 of file btSoftMultiBodyDynamicsWorld.h.
btSoftMultiBodyDynamicsWorld::btSoftMultiBodyDynamicsWorld | ( | btDispatcher * | dispatcher, |
btBroadphaseInterface * | pairCache, | ||
btMultiBodyConstraintSolver * | constraintSolver, | ||
btCollisionConfiguration * | collisionConfiguration, | ||
btSoftBodySolver * | softBodySolver = 0 |
||
) |
Definition at line 26 of file btSoftMultiBodyDynamicsWorld.cpp.
References btSoftBodyWorldInfo::air_density, btAlignedAlloc, btVector3, btSparseSdf< CELLSIZE >::Initialize(), btSoftBodyWorldInfo::m_broadphase, btSoftBodyWorldInfo::m_dispatcher, btSoftBodyWorldInfo::m_gravity, btSoftBodyWorldInfo::m_sparsesdf, ptr, btSparseSdf< CELLSIZE >::Reset(), fDrawFlags::Std, btSoftBodyWorldInfo::water_density, btSoftBodyWorldInfo::water_normal, and btSoftBodyWorldInfo::water_offset.
|
virtual |
Definition at line 60 of file btSoftMultiBodyDynamicsWorld.cpp.
References btAlignedFree, and btSoftBodySolver::~btSoftBodySolver().
void btSoftMultiBodyDynamicsWorld::addSoftBody | ( | btSoftBody * | body, |
int | collisionFilterGroup = btBroadphaseProxy::DefaultFilter , |
||
int | collisionFilterMask = btBroadphaseProxy::AllFilter |
||
) |
Definition at line 120 of file btSoftMultiBodyDynamicsWorld.cpp.
References btCollisionWorld::addCollisionObject(), btAlignedObjectArray< T >::push_back(), and btSoftBody::setSoftBodySolver().
|
virtual |
Reimplemented from btMultiBodyDynamicsWorld.
Definition at line 149 of file btSoftMultiBodyDynamicsWorld.cpp.
References btIDebugDraw::DBG_DrawAabb, btIDebugDraw::DBG_DrawWireframe, btMultiBodyDynamicsWorld::debugDrawWorld(), btSoftBodyHelpers::Draw(), btSoftBodyHelpers::DrawClusterTree(), btSoftBodyHelpers::DrawFaceTree(), btSoftBodyHelpers::DrawFrame(), btSoftBodyHelpers::DrawNodeTree(), and btAlignedObjectArray< T >::size().
|
inline |
Definition at line 64 of file btSoftMultiBodyDynamicsWorld.h.
|
inline |
Definition at line 81 of file btSoftMultiBodyDynamicsWorld.h.
Referenced by internalSingleStepSimulation().
|
inline |
Definition at line 86 of file btSoftMultiBodyDynamicsWorld.h.
|
inline |
Definition at line 67 of file btSoftMultiBodyDynamicsWorld.h.
|
inline |
Definition at line 71 of file btSoftMultiBodyDynamicsWorld.h.
|
inlinevirtual |
Definition at line 76 of file btSoftMultiBodyDynamicsWorld.h.
References BT_SOFT_MULTIBODY_DYNAMICS_WORLD.
|
protectedvirtual |
solve soft bodies constraints
update soft bodies
Definition at line 78 of file btSoftMultiBodyDynamicsWorld.cpp.
References btAssert, btSoftBodySolver::checkInitialized(), btSoftBody::defaultCollisionHandler(), getSoftBodyArray(), internalSingleStepSimulation(), btSoftBodySolver::optimize(), btAlignedObjectArray< T >::size(), solveSoftBodiesConstraints(), and btSoftBodySolver::updateSoftBodies().
Reimplemented from btMultiBodyDynamicsWorld.
Definition at line 69 of file btSoftMultiBodyDynamicsWorld.cpp.
References BT_PROFILE, btSoftBodySolver::predictMotion(), and predictUnconstraintMotion().
|
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().
|
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().
|
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().
void btSoftMultiBodyDynamicsWorld::removeSoftBody | ( | btSoftBody * | body | ) |
Definition at line 133 of file btSoftMultiBodyDynamicsWorld.cpp.
References btAlignedObjectArray< T >::remove(), and btCollisionWorld::removeCollisionObject().
Referenced by removeCollisionObject().
|
virtual |
Reimplemented from btMultiBodyDynamicsWorld.
Definition at line 333 of file btSoftMultiBodyDynamicsWorld.cpp.
References btSerializer::finishSerialization(), serializeDynamicsWorldInfo(), btMultiBodyDynamicsWorld::serializeMultiBodies(), serializeRigidBodies(), serializeSoftBodies(), and btSerializer::startSerialization().
|
protected |
Definition at line 316 of file btSoftMultiBodyDynamicsWorld.cpp.
References btSerializer::allocate(), BT_SOFTBODY_CODE, btCollisionObject, CO_SOFT_BODY, btSerializer::finalizeChunk(), len, and btChunk::m_oldPtr.
Referenced by serialize().
|
inline |
Definition at line 65 of file btSoftMultiBodyDynamicsWorld.h.
Definition at line 107 of file btSoftMultiBodyDynamicsWorld.cpp.
References BT_PROFILE, btSoftBodySolver::getTimeScale(), btAlignedObjectArray< T >::size(), btSoftBody::solveClusters(), and btSoftBodySolver::solveConstraints().
Referenced by internalSingleStepSimulation().