Bullet Collision Detection & Physics Library: btReducedDeformableBody Class Reference

Bullet Collision Detection & Physics Library

Public Types | Public Member Functions | Public Attributes | Protected Attributes | Private Member Functions | Private Attributes | List of all members
btReducedDeformableBody Class Reference

`#include <btReducedDeformableBody.h>`

Inheritance diagram for btReducedDeformableBody:
[legend]
Collaboration diagram for btReducedDeformableBody:
[legend]

## Public Types
typedef btAlignedObjectArray< btVector3 > | TVStack
typedef btAlignedObjectArray< btScalar > | tDenseArray
typedef btAlignedObjectArray< btAlignedObjectArray< btScalar > > | tDenseMatrix
Public Types inherited from btSoftBody
typedef btAlignedObjectArray< eVSolver::_ > | tVSolverArray
typedef btAlignedObjectArray< ePSolver::_ > | tPSolverArray
typedef btAlignedObjectArray< btScalar > | tScalarArray
typedef btAlignedObjectArray< btVector3 > | tVector3Array
typedef void(* | psolver_t) (btSoftBody *, btScalar, btScalar)
typedef void(* | vsolver_t) (btSoftBody *, btScalar)
typedef btAlignedObjectArray< Cluster * > | tClusterArray
typedef btAlignedObjectArray< Note > | tNoteArray
typedef btAlignedObjectArray< Node > | tNodeArray
typedef btAlignedObjectArray< RenderNode > | tRenderNodeArray
typedef btAlignedObjectArray< btDbvtNode * > | tLeafArray
typedef btAlignedObjectArray< Link > | tLinkArray
typedef btAlignedObjectArray< Face > | tFaceArray
typedef btAlignedObjectArray< RenderFace > | tRenderFaceArray
typedef btAlignedObjectArray< Tetra > | tTetraArray
typedef btAlignedObjectArray< Anchor > | tAnchorArray
typedef btAlignedObjectArray< RContact > | tRContactArray
typedef btAlignedObjectArray< SContact > | tSContactArray
typedef btAlignedObjectArray< Material * > | tMaterialArray
typedef btAlignedObjectArray< Joint * > | tJointArray
typedef btAlignedObjectArray< btSoftBody * > | tSoftBodyArray
typedef btAlignedObjectArray< btAlignedObjectArray< btScalar > > | tDenseMatrix
Public Types inherited from btCollisionObject
enum | CollisionFlags { CF_DYNAMIC_OBJECT = 0 , CF_STATIC_OBJECT = 1 , CF_KINEMATIC_OBJECT = 2 , CF_NO_CONTACT_RESPONSE = 4 , CF_CUSTOM_MATERIAL_CALLBACK = 8 , CF_CHARACTER_OBJECT = 16 , CF_DISABLE_VISUALIZE_OBJECT = 32 , CF_DISABLE_SPU_COLLISION_PROCESSING = 64 , CF_HAS_CONTACT_STIFFNESS_DAMPING = 128 , CF_HAS_CUSTOM_DEBUG_RENDERING_COLOR = 256 , CF_HAS_FRICTION_ANCHOR = 512 , CF_HAS_COLLISION_SOUND_TRIGGER = 1024 }
enum | CollisionObjectTypes { CO_COLLISION_OBJECT = 1 , CO_RIGID_BODY = 2 , CO_GHOST_OBJECT = 4 , CO_SOFT_BODY = 8 , CO_HF_FLUID = 16 , CO_USER_TYPE = 32 , CO_FEATHERSTONE_LINK = 64 }
enum | AnisotropicFrictionFlags { CF_ANISOTROPIC_FRICTION_DISABLED = 0 , CF_ANISOTROPIC_FRICTION = 1 , CF_ANISOTROPIC_ROLLING_FRICTION = 2 }

