69 void CalculateBodyIndexToConstraintIndex();
79 void CalculateConstraintIndexToBodyIdxPair();
148 void AddToPhysicsSystem(
EActivation inActivationMode,
bool inLockBodies =
true);
151 void RemoveFromPhysicsSystem(
bool inLockBodies =
true);
154 void Activate(
bool inLockBodies =
true);
160 bool IsActive(
bool inLockBodies =
true)
const;
166 void SetPose(
const SkeletonPose &inPose,
bool inLockBodies =
true);
169 void SetPose(
RVec3Arg inRootOffset,
const Mat44 *inJointMatrices,
bool inLockBodies =
true);
172 void GetPose(
SkeletonPose &outPose,
bool inLockBodies =
true);
175 void GetPose(
RVec3 &outRootOffset,
Mat44 *outJointMatrices,
bool inLockBodies =
true);
178 void ResetWarmStart();
181 void DriveToPoseUsingKinematics(
const SkeletonPose &inPose,
float inDeltaTime,
bool inLockBodies =
true);
184 void DriveToPoseUsingKinematics(
RVec3Arg inRootOffset,
const Mat44 *inJointMatrices,
float inDeltaTime,
bool inLockBodies =
true);
187 void DriveToPoseUsingMotors(
const SkeletonPose &inPose);
190 void SetLinearAndAngularVelocity(
Vec3Arg inLinearVelocity,
Vec3Arg inAngularVelocity,
bool inLockBodies =
true);
193 void SetLinearVelocity(
Vec3Arg inLinearVelocity,
bool inLockBodies =
true);
196 void AddLinearVelocity(
Vec3Arg inLinearVelocity,
bool inLockBodies =
true);
199 void AddImpulse(
Vec3Arg inImpulse,
bool inLockBodies =
true);
202 void GetRootTransform(
RVec3 &outPosition,
Quat &outRotation,
bool inLockBodies =
true)
const;
223 AABox GetWorldSpaceBounds(
bool inLockBodies =
true)
const;
#define JPH_EXPORT
Definition Core.h:275
std::uint64_t uint64
Definition Core.h:504
#define JPH_NAMESPACE_END
Definition Core.h:425
std::uint32_t uint32
Definition Core.h:503
#define JPH_NAMESPACE_BEGIN
Definition Core.h:419
EActivation
Enum used by AddBody to determine if the body needs to be initially active.
Definition EActivation.h:11
@ Activate
Activate the body, making it part of the simulation.
Definition EActivation.h:12
const Vec3 Vec3Arg
Definition MathTypes.h:19
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:50
Vec3Arg RVec3Arg
Definition Real.h:30
Vec3 RVec3
Definition Real.h:29
#define JPH_DECLARE_SERIALIZABLE_NON_VIRTUAL(linkage, class_name)
Definition SerializableObject.h:80
Axis aligned box.
Definition AABox.h:16
BodyCreationSettings()=default
Constructor.
ID of a body. This is a way of reasoning about bodies in a multithreaded simulation while avoiding ra...
Definition BodyID.h:13
uint32 GroupID
Definition CollisionGroup.h:24
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition Mat44.h:13
Definition PhysicsSystem.h:30
Runtime ragdoll information.
Definition Ragdoll.h:137
const TwoBodyConstraint * GetConstraint(int inConstraintIndex) const
Access a constraint by index.
Definition Ragdoll.h:220
size_t GetConstraintCount() const
Get number of constraints in the ragdoll.
Definition Ragdoll.h:214
size_t GetBodyCount() const
Get number of bodies in the ragdoll.
Definition Ragdoll.h:205
TwoBodyConstraint * GetConstraint(int inConstraintIndex)
Access a constraint by index.
Definition Ragdoll.h:217
const Array< BodyID > & GetBodyIDs() const
Access to the array of body IDs.
Definition Ragdoll.h:211
JPH_OVERRIDE_NEW_DELETE Ragdoll(PhysicsSystem *inSystem)
Constructor.
Definition Ragdoll.h:142
BodyID GetBodyID(int inBodyIndex) const
Access a body ID.
Definition Ragdoll.h:208
const RagdollSettings * GetRagdollSettings() const
Get the settings object that created this ragdoll.
Definition Ragdoll.h:226
friend class RagdollSettings
For RagdollSettings::CreateRagdoll function.
Definition Ragdoll.h:230
AdditionalConstraint()=default
Constructors.
Ref< TwoBodyConstraintSettings > mConstraint
The constraint that connects these bodies.
Definition Ragdoll.h:112
AdditionalConstraint(int inBodyIdx1, int inBodyIdx2, TwoBodyConstraintSettings *inConstraint)
Definition Ragdoll.h:109
int mBodyIdx[2]
Indices of the bodies that this constraint connects.
Definition Ragdoll.h:111
A single rigid body sub part of the ragdoll.
Definition Ragdoll.h:91
Ref< TwoBodyConstraintSettings > mToParent
Definition Ragdoll.h:95
Contains the structure of a ragdoll.
Definition Ragdoll.h:22
const Array< int > & GetBodyIndexToConstraintIndex() const
Definition Ragdoll.h:73
std::pair< int, int > BodyIdxPair
Definition Ragdoll.h:81
Skeleton * GetSkeleton()
Definition Ragdoll.h:66
int GetConstraintIndexForBodyIndex(int inBodyIndex) const
Map a single body index to a constraint index.
Definition Ragdoll.h:76
static RagdollResult sRestoreFromBinaryState(StreamIn &inStream)
Restore a saved ragdoll from inStream.
Definition Ragdoll.cpp:326
void CalculateConstraintPriorities(uint32 inBasePriority=0)
Definition Ragdoll.cpp:193
void DisableParentChildCollisions(const Mat44 *inJointMatrices=nullptr, float inMinSeparationDistance=0.0f)
Definition Ragdoll.cpp:225
void SaveBinaryState(StreamOut &inStream, bool inSaveShapes, bool inSaveGroupFilter) const
Definition Ragdoll.cpp:292
const Skeleton * GetSkeleton() const
Access to the skeleton of this ragdoll.
Definition Ragdoll.h:65
Ragdoll * CreateRagdoll(CollisionGroup::GroupID inCollisionGroup, uint64 inUserData, PhysicsSystem *inSystem) const
Definition Ragdoll.cpp:408
const Array< BodyIdxPair > & GetConstraintIndexToBodyIdxPair() const
Table that maps a constraint index (index in mConstraints) to the indices of the bodies that the cons...
Definition Ragdoll.h:84
Array< AdditionalConstraint > AdditionalConstraintVector
List of additional constraints.
Definition Ragdoll.h:116
AdditionalConstraintVector mAdditionalConstraints
A list of constraints that connects two bodies in a ragdoll (for non parent child related constraints...
Definition Ragdoll.h:125
bool Stabilize()
Definition Ragdoll.cpp:52
BodyIdxPair GetBodyIndicesForConstraintIndex(int inConstraintIndex) const
Map a single constraint index (index in mConstraints) to the indices of the bodies that the constrain...
Definition Ragdoll.h:87
PartVector mParts
For each of the joints, the body and constraint attaching it to its parent body (1-on-1 with mSkeleto...
Definition Ragdoll.h:122
Result< Ref< RagdollSettings > > RagdollResult
Definition Ragdoll.h:55
Ref< Skeleton > mSkeleton
The skeleton for this ragdoll.
Definition Ragdoll.h:119
Array< Part > PartVector
List of ragdoll parts.
Definition Ragdoll.h:99
Definition Reference.h:163
Definition Reference.h:107
Helper class that either contains a valid result or an error.
Definition Result.h:12
Resource that contains the joint hierarchy for a skeleton.
Definition Skeleton.h:18
Instance of a skeleton, contains the pose the current skeleton is in.
Definition SkeletonPose.h:18
Simple binary input stream.
Definition StreamIn.h:13
Simple binary output stream.
Definition StreamOut.h:13
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