Bullet Collision Detection & Physics Library
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
btSoftBody Class Reference

The btSoftBody is an class to simulate cloth and volumetric soft bodies. More...

#include <btSoftBody.h>

Inheritance diagram for btSoftBody:
Inheritance graph
[legend]
Collaboration diagram for btSoftBody:
Collaboration graph
[legend]

Classes

struct  AJoint
 
struct  Anchor
 
struct  Body
 
struct  CJoint
 
struct  Cluster
 
struct  Config
 
struct  eAeroModel
 eAeroModel More...
 
struct  eFeature
 eFeature More...
 
struct  Element
 
struct  ePSolver
 ePSolver : positions solvers More...
 
struct  eSolverPresets
 eSolverPresets More...
 
struct  eVSolver
 eVSolver : velocities solvers More...
 
struct  Face
 
struct  fCollision
 fCollision More...
 
struct  Feature
 
struct  fMaterial
 fMaterial More...
 
struct  ImplicitFn
 
struct  Impulse
 
struct  Joint
 
struct  Link
 
struct  LJoint
 
struct  Material
 
struct  Node
 
struct  Note
 
struct  Pose
 
struct  RayFromToCaster
 RayFromToCaster takes a ray from, ray to (instead of direction!) More...
 
struct  RContact
 
struct  SContact
 
struct  sCti
 
struct  sMedium
 
struct  SolverState
 
struct  sRayCast
 
struct  Tetra
 

Public Types

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< btDbvtNode * > tLeafArray
 
typedef btAlignedObjectArray< LinktLinkArray
 
typedef btAlignedObjectArray< FacetFaceArray
 
typedef btAlignedObjectArray< TetratTetraArray
 
typedef btAlignedObjectArray< AnchortAnchorArray
 
typedef btAlignedObjectArray< RContacttRContactArray
 
typedef btAlignedObjectArray< SContacttSContactArray
 
typedef btAlignedObjectArray< Material * > tMaterialArray
 
typedef btAlignedObjectArray< Joint * > tJointArray
 
typedef btAlignedObjectArray< btSoftBody * > tSoftBodyArray
 
- Public Types inherited from btCollisionObject
enum  CollisionFlags {
  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

 btSoftBody (btSoftBodyWorldInfo *worldInfo, int node_count, const btVector3 *x, const btScalar *m)
 btSoftBody implementation by Nathanael Presson More...
 
 btSoftBody (btSoftBodyWorldInfo *worldInfo)
 
void initDefaults ()
 
virtual ~btSoftBody ()
 
btSoftBodyWorldInfogetWorldInfo ()
 
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 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 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)
 
void transform (const btTransform &trs)
 
void translate (const btVector3 &trs)
 
void rotate (const btQuaternion &rot)
 
void scale (const btVector3 &scl)
 
btScalar getRestLengthScale ()
 
void setRestLengthScale (btScalar restLength)
 
void setPose (bool bvolume, bool bframe)
 
void resetLinkRestLengths ()
 
btScalar getVolume () const
 
int clusterCount () const
 
btVector3 clusterCom (int cluster) const
 
int generateBendingConstraints (int distance, Material *mat=0)
 
void randomizeConstraints ()
 
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...
 
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 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 ()
 
btVector3 evaluateCom () 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 applyForces ()
 
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 ()
 
const btCollisionShapegetCollisionShape () const
 
btCollisionShapegetCollisionShape ()
 
void setIgnoreCollisionCheck (const btCollisionObject *co, bool ignoreCollisionCheck)
 
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
 
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)
 
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
 

Static Public Member Functions

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)
 

Public Attributes

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
 
tLinkArray m_links
 
tFaceArray m_faces
 
tTetraArray m_tetras
 
tAnchorArray m_anchors
 
tRContactArray m_rcontacts
 
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
 
btDbvt m_cdbvt
 
tClusterArray m_clusters
 
btAlignedObjectArray< bool > m_clusterConnectivity
 
btTransform m_initialWorldTransform
 
btVector3 m_windVelocity
 
btScalar m_restLengthScale
 
btAlignedObjectArray< int > m_userIndexMapping
 

Additional Inherited Members

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

Detailed Description

The btSoftBody is an class to simulate cloth and volumetric soft bodies.

There is two-way interaction between btSoftBody and btRigidBody/btCollisionObject.

