Blender V5.0
btSoftBodyInternals.h File Reference

Go to the source code of this file.

Classes

struct  btSymMatrix< T >
class  btSoftBodyCollisionShape
class  btSoftClusterCollisionShape
struct  btEigen
struct  btSoftColliders
struct  btSoftColliders::ClusterBase
struct  btSoftColliders::CollideCL_RS
struct  btSoftColliders::CollideCL_SS
struct  btSoftColliders::CollideSDF_RS
struct  btSoftColliders::CollideSDF_RD
struct  btSoftColliders::CollideSDF_RDF
struct  btSoftColliders::CollideVF_SS
struct  btSoftColliders::CollideVF_DD
struct  btSoftColliders::CollideFF_DD
struct  btSoftColliders::CollideCCD

Functions

static SIMD_FORCE_INLINE void findJacobian (const btMultiBodyLinkCollider *multibodyLinkCol, btMultiBodyJacobianData &jacobianData, const btVector3 &contact_point, const btVector3 &dir)
 btSoftBody implementation by Nathanael Presson
static SIMD_FORCE_INLINE btVector3 generateUnitOrthogonalVector (const btVector3 &u)
static SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE bool hasSeparatingPlane (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt)
static SIMD_FORCE_INLINE bool nearZero (const btScalar &a)
static SIMD_FORCE_INLINE bool sameSign (const btScalar &a, const btScalar &b)
static SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE bool getSigns (bool type_c, const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &t0, const btScalar &t1, btScalar &lt0, btScalar &lt1)
static SIMD_FORCE_INLINE void getBernsteinCoeff (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt, btScalar &k0, btScalar &k1, btScalar &k2, btScalar &k3)
static SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE bool rootFindingLemma (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3)
static SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE bool conservativeCulling (const btScalar &k0, const btScalar &k1, const btScalar &k2, const btScalar &k3, const btScalar &mrg)
static SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE 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 SIMD_FORCE_INLINE bool bernsteinVFTest (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt, const btScalar &mrg)
static SIMD_FORCE_INLINE bool continuousCollisionDetection (const btSoftBody::Face *face, const btSoftBody::Node *node, const btScalar &dt, const btScalar &mrg, btVector3 &bary)
static SIMD_FORCE_INLINE 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 &sect, 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)

Variables

static const int KDOP_COUNT = 13
static btVector3 dop [KDOP_COUNT]

Function Documentation

◆ Add()

btMatrix3x3 Add ( const btMatrix3x3 & a,
const btMatrix3x3 & b )
inlinestatic

◆ AngularImpulseMatrix()

btMatrix3x3 AngularImpulseMatrix ( const btMatrix3x3 & iia,
const btMatrix3x3 & iib )
inlinestatic

Definition at line 1035 of file btSoftBodyInternals.h.

References Add(), btMatrix3x3, and inverse.

Referenced by btSoftBody::AJoint::Prepare().

◆ ApplyClampedForce()

◆ AreaOf()

btScalar AreaOf ( const btVector3 & x0,
const btVector3 & x1,
const btVector3 & x2 )
inlinestatic

◆ BaryCoord()

btVector3 BaryCoord ( const btVector3 & a,
const btVector3 & b,
const btVector3 & c,
const btVector3 & p )
inlinestatic

Definition at line 1186 of file btSoftBodyInternals.h.

References b, btCross(), btVector3, and w().

Referenced by btSoftColliders::CollideVF_SS::Process().

◆ BaryEval()

template<typename T>
T BaryEval ( const T & a,
const T & b,
const T & c,
const btVector3 & coord )
inlinestatic

◆ bernsteinCCD()

SIMD_FORCE_INLINE bool bernsteinCCD ( const btSoftBody::Face * face,
const btSoftBody::Node * node,
const btScalar & dt,
const btScalar & mrg,
btVector3 & bary )
static

◆ bernsteinVFTest() [1/2]

SIMD_FORCE_INLINE 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

◆ bernsteinVFTest() [2/2]

