Transform3D

Struct Transform3D 

Source
pub struct Transform3D<T> {
    pub columns: [[T; 4]; 4],
}
Expand description

Rank 4 row-major transformation matrix for 3D objects.

Fields§

§columns: [[T; 4]; 4]

This field contains the entries of this matrix in column-major order.

Implementations§

Source§

impl<T> Transform3D<T>

Source

pub fn new(columns: [[T; 4]; 4]) -> Transform3D<T>

Returns a new transformation matrix with the given entries in row-major order. This function does not perform any kind of validation on the given entries. It is the caller’s responsibility to ensure that the given entries result in a valid transformation matrix.

Source

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

Applies the given transformation to each entry in the transformation matrix individually.

Source§

impl<T> Transform3D<T>
where T: Float,

Source

pub fn identity() -> Transform3D<T>

Returns a new identity matrix, i.e. a matrix of zeros with ones on the diagonal.

Source

pub fn with_perspective(d: T) -> Transform3D<T>

Returns a new transformation matrix for a perspective with the given depth.

Source

pub fn with_translation(tx: T, ty: T, tz: T) -> Transform3D<T>

Returns a new transformation matrix for a translation with the given offsets.

Source

pub fn with_scale(sx: T, sy: T, sz: T) -> Transform3D<T>

Returns a new transformation matrix for a scale with the given factors.

Source

pub fn with_skew_x(sx: T) -> Transform3D<T>

Returns a new transformation matrix for a horizontal skew with the given angle radians.

Source

pub fn with_skew_y(sy: T) -> Transform3D<T>

Returns a new transformation matrix for a vertical skew with the given angle radians.

Source

pub fn with_rotation(q: Quaternion3D<T>) -> Transform3D<T>

Returns a new transformation matrix for a counter-clockwise rotation with the given angle radians around the given vector. The given vector does not have to be a unit vector. If it is not a unit vector, this function will normalize and and multiply the angle with the original norm.

Source

pub fn translate(self, tx: T, ty: T, tz: T) -> Transform3D<T>

Translates the given transformation matrix with the given offsets by concatenating the given matrix to a new translation matrix.

Source

pub fn scale(self, sx: T, sy: T, sz: T) -> Transform3D<T>

Scales the given transformation matrix with the given factors by concatenating the given matrix to a new scale matrix.

Source

pub fn rotate(self, q: Quaternion3D<T>) -> Transform3D<T>

Rotates the given transformation matrix with the given angle in radians around the given vector. The rotation is counter-clockwise and if the given vector is not unit, it will be normalized and the angle will be multiplied with the length of the original vector.

Source

pub fn concat(self, other: Transform3D<T>) -> Transform3D<T>

Concatenates the given transformation matrix to the current transformation matrix.

Source

pub fn apply(self, point: Point3D<T>) -> Point3D<T>

Applies the given transformation matrix to a point.

Source

pub fn multiply_scalar(self, scalar: T) -> Transform3D<T>

Multiplies every element of this transformation with the given scalar and returns the result.

Trait Implementations§

Source§

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

Source§

fn clone(&self) -> Transform3D<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 for Transform3D<T>
where T: Debug,

Source§

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

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

impl<T> Default for Transform3D<T>
where T: Float,

Source§

fn default() -> Transform3D<T>

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

impl<T> PartialEq for Transform3D<T>
where T: Float,

Source§

fn eq(&self, other: &Transform3D<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> ToTokens for Transform3D<T>
where T: ToTokens + Float,

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Write self to the given TokenStream. Read more
Source§

fn to_token_stream(&self) -> TokenStream

Convert self directly into a TokenStream object. Read more
Source§

fn into_token_stream(self) -> TokenStream
where Self: Sized,

Convert self directly into a TokenStream object. Read more
Source§

impl<T> Copy for Transform3D<T>
where T: Copy,

Source§

impl<T> Eq for Transform3D<T>
where T: Float,

Auto Trait Implementations§

§

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

§

impl<T> RefUnwindSafe for Transform3D<T>
where T: RefUnwindSafe,

§

impl<T> Send for Transform3D<T>
where T: Send,

§

impl<T> Sync for Transform3D<T>
where T: Sync,

§

impl<T> Unpin for Transform3D<T>
where T: Unpin,

§

impl<T> UnwindSafe for Transform3D<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> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Source§

fn type_name(&self) -> &'static str

Gets the type name of self
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<'a, T> Desc<'a, T> for T

Source§

fn lookup(self, _: &JNIEnv<'a>) -> Result<T, Error>

Look up the concrete type from the JVM.
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> IsDefault for T
where T: Default + PartialEq + Copy,

Source§

fn is_default(&self) -> bool

Checks that type has a default value.
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.