use crate::ffi::Vectormath;
#[allow(missing_docs)]
#[derive(Debug)]
pub struct Point3 {
pub x: f32,
pub y: f32,
pub z: f32,
}
#[allow(missing_docs)]
#[derive(Debug)]
pub struct Vector3 {
pub x: f32,
pub y: f32,
pub z: f32,
}
#[allow(missing_docs)]
#[derive(Debug)]
pub struct Quat {
pub x: f32,
pub y: f32,
pub z: f32,
pub w: f32,
}
impl From<Vector3> for Point3 {
fn from(v: Vector3) -> Self {
Self {
x: v.x,
y: v.y,
z: v.z,
}
}
}
impl From<Point3> for Vector3 {
fn from(p: Point3) -> Self {
Self {
x: p.x,
y: p.y,
z: p.z,
}
}
}
impl From<Vectormath::Aos::Point3> for Point3 {
fn from(p: Vectormath::Aos::Point3) -> Self {
Self {
x: p.mX,
y: p.mY,
z: p.mZ,
}
}
}
#[cfg(target_env = "gnu")]
impl From<Point3> for Vectormath::Aos::Point3 {
fn from(p: Point3) -> Self {
Self {
mX: p.x,
mY: p.y,
mZ: p.z,
}
}
}
#[cfg(not(target_env = "gnu"))]
impl From<Point3> for Vectormath::Aos::Point3 {
fn from(p: Point3) -> Self {
Self {
mX: p.x,
mY: p.y,
mZ: p.z,
d: 0.0,
}
}
}
impl From<Vectormath::Aos::Vector3> for Vector3 {
fn from(v: Vectormath::Aos::Vector3) -> Self {
Self {
x: v.mX,
y: v.mY,
z: v.mZ,
}
}
}
#[cfg(target_env = "gnu")]
impl From<Vector3> for Vectormath::Aos::Vector3 {
fn from(v: Vector3) -> Self {
Self {
mX: v.x,
mY: v.y,
mZ: v.z,
}
}
}
#[cfg(not(target_env = "gnu"))]
impl From<Vector3> for Vectormath::Aos::Vector3 {
fn from(v: Vector3) -> Self {
Self {
mX: v.x,
mY: v.y,
mZ: v.z,
d: 0.0,
}
}
}
impl From<Vectormath::Aos::Quat> for Quat {
fn from(q: Vectormath::Aos::Quat) -> Self {
Self {
x: q.mX,
y: q.mY,
z: q.mZ,
w: q.mW,
}
}
}