## Public Member Functions
| btReducedDeformableBody (btSoftBodyWorldInfo *worldInfo, int node_count, const btVector3 *x, const btScalar *m)
| ~btReducedDeformableBody ()
void | internalInitialization ()
void | setReducedModes (int num_modes, int full_size)
void | setMassProps (const tDenseArray &mass_array)
void | setInertiaProps ()
void | setRigidVelocity (const btVector3 &v)
void | setRigidAngularVelocity (const btVector3 &omega)
void | setStiffnessScale (const btScalar ks)
void | setMassScale (const btScalar rho)
void | setFixedNodes (const int n_node)
void | setDamping (const btScalar alpha, const btScalar beta)
void | disableReducedModes (const bool rigid_only)
virtual void | setTotalMass (btScalar mass, bool fromfaces=false)
virtual void | transformTo (const btTransform &trs)
virtual void | transform (const btTransform &trs)
virtual void | scale (const btVector3 &scl)
void | updateLocalMomentArm ()
void | predictIntegratedTransform (btScalar dt, btTransform &predictedTransform)
void | updateExternalForceProjectMatrix (bool initialized)
void | endOfTimeStepZeroing ()
void | applyInternalVelocityChanges ()
void | updateReducedDofs (btScalar solverdt)
void | updateReducedVelocity (btScalar solverdt)
void | mapToFullPosition (const btTransform &ref_trans)
void | mapToFullVelocity (const btTransform &ref_trans)
const btVector3 | computeTotalAngularMomentum () const
const btVector3 | computeNodeFullVelocity (const btTransform &ref_trans, int n_node) const
const btVector3 | internalComputeNodeDeltaVelocity (const btTransform &ref_trans, int n_node) const
void | applyDamping (btScalar timeStep)
void | applyCentralImpulse (const btVector3 &impulse)
void | applyTorqueImpulse (const btVector3 &torque)
void | proceedToTransform (btScalar dt, bool end_of_time_step)
void | internalApplyRigidImpulse (const btVector3 &impulse, const btVector3 &rel_pos)
void | internalApplyFullSpaceImpulse (const btVector3 &impulse, const btVector3 &rel_pos, int n_node, btScalar dt)
void | applyFullSpaceNodalForce (const btVector3 &f_ext, int n_node)
void | applyRigidGravity (const btVector3 &gravity, btScalar dt)
void | applyReducedElasticForce (const tDenseArray &reduce_dofs)
void | applyReducedDampingForce (const tDenseArray &reduce_vel)
virtual btMatrix3x3 | getImpulseFactor (int n_node)
btVector3 | getRelativePos (int n_node)
bool | isReducedModesOFF () const
btScalar | getTotalMass () const
btTransform & | getRigidTransform ()
const btVector3 & | getLinearVelocity () const
const btVector3 & | getAngularVelocity () const
Public Member Functions inherited from btSoftBody
| btSoftBody (btSoftBodyWorldInfo *worldInfo, int node_count, const btVector3 *x, const btScalar *m)
| btSoftBody (btSoftBodyWorldInfo *worldInfo)
void | initDefaults ()
virtual | ~btSoftBody ()
btSoftBodyWorldInfo * | getWorldInfo ()
void | setDampingCoefficient (btScalar damping_coeff)
virtual void | setCollisionShape (btCollisionShape *collisionShape)
bool | checkLink (int node0, int node1) const
bool | checkLink (const Node *node0, const Node *node1) const
bool | checkFace (int node0, int node1, int node2) const
Material * | appendMaterial ()
void | appendNote (const char *text, const btVector3 &o, const btVector4 &c=btVector4(1, 0, 0, 0), Node *n0=0, Node *n1=0, Node *n2=0, Node *n3=0)
void | appendNote (const char *text, const btVector3 &o, Node *feature)
void | appendNote (const char *text, const btVector3 &o, Link *feature)
void | appendNote (const char *text, const btVector3 &o, Face *feature)
void | appendNode (const btVector3 &x, btScalar m)
void | appendLink (int model=-1, Material *mat=0)
void | appendLink (int node0, int node1, Material *mat=0, bool bcheckexist=false)
void | appendLink (Node *node0, Node *node1, Material *mat=0, bool bcheckexist=false)
void | appendFace (int model=-1, Material *mat=0)
void | appendFace (int node0, int node1, int node2, Material *mat=0)
void | appendTetra (int model, Material *mat)
void | appendTetra (int node0, int node1, int node2, int node3, Material *mat=0)
void | appendDeformableAnchor (int node, btRigidBody *body)
void | appendDeformableAnchor (int node, btMultiBodyLinkCollider *link)
void | appendAnchor (int node, btRigidBody *body, bool disableCollisionBetweenLinkedBodies=false, btScalar influence=1)
void | appendAnchor (int node, btRigidBody *body, const btVector3 &localPivot, bool disableCollisionBetweenLinkedBodies=false, btScalar influence=1)
void | removeAnchor (int node)
void | appendLinearJoint (const LJoint::Specs &specs, Cluster *body0, Body body1)
void | appendLinearJoint (const LJoint::Specs &specs, Body body=Body())
void | appendLinearJoint (const LJoint::Specs &specs, btSoftBody *body)
void | appendAngularJoint (const AJoint::Specs &specs, Cluster *body0, Body body1)
void | appendAngularJoint (const AJoint::Specs &specs, Body body=Body())
void | appendAngularJoint (const AJoint::Specs &specs, btSoftBody *body)
void | addForce (const btVector3 &force)
void | addForce (const btVector3 &force, int node)
void | addAeroForceToNode (const btVector3 &windVelocity, int nodeIndex)
void | addAeroForceToFace (const btVector3 &windVelocity, int faceIndex)
void | addVelocity (const btVector3 &velocity)
void | setVelocity (const btVector3 &velocity)
void | addVelocity (const btVector3 &velocity, int node)
void | setMass (int node, btScalar mass)
btScalar | getMass (int node) const
btScalar | getTotalMass () const
void | setTotalMass (btScalar mass, bool fromfaces=false)
void | setTotalDensity (btScalar density)
void | setVolumeMass (btScalar mass)
void | setVolumeDensity (btScalar density)
btVector3 | getLinearVelocity ()
void | setLinearVelocity (const btVector3 &linVel)
void | setAngularVelocity (const btVector3 &angVel)
btTransform | getRigidTransform ()
virtual void | translate (const btVector3 &trs)
virtual void | rotate (const btQuaternion &rot)
btScalar | getRestLengthScale ()
void | setRestLengthScale (btScalar restLength)
void | setPose (bool bvolume, bool bframe)
void | resetLinkRestLengths ()
btScalar | getVolume () const
btVector3 | getCenterOfMass () const
int | clusterCount () const
btVector3 | clusterCom (int cluster) const
int | generateBendingConstraints (int distance, Material *mat=0)
void | randomizeConstraints ()
void | updateState (const btAlignedObjectArray< btVector3 > &qs, const btAlignedObjectArray< btVector3 > &vs)
void | releaseCluster (int index)
void | releaseClusters ()
int | generateClusters (int k, int maxiterations=8192)
| generateClusters with k=0 will create a convex cluster for each tetrahedron or triangle otherwise an approximation will be used (better performance)
void | refine (ImplicitFn *ifn, btScalar accurary, bool cut)
bool | cutLink (int node0, int node1, btScalar position)
bool | cutLink (const Node *node0, const Node *node1, btScalar position)
bool | rayTest (const btVector3 &rayFrom, const btVector3 &rayTo, sRayCast &results)
| Ray casting using rayFrom and rayTo in worldspace, (not direction!).
bool | rayFaceTest (const btVector3 &rayFrom, const btVector3 &rayTo, sRayCast &results)
int | rayFaceTest (const btVector3 &rayFrom, const btVector3 &rayTo, btScalar &mint, int &index) const
void | setSolver (eSolverPresets::_ preset)
void | predictMotion (btScalar dt)
void | solveConstraints ()
void | staticSolve (int iterations)
void | integrateMotion ()
void | defaultCollisionHandler (const btCollisionObjectWrapper *pcoWrap)
void | defaultCollisionHandler (btSoftBody *psb)
void | setSelfCollision (bool useSelfCollision)
bool | useSelfCollision ()
void | updateDeactivation (btScalar timeStep)
void | setZeroVelocity ()
bool | wantsSleeping ()
void | setWindVelocity (const btVector3 &velocity)
| Set a wind velocity for interaction with the air.
const btVector3 & | getWindVelocity ()
| Return the wind velocity for interaction with the air.
void | setSoftBodySolver (btSoftBodySolver *softBodySolver)
btSoftBodySolver * | getSoftBodySolver ()
btSoftBodySolver * | getSoftBodySolver () const
virtual void | getAabb (btVector3 &aabbMin, btVector3 &aabbMax) const
void | pointersToIndices ()
void | indicesToPointers (const int *map=0)
int | rayTest (const btVector3 &rayFrom, const btVector3 &rayTo, btScalar &mint, eFeature::_ &feature, int &index, bool bcountonly) const
void | initializeFaceTree ()
void | rebuildNodeTree ()
btVector3 | evaluateCom () const
bool | checkDeformableContact (const btCollisionObjectWrapper *colObjWrap, const btVector3 &x, btScalar margin, btSoftBody::sCti &cti, bool predict=false) const
bool | checkDeformableFaceContact (const btCollisionObjectWrapper *colObjWrap, Face &f, btVector3 &contact_point, btVector3 &bary, btScalar margin, btSoftBody::sCti &cti, bool predict=false) const
bool | checkContact (const btCollisionObjectWrapper *colObjWrap, const btVector3 &x, btScalar margin, btSoftBody::sCti &cti) const
void | updateNormals ()
void | updateBounds ()
void | updatePose ()
void | updateConstants ()
void | updateLinkConstants ()
void | updateArea (bool averageArea=true)
void | initializeClusters ()
void | updateClusters ()
void | cleanupClusters ()
void | prepareClusters (int iterations)
void | solveClusters (btScalar sor)
void | applyClusters (bool drift)
void | dampClusters ()
void | setSpringStiffness (btScalar k)
void | setGravityFactor (btScalar gravFactor)
void | setCacheBarycenter (bool cacheBarycenter)
void | initializeDmInverse ()
void | updateDeformation ()
void | advanceDeformation ()
void | applyForces ()
void | setMaxStress (btScalar maxStress)
void | interpolateRenderMesh ()
void | setCollisionQuadrature (int N)
void | geometricCollisionHandler (btSoftBody *psb)
void | updateNode (btDbvtNode *node, bool use_velocity, bool margin)
void | updateNodeTree (bool use_velocity, bool margin)
template<class DBVTNODE>
void | updateFace (DBVTNODE *node, bool use_velocity, bool margin)
void | updateFaceTree (bool use_velocity, bool margin)
void | applyRepulsionForce (btScalar timeStep, bool applySpringForce)
virtual int | calculateSerializeBufferSize () const
virtual const char * | serialize (void *dataBuffer, class btSerializer *serializer) const
| fills the dataBuffer and returns the struct name (and 0 on failure)
Public Member Functions inherited from btCollisionObject
| BT_DECLARE_ALIGNED_ALLOCATOR ()
bool | mergesSimulationIslands () const
const btVector3 & | getAnisotropicFriction () const
void | setAnisotropicFriction (const btVector3 &anisotropicFriction, int frictionMode=CF_ANISOTROPIC_FRICTION)
bool | hasAnisotropicFriction (int frictionMode=CF_ANISOTROPIC_FRICTION) const
void | setContactProcessingThreshold (btScalar contactProcessingThreshold)
| the constraint solver can discard solving contacts, if the distance is above this threshold.
btScalar | getContactProcessingThreshold () const
bool | isStaticObject () const
bool | isKinematicObject () const
bool | isStaticOrKinematicObject () const
bool | hasContactResponse () const
| btCollisionObject ()
virtual | ~btCollisionObject ()
const btCollisionShape * | getCollisionShape () const
btCollisionShape * | getCollisionShape ()
void | setIgnoreCollisionCheck (const btCollisionObject *co, bool ignoreCollisionCheck)
int | getNumObjectsWithoutCollision () const
const btCollisionObject * | getObjectWithoutCollision (int index)
virtual bool | checkCollideWithOverride (const btCollisionObject *co) const
void * | internalGetExtensionPointer () const
| Avoid using this internal API call, the extension pointer is used by some Bullet extensions.
void | internalSetExtensionPointer (void *pointer)
| Avoid using this internal API call, the extension pointer is used by some Bullet extensions If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead.
int | getActivationState () const
void | setActivationState (int newState) const
void | setDeactivationTime (btScalar time)
btScalar | getDeactivationTime () const
void | forceActivationState (int newState) const
void | activate (bool forceActivation=false) const
bool | isActive () const
void | setRestitution (btScalar rest)
btScalar | getRestitution () const
void | setFriction (btScalar frict)
btScalar | getFriction () const
void | setRollingFriction (btScalar frict)
btScalar | getRollingFriction () const
void | setSpinningFriction (btScalar frict)
btScalar | getSpinningFriction () const
void | setContactStiffnessAndDamping (btScalar stiffness, btScalar damping)
btScalar | getContactStiffness () const
btScalar | getContactDamping () const
int | getInternalType () const
| reserved for Bullet internal usage
btTransform & | getWorldTransform ()
const btTransform & | getWorldTransform () const
void | setWorldTransform (const btTransform &worldTrans)
btBroadphaseProxy * | getBroadphaseHandle ()
const btBroadphaseProxy * | getBroadphaseHandle () const
void | setBroadphaseHandle (btBroadphaseProxy *handle)
const btTransform & | getInterpolationWorldTransform () const
btTransform & | getInterpolationWorldTransform ()
void | setInterpolationWorldTransform (const btTransform &trans)
void | setInterpolationLinearVelocity (const btVector3 &linvel)
void | setInterpolationAngularVelocity (const btVector3 &angvel)
const btVector3 & | getInterpolationLinearVelocity () const
const btVector3 & | getInterpolationAngularVelocity () const
int | getIslandTag () const
void | setIslandTag (int tag)
int | getCompanionId () const
void | setCompanionId (int id)
int | getWorldArrayIndex () const
void | setWorldArrayIndex (int ix)
btScalar | getHitFraction () const
void | setHitFraction (btScalar hitFraction)
int | getCollisionFlags () const
void | setCollisionFlags (int flags)
btScalar | getCcdSweptSphereRadius () const
| Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
void | setCcdSweptSphereRadius (btScalar radius)
| Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
btScalar | getCcdMotionThreshold () const
btScalar | getCcdSquareMotionThreshold () const
void | setCcdMotionThreshold (btScalar ccdMotionThreshold)
| Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold.
void * | getUserPointer () const
| users can point to their objects, userPointer is not used by Bullet
int | getUserIndex () const
int | getUserIndex2 () const
int | getUserIndex3 () const
void | setUserPointer (void *userPointer)
| users can point to their objects, userPointer is not used by Bullet
void | setUserIndex (int index)
| users can point to their objects, userPointer is not used by Bullet
void | setUserIndex2 (int index)
void | setUserIndex3 (int index)
int | getUpdateRevisionInternal () const
void | setCustomDebugColor (const btVector3 &colorRGB)
void | removeCustomDebugColor ()
bool | getCustomDebugColor (btVector3 &colorRGB) const
bool | checkCollideWith (const btCollisionObject *co) const
virtual void | serializeSingleObject (class btSerializer *serializer) const

