use crate::{Matrix, Quaternion, Vector2, Vector3, Vector4};
impl From<glam::Vec2> for Vector2 {
#[inline]
fn from(v: glam::Vec2) -> Self {
Self { x: v.x, y: v.y }
}
}
impl From<Vector2> for glam::Vec2 {
#[inline]
fn from(v: Vector2) -> Self {
glam::Vec2::new(v.x, v.y)
}
}
impl From<glam::Vec3> for Vector3 {
#[inline]
fn from(v: glam::Vec3) -> Self {
Self {
x: v.x,
y: v.y,
z: v.z,
}
}
}
impl From<Vector3> for glam::Vec3 {
#[inline]
fn from(v: Vector3) -> Self {
glam::Vec3::new(v.x, v.y, v.z)
}
}
impl From<glam::Vec4> for Vector4 {
#[inline]
fn from(v: glam::Vec4) -> Self {
Self {
x: v.x,
y: v.y,
z: v.z,
w: v.w,
}
}
}
impl From<Vector4> for glam::Vec4 {
#[inline]
fn from(v: Vector4) -> Self {
glam::Vec4::new(v.x, v.y, v.z, v.w)
}
}
impl From<glam::Quat> for Quaternion {
#[inline]
fn from(q: glam::Quat) -> Self {
Self {
x: q.x,
y: q.y,
z: q.z,
w: q.w,
}
}
}
impl From<Quaternion> for glam::Quat {
#[inline]
fn from(q: Quaternion) -> Self {
glam::Quat::from_xyzw(q.x, q.y, q.z, q.w)
}
}
impl From<Matrix> for glam::Mat4 {
#[inline]
fn from(m: Matrix) -> Self {
glam::Mat4::from_cols_array(&[
m.m0, m.m1, m.m2, m.m3, m.m4, m.m5, m.m6, m.m7, m.m8, m.m9, m.m10, m.m11, m.m12, m.m13,
m.m14, m.m15,
])
}
}
impl From<glam::Mat4> for Matrix {
#[inline]
fn from(g: glam::Mat4) -> Self {
let a = g.to_cols_array();
Matrix {
m0: a[0],
m1: a[1],
m2: a[2],
m3: a[3],
m4: a[4],
m5: a[5],
m6: a[6],
m7: a[7],
m8: a[8],
m9: a[9],
m10: a[10],
m11: a[11],
m12: a[12],
m13: a[13],
m14: a[14],
m15: a[15],
}
}
}