SIMD_FORCE_INLINE bool bernsteinVFTest ( const btSoftBody::Face * face,
const btSoftBody::Node * node,
const btScalar & dt,
const btScalar & mrg )
static

◆ CenterOf()

btVector3 CenterOf ( const btSoftBody::Face & f)
inlinestatic

Definition at line 1275 of file btSoftBodyInternals.h.

References btVector3, btSoftBody::Face::m_n, and btSoftBody::Node::m_x.

◆ Clamp() [1/2]

btVector3 Clamp ( const btVector3 & v,
btScalar maxlength )
inlinestatic

Definition at line 829 of file btSoftBodyInternals.h.

References btSqrt(), btVector3, and v.

Referenced by ProjectOrigin().

◆ Clamp() [2/2]

template<typename T>
T Clamp ( const T & x,
const T & l,
const T & h )
inlinestatic

Definition at line 839 of file btSoftBodyInternals.h.

References l, T, and x.

◆ ClusterMetric()

btScalar ClusterMetric ( const btVector3 & x,
const btVector3 & y )
inlinestatic

Definition at line 868 of file btSoftBodyInternals.h.

References btFabs(), btVector3, x, and y.

Referenced by btSoftBody::generateClusters().

◆ CompGreater()

template<typename T>
bool CompGreater ( const T & a,
const T & b )
inlinestatic

Definition at line 801 of file btSoftBodyInternals.h.

References b, and T.

◆ CompLess()

template<typename T>
bool CompLess ( const T & a,
const T & b )
inlinestatic

Definition at line 795 of file btSoftBodyInternals.h.

References b, and T.

◆ conservativeCulling()

SIMD_FORCE_INLINE bool conservativeCulling ( const btScalar & k0,
const btScalar & k1,
const btScalar & k2,
const btScalar & k3,
const btScalar & mrg )
static

Definition at line 501 of file btSoftBodyInternals.h.

References SIMD_FORCE_INLINE.

Referenced by bernsteinVFTest(), and bernsteinVFTest().

◆ continuousCollisionDetection()

SIMD_FORCE_INLINE bool continuousCollisionDetection ( const btSoftBody::Face * face,
const btSoftBody::Node * node,
const btScalar & dt,
const btScalar & mrg,
btVector3 & bary )
static

◆ coplanarAndInsideTest()

SIMD_FORCE_INLINE 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

◆ Cross()

btMatrix3x3 Cross ( const btVector3 & v)
inlinestatic

Definition at line 889 of file btSoftBodyInternals.h.

References btMatrix3x3, btVector3, and v.

Referenced by btPolyhedralContactClipping::findSeparatingAxis(), and MassMatrix().

◆ Cube()

template<typename T>
T Cube ( const T & x)
inlinestatic

Definition at line 851 of file btSoftBodyInternals.h.

References T, and x.

◆ deCasteljau()

SIMD_FORCE_INLINE 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

Definition at line 517 of file btSoftBodyInternals.h.

References SIMD_FORCE_INLINE.

Referenced by bernsteinVFTest().

◆ Diagonal() [1/2]

◆ Diagonal() [2/2]

btMatrix3x3 Diagonal ( const btVector3 & v)
inlinestatic

Definition at line 907 of file btSoftBodyInternals.h.

References btMatrix3x3, btVector3, and v.

◆ diffSign()

◆ Dot()

btScalar Dot ( const btScalar * a,
const btScalar * b,
int ndof )
inlinestatic

Definition at line 916 of file btSoftBodyInternals.h.

References b, i, and result.

Referenced by OuterProduct().

◆ evaluateBezier()

btScalar evaluateBezier ( const btScalar & p0,
const btScalar & p1,
const btScalar & p2,
const btScalar & p3,
const btScalar & t,
const btScalar & s )
inline

Definition at line 161 of file btSoftBodyInternals.h.

Referenced by getSigns().

◆ evaluateBezier2()

btScalar evaluateBezier2 ( const btScalar & p0,
const btScalar & p1,
const btScalar & p2,
const btScalar & t,
const btScalar & s )
inline

