assimp/math/
quaternion.rs

1#[cfg(feature = "cgmath")]
2use cgmath::Quaternion as CgQuaternion;
3use ffi::AiQuaternion;
4
5define_type! {
6    /// Quaternion docs
7    #[derive(Clone, Copy, Debug, PartialEq)]
8    struct Quaternion(AiQuaternion)
9}
10
11impl Quaternion {
12    pub fn new(w: f32, x: f32, y: f32 ,z: f32) -> Quaternion {
13        Quaternion(AiQuaternion { w: w, x: x, y: y, z: z })
14    }
15}
16
17#[cfg(feature = "cgmath")]
18impl From<CgQuaternion<f32>> for Quaternion {
19    fn from(q: CgQuaternion<f32>) -> Quaternion {
20        Quaternion::new(q[0], q[1], q[2], q[3])
21    }
22}
23
24#[cfg(feature = "cgmath")]
25impl From<Quaternion> for CgQuaternion<f32> {
26    fn from(q: Quaternion) -> CgQuaternion<f32> {
27        CgQuaternion::new(q.w, q.x, q.y, q.z)
28    }
29}