assimp/math/
quaternion.rs
1#[cfg(feature = "cgmath")]
2use cgmath::Quaternion as CgQuaternion;
3use ffi::AiQuaternion;
4
5define_type! {
6 #[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}