Blender  V3.3
Classes | Functions | Variables
btSoftBodyInternals.h File Reference
#include "btSoftBody.h"
#include "LinearMath/btQuickprof.h"
#include "LinearMath/btPolarDecomposition.h"
#include "BulletCollision/BroadphaseCollision/btBroadphaseInterface.h"
#include "BulletCollision/CollisionDispatch/btCollisionDispatcher.h"
#include "BulletCollision/CollisionShapes/btConvexInternalShape.h"
#include "BulletCollision/NarrowPhaseCollision/btGjkEpa2.h"
#include "BulletDynamics/Featherstone/btMultiBodyLinkCollider.h"
#include "BulletDynamics/Featherstone/btMultiBodyConstraint.h"
#include <string.h>
#include <cmath>
#include "poly34.h"

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 More...
 
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()

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

Definition at line 966 of file btSoftBodyInternals.h.

References Freestyle::a, usdtokens::b(), btMatrix3x3, and r.

Referenced by AngularImpulseMatrix(), and ImpulseMatrix().

◆ AngularImpulseMatrix()

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

Definition at line 1035 of file btSoftBodyInternals.h.

References Add(), and inverse().

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

◆ ApplyClampedForce()

static void ApplyClampedForce ( btSoftBody::Node n,
const btVector3 f,
btScalar  dt 
)
inlinestatic

◆ AreaOf()

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

◆ BaryCoord()

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

◆ BaryEval()

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

◆ bernsteinCCD()

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

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

Definition at line 510 of file btSoftBodyInternals.h.

References conservativeCulling(), coplanarAndInsideTest(), and node.

Referenced by bernsteinCCD(), and bernsteinVFTest().

◆ bernsteinVFTest() [2/2]

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

◆ CenterOf()

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

Definition at line 1275 of file btSoftBodyInternals.h.

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

◆ Clamp() [1/2]

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

Definition at line 829 of file btSoftBodyInternals.h.

References btSqrt(), and v.

◆ Clamp() [2/2]

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

Definition at line 839 of file btSoftBodyInternals.h.

References x.

◆ ClusterMetric()

static 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 >
static bool CompGreater ( const T a,
const T b 
)
inlinestatic

Definition at line 801 of file btSoftBodyInternals.h.

References Freestyle::a, and usdtokens::b().

◆ CompLess()

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

Definition at line 795 of file btSoftBodyInternals.h.

References Freestyle::a, and usdtokens::b().

◆ conservativeCulling()

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

Referenced by bernsteinVFTest().

◆ continuousCollisionDetection()

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

◆ coplanarAndInsideTest()

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

◆ Cross()

static 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 >
static T Cube ( const T x)
inlinestatic

Definition at line 851 of file btSoftBodyInternals.h.

References x.

◆ deCasteljau()

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

Definition at line 517 of file btSoftBodyInternals.h.

Referenced by bernsteinVFTest().

◆ Diagonal() [1/2]

static btMatrix3x3 Diagonal ( btScalar  x)
inlinestatic

◆ Diagonal() [2/2]

static btMatrix3x3 Diagonal ( const btVector3 v)
inlinestatic

Definition at line 907 of file btSoftBodyInternals.h.

References btMatrix3x3, btVector3, and v.

◆ diffSign()

static SIMD_FORCE_INLINE bool diffSign ( const btScalar a,
const btScalar b 
)
static

◆ Dot()

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

Definition at line 916 of file btSoftBodyInternals.h.

References Freestyle::a, usdtokens::b(), and result.

Referenced by blender ::dot::arrowType_to_string(), and 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.

References t.

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.

References t.

Referenced by getSigns().

◆ EvaluateMedium()

static void EvaluateMedium ( const btSoftBodyWorldInfo wfi,
const btVector3 x,
btSoftBody::sMedium medium 
)
inlinestatic

◆ findJacobian()

static SIMD_FORCE_INLINE void findJacobian ( const btMultiBodyLinkCollider multibodyLinkCol,
btMultiBodyJacobianData jacobianData,
const btVector3 contact_point,
const btVector3 dir 
)
static

◆ generateUnitOrthogonalVector()

static SIMD_FORCE_INLINE btVector3 generateUnitOrthogonalVector ( const btVector3 u)
static

◆ getBernsteinCoeff()

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

◆ getJs()

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

◆ getSign()

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

Definition at line 108 of file btSoftBodyInternals.h.

References SIMD_EPSILON, and x.

Referenced by hasSeparatingPlane().

◆ getSigns()

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

◆ hasSeparatingPlane()

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

◆ ImplicitSolve()

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

◆ ImpulseMatrix() [1/3]

static btMatrix3x3 ImpulseMatrix ( btScalar  dt,
btScalar  ima,
btScalar  imb,
const btMatrix3x3 iwi,
const btVector3 r 
)
inlinestatic

