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>
impl<T> Decomposition3D<T>
Sourcepub fn new(
translation: [T; 3],
scale: [T; 3],
skew: [T; 3],
perspective: [T; 4],
quaternion: Quaternion3D<T>,
) -> Decomposition3D<T>
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.
Sourcepub fn map<F, O>(self, op: F) -> Decomposition3D<O>where
F: FnMut(T) -> O,
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.
Sourcepub fn as_ref(&self) -> Decomposition3D<&T>
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>
impl<T> Decomposition3D<T>
Sourcepub fn decompose(matrix: Transform3D<T>) -> Option<Decomposition3D<T>>
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.
Sourcepub fn interpolate(&self, other: &Self, progress: T) -> Self
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.
Sourcepub fn recompose(&self) -> Transform3D<T>
pub fn recompose(&self) -> Transform3D<T>
Reconstructs the 3D transformation matrix from this decomposition.
Trait Implementations§
Source§impl<T: Clone> Clone for Decomposition3D<T>
impl<T: Clone> Clone for Decomposition3D<T>
Source§fn clone(&self) -> Decomposition3D<T>
fn clone(&self) -> Decomposition3D<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T: Debug> Debug for Decomposition3D<T>
impl<T: Debug> Debug for Decomposition3D<T>
Source§impl<T: Default> Default for Decomposition3D<T>
impl<T: Default> Default for Decomposition3D<T>
Source§fn default() -> Decomposition3D<T>
fn default() -> Decomposition3D<T>
Source§impl<T: PartialEq> PartialEq for Decomposition3D<T>
impl<T: PartialEq> PartialEq for Decomposition3D<T>
impl<T: Copy> Copy for Decomposition3D<T>
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
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, U> ConvertInto<U> for Twhere
U: ConvertFrom<T>,
impl<T, U> ConvertInto<U> for Twhere
U: ConvertFrom<T>,
Source§fn convert_into(self) -> U
fn convert_into(self) -> U
Source§fn convert_unclamped_into(self) -> U
fn convert_unclamped_into(self) -> U
Source§fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains the unclamped color. Read more