7#include "core/reflect.h"
16enum class RigidbodyMotion : uint8_t {
42 RigidbodyMotion
motion = RigidbodyMotion::Dynamic;
84 bool supported =
false;
108VKM_ENUM_NAMES(::Vkm::Engine::RigidbodyMotion,
"Dynamic",
"Kinematic",
"Static")
111VKM_REFLECT_BEGIN(::Vkm::Engine::Rigidbody)
112 VKM_F(linearVelocity)
113 VKM_F(angularVelocity)
117 VKM_F(angularDamping)
123 VKM_F(freezeRotation)
Dynamics state for a physics body: motion, material response and mass.
Definition rigidbody.h:31
RigidbodyMotion motion
How the solver moves it.
Definition rigidbody.h:42
float linearDamping
Per-second velocity bleed (drag)
Definition rigidbody.h:48
glm::vec3 blockNormal
The most horizontal normal among the same contacts: what blocks this body.
Definition rigidbody.h:91
int collidesWith
Which layers this body collides with, as a mask of their bits.
Definition rigidbody.h:68
glm::vec3 angularVelocity
World-space spin (rad/s, axis * speed)
Definition rigidbody.h:33
int layer
Which group this body belongs to, as a single bit; paired with collidesWith.
Definition rigidbody.h:61
float mass
Definition rigidbody.h:46
glm::vec3 supportNormal
Whether a resolved contact reached this body last tick, and the most upward normal among them.
Definition rigidbody.h:83
bool canSleep
False keeps a script-driven body responsive.
Definition rigidbody.h:71
float gravityScale
Multiplier on world gravity (0 = floats)
Definition rigidbody.h:54
bool freezeRotation
Contacts never torque the body (character controllers)
Definition rigidbody.h:70
bool sleeping
Rested long enough; skipped until disturbed.
Definition rigidbody.h:72
static void wake(Rigidbody &rb)
Wake a sleeping body so the next tick moves it.
Definition rigidbody.h:100
float angularDamping
Per-second spin bleed.
Definition rigidbody.h:49
float restitution
Bounciness [0,1].
Definition rigidbody.h:51
float sleepTimer
Runtime-only: seconds spent resting.
Definition rigidbody.h:74
glm::vec3 linearVelocity
World-space velocity (m/s)
Definition rigidbody.h:32
float friction
Coulomb coefficient [0,1+].
Definition rigidbody.h:52