all_is_cubes/physics/
mod.rs

1//! Continuously moving objects and collision.
2
3use crate::math::FreeCoordinate;
4
5mod body;
6pub use body::*;
7mod collision;
8pub use collision::*;
9pub(crate) mod step;
10#[doc(hidden)] // pub to be used by all-is-cubes-gpu and fuzz_physics
11#[allow(clippy::module_name_repetitions)]
12pub use step::PhysicsOutputs;
13
14#[cfg(test)]
15mod tests;
16
17/// Close-but-not-intersecting objects are set to this separation.
18pub(crate) const POSITION_EPSILON: FreeCoordinate = 1e-6 * 1e-6;
19
20/// Unit-of-measure type for vectors that are velocity in cubes/s.
21#[expect(clippy::exhaustive_enums)]
22#[derive(Debug, Eq, PartialEq)]
23pub enum Velocity {}
24
25/// Unit-of-measure type for vectors that are acceleration in cubes/s².
26#[expect(clippy::exhaustive_enums)]
27#[derive(Debug, Eq, PartialEq)]
28pub enum Acceleration {}