1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
use traits::Number;
use aliases::TVec3;

/// Returns `true` if `{a, b, c}` forms a left-handed trihedron.
pub fn left_handed<N: Number>(a: &TVec3<N>, b: &TVec3<N>, c: &TVec3<N>) -> bool {
    a.cross(b).dot(c) < N::zero()
}

/// Returns `true` if `{a, b, c}` forms a right-handed trihedron.
pub fn right_handed<N: Number>(a: &TVec3<N>, b: &TVec3<N>, c: &TVec3<N>) -> bool {
    a.cross(b).dot(c) > N::zero()
}