## Public Attributes
int | m_nReduced
int | m_nFull
tDenseMatrix | m_modes
tDenseArray | m_reducedDofs
tDenseArray | m_reducedDofsBuffer
tDenseArray | m_reducedVelocity
tDenseArray | m_reducedVelocityBuffer
tDenseArray | m_reducedForceExternal
tDenseArray | m_reducedForceElastic
tDenseArray | m_reducedForceDamping
tDenseArray | m_eigenvalues
tDenseArray | m_Kr
TVStack | m_x0
tDenseArray | m_nodalMass
btAlignedObjectArray< int > | m_fixedNodes
int | m_nodeIndexOffset
btAlignedObjectArray< int > | m_contactNodesList
Public Attributes inherited from btSoftBody
btAlignedObjectArray< const class btCollisionObject * > | m_collisionDisabledObjects
btSoftBodySolver * | m_softBodySolver
Config | m_cfg
SolverState | m_sst
Pose | m_pose
void * | m_tag
btSoftBodyWorldInfo * | m_worldInfo
tNoteArray | m_notes
tNodeArray | m_nodes
tRenderNodeArray | m_renderNodes
tLinkArray | m_links
tFaceArray | m_faces
tRenderFaceArray | m_renderFaces
tTetraArray | m_tetras
btAlignedObjectArray< TetraScratch > | m_tetraScratches
btAlignedObjectArray< TetraScratch > | m_tetraScratchesTn
tAnchorArray | m_anchors
btAlignedObjectArray< DeformableNodeRigidAnchor > | m_deformableAnchors
tRContactArray | m_rcontacts
btAlignedObjectArray< DeformableNodeRigidContact > | m_nodeRigidContacts
btAlignedObjectArray< DeformableFaceNodeContact > | m_faceNodeContacts
btAlignedObjectArray< DeformableFaceRigidContact > | m_faceRigidContacts
btAlignedObjectArray< DeformableFaceNodeContact > | m_faceNodeContactsCCD
tSContactArray | m_scontacts
tJointArray | m_joints
tMaterialArray | m_materials
btScalar | m_timeacc
btVector3 | m_bounds [2]
bool | m_bUpdateRtCst
btDbvt | m_ndbvt
btDbvt | m_fdbvt
btDbvntNode * | m_fdbvnt
btDbvt | m_cdbvt
tClusterArray | m_clusters
btScalar | m_dampingCoefficient
btScalar | m_sleepingThreshold
btScalar | m_maxSpeedSquared
btAlignedObjectArray< btVector3 > | m_quads
btScalar | m_repulsionStiffness
btScalar | m_gravityFactor
bool | m_cacheBarycenter
btAlignedObjectArray< btVector3 > | m_X
btAlignedObjectArray< btVector4 > | m_renderNodesInterpolationWeights
btAlignedObjectArray< btAlignedObjectArray< const btSoftBody::Node * > > | m_renderNodesParents
btAlignedObjectArray< btScalar > | m_z
bool | m_useSelfCollision
bool | m_softSoftCollision
btAlignedObjectArray< bool > | m_clusterConnectivity
btVector3 | m_windVelocity
btScalar | m_restLengthScale
bool | m_reducedModel
btAlignedObjectArray< int > | m_userIndexMapping

