[][src]Trait alga::linear::AffineTransformation

pub trait AffineTransformation<E: EuclideanSpace>: ProjectiveTransformation<E> {
    type Rotation: Rotation<E>;
    type NonUniformScaling: AffineTransformation<E>;
    type Translation: Translation<E>;
    fn decompose(
        &self
    ) -> (Self::Translation, Self::Rotation, Self::NonUniformScaling, Self::Rotation);
fn append_translation(&self, t: &Self::Translation) -> Self;
fn prepend_translation(&self, t: &Self::Translation) -> Self;
fn append_rotation(&self, r: &Self::Rotation) -> Self;
fn prepend_rotation(&self, r: &Self::Rotation) -> Self;
fn append_scaling(&self, s: &Self::NonUniformScaling) -> Self;
fn prepend_scaling(&self, s: &Self::NonUniformScaling) -> Self; fn append_rotation_wrt_point(
        &self,
        r: &Self::Rotation,
        p: &E
    ) -> Option<Self> { ... } }

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 of the first rotation to be applied.

Type of the non-uniform scaling to be applied.

The type of the pure translation part of this affine transformation.

Required Methods

Decomposes this affine transformation into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation.

Appends a translation to this similarity.

Prepends a translation to this similarity.

Appends a rotation to this similarity.

Prepends a rotation to this similarity.

Appends a scaling factor to this similarity.

Prepends a scaling factor to this similarity.

Provided Methods

Appends to this similarity a rotation centered at the point p, i.e., this point is left invariant.

May return None if Self does not have enough translational degree of liberty to perform this computation.

Implementors

impl<E: EuclideanSpace> AffineTransformation<E> for Id
[src]

impl<R, E> AffineTransformation<E> for R where
    R: Real,
    E: EuclideanSpace<Real = R>,
    E::Coordinates: ClosedMul<R> + ClosedDiv<R> + ClosedNeg
[src]