1
2extern crate num_traits;
3#[macro_use]
4extern crate serde_derive;
5extern crate float_cmp;
6
7pub mod vector;
8pub use self::vector::{Vec2, Vec3, Vec4,
9 Direction2, Direction3,
10 X_AXIS_F32, Y_AXIS_F32, Z_AXIS_F32,
11 X_AXIS_F64, Y_AXIS_F64, Z_AXIS_F64,
12 Point2, Point3};
13
14pub mod matrix;
15pub use self::matrix::{Mat2, Mat3, Mat4};
16
17pub mod quat;
18pub use self::quat::{Quat, NQuat};
19
20pub mod angle;
21pub use self::angle::Angle;
22
23pub mod position;
24pub use self::position::Position;
25
26use num_traits::{Float, FloatConst, NumAssignOps, NumCast};
27use float_cmp::{Ulps, ApproxEq};
28
29pub trait FullFloat: Float + FloatConst + Default +
32 NumAssignOps + NumCast + Ulps + ApproxEq<Flt=Self>
33{ }
34impl FullFloat for f32 {}
35impl FullFloat for f64 {}