## Protected Attributes
btScalar | m_mass
btScalar | m_inverseMass
btVector3 | m_linearVelocity
btVector3 | m_angularVelocity
btScalar | m_linearDamping
btScalar | m_angularDamping
btVector3 | m_linearFactor
btVector3 | m_angularFactor
btMatrix3x3 | m_invInertiaLocal
btTransform | m_rigidTransformWorld
btMatrix3x3 | m_invInertiaTensorWorldInitial
btMatrix3x3 | m_invInertiaTensorWorld
btMatrix3x3 | m_interpolateInvInertiaTensorWorld
btVector3 | m_initialCoM
btScalar | m_dampingAlpha
btScalar | m_dampingBeta
Protected Attributes inherited from btCollisionObject
btTransform | m_worldTransform
btTransform | m_interpolationWorldTransform
| m_interpolationWorldTransform is used for CCD and interpolation it can be either previous or future (predicted) transform
btVector3 | m_interpolationLinearVelocity
btVector3 | m_interpolationAngularVelocity
btVector3 | m_anisotropicFriction
int | m_hasAnisotropicFriction
btScalar | m_contactProcessingThreshold
btBroadphaseProxy * | m_broadphaseHandle
btCollisionShape * | m_collisionShape
void * | m_extensionPointer
| m_extensionPointer is used by some internal low-level Bullet extensions.
btCollisionShape * | m_rootCollisionShape
| m_rootCollisionShape is temporarily used to store the original collision shape The m_collisionShape might be temporarily replaced by a child collision shape during collision detection purposes If it is NULL, the m_collisionShape is not temporarily replaced.
int | m_collisionFlags
int | m_islandTag1
int | m_companionId
int | m_worldArrayIndex
int | m_activationState1
btScalar | m_deactivationTime
btScalar | m_friction
btScalar | m_restitution
btScalar | m_rollingFriction
btScalar | m_spinningFriction
btScalar | m_contactDamping
btScalar | m_contactStiffness
int | m_internalType
| m_internalType is reserved to distinguish Bullet's btCollisionObject, btRigidBody, btSoftBody, btGhostObject etc.
void * | m_userObjectPointer
| users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer
int | m_userIndex2
int | m_userIndex
int | m_userIndex3
btScalar | m_hitFraction
| time of impact calculation
btScalar | m_ccdSweptSphereRadius
| Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
btScalar | m_ccdMotionThreshold
| Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold.
int | m_checkCollideWith
| If some object should have elaborate collision filtering by sub-classes.
btAlignedObjectArray< const btCollisionObject * > | m_objectsWithoutCollisionCheck
int | m_updateRevision
| internal update revision number. It will be increased when the object changes. This allows some subsystems to perform lazy evaluation.
btVector3 | m_customDebugColorRGB

