model-converter/src/math/mod.rs

36 lines
777 B
Rust

//! Module containing all the math structs and functions.
pub mod vector;
pub mod bounding_box;
pub mod plane;
pub mod frustum;
use std::ops::{Add, AddAssign, Sub, SubAssign, Mul, MulAssign, Div, DivAssign};
use num::{Zero, One};
/// A number.
///
/// This trait is used to implement the operator traits on the vector struct.
pub trait Number: Copy + Clone + PartialOrd + Zero + One
+ Add<Output = Self> + AddAssign
+ Sub<Output = Self> + SubAssign
+ Mul<Output = Self> + MulAssign
+ Div<Output = Self> + DivAssign
{
}
impl Number for i16 {}
impl Number for i32 {}
impl Number for i64 {}
impl Number for isize {}
impl Number for u16 {}
impl Number for u32 {}
impl Number for u64 {}
impl Number for usize {}
impl Number for f32 {}
impl Number for f64 {}