Definition at line 71 of file btSoftBody.h.

Member Typedef Documentation

typedef void(* btSoftBody::psolver_t) (btSoftBody *, btScalar, btScalar)

Definition at line 633 of file btSoftBody.h.

Definition at line 642 of file btSoftBody.h.

Definition at line 635 of file btSoftBody.h.

Definition at line 640 of file btSoftBody.h.

Definition at line 646 of file btSoftBody.h.

Definition at line 638 of file btSoftBody.h.

Definition at line 639 of file btSoftBody.h.

Definition at line 645 of file btSoftBody.h.

Definition at line 637 of file btSoftBody.h.

Definition at line 636 of file btSoftBody.h.

Definition at line 129 of file btSoftBody.h.

Definition at line 643 of file btSoftBody.h.

Definition at line 182 of file btSoftBody.h.

Definition at line 644 of file btSoftBody.h.

Definition at line 647 of file btSoftBody.h.

Definition at line 641 of file btSoftBody.h.

Definition at line 183 of file btSoftBody.h.

Definition at line 128 of file btSoftBody.h.

typedef void(* btSoftBody::vsolver_t) (btSoftBody *, btScalar)

Definition at line 634 of file btSoftBody.h.

Constructor & Destructor Documentation

btSoftBody::btSoftBody ( btSoftBodyWorldInfo worldInfo,
int  node_count,
const btVector3 x,
const btScalar m 
)

btSoftBody implementation by Nathanael Presson

Definition at line 26 of file btSoftBody.cpp.

btSoftBody::btSoftBody ( btSoftBodyWorldInfo worldInfo)

Definition at line 57 of file btSoftBody.cpp.

btSoftBody::~btSoftBody ( )
virtual

Definition at line 119 of file btSoftBody.cpp.

Member Function Documentation

void btSoftBody::addAeroForceToFace ( const btVector3 windVelocity,
int  faceIndex 
)

Definition at line 547 of file btSoftBody.cpp.

void btSoftBody::addAeroForceToNode ( const btVector3 windVelocity,
int  nodeIndex 
)

Definition at line 458 of file btSoftBody.cpp.

void btSoftBody::addForce ( const btVector3 force)

Definition at line 443 of file btSoftBody.cpp.

void btSoftBody::addForce ( const btVector3 force,
int  node 
)

Definition at line 449 of file btSoftBody.cpp.

void btSoftBody::addVelocity ( const btVector3 velocity)

Definition at line 644 of file btSoftBody.cpp.

void btSoftBody::addVelocity ( const btVector3 velocity,
int  node 
)

Definition at line 664 of file btSoftBody.cpp.

void btSoftBody::appendAnchor ( int  node,
btRigidBody body,
bool  disableCollisionBetweenLinkedBodies = false,
btScalar  influence = 1 
)

Definition at line 363 of file btSoftBody.cpp.

void btSoftBody::appendAnchor ( int  node,
btRigidBody body,
const btVector3 localPivot,
bool  disableCollisionBetweenLinkedBodies = false,
btScalar  influence = 1 
)

Definition at line 370 of file btSoftBody.cpp.

void btSoftBody::appendAngularJoint ( const AJoint::Specs specs,
Cluster body0,
Body  body1 
)

Definition at line 416 of file btSoftBody.cpp.

void btSoftBody::appendAngularJoint ( const AJoint::Specs specs,
Body  body = Body() 
)

Definition at line 431 of file btSoftBody.cpp.

void btSoftBody::appendAngularJoint ( const AJoint::Specs specs,
btSoftBody body 
)

Definition at line 437 of file btSoftBody.cpp.

void btSoftBody::appendFace ( int  model = -1,
Material mat = 0 
)

Definition at line 299 of file btSoftBody.cpp.

void btSoftBody::appendFace ( int  node0,
int  node1,
int  node2,
Material mat = 0 
)

Definition at line 310 of file btSoftBody.cpp.

void btSoftBody::appendLinearJoint ( const LJoint::Specs specs,
Cluster body0,
Body  body1 
)

Definition at line 390 of file btSoftBody.cpp.

void btSoftBody::appendLinearJoint ( const LJoint::Specs specs,
Body  body = Body() 
)

Definition at line 404 of file btSoftBody.cpp.

void btSoftBody::appendLinearJoint ( const LJoint::Specs specs,
btSoftBody body 
)

