24#ifdef JPH_DEBUG_RENDERER 
   75    void                                SetPressure(
float inPressure)               { mPressure = inPressure; }
 
   93    float                               GetVolume()
 const                           { 
return GetVolumeTimesSix() / 6.0f; }
 
   98#ifdef JPH_DEBUG_RENDERER 
  122    void                                SkinVertices(
RMat44Arg inCenterOfMassTransform, 
const Mat44 *inJointMatrices, 
uint inNumJoints, 
bool inHardSkinAll, 
TempAllocator &ioTempAllocator);
 
  166    struct CollidingShape
 
  169        Vec3                            GetPointVelocity(
Vec3Arg inPointRelativeToCOM)
 const 
  171            return mLinearVelocity + mAngularVelocity.
Cross(inPointRelativeToCOM);
 
  174        Mat44                           mCenterOfMassTransform;                     
 
  181        float                           mSoftBodyInvMassScale;                      
 
  182        bool                            mUpdateVelocities;                          
 
  184        Vec3                            mLinearVelocity;                            
 
  185        Vec3                            mAngularVelocity;                           
 
  186        Vec3                            mOriginalLinearVelocity;                    
 
  187        Vec3                            mOriginalAngularVelocity;                   
 
  191    struct CollidingSensor
 
  193        Mat44                           mCenterOfMassTransform;                     
 
  208    void                                DetermineCollisionPlanes(
uint inVertexStart, 
uint inNumVertices);
 
  211    void                                DetermineSensorCollisions(CollidingSensor &ioSensor);
 
  232    void                                ApplyLRAConstraints(
uint inStartIndex, 
uint inEndIndex);
 
  259    float                               GetVolumeTimesSix() 
const;
 
  261#ifdef JPH_DEBUG_RENDERER 
  263    template <
typename GetEndIndex, 
typename DrawConstra
int>
 
  264        inline void                     DrawConstraints(
ESoftBodyConstraintColor inConstraintColor, 
const GetEndIndex &inGetEndIndex, 
const DrawConstraint &inDrawConstraint, 
ColorArg inBaseColor) 
const;
 
  275    AABox                               mLocalPredictedBounds;                      
 
  278    float                               mSkinnedMaxDistanceMultiplier = 1.0f;       
 
  279    bool                                mUpdatePosition;                            
 
  280    bool                                mNeedContactCallback = 
false;                       
 
  281    bool                                mEnableSkinConstraints = 
true;              
 
  282    bool                                mSkinStatePreviousPositionValid = 
false;    
 
@ CalculateMassAndInertia
Tells the system to calculate the mass and inertia based on density.
 
ESoftBodyConstraintColor
Defines how to color soft body constraints.
Definition: BodyManager.h:28
 
#define JPH_EXPORT
Definition: Core.h:236
 
unsigned int uint
Definition: Core.h:452
 
#define JPH_NAMESPACE_END
Definition: Core.h:378
 
std::uint32_t uint32
Definition: Core.h:455
 
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:372
 
EMotionType
Motion type of a physics body.
Definition: MotionType.h:11
 
Axis aligned box.
Definition: AABox.h:16
 
ID of a body. This is a way of reasoning about bodies in a multithreaded simulation while avoiding ra...
Definition: BodyID.h:13
 
Definition: BodyInterface.h:35
 
Base class interface for locking a body. Usually you will use BodyLockRead / BodyLockWrite / BodyLock...
Definition: BodyLockInterface.h:17
 
Class that holds an RGBA color with 8-bits per component.
Definition: Color.h:16
 
Definition: DebugRenderer.h:47
 
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition: Mat44.h:13
 
static JPH_INLINE Mat44 sIdentity()
Identity matrix.
Definition: Mat44.inl:35
 
The Body class only keeps track of state for static bodies, the MotionProperties class keeps the addi...
Definition: MotionProperties.h:29
 
void RestoreState(StateRecorder &inStream)
Restoring state for replay.
Definition: MotionProperties.cpp:78
 
void SaveState(StateRecorder &inStream) const
Saving state for replay.
Definition: MotionProperties.cpp:63
 
Definition: PhysicsSystem.h:29
 
Definition: Reference.h:157
 
Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det...
Definition: Shape.h:186
 
Definition: SoftBodyCreationSettings.h:18
 
An interface to query which vertices of a soft body are colliding with other bodies.
Definition: SoftBodyManifold.h:13
 
