| 
|   | SoftBodyWithMotionPropertiesAndShape () | 
|   | 
  Public Member Functions inherited from Body | 
| JPH_OVERRIDE_NEW_DELETE const BodyID &  | GetID () const | 
|   | Get the id of this body.  More...
  | 
|   | 
| EBodyType  | GetBodyType () const | 
|   | Get the type of body (rigid or soft)  More...
  | 
|   | 
| bool  | IsRigidBody () const | 
|   | Check if this body is a rigid body.  More...
  | 
|   | 
| bool  | IsSoftBody () const | 
|   | Check if this body is a soft body.  More...
  | 
|   | 
| JPH_TSAN_NO_SANITIZE bool  | IsActive () const | 
|   | If this body is currently actively simulating (true) or sleeping (false)  More...
  | 
|   | 
| bool  | IsStatic () const | 
|   | Check if this body is static (not movable)  More...
  | 
|   | 
| bool  | IsKinematic () const | 
|   | Check if this body is kinematic (keyframed), which means that it will move according to its current velocity, but forces don't affect it.  More...
  | 
|   | 
| bool  | IsDynamic () const | 
|   | Check if this body is dynamic, which means that it moves and forces can act on it.  More...
  | 
|   | 
| bool  | CanBeKinematicOrDynamic () const | 
|   | Check if a body could be made kinematic or dynamic (if it was created dynamic or with mAllowDynamicOrKinematic set to true)  More...
  | 
|   | 
| void  | SetIsSensor (bool inIsSensor) | 
|   | 
| bool  | IsSensor () const | 
|   | Check if this body is a sensor.  More...
  | 
|   | 
| void  | SetCollideKinematicVsNonDynamic (bool inCollide) | 
|   | 
| bool  | GetCollideKinematicVsNonDynamic () const | 
|   | Check if kinematic objects can generate contact points against other kinematic or static objects.  More...
  | 
|   | 
| void  | SetUseManifoldReduction (bool inUseReduction) | 
|   | 
| bool  | GetUseManifoldReduction () const | 
|   | Check if this body can use manifold reduction.  More...
  | 
|   | 
| bool  | GetUseManifoldReductionWithBody (const Body &inBody2) const | 
|   | Checks if the combination of this body and inBody2 should use manifold reduction.  More...
  | 