Definition at line 410 of file btSoftBody.cpp.

void btSoftBody::appendLink ( int  model = -1,
Material mat = 0 
)

Definition at line 262 of file btSoftBody.cpp.

void btSoftBody::appendLink ( int  node0,
int  node1,
Material mat = 0,
bool  bcheckexist = false 
)

Definition at line 273 of file btSoftBody.cpp.

void btSoftBody::appendLink ( Node node0,
Node node1,
Material mat = 0,
bool  bcheckexist = false 
)

Definition at line 282 of file btSoftBody.cpp.

btSoftBody::Material * btSoftBody::appendMaterial ( )

Definition at line 176 of file btSoftBody.cpp.

void btSoftBody::appendNode ( const btVector3 x,
btScalar  m 
)

Definition at line 242 of file btSoftBody.cpp.

void btSoftBody::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 
)

Definition at line 188 of file btSoftBody.cpp.

void btSoftBody::appendNote ( const char *  text,
const btVector3 o,
Node feature 
)

Definition at line 213 of file btSoftBody.cpp.

void btSoftBody::appendNote ( const char *  text,
const btVector3 o,
Link feature 
)

Definition at line 221 of file btSoftBody.cpp.

void btSoftBody::appendNote ( const char *  text,
const btVector3 o,
Face feature 
)

Definition at line 231 of file btSoftBody.cpp.

void btSoftBody::appendTetra ( int  model,
Material mat 
)

Definition at line 334 of file btSoftBody.cpp.

void btSoftBody::appendTetra ( int  node0,
int  node1,
int  node2,
int  node3,
Material mat = 0 
)

Definition at line 345 of file btSoftBody.cpp.

void btSoftBody::applyClusters ( bool  drift)

Definition at line 2689 of file btSoftBody.cpp.

void btSoftBody::applyForces ( )

Definition at line 2935 of file btSoftBody.cpp.

int btSoftBody::calculateSerializeBufferSize ( ) const
virtual

Reimplemented from btCollisionObject.

Definition at line 3309 of file btSoftBody.cpp.

bool btSoftBody::checkContact ( const btCollisionObjectWrapper colObjWrap,
const btVector3 x,
btScalar  margin,
btSoftBody::sCti cti 
) const

Definition at line 2248 of file btSoftBody.cpp.

bool btSoftBody::checkFace ( int  node0,
int  node1,
int  node2 
) const

Definition at line 155 of file btSoftBody.cpp.

bool btSoftBody::checkLink ( int  node0,
int  node1 
) const

Definition at line 133 of file btSoftBody.cpp.

bool btSoftBody::checkLink ( const Node node0,
const Node node1 
) const

Definition at line 139 of file btSoftBody.cpp.

void btSoftBody::cleanupClusters ( )

Definition at line 2656 of file btSoftBody.cpp.

void btSoftBody::clusterAImpulse ( Cluster cluster,
const Impulse impulse 
)
static

Definition at line 1019 of file btSoftBody.cpp.

btVector3 btSoftBody::clusterCom ( const Cluster cluster)
static

Definition at line 953 of file btSoftBody.cpp.

btVector3 btSoftBody::clusterCom ( int  cluster) const

Definition at line 964 of file btSoftBody.cpp.

int btSoftBody::clusterCount ( ) const

Definition at line 947 of file btSoftBody.cpp.

void btSoftBody::clusterDAImpulse ( Cluster cluster,
const btVector3 impulse 
)
static

Definition at line 1011 of file btSoftBody.cpp.

void btSoftBody::clusterDCImpulse ( Cluster cluster,
const btVector3 impulse 
)
static

Definition at line 1026 of file btSoftBody.cpp.

void btSoftBody::clusterDImpulse ( Cluster cluster,
const btVector3 rpos,
const btVector3 impulse 
)
static

Definition at line 986 of file btSoftBody.cpp.

void btSoftBody::clusterImpulse ( Cluster cluster,
const btVector3 rpos,
const Impulse impulse 
)
static

Definition at line 996 of file btSoftBody.cpp.

void btSoftBody::clusterVAImpulse ( Cluster cluster,
const btVector3 impulse 
)
static

Definition at line 1003 of file btSoftBody.cpp.

btVector3 btSoftBody::clusterVelocity ( const Cluster cluster,
const btVector3 rpos 
)
static

