66    void                        DestroyBodyWithoutID(
Body *inBody) 
const;
 
   70    bool                        AssignBodyID(
Body *ioBody);
 
   74    bool                        AssignBodyID(
Body *ioBody, 
const BodyID &inBodyID);
 
   84    void                        UnassignBodyIDs(
const BodyID *inBodyIDs, 
int inNumber, 
Body **outBodies);
 
   88    void                        DestroyBody(
const BodyID &inBodyID);
 
   92    void                        DestroyBodies(
const BodyID *inBodyIDs, 
int inNumber);
 
  101    void                        RemoveBody(
const BodyID &inBodyID);
 
  104    bool                        IsAdded(
const BodyID &inBodyID) 
const;
 
  132    void                        AddBodiesAbort(
BodyID *ioBodies, 
int inNumber, 
AddState inAddState);
 
  136    void                        RemoveBodies(
BodyID *ioBodies, 
int inNumber);
 
  141    void                        ActivateBody(
const BodyID &inBodyID);
 
  142    void                        ActivateBodies(
const BodyID *inBodyIDs, 
int inNumber);
 
  144    void                        DeactivateBody(
const BodyID &inBodyID);
 
  145    void                        DeactivateBodies(
const BodyID *inBodyIDs, 
int inNumber);
 
  146    bool                        IsActive(
const BodyID &inBodyID) 
const;
 
  147    void                        ResetSleepTimer(
const BodyID &inBodyID);
 
  167    void                        SetShape(
const BodyID &inBodyID, 
const Shape *inShape, 
bool inUpdateMassProperties, 
EActivation inActivationMode) 
const;
 
  174    void                        NotifyShapeChanged(
const BodyID &inBodyID, 
Vec3Arg inPreviousCenterOfMass, 
bool inUpdateMassProperties, 
EActivation inActivationMode) 
const;
 
  187    void                        GetPositionAndRotation(
const BodyID &inBodyID, 
RVec3 &outPosition, 
Quat &outRotation) 
const;
 
  190    RVec3                       GetCenterOfMassPosition(
const BodyID &inBodyID) 
const;
 
  192    Quat                        GetRotation(
const BodyID &inBodyID) 
const;
 
  194    RMat44                      GetCenterOfMassTransform(
const BodyID &inBodyID) 
const;
 
  198    void                        MoveKinematic(
const BodyID &inBodyID, 
RVec3Arg inTargetPosition, 
QuatArg inTargetRotation, 
float inDeltaTime);
 
  202    void                        SetLinearAndAngularVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity, 
Vec3Arg inAngularVelocity);
 
  203    void                        GetLinearAndAngularVelocity(
const BodyID &inBodyID, 
Vec3 &outLinearVelocity, 
Vec3 &outAngularVelocity) 
const;
 
  204    void                        SetLinearVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity);
 
  205    Vec3                        GetLinearVelocity(
const BodyID &inBodyID) 
const;
 
  206    void                        AddLinearVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity); 
 
  207    void                        AddLinearAndAngularVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity, 
Vec3Arg inAngularVelocity); 
 
  208    void                        SetAngularVelocity(
const BodyID &inBodyID, 
Vec3Arg inAngularVelocity);
 
  209    Vec3                        GetAngularVelocity(
const BodyID &inBodyID) 
const;
 
  228    void                        AddAngularImpulse(
const BodyID &inBodyID, 
Vec3Arg inAngularImpulse);
 
  229    bool                        ApplyBuoyancyImpulse(
const BodyID &inBodyID, 
RVec3Arg inSurfacePosition, 
Vec3Arg inSurfaceNormal, 
float inBuoyancy, 
float inLinearDrag, 
float inAngularDrag, 
Vec3Arg inFluidVelocity, 
Vec3Arg inGravity, 
float inDeltaTime);
 
  250    Mat44                       GetInverseInertia(
const BodyID &inBodyID) 
const;
 
  254    void                        SetRestitution(
const BodyID &inBodyID, 
float inRestitution);
 
  255    float                       GetRestitution(
const BodyID &inBodyID) 
const;
 
  260    void                        SetFriction(
const BodyID &inBodyID, 
float inFriction);
 
  261    float                       GetFriction(
const BodyID &inBodyID) 
const;
 
  266    void                        SetGravityFactor(
const BodyID &inBodyID, 
float inGravityFactor);
 
  267    float                       GetGravityFactor(
const BodyID &inBodyID) 
const;
 
  272    void                        SetUseManifoldReduction(
const BodyID &inBodyID, 
bool inUseReduction);
 
  273    bool                        GetUseManifoldReduction(
const BodyID &inBodyID) 
const;
 
  281    void                        SetUserData(
const BodyID &inBodyID, 
uint64 inUserData) 
const;
 
  287    void                        InvalidateContactCache(
const BodyID &inBodyID);
 
  291    JPH_INLINE 
void             ActivateBodyInternal(
Body &ioBody) 
const;
 
EBodyType
Type of body.
Definition: BodyType.h:11
 
#define JPH_EXPORT
Definition: Core.h:236
 
std::uint64_t uint64
Definition: Core.h:456
 
#define JPH_NAMESPACE_END
Definition: Core.h:378
 
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:372
 
EActivation
Enum used by AddBody to determine if the body needs to be initially active.
Definition: EActivation.h:11
 
EMotionQuality
Motion quality, or how well it detects collisions when it has a high velocity.
Definition: MotionQuality.h:11
 
EMotionType
Motion type of a physics body.
Definition: MotionType.h:11
 
uint16 ObjectLayer
Definition: ObjectLayer.h:16
 
Axis aligned box.
Definition: AABox.h:16
 
Settings for constructing a rigid body.
Definition: BodyCreationSettings.h:31
 
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
 
void Init(BodyLockInterface &inBodyLockInterface, BodyManager &inBodyManager, BroadPhase &inBroadPhase)
Initialize the interface (should only be called by PhysicsSystem)
Definition: BodyInterface.h:38
 
void * AddState
Add state handle, used to keep track of a batch of bodies while adding them to the PhysicsSystem.
Definition: BodyInterface.h:115
 
Base class interface for locking a body. Usually you will use BodyLockRead / BodyLockWrite / BodyLock...
Definition: BodyLockInterface.h:17
 
Class that contains all bodies.
Definition: BodyManager.h:44
 
Used to do coarse collision detection operations to quickly prune out bodies that will not collide.
Definition: BroadPhase.h:26
 
Filter class for broadphase layers.
Definition: BroadPhaseLayer.h:94
 
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition: Mat44.h:13
 
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition: NonCopyable.h:11
 
Filter class for object layers.
Definition: ObjectLayer.h:28
 
Definition: PhysicsMaterial.h:23
 
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
 
A sub shape id contains a path to an element (usually a triangle or other primitive type) of a compou...
Definition: SubShapeID.h:23
 
Base class for all constraints that involve 2 bodies. Body1 is usually considered the parent,...
Definition: TwoBodyConstraint.h:27
 
Base class for settings for all constraints that involve 2 bodies.
Definition: TwoBodyConstraint.h:16