1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use number_traits::Float; use mat4; use specs::{VecStorage, Component}; pub struct Transform3D<T: 'static + Sync + Send + Copy + Float>(pub [T; 16]); impl<T: 'static + Sync + Send + Copy + Float> Component for Transform3D<T> { type Storage = VecStorage<Self>; } impl<T: 'static + Sync + Send + Copy + Float> Default for Transform3D<T> { #[inline(always)] fn default() -> Self { Transform3D(mat4::new_identity()) } } impl<T: 'static + Sync + Send + Copy + Float> Transform3D<T> { #[inline(always)] pub fn new() -> Self { Transform3D(mat4::new_identity()) } }