Definition at line 154 of file btSoftBodyInternals.h.

Referenced by getSigns().

◆ EvaluateMedium()

◆ findJacobian()

◆ generateUnitOrthogonalVector()

◆ getBernsteinCoeff()

◆ getJs()

SIMD_FORCE_INLINE 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

◆ getSign()

int getSign ( const btVector3 & n,
const btVector3 & x )
inlinestatic

Definition at line 108 of file btSoftBodyInternals.h.

References btVector3, SIMD_EPSILON, and x.

Referenced by hasSeparatingPlane().

◆ getSigns()

SIMD_FORCE_INLINE bool getSigns ( bool type_c,
const btScalar & k0,
const btScalar & k1,
const btScalar & k2,
const btScalar & k3,
const btScalar & t0,
const btScalar & t1,
btScalar & lt0,
btScalar & lt1 )
static

◆ hasSeparatingPlane()

SIMD_FORCE_INLINE bool hasSeparatingPlane ( const btSoftBody::Face * face,
const btSoftBody::Node * node,
const btScalar & dt )
static

◆ ImplicitSolve()

btScalar ImplicitSolve ( btSoftBody::ImplicitFn * fn,
const btVector3 & a,
const btVector3 & b,
const btScalar accuracy,
const int maxiterations = 256 )
inlinestatic

Definition at line 1199 of file btSoftBodyInternals.h.

References b, btFabs(), btSwap(), btVector3, btSoftBody::ImplicitFn::Eval(), i, Lerp(), and v.

Referenced by btSoftBody::refine().

◆ ImpulseMatrix() [1/3]

◆ ImpulseMatrix() [2/3]

btMatrix3x3 ImpulseMatrix ( btScalar dt,
const btMatrix3x3 & effective_mass_inv,
btScalar imb,
const btMatrix3x3 & iwi,
const btVector3 & r )
inlinestatic

Definition at line 1014 of file btSoftBodyInternals.h.

References Add(), btMatrix3x3, btVector3, Diagonal(), inverse, and MassMatrix().

◆ ImpulseMatrix() [3/3]

btMatrix3x3 ImpulseMatrix ( btScalar ima,
const btMatrix3x3 & iia,
const btVector3 & ra,
btScalar imb,
const btMatrix3x3 & iib,
const btVector3 & rb )
inlinestatic

Definition at line 1028 of file btSoftBodyInternals.h.

References Add(), btMatrix3x3, btVector3, inverse, and MassMatrix().

◆ InvLerp()

template<typename T>
T InvLerp ( const T & a,
const T & b,
btScalar t )
inlinestatic

Definition at line 813 of file btSoftBodyInternals.h.

References b, and T.

◆ Lerp() [1/2]

btMatrix3x3 Lerp ( const btMatrix3x3 & a,
const btMatrix3x3 & b,
btScalar t )
inlinestatic

Definition at line 818 of file btSoftBodyInternals.h.

References b, btMatrix3x3, and Lerp().

◆ Lerp() [2/2]

template<typename T>
T Lerp ( const T & a,
const T & b,
btScalar t )
inlinestatic

◆ lineIntersectsTriangle()

bool lineIntersectsTriangle ( const btVector3 & rayStart,
const btVector3 & rayEnd,
const btVector3 & p1,
const btVector3 & p2,
const btVector3 & p3,
btVector3 & sect,
btVector3 & normal )
inlinestatic

Definition at line 1142 of file btSoftBodyInternals.h.

References btVector3, cross, rayIntersectsTriangle(), ret, and SIMD_EPSILON.

◆ MassMatrix()

btMatrix3x3 MassMatrix ( btScalar im,
const btMatrix3x3 & iwi,
const btVector3 & r )
inlinestatic

Definition at line 997 of file btSoftBodyInternals.h.

References btMatrix3x3, btVector3, Cross(), Diagonal(), and Sub().

Referenced by ImpulseMatrix(), ImpulseMatrix(), and ImpulseMatrix().

