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;
 
  122    void                        AddBodiesAbort(
BodyID *ioBodies, 
int inNumber, 
AddState inAddState);
 
  123    void                        RemoveBodies(
BodyID *ioBodies, 
int inNumber);
 
  128    void                        ActivateBody(
const BodyID &inBodyID);
 
  129    void                        ActivateBodies(
const BodyID *inBodyIDs, 
int inNumber);
 
  131    void                        DeactivateBody(
const BodyID &inBodyID);
 
  132    void                        DeactivateBodies(
const BodyID *inBodyIDs, 
int inNumber);
 
  133    bool                        IsActive(
const BodyID &inBodyID) 
const;
 
  134    void                        ResetSleepTimer(
const BodyID &inBodyID);
 
  154    void                        SetShape(
const BodyID &inBodyID, 
const Shape *inShape, 
bool inUpdateMassProperties, 
EActivation inActivationMode) 
const;
 
  161    void                        NotifyShapeChanged(
const BodyID &inBodyID, 
Vec3Arg inPreviousCenterOfMass, 
bool inUpdateMassProperties, 
EActivation inActivationMode) 
const;
 
  174    void                        GetPositionAndRotation(
const BodyID &inBodyID, 
RVec3 &outPosition, 
Quat &outRotation) 
const;
 
  177    RVec3                       GetCenterOfMassPosition(
const BodyID &inBodyID) 
const;
 
  179    Quat                        GetRotation(
const BodyID &inBodyID) 
const;
 
  181    RMat44                      GetCenterOfMassTransform(
const BodyID &inBodyID) 
const;
 
  185    void                        MoveKinematic(
const BodyID &inBodyID, 
RVec3Arg inTargetPosition, 
QuatArg inTargetRotation, 
float inDeltaTime);
 
  189    void                        SetLinearAndAngularVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity, 
Vec3Arg inAngularVelocity);
 
  190    void                        GetLinearAndAngularVelocity(
const BodyID &inBodyID, 
Vec3 &outLinearVelocity, 
Vec3 &outAngularVelocity) 
const;
 
  191    void                        SetLinearVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity);
 
  192    Vec3                        GetLinearVelocity(
const BodyID &inBodyID) 
const;
 
  193    void                        AddLinearVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity); 
 
  194    void                        AddLinearAndAngularVelocity(
const BodyID &inBodyID, 
Vec3Arg inLinearVelocity, 
Vec3Arg inAngularVelocity); 
 
  195    void                        SetAngularVelocity(
const BodyID &inBodyID, 
Vec3Arg inAngularVelocity);
 
  196    Vec3                        GetAngularVelocity(
const BodyID &inBodyID) 
const;
 
  215    void                        AddAngularImpulse(
const BodyID &inBodyID, 
Vec3Arg inAngularImpulse);
 
  216    bool                        ApplyBuoyancyImpulse(
const BodyID &inBodyID, 
RVec3Arg inSurfacePosition, 
Vec3Arg inSurfaceNormal, 
float inBuoyancy, 
float inLinearDrag, 
float inAngularDrag, 
Vec3Arg inFluidVelocity, 
Vec3Arg inGravity, 
float inDeltaTime);
 
  237    Mat44                       GetInverseInertia(
const BodyID &inBodyID) 
const;
 
  241    void                        SetRestitution(
const BodyID &inBodyID, 
float inRestitution);
 
  242    float                       GetRestitution(
const BodyID &inBodyID) 
const;
 
  247    void                        SetFriction(
const BodyID &inBodyID, 
float inFriction);
 
  248    float                       GetFriction(
const BodyID &inBodyID) 
const;
 
  253    void                        SetGravityFactor(
const BodyID &inBodyID, 
float inGravityFactor);
 
  254    float                       GetGravityFactor(
const BodyID &inBodyID) 
const;
 
  259    void                        SetUseManifoldReduction(
const BodyID &inBodyID, 
bool inUseReduction);
 
  260    bool                        GetUseManifoldReduction(
const BodyID &inBodyID) 
const;
 
  268    void                        SetUserData(
const BodyID &inBodyID, 
uint64 inUserData) 
const;
 
  274    void                        InvalidateContactCache(
const BodyID &inBodyID);
 
  278    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
Broadphase add state handle, used to keep track of a batch while adding to the broadphase.
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: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
 
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