//! # f32
//!
//! Provides `f32` math types for game-engines and graphics.
//!
//! ## Vectors
//!
//! - [`Vec2`] - 2D Vector
//! - [`Vec3`] - 3D Vector
//! - [`Vec4`] - 4D Vector
//!
//! ## Quaternion
//!
//! - [`Quat`] - Quaternion
//!
//! ## Matrices
//!
//! - [`Mat2`] - 2x2 Matrix
//! - [`Mat3`] - 3x3 Matrix
//! - [`Mat4`] - 4x4 Matrix
//!
//! ## Affines
//!
//! - [`Affine2`] - Affine 2
//! - [`Affine3`] - Affine 3
//!
//! # Conventions
//!
//! - Angles are in radians, unless otherwise stated
//! - Column vectors
//! - Column-major Matrices
//!
//! # Features
//!
//! - `serde` - enables `Serialize`/`Deserialize` for all types.
//!   All types encode as flat `f32` arrays. See individual type docs for exact layouts.
//! - `bytemuck` - enables `Pod`/`Zeroable` for all types, allowing zero-copy
//!   casts to and from byte slices (e.g. for uploading directly to GPU buffers).

mod affine2;
mod affine3;
mod mat2;
mod mat3;
mod mat4;
mod quat;
mod vec2;
mod vec3;
mod vec4;

pub use affine2::Affine2;
pub use affine3::Affine3;
pub use mat2::Mat2;
pub use mat3::Mat3;
pub use mat4::Mat4;
pub use quat::Quat;
pub use vec2::Vec2;
pub use vec3::Vec3;
pub use vec4::Vec4;