◆ MatchEdge()

int MatchEdge ( const btSoftBody::Node * a,
const btSoftBody::Node * b,
const btSoftBody::Node * ma,
const btSoftBody::Node * mb )
inlinestatic

Definition at line 1323 of file btSoftBodyInternals.h.

References b.

Referenced by btSoftBody::cutLink().

◆ Mul()

btMatrix3x3 Mul ( const btMatrix3x3 & a,
btScalar b )
inlinestatic

Definition at line 982 of file btSoftBodyInternals.h.

References b, btMatrix3x3, and i.

Referenced by blender::tests::TEST(), and btSoftBody::updatePose().

◆ nearZero()

SIMD_FORCE_INLINE bool nearZero ( const btScalar & a)
static

Definition at line 142 of file btSoftBodyInternals.h.

References SAFE_EPSILON, and SIMD_FORCE_INLINE.

Referenced by sameSign(), signDetermination1(), and signDetermination2().

◆ NormalizeAny()

btVector3 NormalizeAny ( const btVector3 & v)
inlinestatic

Definition at line 1253 of file btSoftBodyInternals.h.

References btVector3, l, SIMD_EPSILON, and v.

Referenced by btSoftBody::AJoint::Prepare().

◆ Orthogonalize()

void Orthogonalize ( btMatrix3x3 & m)
inlinestatic

Definition at line 990 of file btSoftBodyInternals.h.

References btCross(), and btMatrix3x3.

◆ OuterProduct() [1/2]

◆ OuterProduct() [2/2]

btMatrix3x3 OuterProduct ( const btVector3 & v1,
const btVector3 & v2 )
inlinestatic

Definition at line 945 of file btSoftBodyInternals.h.

References btMatrix3x3, btVector3, and v2.

◆ PolarDecompose()

int PolarDecompose ( const btMatrix3x3 & m,
btMatrix3x3 & q,
btMatrix3x3 & s )
inlinestatic

◆ polyDecomposition()

SIMD_FORCE_INLINE 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

Definition at line 236 of file btSoftBodyInternals.h.

References SIMD_FORCE_INLINE.

Referenced by rootFindingLemma(), signDetermination1(), and signDetermination2().

◆ ProjectOnAxis()

btVector3 ProjectOnAxis ( const btVector3 & v,
const btVector3 & a )
inlinestatic

Definition at line 1042 of file btSoftBodyInternals.h.

References btDot(), btVector3, and v.

Referenced by ApplyClampedForce(), and ProjectOnPlane().

◆ ProjectOnPlane()

btVector3 ProjectOnPlane ( const btVector3 & v,
const btVector3 & a )
inlinestatic

Definition at line 1048 of file btSoftBodyInternals.h.

References btVector3, ProjectOnAxis(), and v.

Referenced by btSoftBody::PSolve_SContacts().

◆ ProjectOrigin() [1/2]

void ProjectOrigin ( const btVector3 & a,
const btVector3 & b,
btVector3 & prj,
btScalar & sqd )
inlinestatic

Definition at line 1055 of file btSoftBodyInternals.h.

References b, btDot(), btVector3, Clamp(), and SIMD_EPSILON.

Referenced by btSoftColliders::CollideVF_SS::Process(), and ProjectOrigin().

◆ ProjectOrigin() [2/2]

void ProjectOrigin ( const btVector3 & a,
const btVector3 & b,
const btVector3 & c,
btVector3 & prj,
btScalar & sqd )
inlinestatic

Definition at line 1075 of file btSoftBodyInternals.h.

References b, btCross(), btDot(), btSqrt(), btVector3, ProjectOrigin(), and SIMD_EPSILON.

◆ proximityTest()

SIMD_FORCE_INLINE bool proximityTest ( const btVector3 & x1,
const btVector3 & x2,
const btVector3 & x3,
const btVector3 & x4,
const btVector3 & normal,
const btScalar & mrg,
btVector3 & bary )
static

◆ rayIntersectsTriangle()

