34 velocity += acceleration * dt;
35 position += velocity * dt;
45 position += velocity * dt;
46 velocity += acceleration * dt;
56 Quaternion omegaQuat(0.0, angularVelocity.x, angularVelocity.y,
59 orientation = orientation + dq * dt;
68 angularVelocity += angularAcceleration * dt;
77 Vector3 halfVelocity = velocity + acceleration * (0.5 * dt);
79 position += halfVelocity * dt;
81 velocity += acceleration * dt;
Time-integration helpers for translational and rotational rigid-body dynamics.
Definition integrators.hpp:25
static void integrateAngular(Quaternion &orientation, const Vector3 &angularVelocity, double dt) noexcept
Definition integrators.hpp:53
static void integrateLinearExplicit(Vector3 &position, Vector3 &velocity, const Vector3 &acceleration, double dt) noexcept
Definition integrators.hpp:41
static void integrateLinear(Vector3 &position, Vector3 &velocity, const Vector3 &acceleration, double dt) noexcept
Definition integrators.hpp:31
static void integrateLinearRK2(Vector3 &position, Vector3 &velocity, const Vector3 &acceleration, double dt) noexcept
Definition integrators.hpp:74
static void integrateAngularVelocity(Vector3 &angularVelocity, const Vector3 &angularAcceleration, double dt) noexcept
Definition integrators.hpp:65
Unit-quaternion rotation representation and rotation algebra helpers.
Definition quaternion.hpp:25
void normalizeIfNeeded(double eps=1e-12) noexcept
Definition quaternion.hpp:62
3D vector utility used throughout JSim physics.
Definition vector.hpp:22