Trait alga::linear::AffineTransformation
[−]
[src]
pub trait AffineTransformation<E: EuclideanSpace>: Transformation<E> { type PreRotation: Rotation<E>; type NonUniformScaling: AffineTransformation<E>; type PostRotation: Rotation<E>; type Translation: Translation<E>; fn decompose(&self) -> (Self::Translation, Self::PostRotation, Self::NonUniformScaling, Self::PreRotation); }
The group of affine transformations. They are decomposable into a rotation, a non-uniform scaling, a second rotation, and a translation (applied in that order).
Associated Types
type PreRotation: Rotation<E>
Type of the first rotation to be applied.
type NonUniformScaling: AffineTransformation<E>
Type of the non-uniform scaling to be applied.
type PostRotation: Rotation<E>
Type of the second rotation to be applied.
type Translation: Translation<E>
The type of the pure translation part of this affine transformation.
Required Methods
fn decompose(&self) -> (Self::Translation, Self::PostRotation, Self::NonUniformScaling, Self::PreRotation)
Decomposes this affine transformaton into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation.
Implementors
impl<R, E> AffineTransformation<E> for R where R: Real, E: EuclideanSpace<Real=R>, E::Vector: ClosedMul<R> + ClosedDiv<R> + ClosedNeg
impl<E: EuclideanSpace> AffineTransformation<E> for Id