Definition at line 970 of file btSoftBody.cpp.

void btSoftBody::clusterVImpulse ( Cluster cluster,
const btVector3 rpos,
const btVector3 impulse 
)
static

Definition at line 976 of file btSoftBody.cpp.

bool btSoftBody::cutLink ( int  node0,
int  node1,
btScalar  position 
)

Definition at line 1644 of file btSoftBody.cpp.

bool btSoftBody::cutLink ( const Node node0,
const Node node1,
btScalar  position 
)

Definition at line 1638 of file btSoftBody.cpp.

void btSoftBody::dampClusters ( )

Definition at line 2740 of file btSoftBody.cpp.

void btSoftBody::defaultCollisionHandler ( const btCollisionObjectWrapper pcoWrap)

Definition at line 3205 of file btSoftBody.cpp.

void btSoftBody::defaultCollisionHandler ( btSoftBody psb)

Definition at line 3246 of file btSoftBody.cpp.

btVector3 btSoftBody::evaluateCom ( ) const

Definition at line 2234 of file btSoftBody.cpp.

int btSoftBody::generateBendingConstraints ( int  distance,
Material mat = 0 
)

generic Floyd's algorithm

Definition at line 1040 of file btSoftBody.cpp.

int btSoftBody::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)

Definition at line 1194 of file btSoftBody.cpp.

virtual void btSoftBody::getAabb ( btVector3 aabbMin,
btVector3 aabbMax 
) const
inlinevirtual

Definition at line 953 of file btSoftBody.h.

btScalar btSoftBody::getMass ( int  node) const

Definition at line 681 of file btSoftBody.cpp.

btScalar btSoftBody::getRestLengthScale ( )

Definition at line 846 of file btSoftBody.cpp.

btSoftBodySolver* btSoftBody::getSoftBodySolver ( )
inline

Definition at line 918 of file btSoftBody.h.

btSoftBodySolver* btSoftBody::getSoftBodySolver ( ) const
inline

Definition at line 926 of file btSoftBody.h.

btSoftBody::psolver_t btSoftBody::getSolver ( ePSolver::_  solver)
static

Definition at line 3172 of file btSoftBody.cpp.

btSoftBody::vsolver_t btSoftBody::getSolver ( eVSolver::_  solver)
static

Definition at line 3192 of file btSoftBody.cpp.

btScalar btSoftBody::getTotalMass ( ) const

Definition at line 687 of file btSoftBody.cpp.

btScalar btSoftBody::getVolume ( ) const

Definition at line 928 of file btSoftBody.cpp.

const btVector3 & btSoftBody::getWindVelocity ( )

Return the wind velocity for interaction with the air.

Definition at line 3302 of file btSoftBody.cpp.

btSoftBodyWorldInfo* btSoftBody::getWorldInfo ( )
inline

Definition at line 702 of file btSoftBody.h.

void btSoftBody::indicesToPointers ( const int *  map = 0)

Definition at line 2100 of file btSoftBody.cpp.

void btSoftBody::initDefaults ( )

for now, create a collision shape internally

Definition at line 64 of file btSoftBody.cpp.

void btSoftBody::initializeClusters ( )

Definition at line 2472 of file btSoftBody.cpp.

void btSoftBody::initializeFaceTree ( )

Definition at line 2223 of file btSoftBody.cpp.

void btSoftBody::integrateMotion ( )

Definition at line 1990 of file btSoftBody.cpp.

void btSoftBody::pointersToIndices ( )

Definition at line 2057 of file btSoftBody.cpp.

void btSoftBody::predictMotion ( btScalar  dt)

Definition at line 1741 of file btSoftBody.cpp.

void btSoftBody::prepareClusters ( int  iterations)

Definition at line 2670 of file btSoftBody.cpp.

void btSoftBody::PSolve_Anchors ( btSoftBody psb,
btScalar  kst,
btScalar  ti 
)
static

Definition at line 3004 of file btSoftBody.cpp.

void btSoftBody::PSolve_Links ( btSoftBody psb,
btScalar  kst,
btScalar  ti 
)
static

Definition at line 3135 of file btSoftBody.cpp.

void btSoftBody::PSolve_RContacts ( btSoftBody psb,
btScalar  kst,
btScalar  ti 
)
static

