Trait alga::linear::AffineTransformation [−][src]
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 Rotation: Rotation<E>[src]
Type of the first rotation to be applied.
type NonUniformScaling: AffineTransformation<E>[src]
Type of the non-uniform scaling to be applied.
type Translation: Translation<E>[src]
The type of the pure translation part of this affine transformation.
Required methods
fn decompose(
&self
) -> (Self::Translation, Self::Rotation, Self::NonUniformScaling, Self::Rotation)[src]
&self
) -> (Self::Translation, Self::Rotation, Self::NonUniformScaling, Self::Rotation)
Decomposes this affine transformation into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation.
fn append_translation(&self, t: &Self::Translation) -> Self[src]
Appends a translation to this similarity.
fn prepend_translation(&self, t: &Self::Translation) -> Self[src]
Prepends a translation to this similarity.
fn append_rotation(&self, r: &Self::Rotation) -> Self[src]
Appends a rotation to this similarity.
fn prepend_rotation(&self, r: &Self::Rotation) -> Self[src]
Prepends a rotation to this similarity.
fn append_scaling(&self, s: &Self::NonUniformScaling) -> Self[src]
Appends a scaling factor to this similarity.
fn prepend_scaling(&self, s: &Self::NonUniformScaling) -> Self[src]
Prepends a scaling factor to this similarity.
Provided methods
fn append_rotation_wrt_point(&self, r: &Self::Rotation, p: &E) -> Option<Self>[src]
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]
type Rotation = Id
type NonUniformScaling = Id
type Translation = Id
fn decompose(&self) -> (Id, Id, Id, Id)[src]
fn append_translation(&self, _: &Self::Translation) -> Self[src]
fn prepend_translation(&self, _: &Self::Translation) -> Self[src]
fn append_rotation(&self, _: &Self::Rotation) -> Self[src]
fn prepend_rotation(&self, _: &Self::Rotation) -> Self[src]
fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self[src]
fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self[src]
impl<R, E> AffineTransformation<E> for R where
R: RealField,
E: EuclideanSpace<RealField = R>,
E::Coordinates: ClosedMul<R> + ClosedDiv<R> + ClosedNeg, [src]
R: RealField,
E: EuclideanSpace<RealField = R>,
E::Coordinates: ClosedMul<R> + ClosedDiv<R> + ClosedNeg,