24#ifdef JPH_DEBUG_RENDERER
74 void SetPressure(
float inPressure) { mPressure = inPressure; }
92 float GetVolume()
const {
return GetVolumeTimesSix() / 6.0f; }
97#ifdef JPH_DEBUG_RENDERER
121 void SkinVertices(
RMat44Arg inCenterOfMassTransform,
const Mat44 *inJointMatrices,
uint inNumJoints,
bool inHardSkinAll,
TempAllocator &ioTempAllocator);
165 struct CollidingShape
168 Vec3 GetPointVelocity(
Vec3Arg inPointRelativeToCOM)
const
170 return mLinearVelocity + mAngularVelocity.
Cross(inPointRelativeToCOM);
173 Mat44 mCenterOfMassTransform;
181 float mSoftBodyInvMassScale;
182 bool mUpdateVelocities;
184 Vec3 mLinearVelocity;
185 Vec3 mAngularVelocity;
186 Vec3 mOriginalLinearVelocity;
187 Vec3 mOriginalAngularVelocity;
219 void ApplyLRAConstraints();
237 float GetVolumeTimesSix()
const;
245 AABox mLocalPredictedBounds;
248 float mSkinnedMaxDistanceMultiplier = 1.0f;
249 bool mUpdatePosition;
250 bool mHasContact =
false;
251 bool mEnableSkinConstraints =
true;
@ CalculateMassAndInertia
Tells the system to calculate the mass and inertia based on density.
#define JPH_EXPORT
Definition: Core.h:227
unsigned int uint
Definition: Core.h:439
#define JPH_NAMESPACE_END
Definition: Core.h:367
std::uint32_t uint32
Definition: Core.h:442
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:361
EMotionType
Motion type of a physics body.
Definition: MotionType.h:11
Array< RefConst< PhysicsMaterial > > PhysicsMaterialList
Definition: PhysicsMaterial.h:50
std::vector< T, STLAllocator< T > > Array
Definition: STLAllocator.h:81
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
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:76
void SaveState(StateRecorder &inStream) const
Saving state for replay.
Definition: MotionProperties.cpp:61
Definition: PhysicsSystem.h:29
Definition: Reference.h:151
Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det...
Definition: Shape.h:178
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:33
bool GetEnableSkinConstraints() const
Global setting to turn on/off skin constraints.
Definition: SoftBodyMotionProperties.h:81
Vertex & GetVertex(uint inIndex)
Definition: SoftBodyMotionProperties.h:57
EStatus
Return code for ParallelUpdate.
Definition: SoftBodyMotionProperties.h:148
Array< Vertex > & GetVertices()
Definition: SoftBodyMotionProperties.h:53
void SetSkinnedMaxDistanceMultiplier(float inSkinnedMaxDistanceMultiplier)
Definition: SoftBodyMotionProperties.h:86
const PhysicsMaterialList & GetMaterials() const
Get the materials of the soft body.
Definition: SoftBodyMotionProperties.h:60
const Array< Vertex > & GetVertices() const
Get the vertices of the soft body.
Definition: SoftBodyMotionProperties.h:52
void SetUpdatePosition(bool inUpdatePosition)
Definition: SoftBodyMotionProperties.h:78
float GetSkinnedMaxDistanceMultiplier() const
Multiplier applied to Skinned::mMaxDistance to allow tightening or loosening of the skin constraints....
Definition: SoftBodyMotionProperties.h:85
void SetPressure(float inPressure)
Definition: SoftBodyMotionProperties.h:74
const Array< Face > & GetFaces() const
Get the faces of the soft body.
Definition: SoftBodyMotionProperties.h:63
const AABox & GetLocalBounds() const
Get local bounding box.
Definition: SoftBodyMotionProperties.h:89
const Vertex & GetVertex(uint inIndex) const
Access an individual vertex.
Definition: SoftBodyMotionProperties.h:56
void SetNumIterations(uint32 inNumIterations)
Definition: SoftBodyMotionProperties.h:70
bool GetUpdatePosition() const
Update the position of the body while simulating (set to false for something that is attached to the ...
Definition: SoftBodyMotionProperties.h:77
float GetVolume() const
Get the volume of the soft body. Note can become negative if the shape is inside out!
Definition: SoftBodyMotionProperties.h:92
uint32 GetNumIterations() const
Get the number of solver iterations.
Definition: SoftBodyMotionProperties.h:69
float GetPressure() const
Get the pressure of the soft body.
Definition: SoftBodyMotionProperties.h:73
void SetEnableSkinConstraints(bool inEnableSkinConstraints)
Definition: SoftBodyMotionProperties.h:82
const SoftBodySharedSettings * GetSettings() const
Get the shared settings of the soft body.
Definition: SoftBodyMotionProperties.h:49
const Face & GetFace(uint inIndex) const
Access to an individual face.
Definition: SoftBodyMotionProperties.h:66
An inverse bind matrix take a skinned vertex from its bind pose into joint local space.
Definition: SoftBodySharedSettings.h:211
Definition: SoftBodySharedSettings.h:272
A joint and its skin weight.
Definition: SoftBodySharedSettings.h:225
A constraint that skins a vertex to joints and limits the distance that the simulated vertex can trav...
Definition: SoftBodySharedSettings.h:239
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:48
Definition: TempAllocator.h:16
JPH_INLINE Vec3 Cross(Vec3Arg inV2) const
Cross product.
Definition: Vec3.inl:582
static JPH_INLINE Vec3 sNaN()
Vector with all NaN's.
Definition: Vec3.inl:129
Definition: PhysicsSettings.h:28
Definition: SoftBodySharedSettings.h:177
An edge keeps two vertices at a constant distance using a spring: |x1 - x2| = rest length.
Definition: SoftBodySharedSettings.h:143
A face defines the surface of the body.
Definition: SoftBodySharedSettings.h:127
Volume constraint, keeps the volume of a tetrahedron constant.
Definition: SoftBodySharedSettings.h:194