bool rayIntersectsTriangle ( const btVector3 & origin,
const btVector3 & dir,
const btVector3 & v0,
const btVector3 & v1,
const btVector3 & v2,
btScalar & t )
inlinestatic

Definition at line 1109 of file btSoftBodyInternals.h.

References btVector3, v, and v2.

Referenced by lineIntersectsTriangle().

◆ rootFindingLemma()

SIMD_FORCE_INLINE bool rootFindingLemma ( const btScalar & k0,
const btScalar & k1,
const btScalar & k2,
const btScalar & k3 )
static

Definition at line 245 of file btSoftBodyInternals.h.

References diffSign(), polyDecomposition(), sameSign(), and SIMD_FORCE_INLINE.

Referenced by coplanarAndInsideTest().

◆ SameSign()

template<typename T>
bool SameSign ( const T & x,
const T & y )
inlinestatic

Definition at line 863 of file btSoftBodyInternals.h.

References T, x, and y.

Referenced by btSoftBody::refine().

◆ sameSign()

◆ ScaleAlongAxis()

btMatrix3x3 ScaleAlongAxis ( const btVector3 & a,
btScalar s )
inlinestatic

Definition at line 874 of file btSoftBodyInternals.h.

References btMatrix3x3, btVector3, and xy.

◆ Sign()

template<typename T>
T Sign ( const T & x)
inlinestatic

Definition at line 857 of file btSoftBodyInternals.h.

References T, and x.

Referenced by KDL::abs(), KDL::abs(), and blender::tests::TEST().

◆ signDetermination1()

SIMD_FORCE_INLINE 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

◆ signDetermination1Internal()

SIMD_FORCE_INLINE 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

Definition at line 303 of file btSoftBodyInternals.h.

References diffSign(), K, L, sameSign(), and SIMD_FORCE_INLINE.

Referenced by signDetermination1().

◆ signDetermination2()

SIMD_FORCE_INLINE 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

◆ signDetermination2Internal()

SIMD_FORCE_INLINE 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

Definition at line 315 of file btSoftBodyInternals.h.

References diffSign(), sameSign(), and SIMD_FORCE_INLINE.

Referenced by signDetermination2().

◆ Sq()

template<typename T>
T Sq ( const T & x)
inlinestatic

Definition at line 845 of file btSoftBodyInternals.h.

References T, and x.

◆ Sub()

btMatrix3x3 Sub ( const btMatrix3x3 & a,
const btMatrix3x3 & b )
inlinestatic

Definition at line 974 of file btSoftBodyInternals.h.

References b, btMatrix3x3, and i.

Referenced by MassMatrix(), and blender::tests::TEST().

◆ VolumeOf() [1/2]

◆ VolumeOf() [2/2]

btScalar VolumeOf ( const btVector3 & x0,
const btVector3 & x1,
const btVector3 & x2,
const btVector3 & x3 )
inlinestatic

Definition at line 1293 of file btSoftBodyInternals.h.

References b, btCross(), btDot(), and btVector3.

◆ ZeroInitialize()

template<typename T>
void ZeroInitialize ( T & value)
inlinestatic

Variable Documentation

◆ dop

btVector3 dop[KDOP_COUNT]
static
Initial value:
= {btVector3(1, 0, 0),
btVector3(0, 1, 0),
btVector3(0, 0, 1),
btVector3(1, 1, 0),
btVector3(1, 0, 1),
btVector3(0, 1, 1),
btVector3(1, -1, 0),
btVector3(1, 0, -1),
btVector3(0, 1, -1),
btVector3(1, 1, 1),
btVector3(1, -1, 1),
btVector3(1, 1, -1),
btVector3(1, -1, -1)}
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...
Definition btVector3.h:82

Definition at line 94 of file btSoftBodyInternals.h.

Referenced by hasSeparatingPlane().

◆ KDOP_COUNT

const int KDOP_COUNT = 13
static

Definition at line 93 of file btSoftBodyInternals.h.

Referenced by hasSeparatingPlane().