## Private Member Functions
void | updateRestNodalPositions ()
void | updateInitialInertiaTensor (const btMatrix3x3 &rotation)
void | updateLocalInertiaTensorFromNodes ()
void | updateInertiaTensor ()
void | updateModesByRotation (const btMatrix3x3 &rotation)

## Private Attributes
bool | m_rigidOnly
bool | m_transform_lock
btScalar | m_rhoScale
btScalar | m_ksScale
tDenseMatrix | m_projPA
tDenseMatrix | m_projCq
tDenseArray | m_STP
tDenseArray | m_MrInvSTP
TVStack | m_localMomentArm
btVector3 | m_internalDeltaLinearVelocity
btVector3 | m_internalDeltaAngularVelocity
tDenseArray | m_internalDeltaReducedVelocity
btVector3 | m_linearVelocityFromReduced
btVector3 | m_angularVelocityFromReduced
btVector3 | m_internalDeltaAngularVelocityFromReduced

## Additional Inherited Members
Static Public Member Functions inherited from btSoftBody
static btVector3 | clusterCom (const Cluster *cluster)
static btVector3 | clusterVelocity (const Cluster *cluster, const btVector3 &rpos)
static void | clusterVImpulse (Cluster *cluster, const btVector3 &rpos, const btVector3 &impulse)
static void | clusterDImpulse (Cluster *cluster, const btVector3 &rpos, const btVector3 &impulse)
static void | clusterImpulse (Cluster *cluster, const btVector3 &rpos, const Impulse &impulse)
static void | clusterVAImpulse (Cluster *cluster, const btVector3 &impulse)
static void | clusterDAImpulse (Cluster *cluster, const btVector3 &impulse)
static void | clusterAImpulse (Cluster *cluster, const Impulse &impulse)
static void | clusterDCImpulse (Cluster *cluster, const btVector3 &impulse)
static void | solveCommonConstraints (btSoftBody **bodies, int count, int iterations)
static void | solveClusters (const btAlignedObjectArray< btSoftBody * > &bodies)
static const btSoftBody * | upcast (const btCollisionObject *colObj)
static btSoftBody * | upcast (btCollisionObject *colObj)
static void | PSolve_Anchors (btSoftBody *psb, btScalar kst, btScalar ti)
static void | PSolve_RContacts (btSoftBody *psb, btScalar kst, btScalar ti)
static void | PSolve_SContacts (btSoftBody *psb, btScalar, btScalar ti)
static void | PSolve_Links (btSoftBody *psb, btScalar kst, btScalar ti)
static void | VSolve_Links (btSoftBody *psb, btScalar kst)
static psolver_t | getSolver (ePSolver::_ solver)
static vsolver_t | getSolver (eVSolver::_ solver)
template<typename T>
static T | BaryEval (const T &a, const T &b, const T &c, const btVector3 &coord)

## Detailed Description

Definition at line 11 of file btReducedDeformableBody.h.

## Member Typedef Documentation

## ◆ tDenseArray

typedef btAlignedObjectArray<btScalar> btReducedDeformableBody::tDenseArray

Definition at line 19 of file btReducedDeformableBody.h.

## ◆ tDenseMatrix

typedef btAlignedObjectArray<btAlignedObjectArray<btScalar> > btReducedDeformableBody::tDenseMatrix

Definition at line 20 of file btReducedDeformableBody.h.

## ◆ TVStack

typedef btAlignedObjectArray<btVector3> btReducedDeformableBody::TVStack

Definition at line 17 of file btReducedDeformableBody.h.

## Constructor & Destructor Documentation

## ◆ btReducedDeformableBody()

btReducedDeformableBody::btReducedDeformableBody | ( | btSoftBodyWorldInfo * | worldInfo,
|  | int | node_count,
|  | const btVector3 * | x,
|  | const btScalar * | m )

Definition at line 8 of file btReducedDeformableBody.cpp.

## ◆ ~btReducedDeformableBody()

btReducedDeformableBody::~btReducedDeformableBody | ( |  | ) |
| inline

Definition at line 104 of file btReducedDeformableBody.h.

## Member Function Documentation

## ◆ applyCentralImpulse()

void btReducedDeformableBody::applyCentralImpulse | ( | const btVector3 & | impulse | ) |

Definition at line 596 of file btReducedDeformableBody.cpp.

## ◆ applyDamping()

void btReducedDeformableBody::applyDamping | ( | btScalar | timeStep | ) |

Definition at line 590 of file btReducedDeformableBody.cpp.

## ◆ applyFullSpaceNodalForce()

void btReducedDeformableBody::applyFullSpaceNodalForce | ( | const btVector3 & | f_ext,
|  | int | n_node )

