#![doc = include_str!("../README.md")]
#![warn(missing_docs)]
#![allow(clippy::result_large_err)]
#![allow(clippy::too_many_arguments)]
#[cfg(feature = "dim2")]
pub use parry2d as parry;
#[cfg(feature = "dim3")]
pub use parry3d as parry;
#[cfg(feature = "dim2")]
pub use rapier2d as rapier;
#[cfg(feature = "dim3")]
pub use rapier3d as rapier;
#[cfg(feature = "dim2")]
pub use nexus_rbd_shaders2d as shaders;
#[cfg(feature = "dim3")]
pub use nexus_rbd_shaders3d as shaders;
use khal::re_exports::include_dir::{Dir, include_dir};
pub static SPIRV_DIR: Dir<'static> = include_dir!("$OUT_DIR/shaders-spirv");
pub use shaders::bounding_volumes::Aabb;
pub use shaders::dynamics::{Force, Impulse, LocalMassProperties, Velocity, WorldMassProperties};
pub use shaders::shapes::Shape;
pub use shaders::{Pad, PaddedVector};
pub use glamx;
const VALIDATE_LBVH_TOPOLOGY: bool = false;
pub mod dynamics;
pub mod pipeline;
pub use pipeline::RbdCapacities;
pub mod broad_phase;
pub mod queries;
pub mod shapes;
pub mod utils;
#[cfg(feature = "dim3")]
pub mod math {
pub use glamx::{Mat3, Pose3, Quat, Vec3, Vec4};
pub const DEFAULT_EPSILON: f32 = f32::EPSILON;
pub const DIM: usize = 3;
pub const TWO_DIM: usize = DIM * 2;
pub type Vector = Vec3;
pub type AngVector = Vec3;
pub type Point = Vec3;
pub type Matrix = Mat3;
pub type Rotation = Quat;
pub type Pose = Pose3;
pub type AngularInertia = Mat3;
pub type PrincipalAngularInertia = Vec3;
}
#[cfg(feature = "dim2")]
pub mod math {
pub use glamx::{Mat2, Pose2, Rot2, Vec2, Vec3};
pub const DEFAULT_EPSILON: f32 = f32::EPSILON;
pub const DIM: usize = 2;
pub const TWO_DIM: usize = DIM * 2;
pub type Vector = Vec2;
pub type AngVector = f32;
pub type Point = Vec2;
pub type Matrix = Mat2;
pub type Rotation = Rot2;
pub type Pose = Pose2;
pub type AngularInertia = f32;
pub type PrincipalAngularInertia = f32;
}