|   | 
| void  | SetApplyGyroscopicForce (bool inApply) | 
|   | Set to indicate that the gyroscopic force should be applied to this body (aka Dzhanibekov effect, see https://en.wikipedia.org/wiki/Tennis_racket_theorem)  More...
  | 
|   | 
| bool  | GetApplyGyroscopicForce () const | 
|   | Check if the gyroscopic force is being applied for this body.  More...
  | 
|   | 
| void  | SetEnhancedInternalEdgeRemoval (bool inApply) | 
|   | Set to indicate that extra effort should be made to try to remove ghost contacts (collisions with internal edges of a mesh). This is more expensive but makes bodies move smoother over a mesh with convex edges.  More...
  | 
|   | 
| bool  | GetEnhancedInternalEdgeRemoval () const | 
|   | Check if enhanced internal edge removal is turned on.  More...
  | 
|   | 
| bool  | GetEnhancedInternalEdgeRemovalWithBody (const Body &inBody2) const | 
|   | Checks if the combination of this body and inBody2 should use enhanced internal edge removal.  More...
  | 
|   | 
| EMotionType  | GetMotionType () const | 
|   | Get the bodies motion type.  More...
  | 
|   | 
| void  | SetMotionType (EMotionType inMotionType) | 
|   | Set the motion type of this body. Consider using BodyInterface::SetMotionType instead of this function if the body may be active or if it needs to be activated.  More...
  | 
|   | 
| BroadPhaseLayer  | GetBroadPhaseLayer () const | 
|   | Get broadphase layer, this determines in which broad phase sub-tree the object is placed.  More...
  | 
|   | 
| ObjectLayer  | GetObjectLayer () const | 
|   | Get object layer, this determines which other objects it collides with.  More...
  | 
|   | 
| const CollisionGroup &  | GetCollisionGroup () const | 
|   | Collision group and sub-group ID, determines which other objects it collides with.  More...
  | 
|   | 
| CollisionGroup &  | GetCollisionGroup () | 
|   | 
| void  | SetCollisionGroup (const CollisionGroup &inGroup) | 
|   | 
| bool  | GetAllowSleeping () const | 
|   | If this body can go to sleep. Note that disabling sleeping on a sleeping object will not wake it up.  More...
  | 
|   | 
| void  | SetAllowSleeping (bool inAllow) | 
|   | 
| void  | ResetSleepTimer () | 
|   | Resets the sleep timer. This does not wake up the body if it is sleeping, but allows resetting the system that detects when a body is sleeping.  More...
  | 
|   | 
| float  | GetFriction () const | 
|   | Friction (dimensionless number, usually between 0 and 1, 0 = no friction, 1 = friction force equals force that presses the two bodies together). Note that bodies can have negative friction but the combined friction (see PhysicsSystem::SetCombineFriction) should never go below zero.  More...
  | 
|   | 
| void  | SetFriction (float inFriction) | 
|   | 
| float  | GetRestitution () const | 
|   | Restitution (dimensionless number, usually between 0 and 1, 0 = completely inelastic collision response, 1 = completely elastic collision response). Note that bodies can have negative restitution but the combined restitution (see PhysicsSystem::SetCombineRestitution) should never go below zero.  More...
  | 
|   | 
| void  | SetRestitution (float inRestitution) | 
|   | 
| Vec3  | GetLinearVelocity () const | 
|   | Get world space linear velocity of the center of mass (unit: m/s)  More...
  | 
|   | 
| void  | SetLinearVelocity (Vec3Arg inLinearVelocity) | 
|   | 
| void  | SetLinearVelocityClamped (Vec3Arg inLinearVelocity) | 
|   | 
| Vec3  | GetAngularVelocity () const | 
|   | Get world space angular velocity of the center of mass (unit: rad/s)  More...
  | 
|   | 
| void  | SetAngularVelocity (Vec3Arg inAngularVelocity) | 
|   | 
| void  | SetAngularVelocityClamped (Vec3Arg inAngularVelocity) | 
|   | 
| Vec3  | GetPointVelocityCOM (Vec3Arg inPointRelativeToCOM) const | 
|   | Velocity of point inPoint (in center of mass space, e.g. on the surface of the body) of the body (unit: m/s)  More...
  | 
|   | 
| Vec3  | GetPointVelocity (RVec3Arg inPoint) const | 
|   | Velocity of point inPoint (in world space, e.g. on the surface of the body) of the body (unit: m/s)  More...
  | 
|   | 
| void  | AddForce (Vec3Arg inForce) | 
|   | 
| void  | AddForce (Vec3Arg inForce, RVec3Arg inPosition) | 
|   | 
| void  | AddTorque (Vec3Arg inTorque) | 
|   | 
| Vec3  | GetAccumulatedForce () const | 
|   | 
| Vec3  | GetAccumulatedTorque () const | 
|   | 
| JPH_INLINE void  | ResetForce () | 
|   | 
| JPH_INLINE void  | ResetTorque () | 
|   | 
| JPH_INLINE void  | ResetMotion () | 
|   | 
| Mat44  | GetInverseInertia () const | 
|   | Get inverse inertia tensor in world space.  More...
  | 
|   | 
| void  | AddImpulse (Vec3Arg inImpulse) | 
|   | 
| void  | AddImpulse (Vec3Arg inImpulse, RVec3Arg inPosition) | 
|   | 
| void  | AddAngularImpulse (Vec3Arg inAngularImpulse) | 
|   | 
| void  | MoveKinematic (RVec3Arg inTargetPosition, QuatArg inTargetRotation, float inDeltaTime) | 
|   | 
| bool  | ApplyBuoyancyImpulse (RVec3Arg inSurfacePosition, Vec3Arg inSurfaceNormal, float inBuoyancy, float inLinearDrag, float inAngularDrag, Vec3Arg inFluidVelocity, Vec3Arg inGravity, float inDeltaTime) | 
|   | 
| bool  | IsInBroadPhase () const | 
|   | Check if this body has been added to the physics system.  More...
  | 
|   | 
| bool  | IsCollisionCacheInvalid () const | 
|   | Check if this body has been changed in such a way that the collision cache should be considered invalid for any body interacting with this body.  More...
  | 
|   | 
| const Shape *  | GetShape () const | 
|   | Get the shape of this body.  More...
  | 
|   | 
| RVec3  | GetPosition () const | 
|   | World space position of the body.  More...
  | 
|   | 
| Quat  | GetRotation () const | 
|   | World space rotation of the body.  More...
  | 
|   | 
| RMat44  | GetWorldTransform () const | 
|   | Calculates the transform of this body.  More...
  | 
|   | 
| RVec3  | GetCenterOfMassPosition () const | 
|   | Gets the world space position of this body's center of mass.  More...
  | 
|   | 
| RMat44  | GetCenterOfMassTransform () const | 
|   | Calculates the transform for this body's center of mass.  More...
  | 
|   | 
| RMat44  | GetInverseCenterOfMassTransform () const | 
|   | Calculates the inverse of the transform for this body's center of mass.  More...
  | 
|   | 
| const AABox &  | GetWorldSpaceBounds () const | 
|   | Get world space bounding box.  More...
  | 
|   | 
| const MotionProperties *  | GetMotionProperties () const | 
|   | Access to the motion properties.  More...
  | 
|   | 
| MotionProperties *  | GetMotionProperties () | 
|   | 
| const MotionProperties *  | GetMotionPropertiesUnchecked () const | 
|   | Access to the motion properties (version that does not check if the object is kinematic or dynamic)  More...
  | 
|   | 
| MotionProperties *  | GetMotionPropertiesUnchecked () | 
|   | 
| uint64  | GetUserData () const | 
|   | Access to the user data, can be used for anything by the application.  More...
  | 
|   | 
| void  | SetUserData (uint64 inUserData) | 
|   | 
| Vec3  | GetWorldSpaceSurfaceNormal (const SubShapeID &inSubShapeID, RVec3Arg inPosition) const | 
|   | Get surface normal of a particular sub shape and its world space surface position on this body.  More...
  | 
|   | 
| TransformedShape  | GetTransformedShape () const | 
|   | Get the transformed shape of this body, which can be used to do collision detection outside of a body lock.  More...
  | 
|   | 
| BodyCreationSettings  | GetBodyCreationSettings () const | 
|   | Debug function to convert a body back to a body creation settings object to be able to save/recreate the body later.  More...
  | 
|   | 
| SoftBodyCreationSettings  | GetSoftBodyCreationSettings () const | 
|   | Debug function to convert a soft body back to a soft body creation settings object to be able to save/recreate the body later.  More...
  | 
|   | 
| void  | AddPositionStep (Vec3Arg inLinearVelocityTimesDeltaTime) | 
|   | Update position using an Euler step (used during position integrate & constraint solving)  More...
  | 
|   | 
| void  | SubPositionStep (Vec3Arg inLinearVelocityTimesDeltaTime) | 
|   | 
| void  | AddRotationStep (Vec3Arg inAngularVelocityTimesDeltaTime) | 
|   | Update rotation using an Euler step (used during position integrate & constraint solving)  More...
  | 
|   | 
| void  | SubRotationStep (Vec3Arg inAngularVelocityTimesDeltaTime) | 
|   | 
| void  | SetInBroadPhaseInternal (bool inInBroadPhase) | 
|   | Flag if body is in the broadphase (should only be called by the BroadPhase)  More...
  | 
|   | 
| bool  | InvalidateContactCacheInternal () | 
|   | Invalidate the contact cache (should only be called by the BodyManager), will be reset the next simulation step. Returns true if the contact cache was still valid.  More...
  | 
|   | 
| void  | ValidateContactCacheInternal () | 
|   | Reset the collision cache invalid flag (should only be called by the BodyManager).  More...
  | 
|   | 
| void  | CalculateWorldSpaceBoundsInternal () | 
|   | Updates world space bounding box (should only be called by the PhysicsSystem)  More...
  | 
|   | 
| void  | SetPositionAndRotationInternal (RVec3Arg inPosition, QuatArg inRotation, bool inResetSleepTimer=true) | 
|   | Function to update body's position (should only be called by the BodyInterface since it also requires updating the broadphase)  More...
  | 
|   | 
| void  | UpdateCenterOfMassInternal (Vec3Arg inPreviousCenterOfMass, bool inUpdateMassProperties) | 
|   | 
| void  | SetShapeInternal (const Shape *inShape, bool inUpdateMassProperties) | 
|   | 
| JPH_TSAN_NO_SANITIZE uint32  | GetIndexInActiveBodiesInternal () const | 
|   | Access to the index in the BodyManager::mActiveBodies list.  More...
  | 
|   | 
| ECanSleep  | UpdateSleepStateInternal (float inDeltaTime, float inMaxMovement, float inTimeBeforeSleep) | 
|   | Update eligibility for sleeping.  More...
  | 
|   | 
| void  | SaveState (StateRecorder &inStream) const | 
|   | Saving state for replay.  More...
  | 
|   | 
| void  | RestoreState (StateRecorder &inStream) | 
|   | Restoring state for replay.  More...
  | 
|   | 
|   | NonCopyable ()=default | 
|   | 
|   | NonCopyable (const NonCopyable &)=delete | 
|   | 
| void  | operator= (const NonCopyable &)=delete | 
|   |