mod dim2;
mod dim3;
pub use dim2::{vector::Vector2, vertex::Vertex2};
pub use dim3::{vector::Vector3, vertex::Vertex3};
use std::fmt::Debug;
use std::ops::{AddAssign, DivAssign, MulAssign, SubAssign};
use thiserror::Error;
#[derive(Error, Debug, PartialEq)]
pub enum CoordsError {
#[error("cannot compute unit direction of a null vector")]
InvalidUnitDir,
#[error("cannot compute normal direction to a null vector")]
InvalidNormDir,
}
pub trait CoordsFloat:
num_traits::Float
+ Default
+ AddAssign
+ SubAssign
+ MulAssign
+ DivAssign
+ Debug
+ Send
+ Sync
+ 'static
{
}
impl<
T: num_traits::Float
+ Default
+ AddAssign
+ SubAssign
+ MulAssign
+ DivAssign
+ Debug
+ Send
+ Sync
+ 'static,
> CoordsFloat for T
{
}