This class contains the runtime information of a soft body.
Definition: SoftBodyMotionProperties.h:34
 
bool GetEnableSkinConstraints() const
Global setting to turn on/off skin constraints.
Definition: SoftBodyMotionProperties.h:82
 
Vertex & GetVertex(uint inIndex)
Definition: SoftBodyMotionProperties.h:58
 
EStatus
Return code for ParallelUpdate.
Definition: SoftBodyMotionProperties.h:149
 
Array< Vertex > & GetVertices()
Definition: SoftBodyMotionProperties.h:54
 
void SetSkinnedMaxDistanceMultiplier(float inSkinnedMaxDistanceMultiplier)
Definition: SoftBodyMotionProperties.h:87
 
const PhysicsMaterialList & GetMaterials() const
Get the materials of the soft body.
Definition: SoftBodyMotionProperties.h:61
 
const Array< Vertex > & GetVertices() const
Get the vertices of the soft body.
Definition: SoftBodyMotionProperties.h:53
 
void SetUpdatePosition(bool inUpdatePosition)
Definition: SoftBodyMotionProperties.h:79
 
float GetSkinnedMaxDistanceMultiplier() const
Multiplier applied to Skinned::mMaxDistance to allow tightening or loosening of the skin constraints....
Definition: SoftBodyMotionProperties.h:86
 
void SetPressure(float inPressure)
Definition: SoftBodyMotionProperties.h:75
 
const Array< Face > & GetFaces() const
Get the faces of the soft body.
Definition: SoftBodyMotionProperties.h:64
 
const AABox & GetLocalBounds() const
Get local bounding box.
Definition: SoftBodyMotionProperties.h:90
 
const Vertex & GetVertex(uint inIndex) const
Access an individual vertex.
Definition: SoftBodyMotionProperties.h:57
 
void SetNumIterations(uint32 inNumIterations)
Definition: SoftBodyMotionProperties.h:71
 
bool GetUpdatePosition() const
Update the position of the body while simulating (set to false for something that is attached to the ...
Definition: SoftBodyMotionProperties.h:78
 
float GetVolume() const
Get the volume of the soft body. Note can become negative if the shape is inside out!
Definition: SoftBodyMotionProperties.h:93
 
uint32 GetNumIterations() const
Get the number of solver iterations.
Definition: SoftBodyMotionProperties.h:70
 
float GetPressure() const
Get the pressure of the soft body.
Definition: SoftBodyMotionProperties.h:74
 
void SetEnableSkinConstraints(bool inEnableSkinConstraints)
Definition: SoftBodyMotionProperties.h:83
 
const SoftBodySharedSettings * GetSettings() const
Get the shared settings of the soft body.
Definition: SoftBodyMotionProperties.h:50
 
const Face & GetFace(uint inIndex) const
Access to an individual face.
Definition: SoftBodyMotionProperties.h:67
 
An inverse bind matrix take a skinned vertex from its bind pose into joint local space.
Definition: SoftBodySharedSettings.h:214
 
Definition: SoftBodySharedSettings.h:278
 
A joint and its skin weight.
Definition: SoftBodySharedSettings.h:228
 
A constraint that skins a vertex to joints and limits the distance that the simulated vertex can trav...
Definition: SoftBodySharedSettings.h:242
 
Definition: SoftBodySharedSettings.h:16
 
Temporary data used by the update of a soft body.
Definition: SoftBodyUpdateContext.h:18
 
Definition: SoftBodyVertex.h:16
 
Definition: StateRecorder.h:105
 
Definition: TempAllocator.h:16
 
JPH_INLINE Vec3 Cross(Vec3Arg inV2) const
Cross product.
Definition: Vec3.inl:594
 
static JPH_INLINE Vec3 sZero()
Vector with all zeros.
Definition: Vec3.inl:107
 
static JPH_INLINE Vec3 sNaN()
Vector with all NaN's.
Definition: Vec3.inl:129
 
Definition: PhysicsSettings.h:28
 
Definition: SoftBodySharedSettings.h:180
 
An edge keeps two vertices at a constant distance using a spring: |x1 - x2| = rest length.
Definition: SoftBodySharedSettings.h:146
 
A face defines the surface of the body.
Definition: SoftBodySharedSettings.h:130
 
Volume constraint, keeps the volume of a tetrahedron constant.
Definition: SoftBodySharedSettings.h:197