Decomposition3D

Struct Decomposition3D 

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

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§

Source§

impl<T> Decomposition3D<T>

Source

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

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

Source

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

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.

Source

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

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

Source§

impl<T> Decomposition3D<T>
where T: Default + Float,

Source

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

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

Source

pub fn interpolate(&self, other: &Self, progress: T) -> Self

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.

Source

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

Reconstructs the 3D transformation matrix from this decomposition.

Trait Implementations§

Source§

impl<T: Clone> Clone for Decomposition3D<T>

Source§

fn clone(&self) -> Decomposition3D<T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for Decomposition3D<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Default> Default for Decomposition3D<T>

Source§

fn default() -> Decomposition3D<T>

Returns the “default value” for a type. Read more
Source§

impl<T: PartialEq> PartialEq for Decomposition3D<T>

Source§

fn eq(&self, other: &Decomposition3D<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: Copy> Copy for Decomposition3D<T>

Source§

impl<T> StructuralPartialEq for Decomposition3D<T>

Auto Trait Implementations§

§

impl<T> Freeze for Decomposition3D<T>
where T: Freeze,

§

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§

Source§

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

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<Swp, Dwp, T>,

Convert the source color to the destination color using the specified method
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T, U> ConvertInto<U> for T
where U: ConvertFrom<T>,

Source§

fn convert_into(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

fn convert_unclamped_into(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

fn try_convert_into(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.