Definition at line 721 of file btReducedDeformableBody.cpp.

## ◆ applyInternalVelocityChanges()

void btReducedDeformableBody::applyInternalVelocityChanges | ( |  | ) |

Definition at line 233 of file btReducedDeformableBody.cpp.

## ◆ applyReducedDampingForce()

void btReducedDeformableBody::applyReducedDampingForce | ( | const tDenseArray & | reduce_vel | ) |

Definition at line 756 of file btReducedDeformableBody.cpp.

## ◆ applyReducedElasticForce()

void btReducedDeformableBody::applyReducedElasticForce | ( | const tDenseArray & | reduce_dofs | ) |

Definition at line 748 of file btReducedDeformableBody.cpp.

## ◆ applyRigidGravity()

void btReducedDeformableBody::applyRigidGravity | ( | const btVector3 & | gravity,
|  | btScalar | dt )

Definition at line 742 of file btReducedDeformableBody.cpp.

## ◆ applyTorqueImpulse()

void btReducedDeformableBody::applyTorqueImpulse | ( | const btVector3 & | torque | ) |

Definition at line 604 of file btReducedDeformableBody.cpp.

## ◆ computeNodeFullVelocity()

const btVector3 btReducedDeformableBody::computeNodeFullVelocity | ( | const btTransform & | ref_trans,
|  | int | n_node ) const

Definition at line 353 of file btReducedDeformableBody.cpp.

## ◆ computeTotalAngularMomentum()

const btVector3 btReducedDeformableBody::computeTotalAngularMomentum | ( |  | ) | const

Definition at line 327 of file btReducedDeformableBody.cpp.

## ◆ disableReducedModes()

void btReducedDeformableBody::disableReducedModes | ( | const bool | rigid_only | ) |

Definition at line 784 of file btReducedDeformableBody.cpp.

## ◆ endOfTimeStepZeroing()

void btReducedDeformableBody::endOfTimeStepZeroing | ( |  | ) |

Definition at line 219 of file btReducedDeformableBody.cpp.

## ◆ getAngularVelocity()

const btVector3 & btReducedDeformableBody::getAngularVelocity | ( |  | ) | const

Definition at line 779 of file btReducedDeformableBody.cpp.

## ◆ getImpulseFactor()

btMatrix3x3 btReducedDeformableBody::getImpulseFactor | ( | int | n_node | ) |
| virtual

Reimplemented from btSoftBody.

Definition at line 633 of file btReducedDeformableBody.cpp.

## ◆ getLinearVelocity()

const btVector3 & btReducedDeformableBody::getLinearVelocity | ( |  | ) | const

Definition at line 774 of file btReducedDeformableBody.cpp.

## ◆ getRelativePos()

btVector3 btReducedDeformableBody::getRelativePos | ( | int | n_node | ) |

Definition at line 626 of file btReducedDeformableBody.cpp.

## ◆ getRigidTransform()

btTransform & btReducedDeformableBody::getRigidTransform | ( |  | ) |

Definition at line 769 of file btReducedDeformableBody.cpp.

## ◆ getTotalMass()

btScalar btReducedDeformableBody::getTotalMass | ( |  | ) | const

Definition at line 764 of file btReducedDeformableBody.cpp.

## ◆ internalApplyFullSpaceImpulse()

void btReducedDeformableBody::internalApplyFullSpaceImpulse | ( | const btVector3 & | impulse,
|  | const btVector3 & | rel_pos,
|  | int | n_node,
|  | btScalar | dt )

Definition at line 693 of file btReducedDeformableBody.cpp.

## ◆ internalApplyRigidImpulse()

void btReducedDeformableBody::internalApplyRigidImpulse | ( | const btVector3 & | impulse,
|  | const btVector3 & | rel_pos )

Definition at line 612 of file btReducedDeformableBody.cpp.

## ◆ internalComputeNodeDeltaVelocity()

const btVector3 btReducedDeformableBody::internalComputeNodeDeltaVelocity | ( | const btTransform & | ref_trans,
|  | int | n_node ) const

Definition at line 372 of file btReducedDeformableBody.cpp.

## ◆ internalInitialization()

void btReducedDeformableBody::internalInitialization | ( |  | ) |

Definition at line 133 of file btReducedDeformableBody.cpp.

## ◆ isReducedModesOFF()

bool btReducedDeformableBody::isReducedModesOFF | ( |  | ) | const

Definition at line 789 of file btReducedDeformableBody.cpp.

## ◆ mapToFullPosition()

void btReducedDeformableBody::mapToFullPosition | ( | const btTransform & | ref_trans | ) |

Definition at line 259 of file btReducedDeformableBody.cpp.

## ◆ mapToFullVelocity()

void btReducedDeformableBody::mapToFullVelocity | ( | const btTransform & | ref_trans | ) |

Definition at line 285 of file btReducedDeformableBody.cpp.

## ◆ predictIntegratedTransform()

void btReducedDeformableBody::predictIntegratedTransform | ( | btScalar | dt,
|  | btTransform & | predictedTransform )

Definition at line 246 of file btReducedDeformableBody.cpp.

## ◆ proceedToTransform()

void btReducedDeformableBody::proceedToTransform | ( | btScalar | dt,
|  | bool | end_of_time_step )

Definition at line 393 of file btReducedDeformableBody.cpp.

## ◆ scale()

void btReducedDeformableBody::scale | ( | const btVector3 & | scl | ) |
| virtual

Reimplemented from btSoftBody.

Definition at line 455 of file btReducedDeformableBody.cpp.

## ◆ setDamping()

void btReducedDeformableBody::setDamping | ( | const btScalar | alpha,
|  | const btScalar | beta )

Definition at line 127 of file btReducedDeformableBody.cpp.

## ◆ setFixedNodes()

void btReducedDeformableBody::setFixedNodes | ( | const int | n_node | ) |

Definition at line 121 of file btReducedDeformableBody.cpp.

## ◆ setInertiaProps()

void btReducedDeformableBody::setInertiaProps | ( |  | ) |

