pub struct Matrix3d<T> {
Show 16 fields pub m11: T, pub m12: T, pub m13: T, pub m14: T, pub m21: T, pub m22: T, pub m23: T, pub m24: T, pub m31: T, pub m32: T, pub m33: T, pub m34: T, pub m41: T, pub m42: T, pub m43: T, pub m44: T,
}
Expand description

A 3D matrix.

Fields§

§m11: T§m12: T§m13: T§m14: T§m21: T§m22: T§m23: T§m24: T§m31: T§m32: T§m33: T§m34: T§m41: T§m42: T§m43: T§m44: T

Implementations§

source§

impl Matrix3d<f32>

source

pub fn identity() -> Matrix3d<f32>

Creates an identity matrix.

source

pub fn translate(x: f32, y: f32, z: f32) -> Matrix3d<f32>

Creates a translation matrix.

source

pub fn scale(x: f32, y: f32, z: f32) -> Matrix3d<f32>

Creates a scale matrix.

source

pub fn rotate(x: f32, y: f32, z: f32, angle: f32) -> Matrix3d<f32>

Creates a rotation matrix.

source

pub fn skew(a: f32, b: f32) -> Matrix3d<f32>

Creates a skew matrix.

source

pub fn perspective(d: f32) -> Matrix3d<f32>

Creates a perspective matrix.

source

pub fn multiply(&self, other: &Self) -> Self

Multiplies this matrix by another, returning a new matrix.

source

pub fn is_2d(&self) -> bool

Returns whether this matrix could be converted to a 2D matrix.

source

pub fn to_matrix2d(&self) -> Option<Matrix<f32>>

Attempts to convert the matrix to 2D. Returns None if the conversion is not possible.

source

pub fn scale_by_factor(&mut self, scaling_factor: f32)

Scales the matrix by the given factor.

source

pub fn determinant(&self) -> f32

Returns the determinant of the matrix.

source

pub fn inverse(&self) -> Option<Matrix3d<f32>>

Returns the inverse of the matrix if possible.

source

pub fn transpose(&self) -> Self

Transposes the matrix.

source

pub fn multiply_vector(&self, pin: &[f32; 4]) -> [f32; 4]

Multiplies a vector by the matrix.

source

pub fn decompose(&self) -> Option<TransformList>

Decomposes the matrix into a list of transform functions if possible.

Trait Implementations§

source§

impl<T: Clone> Clone for Matrix3d<T>

source§

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

Returns a copy 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 Matrix3d<T>

source§

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

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

impl<'de, T> Deserialize<'de> for Matrix3d<T>where T: Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<T: JsonSchema> JsonSchema for Matrix3d<T>

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl<T: PartialEq> PartialEq<Matrix3d<T>> for Matrix3d<T>

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T> Serialize for Matrix3d<T>where T: Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<'i, T, __T: Visit<'i, __T, __V>, __V: Visitor<'i, __T>> Visit<'i, __T, __V> for Matrix3d<T>where T: Visit<'i, __T, __V>,

source§

const CHILD_TYPES: VisitTypes = _

Available on crate feature visitor only.
The types of values contained within this value and its children. This is used to skip branches that don’t have any values requested by the Visitor.
source§

fn visit_children(&mut self, visitor: &mut __V) -> Result<(), __V::Error>

Available on crate feature visitor only.
Visit the children of this value.
source§

fn visit(&mut self, visitor: &mut V) -> Result<(), V::Error>

Available on crate feature visitor only.
Visits the value by calling an appropriate method on the Visitor. If no corresponding visitor method exists, then the children are visited.
source§

impl<T> StructuralPartialEq for Matrix3d<T>

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

impl<T> UnwindSafe for Matrix3d<T>where T: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> DynClone for Twhere T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,