group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
Solver.hpp
Go to the documentation of this file.
1
13
14#pragma once
15
18
19#include <cstdint>
20
21namespace physics
22{
23
25{
28 float baumgarteScale = 0.2f;
29 float linearSlop = 0.005f;
30 float maxLinearCorrection = 0.2f;
31 float defaultFriction = 0.7f;
32 float defaultRestitution = 0.0f;
34};
35
44void solveContacts(Registry& registry, ContactCache& cache, const SolverConfig& cfg, float dt);
45
46} // namespace physics
Per-pair contact manifold cache for warm-starting the solver.
Shared ECS registry type alias for the game engine.
entt::registry Registry
Shared ECS registry type alias.
Definition Registry.hpp:11
Definition ContactCache.hpp:26
Pure physics math — no ECS types, no registry.
Definition BroadphaseTree.cpp:11
void solveContacts(Registry &registry, ContactCache &cache, const SolverConfig &cfg, float dt)
Solve every cached contact manifold for the current tick.
Definition Solver.cpp:134
Definition Solver.hpp:25
float defaultFriction
Coulomb friction coefficient if not on surface table.
Definition Solver.hpp:31
int velocityIterations
PGS passes for impulse solving.
Definition Solver.hpp:27
float linearSlop
Allowed penetration before bias activates (units).
Definition Solver.hpp:29
int positionIterations
NGS passes to push out residual penetration.
Definition Solver.hpp:26
float defaultRestitution
Bounce coefficient.
Definition Solver.hpp:32
float baumgarteScale
Position-bias factor for Baumgarte stabilisation.
Definition Solver.hpp:28
float maxLinearCorrection
Cap per-iter NGS push to avoid jitter.
Definition Solver.hpp:30
float velThreshForRestitution
Below this, restitution is suppressed (resting contact).
Definition Solver.hpp:33