◆ ImpulseMatrix() [2/3]

static 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(), Diagonal(), inverse(), MassMatrix(), and r.

◆ ImpulseMatrix() [3/3]

static 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(), inverse(), and MassMatrix().

◆ InvLerp()

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

Definition at line 813 of file btSoftBodyInternals.h.

References Freestyle::a, usdtokens::b(), and t.

◆ Lerp() [1/2]

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

Definition at line 818 of file btSoftBodyInternals.h.

References Freestyle::a, usdtokens::b(), btMatrix3x3, Lerp(), r, and t.

◆ Lerp() [2/2]

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

◆ lineIntersectsTriangle()

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

◆ MassMatrix()

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

Definition at line 997 of file btSoftBodyInternals.h.

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

Referenced by ImpulseMatrix().

◆ MatchEdge()

static 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 Freestyle::a, and usdtokens::b().

Referenced by btSoftBody::cutLink().

◆ Mul()

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

Definition at line 982 of file btSoftBodyInternals.h.

References Freestyle::a, usdtokens::b(), btMatrix3x3, and r.

Referenced by btSoftBody::updatePose().

◆ nearZero()

static SIMD_FORCE_INLINE bool nearZero ( const btScalar a)
static

Definition at line 142 of file btSoftBodyInternals.h.

References Freestyle::a, and SAFE_EPSILON.

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

◆ NormalizeAny()

static 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()

static void Orthogonalize ( btMatrix3x3 m)
inlinestatic

Definition at line 990 of file btSoftBodyInternals.h.

References btCross().

◆ OuterProduct() [1/2]

static btMatrix3x3 OuterProduct ( const btScalar v1,
const btScalar v2,
const btScalar v3,
const btScalar u1,
const btScalar u2,
const btScalar u3,
int  ndof 
)
inlinestatic

◆ OuterProduct() [2/2]

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

Definition at line 945 of file btSoftBodyInternals.h.

References btMatrix3x3, btVector3, v1, and v2.

◆ PolarDecompose()

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

◆ polyDecomposition()

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

Definition at line 236 of file btSoftBodyInternals.h.

References u1, and v1.

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

◆ ProjectOnAxis()

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

Definition at line 1042 of file btSoftBodyInternals.h.

References Freestyle::a, btDot(), and v.

Referenced by ApplyClampedForce(), and ProjectOnPlane().

◆ ProjectOnPlane()

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

Definition at line 1048 of file btSoftBodyInternals.h.

References Freestyle::a, ProjectOnAxis(), and v.

Referenced by btSoftBody::PSolve_SContacts().

◆ ProjectOrigin() [1/2]

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

◆ ProjectOrigin() [2/2]

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

◆ proximityTest()

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

◆ rayIntersectsTriangle()

static 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 Freestyle::a, btVector3, t, v, v1, and v2.

Referenced by lineIntersectsTriangle().

◆ rootFindingLemma()

static 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(), u1, and v1.

Referenced by coplanarAndInsideTest().

◆ sameSign()

static SIMD_FORCE_INLINE bool sameSign ( const btScalar a,
const btScalar b 
)
static

◆ SameSign()

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

Definition at line 863 of file btSoftBodyInternals.h.

References x, and y.

Referenced by btSoftBody::refine().

◆ ScaleAlongAxis()

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

Definition at line 874 of file btSoftBodyInternals.h.

References Freestyle::a, btMatrix3x3, btVector3, and xy.

◆ Sign()

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

Definition at line 857 of file btSoftBodyInternals.h.

References T, and x.

Referenced by KDL::abs().

◆ signDetermination1()

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

◆ signDetermination1Internal()

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

Definition at line 303 of file btSoftBodyInternals.h.

References diffSign(), K, L, sameSign(), u1, and v1.

Referenced by signDetermination1().

◆ signDetermination2()

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

◆ signDetermination2Internal()

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

Definition at line 315 of file btSoftBodyInternals.h.

References diffSign(), sameSign(), u1, and v1.

Referenced by signDetermination2().

◆ Sq()

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

Definition at line 845 of file btSoftBodyInternals.h.

References x.

◆ Sub()

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

Definition at line 974 of file btSoftBodyInternals.h.

References Freestyle::a, usdtokens::b(), btMatrix3x3, and r.

Referenced by MassMatrix().

◆ VolumeOf() [1/2]

static btDbvtVolume VolumeOf ( const btSoftBody::Face f,
btScalar  margin 
)
inlinestatic

◆ VolumeOf() [2/2]

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

Definition at line 1293 of file btSoftBodyInternals.h.

References Freestyle::a, usdtokens::b(), btCross(), btDot(), btVector3, Freestyle::c, and x2.

◆ ZeroInitialize()

template<typename T >
static 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().