Definition at line 3026 of file btSoftBody.cpp.

void btSoftBody::PSolve_SContacts ( btSoftBody psb,
btScalar  ,
btScalar  ti 
)
static

Definition at line 3100 of file btSoftBody.cpp.

void btSoftBody::randomizeConstraints ( )

Definition at line 1160 of file btSoftBody.cpp.

bool btSoftBody::rayTest ( const btVector3 rayFrom,
const btVector3 rayTo,
sRayCast results 
)

Ray casting using rayFrom and rayTo in worldspace, (not direction!)

Definition at line 1699 of file btSoftBody.cpp.

int btSoftBody::rayTest ( const btVector3 rayFrom,
const btVector3 rayTo,
btScalar mint,
eFeature::_ feature,
int &  index,
bool  bcountonly 
) const

Definition at line 2144 of file btSoftBody.cpp.

void btSoftBody::refine ( ImplicitFn ifn,
btScalar  accurary,
bool  cut 
)

Definition at line 1387 of file btSoftBody.cpp.

void btSoftBody::releaseCluster ( int  index)

Definition at line 1178 of file btSoftBody.cpp.

void btSoftBody::releaseClusters ( )

Definition at line 1188 of file btSoftBody.cpp.

void btSoftBody::resetLinkRestLengths ( )

Definition at line 917 of file btSoftBody.cpp.

void btSoftBody::rotate ( const btQuaternion rot)

Definition at line 817 of file btSoftBody.cpp.

void btSoftBody::scale ( const btVector3 scl)

Definition at line 826 of file btSoftBody.cpp.

const char * btSoftBody::serialize ( void *  dataBuffer,
class btSerializer serializer 
) const
virtual

fills the dataBuffer and returns the struct name (and 0 on failure)

Reimplemented from btCollisionObject.

Definition at line 3316 of file btSoftBody.cpp.

virtual void btSoftBody::setCollisionShape ( btCollisionShape collisionShape)
inlinevirtual

Reimplemented from btCollisionObject.

Definition at line 708 of file btSoftBody.h.

void btSoftBody::setMass ( int  node,
btScalar  mass 
)

Definition at line 674 of file btSoftBody.cpp.

void btSoftBody::setPose ( bool  bvolume,
bool  bframe 
)

Definition at line 867 of file btSoftBody.cpp.

void btSoftBody::setRestLengthScale ( btScalar  restLength)

Definition at line 852 of file btSoftBody.cpp.

void btSoftBody::setSoftBodySolver ( btSoftBodySolver softBodySolver)
inline

Definition at line 910 of file btSoftBody.h.

void btSoftBody::setSolver ( eSolverPresets::_  preset)

Definition at line 1715 of file btSoftBody.cpp.

void btSoftBody::setTotalDensity ( btScalar  density)

Definition at line 735 of file btSoftBody.cpp.

void btSoftBody::setTotalMass ( btScalar  mass,
bool  fromfaces = false 
)

Definition at line 698 of file btSoftBody.cpp.

void btSoftBody::setVelocity ( const btVector3 velocity)

Definition at line 650 of file btSoftBody.cpp.

void btSoftBody::setVolumeDensity ( btScalar  density)

Definition at line 771 of file btSoftBody.cpp.

void btSoftBody::setVolumeMass ( btScalar  mass)

Definition at line 741 of file btSoftBody.cpp.

void btSoftBody::setWindVelocity ( const btVector3 velocity)

Set a wind velocity for interaction with the air.

Definition at line 3296 of file btSoftBody.cpp.

void btSoftBody::solveClusters ( const btAlignedObjectArray< btSoftBody * > &  bodies)
static

Definition at line 1961 of file btSoftBody.cpp.

void btSoftBody::solveClusters ( btScalar  sor)

Definition at line 2680 of file btSoftBody.cpp.

void btSoftBody::solveCommonConstraints ( btSoftBody **  bodies,
int  count,
int  iterations 
)
static

placeholder

Definition at line 1955 of file btSoftBody.cpp.

void btSoftBody::solveConstraints ( )

Definition at line 1849 of file btSoftBody.cpp.

void btSoftBody::staticSolve ( int  iterations)

Definition at line 1943 of file btSoftBody.cpp.

void btSoftBody::transform ( const btTransform trs)

Definition at line 786 of file btSoftBody.cpp.

