Struct RigidBody

struct RigidBody

Public Functions

CLASS_NO_COPY_MOVE(RigidBody)
RigidBody() = default
void init(P64::Object *object, float m)
inline P64::Object *ownerObject() const
inline const fm_vec3_t &position() const
inline const fm_quat_t &rotation() const
inline void setPosition(const fm_vec3_t &pos)
inline void setRotation(const fm_quat_t &rot)
inline const fm_vec3_t &linearVelocity() const
inline const fm_vec3_t &angularVelocity() const
inline float inverseMass() const
inline float timeScale() const
inline void setTimeScale(float newTimeScale)
inline float gravityScale() const
inline void setGravityScale(float newGravityScale)
inline float angularDamping() const
inline void setAngularDamping(float newAngularDamping)
inline bool hasGravity() const
inline void setHasGravity(bool newHasGravity)
inline const fm_vec3_t &previousStepPosition() const
inline const fm_quat_t &previousStepRotation() const
inline const AABB &worldAabb() const
inline const Matrix3x3 &inverseWorldInertiaTensor() const
inline const Matrix3x3 &rotationMatrix() const
inline const Matrix3x3 &inverseRotationMatrix() const
inline const fm_vec3_t &worldCenterOfMass() const
inline uint32_t transformVersion() const
inline float getMass() const
void setMass(float newMass)
inline Constraint getConstraints() const
void setConstraints(Constraint newConstraints)
inline bool hasLinearConstraints() const
inline bool hasAngularConstraints() const
inline bool canApplyAngularResponse() const
inline bool isEnabled() const
inline bool isKinematic() const
inline bool isSleeping() const
inline bool compoundPropertiesDirty() const
inline const fm_vec3_t &getLocalCenterOfMass() const
inline const fm_vec3_t &getLocalCenterOfMassOffset() const
inline void setLocalCenterOfMassOffset(const fm_vec3_t &offset)
inline const fm_vec3_t &getLocalInertiaTensor() const
inline const fm_vec3_t &getDefaultLocalInertiaTensor() const
inline const fm_vec3_t &getCompoundScale() const
inline void markCompoundPropertiesDirty()
void applyCompoundProperties(
const fm_vec3_t &localCenterOfMass,
const fm_vec3_t &localInertiaTensor,
const fm_vec3_t &compoundScale
)
inline void setKinematic(bool newIsKinematic)
fm_vec3_t constrainLinearWorld(const fm_vec3_t &worldLinear) const
fm_vec3_t constrainAngularWorld(const fm_vec3_t &worldAngular) const
void applyConstrainedLinearVelocityDelta(const fm_vec3_t &deltaLinearVelocity)
void applyConstrainedImpulseAtContact(
const fm_vec3_t &impulse,
const fm_vec3_t &toContact
)
float constrainedLinearInvMassAlong(const fm_vec3_t &direction) const
void integrateVelocity(float fixedDt, const fm_vec3_t &gravity)
void integrateAngularVelocity(float fixedDt)
void integratePosition(float fixedDt)
void integrateRotation(float fixedDt)
void accelerate(const fm_vec3_t &accel)
void setVelocity(const fm_vec3_t &vel)
void applyLinearForce(const fm_vec3_t &force)
void applyLinearImpulse(const fm_vec3_t &impulse)
void applyTorque(const fm_vec3_t &torque)
void applyAngularImpulse(const fm_vec3_t &angImpulse)
void setAngularVelocity(const fm_vec3_t &angVel)
void applyForceAtPoint(const fm_vec3_t &force, const fm_vec3_t &worldPoint)
fm_vec3_t getVelocityAtPoint(const fm_vec3_t &worldPoint) const
void updateWorldInertia()
void applyPositionConstraints()
fm_vec3_t toWorldSpace(const fm_vec3_t &localPoint) const
fm_vec3_t toLocalSpace(const fm_vec3_t &worldPoint) const
fm_vec3_t rotateToWorld(const fm_vec3_t &localDir) const
fm_vec3_t rotateToLocal(const fm_vec3_t &worldDir) const
inline void wake()
inline void sleep()
inline fm_vec3_t applyWorldInertia(const fm_vec3_t &in) const
inline fm_vec3_t applyConstrainedWorldInertia(const fm_vec3_t &in) const
inline void resetPushVelocities()

Reset split impulse push velocities at the start of each physics step.

inline const fm_vec3_t &pushLinearVelocity() const
inline const fm_vec3_t &pushAngularVelocity() const