use crate::{Matrix, Quaternion, Vector2, Vector3, Vector4};
impl From<mint::Vector2<f32>> for Vector2 {
#[inline]
fn from(v: mint::Vector2<f32>) -> Self {
Self { x: v.x, y: v.y }
}
}
impl From<Vector2> for mint::Vector2<f32> {
#[inline]
fn from(v: Vector2) -> Self {
mint::Vector2 { x: v.x, y: v.y }
}
}
impl From<mint::Vector3<f32>> for Vector3 {
#[inline]
fn from(v: mint::Vector3<f32>) -> Self {
Self {
x: v.x,
y: v.y,
z: v.z,
}
}
}
impl From<Vector3> for mint::Vector3<f32> {
#[inline]
fn from(v: Vector3) -> Self {
mint::Vector3 {
x: v.x,
y: v.y,
z: v.z,
}
}
}
impl From<mint::Vector4<f32>> for Vector4 {
#[inline]
fn from(v: mint::Vector4<f32>) -> Self {
Self {
x: v.x,
y: v.y,
z: v.z,
w: v.w,
}
}
}
impl From<Vector4> for mint::Vector4<f32> {
#[inline]
fn from(v: Vector4) -> Self {
mint::Vector4 {
x: v.x,
y: v.y,
z: v.z,
w: v.w,
}
}
}
impl From<mint::Quaternion<f32>> for Quaternion {
#[inline]
fn from(q: mint::Quaternion<f32>) -> Self {
Self {
x: q.v.x,
y: q.v.y,
z: q.v.z,
w: q.s,
}
}
}
impl From<Quaternion> for mint::Quaternion<f32> {
#[inline]
fn from(q: Quaternion) -> Self {
mint::Quaternion {
v: mint::Vector3 {
x: q.x,
y: q.y,
z: q.z,
},
s: q.w,
}
}
}
impl From<mint::ColumnMatrix4<f32>> for Matrix {
#[inline]
fn from(m: mint::ColumnMatrix4<f32>) -> Self {
Self {
m0: m.x.x,
m1: m.x.y,
m2: m.x.z,
m3: m.x.w,
m4: m.y.x,
m5: m.y.y,
m6: m.y.z,
m7: m.y.w,
m8: m.z.x,
m9: m.z.y,
m10: m.z.z,
m11: m.z.w,
m12: m.w.x,
m13: m.w.y,
m14: m.w.z,
m15: m.w.w,
}
}
}
impl From<Matrix> for mint::ColumnMatrix4<f32> {
#[inline]
fn from(m: Matrix) -> Self {
mint::ColumnMatrix4 {
x: mint::Vector4 {
x: m.m0,
y: m.m1,
z: m.m2,
w: m.m3,
},
y: mint::Vector4 {
x: m.m4,
y: m.m5,
z: m.m6,
w: m.m7,
},
z: mint::Vector4 {
x: m.m8,
y: m.m9,
z: m.m10,
w: m.m11,
},
w: mint::Vector4 {
x: m.m12,
y: m.m13,
z: m.m14,
w: m.m15,
},
}
}
}