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:
Inheritance graph
[legend]
Collaboration diagram for btReducedDeformableBody:
Collaboration graph
[legend]

Public Types

typedef btAlignedObjectArray< btVector3TVStack
 
typedef btAlignedObjectArray< btScalartDenseArray
 
typedef btAlignedObjectArray< btAlignedObjectArray< btScalar > > tDenseMatrix
 
- Public Types inherited from btSoftBody
typedef btAlignedObjectArray< eVSolver::_tVSolverArray
 
typedef btAlignedObjectArray< ePSolver::_tPSolverArray
 
typedef btAlignedObjectArray< btScalartScalarArray
 
typedef btAlignedObjectArray< btVector3tVector3Array
 
typedef void(* psolver_t) (btSoftBody *, btScalar, btScalar)
 
typedef void(* vsolver_t) (btSoftBody *, btScalar)
 
typedef btAlignedObjectArray< Cluster * > tClusterArray
 
typedef btAlignedObjectArray< NotetNoteArray
 
typedef btAlignedObjectArray< NodetNodeArray
 
typedef btAlignedObjectArray< RenderNodetRenderNodeArray
 
typedef btAlignedObjectArray< btDbvtNode * > tLeafArray
 
typedef btAlignedObjectArray< LinktLinkArray
 
typedef btAlignedObjectArray< FacetFaceArray
 
typedef btAlignedObjectArray< RenderFacetRenderFaceArray
 
typedef btAlignedObjectArray< TetratTetraArray
 
typedef btAlignedObjectArray< AnchortAnchorArray
 
typedef btAlignedObjectArray< RContacttRContactArray
 
typedef btAlignedObjectArray< SContacttSContactArray
 
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
 
btTransformgetRigidTransform ()
 
const btVector3getLinearVelocity () const
 
const btVector3getAngularVelocity () 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 ()
 
btSoftBodyWorldInfogetWorldInfo ()
 
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
 
MaterialappendMaterial ()
 
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 transformTo (const btTransform &trs)
 
virtual void transform (const btTransform &trs)
 
virtual void translate (const btVector3 &trs)
 
virtual void rotate (const btQuaternion &rot)
 
virtual void scale (const btVector3 &scl)
 
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) More...
 
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!) More...
 
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 ()
 
virtual btMatrix3x3 getImpulseFactor (int n_node)
 
void setWindVelocity (const btVector3 &velocity)
 Set a wind velocity for interaction with the air. More...
 
const btVector3getWindVelocity ()
 Return the wind velocity for interaction with the air. More...
 
void setSoftBodySolver (btSoftBodySolver *softBodySolver)
 
btSoftBodySolvergetSoftBodySolver ()
 
btSoftBodySolvergetSoftBodySolver () 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) More...
 
- Public Member Functions inherited from btCollisionObject
 BT_DECLARE_ALIGNED_ALLOCATOR ()
 
bool mergesSimulationIslands () const
 
const btVector3getAnisotropicFriction () 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. More...
 
btScalar getContactProcessingThreshold () const
 
bool isStaticObject () const
 
bool isKinematicObject () const
 
bool isStaticOrKinematicObject () const
 
bool hasContactResponse () const
 
 btCollisionObject ()
 
virtual ~btCollisionObject ()
 
virtual void setCollisionShape (btCollisionShape *collisionShape)
 
const btCollisionShapegetCollisionShape () const
 
btCollisionShapegetCollisionShape ()
 
void setIgnoreCollisionCheck (const btCollisionObject *co, bool ignoreCollisionCheck)
 
int getNumObjectsWithoutCollision () const
 
