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 31 32 33 34 35 36 37 38 39 40 41 42 43 44
use crate::base::dimension::{U2, U3}; use crate::geometry::{Isometry, Rotation2, Rotation3, UnitComplex, UnitQuaternion}; /// A 2-dimensional direct isometry using a unit complex number for its rotational part. /// /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.** /// /// Also known as a 2D rigid-body motion, or as an element of SE(2). pub type Isometry2<N> = Isometry<N, U2, UnitComplex<N>>; /// A 3-dimensional direct isometry using a unit quaternion for its rotational part. /// /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.** /// /// Also known as a rigid-body motion, or as an element of SE(3). pub type Isometry3<N> = Isometry<N, U3, UnitQuaternion<N>>; /// A 2-dimensional direct isometry using a rotation matrix for its rotational part. /// /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.** /// /// Also known as a rigid-body motion, or as an element of SE(2). pub type IsometryMatrix2<N> = Isometry<N, U2, Rotation2<N>>; /// A 3-dimensional direct isometry using a rotation matrix for its rotational part. /// /// **Because this is an alias, not all its methods are listed here. See the [`Isometry`](crate::Isometry) type too.** /// /// Also known as a rigid-body motion, or as an element of SE(3). pub type IsometryMatrix3<N> = Isometry<N, U3, Rotation3<N>>; // This tests that the types correctly implement `Copy`, without having to run tests // (when targeting no-std for example). #[allow(dead_code)] fn ensure_copy() { fn is_copy<T: Copy>() {} is_copy::<IsometryMatrix2<f32>>(); is_copy::<IsometryMatrix3<f32>>(); is_copy::<Isometry2<f32>>(); is_copy::<Isometry3<f32>>(); }