void btSoftBody::translate ( const btVector3 trs)

Definition at line 808 of file btSoftBody.cpp.

static const btSoftBody* btSoftBody::upcast ( const btCollisionObject colObj)
inlinestatic

Definition at line 936 of file btSoftBody.h.

static btSoftBody* btSoftBody::upcast ( btCollisionObject colObj)
inlinestatic

Definition at line 942 of file btSoftBody.h.

void btSoftBody::updateArea ( bool  averageArea = true)

Definition at line 2384 of file btSoftBody.cpp.

void btSoftBody::updateBounds ( )

Definition at line 2306 of file btSoftBody.cpp.

void btSoftBody::updateClusters ( )

Definition at line 2538 of file btSoftBody.cpp.

void btSoftBody::updateConstants ( )

Definition at line 2462 of file btSoftBody.cpp.

void btSoftBody::updateLinkConstants ( )

Definition at line 2449 of file btSoftBody.cpp.

void btSoftBody::updateNormals ( )

Definition at line 2277 of file btSoftBody.cpp.

void btSoftBody::updatePose ( )

Definition at line 2348 of file btSoftBody.cpp.

void btSoftBody::VSolve_Links ( btSoftBody psb,
btScalar  kst 
)
static

Definition at line 3158 of file btSoftBody.cpp.

Member Data Documentation

tAnchorArray btSoftBody::m_anchors

Definition at line 663 of file btSoftBody.h.

btVector3 btSoftBody::m_bounds[2]

Definition at line 669 of file btSoftBody.h.

bool btSoftBody::m_bUpdateRtCst

Definition at line 670 of file btSoftBody.h.

btDbvt btSoftBody::m_cdbvt

Definition at line 673 of file btSoftBody.h.

Config btSoftBody::m_cfg

Definition at line 653 of file btSoftBody.h.

btAlignedObjectArray<bool> btSoftBody::m_clusterConnectivity

Definition at line 676 of file btSoftBody.h.

tClusterArray btSoftBody::m_clusters

Definition at line 674 of file btSoftBody.h.

btAlignedObjectArray<const class btCollisionObject*> btSoftBody::m_collisionDisabledObjects

Definition at line 74 of file btSoftBody.h.

tFaceArray btSoftBody::m_faces

Definition at line 661 of file btSoftBody.h.

btDbvt btSoftBody::m_fdbvt

Definition at line 672 of file btSoftBody.h.

btTransform btSoftBody::m_initialWorldTransform

Definition at line 678 of file btSoftBody.h.

tJointArray btSoftBody::m_joints

Definition at line 666 of file btSoftBody.h.

tLinkArray btSoftBody::m_links

Definition at line 660 of file btSoftBody.h.

tMaterialArray btSoftBody::m_materials

Definition at line 667 of file btSoftBody.h.

btDbvt btSoftBody::m_ndbvt

Definition at line 671 of file btSoftBody.h.

tNodeArray btSoftBody::m_nodes

Definition at line 659 of file btSoftBody.h.

tNoteArray btSoftBody::m_notes

Definition at line 658 of file btSoftBody.h.

Pose btSoftBody::m_pose

Definition at line 655 of file btSoftBody.h.

tRContactArray btSoftBody::m_rcontacts

Definition at line 664 of file btSoftBody.h.

btScalar btSoftBody::m_restLengthScale

Definition at line 682 of file btSoftBody.h.

tSContactArray btSoftBody::m_scontacts

Definition at line 665 of file btSoftBody.h.

btSoftBodySolver* btSoftBody::m_softBodySolver

Definition at line 77 of file btSoftBody.h.

SolverState btSoftBody::m_sst

Definition at line 654 of file btSoftBody.h.

void* btSoftBody::m_tag

Definition at line 656 of file btSoftBody.h.

tTetraArray btSoftBody::m_tetras

Definition at line 662 of file btSoftBody.h.

btScalar btSoftBody::m_timeacc

Definition at line 668 of file btSoftBody.h.

btAlignedObjectArray<int> btSoftBody::m_userIndexMapping

Definition at line 700 of file btSoftBody.h.

btVector3 btSoftBody::m_windVelocity

Definition at line 680 of file btSoftBody.h.

btSoftBodyWorldInfo* btSoftBody::m_worldInfo

Definition at line 657 of file btSoftBody.h.


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