const btCollisionObjectgetObjectWithoutCollision (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. More...
 
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. More...
 
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 More...
 
btTransformgetWorldTransform ()
 
const btTransformgetWorldTransform () const
 
void setWorldTransform (const btTransform &worldTrans)
 
btBroadphaseProxygetBroadphaseHandle ()
 
const btBroadphaseProxygetBroadphaseHandle () const
 
void setBroadphaseHandle (btBroadphaseProxy *handle)
 
const btTransformgetInterpolationWorldTransform () const
 
btTransformgetInterpolationWorldTransform ()
 
void setInterpolationWorldTransform (const btTransform &trans)
 
void setInterpolationLinearVelocity (const btVector3 &linvel)
 
void setInterpolationAngularVelocity (const btVector3 &angvel)
 
const btVector3getInterpolationLinearVelocity () const
 
const btVector3getInterpolationAngularVelocity () 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:: More...
 
void setCcdSweptSphereRadius (btScalar radius)
 Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm:: More...
 
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. More...
 
void * getUserPointer () const
 users can point to their objects, userPointer is not used by Bullet More...
 
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 More...
 
void setUserIndex (int index)
 users can point to their objects, userPointer is not used by Bullet More...
 
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 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) More...
 
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
 
btSoftBodySolverm_softBodySolver
 
Config m_cfg
 
SolverState m_sst
 
Pose m_pose
 
void * m_tag
 
btSoftBodyWorldInfom_worldInfo
 
tNoteArray m_notes
 
tNodeArray m_nodes
 
tRenderNodeArray m_renderNodes
 
tLinkArray m_links
 
tFaceArray m_faces
 
tRenderFaceArray m_renderFaces
 
tTetraArray m_tetras
 
btAlignedObjectArray< TetraScratchm_tetraScratches
 
btAlignedObjectArray< TetraScratchm_tetraScratchesTn
 
tAnchorArray m_anchors
 
btAlignedObjectArray< DeformableNodeRigidAnchorm_deformableAnchors
 
tRContactArray m_rcontacts
 
btAlignedObjectArray< DeformableNodeRigidContactm_nodeRigidContacts
 
btAlignedObjectArray< DeformableFaceNodeContactm_faceNodeContacts
 
btAlignedObjectArray< DeformableFaceRigidContactm_faceRigidContacts
 
btAlignedObjectArray< DeformableFaceNodeContactm_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
 
btDbvntNodem_fdbvnt
 
btDbvt m_cdbvt
 
tClusterArray m_clusters
 
btScalar m_dampingCoefficient
 
btScalar m_sleepingThreshold
 
btScalar m_maxSpeedSquared
 
btAlignedObjectArray< btVector3m_quads
 
btScalar m_repulsionStiffness
 
btScalar m_gravityFactor
 
bool m_cacheBarycenter
 
btAlignedObjectArray< btVector3m_X
 
btAlignedObjectArray< btVector4m_renderNodesInterpolationWeights
 
btAlignedObjectArray< btAlignedObjectArray< const btSoftBody::Node * > > m_renderNodesParents
 
btAlignedObjectArray< btScalarm_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 More...
 
btVector3 m_interpolationLinearVelocity
 
btVector3 m_interpolationAngularVelocity
 
btVector3 m_anisotropicFriction
 
int m_hasAnisotropicFriction
 
btScalar m_contactProcessingThreshold
 
btBroadphaseProxym_broadphaseHandle
 
btCollisionShapem_collisionShape
 
void * m_extensionPointer
 m_extensionPointer is used by some internal low-level Bullet extensions. More...
 
btCollisionShapem_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. More...
 
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. More...
 
void * m_userObjectPointer
 users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer More...
 
int m_userIndex2
 
int m_userIndex
 
int m_userIndex3
 
btScalar m_hitFraction
 time of impact calculation More...
 
btScalar m_ccdSweptSphereRadius
 Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm:: More...
 
btScalar m_ccdMotionThreshold
 Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold. More...
 
int m_checkCollideWith
 If some object should have elaborate collision filtering by sub-classes. More...
 
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. More...
 
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 btSoftBodyupcast (const btCollisionObject *colObj)
 
static btSoftBodyupcast (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

Definition at line 19 of file btReducedDeformableBody.h.

◆ tDenseMatrix

Definition at line 20 of file btReducedDeformableBody.h.

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