Definition at line 80 of file btReducedDeformableBody.cpp.

## ◆ setMassProps()

void btReducedDeformableBody::setMassProps | ( | const tDenseArray & | mass_array | ) |

Definition at line 61 of file btReducedDeformableBody.cpp.

## ◆ setMassScale()

void btReducedDeformableBody::setMassScale | ( | const btScalar | rho | ) |

Definition at line 116 of file btReducedDeformableBody.cpp.

## ◆ setReducedModes()

void btReducedDeformableBody::setReducedModes | ( | int | num_modes,
|  | int | full_size )

Definition at line 45 of file btReducedDeformableBody.cpp.

## ◆ setRigidAngularVelocity()

void btReducedDeformableBody::setRigidAngularVelocity | ( | const btVector3 & | omega | ) |

Definition at line 106 of file btReducedDeformableBody.cpp.

## ◆ setRigidVelocity()

void btReducedDeformableBody::setRigidVelocity | ( | const btVector3 & | v | ) |

Definition at line 101 of file btReducedDeformableBody.cpp.

## ◆ setStiffnessScale()

void btReducedDeformableBody::setStiffnessScale | ( | const btScalar | ks | ) |

Definition at line 111 of file btReducedDeformableBody.cpp.

## ◆ setTotalMass()

void btReducedDeformableBody::setTotalMass | ( | btScalar | mass,
|  | bool | fromfaces = false )
| virtual

Definition at line 494 of file btReducedDeformableBody.cpp.

## ◆ transform()

void btReducedDeformableBody::transform | ( | const btTransform & | trs | ) |
| virtual

Reimplemented from btSoftBody.

Definition at line 410 of file btReducedDeformableBody.cpp.

## ◆ transformTo()

void btReducedDeformableBody::transformTo | ( | const btTransform & | trs | ) |
| virtual

Reimplemented from btSoftBody.

Definition at line 402 of file btReducedDeformableBody.cpp.

## ◆ updateExternalForceProjectMatrix()

void btReducedDeformableBody::updateExternalForceProjectMatrix | ( | bool | initialized | ) |

Definition at line 166 of file btReducedDeformableBody.cpp.

## ◆ updateInertiaTensor()

void btReducedDeformableBody::updateInertiaTensor | ( |  | ) |
| private

Definition at line 585 of file btReducedDeformableBody.cpp.

## ◆ updateInitialInertiaTensor()

void btReducedDeformableBody::updateInitialInertiaTensor | ( | const btMatrix3x3 & | rotation | ) |
| private

Definition at line 562 of file btReducedDeformableBody.cpp.

## ◆ updateLocalInertiaTensorFromNodes()

void btReducedDeformableBody::updateLocalInertiaTensorFromNodes | ( |  | ) |
| private

Definition at line 533 of file btReducedDeformableBody.cpp.

## ◆ updateLocalMomentArm()

void btReducedDeformableBody::updateLocalMomentArm | ( |  | ) |

Definition at line 145 of file btReducedDeformableBody.cpp.

## ◆ updateModesByRotation()

void btReducedDeformableBody::updateModesByRotation | ( | const btMatrix3x3 & | rotation | ) |
| private

Definition at line 568 of file btReducedDeformableBody.cpp.

## ◆ updateReducedDofs()

void btReducedDeformableBody::updateReducedDofs | ( | btScalar | solverdt | ) |

Definition at line 251 of file btReducedDeformableBody.cpp.

## ◆ updateReducedVelocity()

void btReducedDeformableBody::updateReducedVelocity | ( | btScalar | solverdt | ) |

Definition at line 272 of file btReducedDeformableBody.cpp.

## ◆ updateRestNodalPositions()

void btReducedDeformableBody::updateRestNodalPositions | ( |  | ) |
| private

Definition at line 521 of file btReducedDeformableBody.cpp.

## Member Data Documentation

## ◆ m_angularDamping

btScalar btReducedDeformableBody::m_angularDamping
| protected

Definition at line 56 of file btReducedDeformableBody.h.

## ◆ m_angularFactor

btVector3 btReducedDeformableBody::m_angularFactor
| protected

Definition at line 58 of file btReducedDeformableBody.h.

## ◆ m_angularVelocity

btVector3 btReducedDeformableBody::m_angularVelocity
| protected

Definition at line 54 of file btReducedDeformableBody.h.

## ◆ m_angularVelocityFromReduced

btVector3 btReducedDeformableBody::m_angularVelocityFromReduced
| private

Definition at line 46 of file btReducedDeformableBody.h.

## ◆ m_contactNodesList

btAlignedObjectArray<int> btReducedDeformableBody::m_contactNodesList

Definition at line 97 of file btReducedDeformableBody.h.

## ◆ m_dampingAlpha

btScalar btReducedDeformableBody::m_dampingAlpha
| protected

Definition at line 68 of file btReducedDeformableBody.h.

## ◆ m_dampingBeta

btScalar btReducedDeformableBody::m_dampingBeta
| protected

Definition at line 69 of file btReducedDeformableBody.h.

## ◆ m_eigenvalues

tDenseArray btReducedDeformableBody::m_eigenvalues

Definition at line 87 of file btReducedDeformableBody.h.

## ◆ m_fixedNodes

btAlignedObjectArray<int> btReducedDeformableBody::m_fixedNodes

Definition at line 93 of file btReducedDeformableBody.h.

## ◆ m_initialCoM

btVector3 btReducedDeformableBody::m_initialCoM
| protected

Definition at line 65 of file btReducedDeformableBody.h.

## ◆ m_internalDeltaAngularVelocity

btVector3 btReducedDeformableBody::m_internalDeltaAngularVelocity
| private

Definition at line 42 of file btReducedDeformableBody.h.

## ◆ m_internalDeltaAngularVelocityFromReduced

btVector3 btReducedDeformableBody::m_internalDeltaAngularVelocityFromReduced
| private

Definition at line 47 of file btReducedDeformableBody.h.

## ◆ m_internalDeltaLinearVelocity

