bevy_math/
lib.rs

1#![cfg_attr(docsrs, feature(doc_auto_cfg))]
2#![forbid(unsafe_code)]
3#![doc(
4    html_logo_url = "https://bevyengine.org/assets/icon.png",
5    html_favicon_url = "https://bevyengine.org/assets/icon.png"
6)]
7
8//! Provides math types and functionality for the Bevy game engine.
9//!
10//! The commonly used types are vectors like [`Vec2`] and [`Vec3`],
11//! matrices like [`Mat2`], [`Mat3`] and [`Mat4`] and orientation representations
12//! like [`Quat`].
13
14mod affine3;
15mod aspect_ratio;
16pub mod bounding;
17mod common_traits;
18mod compass;
19pub mod cubic_splines;
20mod direction;
21mod float_ord;
22pub mod primitives;
23mod ray;
24mod rects;
25mod rotation2d;
26#[cfg(feature = "rand")]
27pub mod sampling;
28pub use compass::{CompassOctant, CompassQuadrant};
29
30pub use affine3::*;
31pub use aspect_ratio::AspectRatio;
32pub use common_traits::*;
33pub use direction::*;
34pub use float_ord::*;
35pub use ray::{Ray2d, Ray3d};
36pub use rects::*;
37pub use rotation2d::Rot2;
38#[cfg(feature = "rand")]
39pub use sampling::{FromRng, ShapeSample};
40
41/// The `bevy_math` prelude.
42pub mod prelude {
43    #[doc(hidden)]
44    #[cfg(feature = "rand")]
45    pub use crate::sampling::{FromRng, ShapeSample};
46    #[doc(hidden)]
47    pub use crate::{
48        cubic_splines::{
49            CubicBSpline, CubicBezier, CubicCardinalSpline, CubicCurve, CubicGenerator,
50            CubicHermite, CubicNurbs, CubicNurbsError, CubicSegment, RationalCurve,
51            RationalGenerator, RationalSegment,
52        },
53        direction::{Dir2, Dir3, Dir3A},
54        primitives::*,
55        BVec2, BVec3, BVec4, EulerRot, FloatExt, IRect, IVec2, IVec3, IVec4, Mat2, Mat3, Mat4,
56        Quat, Ray2d, Ray3d, Rect, Rot2, URect, UVec2, UVec3, UVec4, Vec2, Vec2Swizzles, Vec3,
57        Vec3Swizzles, Vec4, Vec4Swizzles,
58    };
59}
60
61pub use glam::*;