1 use super::glam::{DMat3, DMat4, Mat3, Mat4}; 2 use crate::{Matrix3, Matrix4, Similarity2, Similarity3}; 3 use std::convert::TryFrom; 4 5 impl From<Similarity2<f32>> for Mat3 { from(iso: Similarity2<f32>) -> Mat36 fn from(iso: Similarity2<f32>) -> Mat3 { 7 iso.to_homogeneous().into() 8 } 9 } 10 impl From<Similarity3<f32>> for Mat4 { from(iso: Similarity3<f32>) -> Mat411 fn from(iso: Similarity3<f32>) -> Mat4 { 12 iso.to_homogeneous().into() 13 } 14 } 15 16 impl From<Similarity2<f64>> for DMat3 { from(iso: Similarity2<f64>) -> DMat317 fn from(iso: Similarity2<f64>) -> DMat3 { 18 iso.to_homogeneous().into() 19 } 20 } 21 impl From<Similarity3<f64>> for DMat4 { from(iso: Similarity3<f64>) -> DMat422 fn from(iso: Similarity3<f64>) -> DMat4 { 23 iso.to_homogeneous().into() 24 } 25 } 26 27 impl TryFrom<Mat3> for Similarity2<f32> { 28 type Error = (); try_from(mat3: Mat3) -> Result<Similarity2<f32>, ()>29 fn try_from(mat3: Mat3) -> Result<Similarity2<f32>, ()> { 30 crate::try_convert(Matrix3::from(mat3)).ok_or(()) 31 } 32 } 33 34 impl TryFrom<Mat4> for Similarity3<f32> { 35 type Error = (); try_from(mat4: Mat4) -> Result<Similarity3<f32>, ()>36 fn try_from(mat4: Mat4) -> Result<Similarity3<f32>, ()> { 37 crate::try_convert(Matrix4::from(mat4)).ok_or(()) 38 } 39 } 40 41 impl TryFrom<DMat3> for Similarity2<f64> { 42 type Error = (); try_from(mat3: DMat3) -> Result<Similarity2<f64>, ()>43 fn try_from(mat3: DMat3) -> Result<Similarity2<f64>, ()> { 44 crate::try_convert(Matrix3::from(mat3)).ok_or(()) 45 } 46 } 47 48 impl TryFrom<DMat4> for Similarity3<f64> { 49 type Error = (); try_from(mat4: DMat4) -> Result<Similarity3<f64>, ()>50 fn try_from(mat4: DMat4) -> Result<Similarity3<f64>, ()> { 51 crate::try_convert(Matrix4::from(mat4)).ok_or(()) 52 } 53 } 54