btVector3 btReducedDeformableBody::m_internalDeltaLinearVelocity
| private

Definition at line 41 of file btReducedDeformableBody.h.

## ◆ m_internalDeltaReducedVelocity

tDenseArray btReducedDeformableBody::m_internalDeltaReducedVelocity
| private

Definition at line 43 of file btReducedDeformableBody.h.

## ◆ m_interpolateInvInertiaTensorWorld

btMatrix3x3 btReducedDeformableBody::m_interpolateInvInertiaTensorWorld
| protected

Definition at line 64 of file btReducedDeformableBody.h.

## ◆ m_inverseMass

btScalar btReducedDeformableBody::m_inverseMass
| protected

Definition at line 52 of file btReducedDeformableBody.h.

## ◆ m_invInertiaLocal

btMatrix3x3 btReducedDeformableBody::m_invInertiaLocal
| protected

Definition at line 60 of file btReducedDeformableBody.h.

## ◆ m_invInertiaTensorWorld

btMatrix3x3 btReducedDeformableBody::m_invInertiaTensorWorld
| protected

Definition at line 63 of file btReducedDeformableBody.h.

## ◆ m_invInertiaTensorWorldInitial

btMatrix3x3 btReducedDeformableBody::m_invInertiaTensorWorldInitial
| protected

Definition at line 62 of file btReducedDeformableBody.h.

## ◆ m_Kr

tDenseArray btReducedDeformableBody::m_Kr

Definition at line 88 of file btReducedDeformableBody.h.

## ◆ m_ksScale

btScalar btReducedDeformableBody::m_ksScale
| private

Definition at line 31 of file btReducedDeformableBody.h.

## ◆ m_linearDamping

btScalar btReducedDeformableBody::m_linearDamping
| protected

Definition at line 55 of file btReducedDeformableBody.h.

## ◆ m_linearFactor

btVector3 btReducedDeformableBody::m_linearFactor
| protected

Definition at line 57 of file btReducedDeformableBody.h.

## ◆ m_linearVelocity

btVector3 btReducedDeformableBody::m_linearVelocity
| protected

Definition at line 53 of file btReducedDeformableBody.h.

## ◆ m_linearVelocityFromReduced

btVector3 btReducedDeformableBody::m_linearVelocityFromReduced
| private

Definition at line 45 of file btReducedDeformableBody.h.

## ◆ m_localMomentArm

TVStack btReducedDeformableBody::m_localMomentArm
| private

Definition at line 39 of file btReducedDeformableBody.h.

## ◆ m_mass

btScalar btReducedDeformableBody::m_mass
| protected

Definition at line 51 of file btReducedDeformableBody.h.

## ◆ m_modes

tDenseMatrix btReducedDeformableBody::m_modes

Definition at line 79 of file btReducedDeformableBody.h.

## ◆ m_MrInvSTP

tDenseArray btReducedDeformableBody::m_MrInvSTP
| private

Definition at line 37 of file btReducedDeformableBody.h.

## ◆ m_nFull

int btReducedDeformableBody::m_nFull

Definition at line 78 of file btReducedDeformableBody.h.

## ◆ m_nodalMass

tDenseArray btReducedDeformableBody::m_nodalMass

Definition at line 92 of file btReducedDeformableBody.h.

## ◆ m_nodeIndexOffset

int btReducedDeformableBody::m_nodeIndexOffset

Definition at line 94 of file btReducedDeformableBody.h.

## ◆ m_nReduced

int btReducedDeformableBody::m_nReduced

Definition at line 77 of file btReducedDeformableBody.h.

## ◆ m_projCq

tDenseMatrix btReducedDeformableBody::m_projCq
| private

Definition at line 35 of file btReducedDeformableBody.h.

## ◆ m_projPA

tDenseMatrix btReducedDeformableBody::m_projPA
| private

Definition at line 34 of file btReducedDeformableBody.h.

## ◆ m_reducedDofs

tDenseArray btReducedDeformableBody::m_reducedDofs

Definition at line 80 of file btReducedDeformableBody.h.

## ◆ m_reducedDofsBuffer

tDenseArray btReducedDeformableBody::m_reducedDofsBuffer

Definition at line 81 of file btReducedDeformableBody.h.

## ◆ m_reducedForceDamping

tDenseArray btReducedDeformableBody::m_reducedForceDamping

Definition at line 86 of file btReducedDeformableBody.h.

## ◆ m_reducedForceElastic

tDenseArray btReducedDeformableBody::m_reducedForceElastic

Definition at line 85 of file btReducedDeformableBody.h.

## ◆ m_reducedForceExternal

tDenseArray btReducedDeformableBody::m_reducedForceExternal

Definition at line 84 of file btReducedDeformableBody.h.

## ◆ m_reducedVelocity

tDenseArray btReducedDeformableBody::m_reducedVelocity

Definition at line 82 of file btReducedDeformableBody.h.

## ◆ m_reducedVelocityBuffer

tDenseArray btReducedDeformableBody::m_reducedVelocityBuffer

Definition at line 83 of file btReducedDeformableBody.h.

## ◆ m_rhoScale

btScalar btReducedDeformableBody::m_rhoScale
| private

Definition at line 30 of file btReducedDeformableBody.h.

## ◆ m_rigidOnly

bool btReducedDeformableBody::m_rigidOnly
| private

Definition at line 24 of file btReducedDeformableBody.h.

## ◆ m_rigidTransformWorld

btTransform btReducedDeformableBody::m_rigidTransformWorld
| protected

Definition at line 61 of file btReducedDeformableBody.h.

## ◆ m_STP

tDenseArray btReducedDeformableBody::m_STP
| private

Definition at line 36 of file btReducedDeformableBody.h.

## ◆ m_transform_lock

bool btReducedDeformableBody::m_transform_lock
| private

Definition at line 27 of file btReducedDeformableBody.h.

## ◆ m_x0

TVStack btReducedDeformableBody::m_x0

Definition at line 91 of file btReducedDeformableBody.h.

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

- btReducedDeformableBody.h
- btReducedDeformableBody.cpp