2018-09-20 16:50:34 +08:00
|
|
|
use na::Real;
|
|
|
|
|
|
|
|
use aliases::Qua;
|
|
|
|
|
|
|
|
pub fn cross<N: Real>(q1: &Qua<N>, q2: &Qua<N>) -> Qua<N> {
|
2018-09-20 20:23:31 +08:00
|
|
|
q1 * q2
|
2018-09-20 16:50:34 +08:00
|
|
|
}
|
|
|
|
pub fn dot<N: Real>(x: &Qua<N>, y: &Qua<N>) -> N {
|
2018-09-20 20:23:31 +08:00
|
|
|
x.dot(y)
|
2018-09-20 16:50:34 +08:00
|
|
|
}
|
|
|
|
pub fn length<N: Real>(q: &Qua<N>) -> N {
|
2018-09-20 20:23:31 +08:00
|
|
|
q.norm()
|
2018-09-20 16:50:34 +08:00
|
|
|
}
|
|
|
|
pub fn normalize<N: Real>(q: &Qua<N>) -> Qua<N> {
|
2018-09-20 20:23:31 +08:00
|
|
|
q.normalize()
|
2018-09-20 16:50:34 +08:00
|
|
|
}
|