//! Math and core geometric primitives. //! //! This module is the foundation every other Oxide system depends on. It builds //! on [`glam`] for vectors, quaternions, and matrices, and adds the engine's own //! higher-level types: //! //! - [`Transform`] — decomposed translation/rotation/scale, the unit of placement //! - [`Aabb`] — axis-aligned bounding box for bounds and culling //! - [`Ray`] — origin + direction, for picking and queries //! - [`Plane`] — infinite plane in Hessian normal form //! - [`Frustum`] — six-plane view volume for visibility culling //! - [`Color`] — linear RGBA color with sRGB conversion //! - [`Rect`] — 2D rectangle for UI and viewports //! - [`Range3`] — 3D value range for clamping and remapping //! //! `glam`'s own types are re-exported so downstream crates have a single import //! site for all math. mod aabb; mod color; mod frustum; mod plane; mod range3; mod ray; mod rect; mod transform; pub use aabb::Aabb; pub use color::Color; pub use frustum::Frustum; pub use plane::Plane; pub use range3::Range3; pub use ray::Ray; pub use rect::Rect; pub use transform::Transform; // Re-export the most commonly used `glam` types so consumers don't need a // separate dependency on `glam` for everyday math. pub use glam::{EulerRot, Mat3, Mat4, Quat, Vec2, Vec3, Vec4};