|
static void | findJacobian (const btMultiBodyLinkCollider *multibodyLinkCol, btMultiBodyJacobianData &jacobianData, const btVector3 &contact_point, const btVector3 &dir) |
| btSoftBody implementation by Nathanael Presson More...
|
|
static btVector3 | generateUnitOrthogonalVector (const btVector3 &u) |
|
static bool | proximityTest (const btVector3 &x1, const btVector3 &x2, const btVector3 &x3, const btVector3 &x4, const btVector3 &normal, const btScalar &mrg, btVector3 &bary) |
|
static int | getSign (const btVector3 &n, const btVector3 &x) |
|
static bool | hasSeparatingPlane (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt) |
|
static bool | nearZero (const btScalar &a) |
|
static bool | sameSign (const btScalar &a, const btScalar &b) |
|
static bool | diffSign (const btScalar &a, const btScalar &b) |
|
btScalar | evaluateBezier2 (const btScalar &p0, const btScalar &p1, const btScalar &p2, const btScalar &t, const btScalar &s) |
|
btScalar | evaluateBezier (const btScalar &p0, const btScalar &p1, const btScalar &p2, const btScalar &p3, const btScalar &t, const btScalar &s) |
|
static bool | getSigns (bool type_c, const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &t0, const btScalar &t1, btScalar <0, btScalar <1) |
|
static void | getBernsteinCoeff (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt, btScalar &k0, btScalar &k1, btScalar &k2, btScalar &k3) |
|
static void | polyDecomposition (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &j0, const btScalar &j1, const btScalar &j2, btScalar &u0, btScalar &u1, btScalar &v0, btScalar &v1) |
|
static bool | rootFindingLemma (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3) |
|
static void | getJs (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btSoftBody::Node *a, const btSoftBody::Node *b, const btSoftBody::Node *c, const btSoftBody::Node *p, const btScalar &dt, btScalar &j0, btScalar &j1, btScalar &j2) |
|
static bool | signDetermination1Internal (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &u0, const btScalar &u1, const btScalar &v0, const btScalar &v1) |
|
static bool | signDetermination2Internal (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &j0, const btScalar &j1, const btScalar &j2, const btScalar &u0, const btScalar &u1, const btScalar &v0, const btScalar &v1) |
|
static bool | signDetermination1 (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt) |
|
static bool | signDetermination2 (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt) |
|
static bool | coplanarAndInsideTest (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt) |
|
static bool | conservativeCulling (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &mrg) |
|
static bool | bernsteinVFTest (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &mrg, const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt) |
|
static void | deCasteljau (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &t0, btScalar &k10, btScalar &k20, btScalar &k30, btScalar &k21, btScalar &k12) |
|
static bool | bernsteinVFTest (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt, const btScalar &mrg) |
|
static bool | continuousCollisionDetection (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt, const btScalar &mrg, btVector3 &bary) |
|
static bool | bernsteinCCD (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt, const btScalar &mrg, btVector3 &bary) |
|
template<typename T > |
static void | ZeroInitialize (T &value) |
|
template<typename T > |
static bool | CompLess (const T &a, const T &b) |
|
template<typename T > |
static bool | CompGreater (const T &a, const T &b) |
|
template<typename T > |
static T | Lerp (const T &a, const T &b, btScalar t) |
|
template<typename T > |
static T | InvLerp (const T &a, const T &b, btScalar t) |
|
static btMatrix3x3 | Lerp (const btMatrix3x3 &a, const btMatrix3x3 &b, btScalar t) |
|
static btVector3 | Clamp (const btVector3 &v, btScalar maxlength) |
|
template<typename T > |
static T | Clamp (const T &x, const T &l, const T &h) |
|
template<typename T > |
static T | Sq (const T &x) |
|
template<typename T > |
static T | Cube (const T &x) |
|
template<typename T > |
static T | Sign (const T &x) |
|
template<typename T > |
static bool | SameSign (const T &x, const T &y) |
|
static btScalar | ClusterMetric (const btVector3 &x, const btVector3 &y) |
|
static btMatrix3x3 | ScaleAlongAxis (const btVector3 &a, btScalar s) |
|
static btMatrix3x3 | Cross (const btVector3 &v) |
|
static btMatrix3x3 | Diagonal (btScalar x) |
|
static btMatrix3x3 | Diagonal (const btVector3 &v) |
|
static btScalar | Dot (const btScalar *a, const btScalar *b, int ndof) |
|
static btMatrix3x3 | OuterProduct (const btScalar *v1, const btScalar *v2, const btScalar *v3, const btScalar *u1, const btScalar *u2, const btScalar *u3, int ndof) |
|
static btMatrix3x3 | OuterProduct (const btVector3 &v1, const btVector3 &v2) |
|
static btMatrix3x3 | Add (const btMatrix3x3 &a, const btMatrix3x3 &b) |
|
static btMatrix3x3 | Sub (const btMatrix3x3 &a, const btMatrix3x3 &b) |
|
static btMatrix3x3 | Mul (const btMatrix3x3 &a, btScalar b) |
|
static void | Orthogonalize (btMatrix3x3 &m) |
|
static btMatrix3x3 | MassMatrix (btScalar im, const btMatrix3x3 &iwi, const btVector3 &r) |
|
static btMatrix3x3 | ImpulseMatrix (btScalar dt, btScalar ima, btScalar imb, const btMatrix3x3 &iwi, const btVector3 &r) |
|
static btMatrix3x3 | ImpulseMatrix (btScalar dt, const btMatrix3x3 &effective_mass_inv, btScalar imb, const btMatrix3x3 &iwi, const btVector3 &r) |
|
static btMatrix3x3 | ImpulseMatrix (btScalar ima, const btMatrix3x3 &iia, const btVector3 &ra, btScalar imb, const btMatrix3x3 &iib, const btVector3 &rb) |
|
static btMatrix3x3 | AngularImpulseMatrix (const btMatrix3x3 &iia, const btMatrix3x3 &iib) |
|
static btVector3 | ProjectOnAxis (const btVector3 &v, const btVector3 &a) |
|
static btVector3 | ProjectOnPlane (const btVector3 &v, const btVector3 &a) |
|
static void | ProjectOrigin (const btVector3 &a, const btVector3 &b, btVector3 &prj, btScalar &sqd) |
|
static void | ProjectOrigin (const btVector3 &a, const btVector3 &b, const btVector3 &c, btVector3 &prj, btScalar &sqd) |
|
static bool | rayIntersectsTriangle (const btVector3 &origin, const btVector3 &dir, const btVector3 &v0, const btVector3 &v1, const btVector3 &v2, btScalar &t) |
|
static bool | lineIntersectsTriangle (const btVector3 &rayStart, const btVector3 &rayEnd, const btVector3 &p1, const btVector3 &p2, const btVector3 &p3, btVector3 §, btVector3 &normal) |
|
template<typename T > |
static T | BaryEval (const T &a, const T &b, const T &c, const btVector3 &coord) |
|
static btVector3 | BaryCoord (const btVector3 &a, const btVector3 &b, const btVector3 &c, const btVector3 &p) |
|
static btScalar | ImplicitSolve (btSoftBody::ImplicitFn *fn, const btVector3 &a, const btVector3 &b, const btScalar accuracy, const int maxiterations=256) |
|
static void | EvaluateMedium (const btSoftBodyWorldInfo *wfi, const btVector3 &x, btSoftBody::sMedium &medium) |
|
static btVector3 | NormalizeAny (const btVector3 &v) |
|
static btDbvtVolume | VolumeOf (const btSoftBody::Face &f, btScalar margin) |
|
static btVector3 | CenterOf (const btSoftBody::Face &f) |
|
static btScalar | AreaOf (const btVector3 &x0, const btVector3 &x1, const btVector3 &x2) |
|
static btScalar | VolumeOf (const btVector3 &x0, const btVector3 &x1, const btVector3 &x2, const btVector3 &x3) |
|
static void | ApplyClampedForce (btSoftBody::Node &n, const btVector3 &f, btScalar dt) |
|
static int | MatchEdge (const btSoftBody::Node *a, const btSoftBody::Node *b, const btSoftBody::Node *ma, const btSoftBody::Node *mb) |
|
static int | PolarDecompose (const btMatrix3x3 &m, btMatrix3x3 &q, btMatrix3x3 &s) |
|