use core::MatrixArray; use core::dimension::{U1, U2, U3, DimNameSum}; use geometry::{TransformBase, TGeneral, TProjective, TAffine}; /// A `D`-dimensional general transformation that may not be inversible. Stored as an homogeneous /// `(D + 1) × (D + 1)` matrix. pub type Transform = TransformBase, DimNameSum>, TGeneral>; /// An inversible `D`-dimensional general transformation. Stored as an homogeneous /// `(D + 1) × (D + 1)` matrix. pub type Projective = TransformBase, DimNameSum>, TProjective>; /// A `D`-dimensional affine transformation. Stored as an homogeneous `(D + 1) × (D + 1)` matrix. pub type Affine = TransformBase, DimNameSum>, TAffine>; /// A 2D general transformation that may not be inversible. Stored as an homogeneous 3x3 matrix. pub type Transform2 = Transform; /// An inversible 2D general transformation. Stored as an homogeneous 3x3 matrix. pub type Projective2 = Projective; /// A 2D affine transformation. Stored as an homogeneous 3x3 matrix. pub type Affine2 = Affine; /// A 3D general transformation that may not be inversible. Stored as an homogeneous 4x4 matrix. pub type Transform3 = Transform; /// An inversible 3D general transformation. Stored as an homogeneous 4x4 matrix. pub type Projective3 = Projective; /// A 3D affine transformation. Stored as an homogeneous 4x4 matrix. pub type Affine3 = Affine;