[][src]Struct polyhorn_ios::linalg::inter::Decomposition3D

pub struct Decomposition3D<T> {
    pub translation: [T; 3],
    pub scale: [T; 3],
    pub skew: [T; 3],
    pub perspective: [T; 4],
    pub quaternion: Quaternion3D<T>,
}

This represents the decomposition of a 3D transformation matrix into three-component translation, scale and skew vectors, a four-component perspective vector and a rotation quaternion.

Fields

translation: [T; 3]

This is the three-component translation vector of this decomposition.

scale: [T; 3]

This is the three-component scale vector of this decomposition.

skew: [T; 3]

This is the three-component skew vector of this decomposition.

perspective: [T; 4]

This is the four-component perspective vector of this decomposition.

quaternion: Quaternion3D<T>

This is the rotation quaternion of this decomposition.

Implementations

impl<T> Decomposition3D<T>[src]

pub fn new(
    translation: [T; 3],
    scale: [T; 3],
    skew: [T; 3],
    perspective: [T; 4],
    quaternion: Quaternion3D<T>
) -> Decomposition3D<T>
[src]

Returns a new transformation matrix decomposition with the given translation, scale, skew, perspective and rotation quaternion.

pub fn map<F, O>(self, op: F) -> Decomposition3D<O> where
    F: FnMut(T) -> O, 
[src]

Applies the given operation to each element in this decomposition and returns the result. The operation may return a value of different type than the decomposition's previous value type.

pub fn as_ref(&self) -> Decomposition3D<&T>[src]

Returns a new decomposition with references to all elements of the previous composition. This is particularly useful if T does not implement Copy.

impl<T> Decomposition3D<T> where
    T: Default + Float
[src]

pub fn decompose(matrix: Transform3D<T>) -> Option<Decomposition3D<T>>[src]

Decomposes a 3D transformation matrix into its three-component translation, scale and skew vectors, its four-component perspective vector and its rotation quaternion.

pub fn interpolate(
    &self,
    other: &Decomposition3D<T>,
    progress: T
) -> Decomposition3D<T>
[src]

This function interpolates between this decomposition and the other given decomposition with the given progress value. If the progress value is zero, it will return this decomposition. If the progress value is one, it will return the other decomposition.

pub fn recompose(&self) -> Transform3D<T>[src]

Reconstructs the 3D transformation matrix from this decomposition.

Trait Implementations

impl<T> Clone for Decomposition3D<T> where
    T: Clone
[src]

impl<T> Copy for Decomposition3D<T> where
    T: Copy
[src]

impl<T> Debug for Decomposition3D<T> where
    T: Debug
[src]

impl<T> Default for Decomposition3D<T> where
    T: Default
[src]

impl<T> PartialEq<Decomposition3D<T>> for Decomposition3D<T> where
    T: PartialEq<T>, 
[src]

impl<T> StructuralPartialEq for Decomposition3D<T>[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for Decomposition3D<T> where
    T: RefUnwindSafe

impl<T> Send for Decomposition3D<T> where
    T: Send

impl<T> Sync for Decomposition3D<T> where
    T: Sync

impl<T> Unpin for Decomposition3D<T> where
    T: Unpin

impl<T> UnwindSafe for Decomposition3D<T> where
    T: UnwindSafe

Blanket Implementations

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    D: AdaptFrom<S, Swp, Dwp, T>,
    Dwp: WhitePoint,
    Swp: WhitePoint,
    T: Component + Float
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AsAny for T where
    T: Any
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, U> ConvertInto<U> for T where
    U: ConvertFrom<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsDefault for T where
    T: PartialEq<T> + Default + Copy
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.