Struct Mat
pub struct Mat<const N: usize, T> { /* private fields */ }Expand description
Column-major
Implementations§
§impl<const N: usize, T> Mat<N, T>
impl<const N: usize, T> Mat<N, T>
pub const fn from_array(data: [[T; N]; N]) -> Mat<N, T>
pub const fn as_array(&self) -> &[[T; N]; N]
pub const fn as_array_mut(&mut self) -> &mut [[T; N]; N]
pub const fn try_col(&self, x: usize) -> Option<&[T; N]>
pub const fn col(&self, x: usize) -> &[T; N]
pub const fn try_col_mut(&mut self, x: usize) -> Option<&mut [T; N]>
pub const fn col_mut(&mut self, x: usize) -> &mut [T; N]
§impl<const N: usize, T> Mat<N, T>where
T: Primitive,
impl<const N: usize, T> Mat<N, T>where
T: Primitive,
pub const IDENTITY: Mat<N, T>
pub const fn into_array(self) -> [[T; N]; N]
pub const fn try_row(&self, y: usize) -> Option<[T; N]>
pub const fn row(&self, y: usize) -> [T; N]
pub const fn get(&self, x: usize, y: usize) -> Option<&T>
pub const fn get_mut(&mut self, x: usize, y: usize) -> Option<&mut T>
pub const fn splat(v: T) -> Mat<N, T>
pub const fn transpose(&mut self)
§impl<T> Mat<2, T>where
T: Number,
impl<T> Mat<2, T>where
T: Number,
pub fn from_rotation(angle: f64) -> Mat<2, T>
pub fn determinant(&self) -> T
pub fn cofactor(&mut self)
pub fn inverse(&self) -> Option<Mat<2, T>>
pub fn mul_with_projection(&self, rhs: T) -> T
§impl<T> Mat<3, T>where
T: Number,
impl<T> Mat<3, T>where
T: Number,
pub fn rotation_x(angle: f64) -> Mat<3, T>
pub fn rotation_y(angle: f64) -> Mat<3, T>
pub fn rotation_z(angle: f64) -> Mat<3, T>
pub fn rotation_euler(euler: Vec3<f64>) -> Mat<3, T>
pub fn determinant(&self) -> T
pub fn minors(&self) -> Mat<3, T>
pub fn cofactor(&mut self)
pub fn inverse(&self) -> Option<Mat<3, T>>
pub fn mul_with_projection(self, rhs: Vec2<T>) -> Vec2<T>
pub fn to_lossy_scale(&self) -> Vec3<T>
pub fn to_lossy_scale_rotation(&self) -> (Vec3<T>, Quat<T>)
Trait Implementations§
impl<const N: usize, T> AllBitVariationsValid for Mat<N, T>where
T: AllBitVariationsValid,
impl<const N: usize, T> AllBitsInit for Mat<N, T>where
T: AllBitsInit,
impl<const N: usize, T> Copy for Mat<N, T>where
T: Copy,
§impl<'de, const N: usize, T> Deserialize<'de> for Mat<N, T>where
T: Deserialize<'de>,
impl<'de, const N: usize, T> Deserialize<'de> for Mat<N, T>where
T: Deserialize<'de>,
§fn deserialize<D>(
deserializer: D,
) -> Result<Mat<N, T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Mat<N, T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
§impl<const N: usize, S, T> Serializable<S> for Mat<N, T>
impl<const N: usize, S, T> Serializable<S> for Mat<N, T>
fn serialize(&self, ctx: SerializerCtx<'_, S>, path: &str) -> SerializedValue
fn deserialize( &mut self, ctx: SerializerCtx<'_, S>, path: &str, serialized: &SerializedValue, )
§impl<const N: usize, T> Serialize for Mat<N, T>where
T: Serialize,
impl<const N: usize, T> Serialize for Mat<N, T>where
T: Serialize,
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl<const N: usize, T> StructuralPartialEq for Mat<N, T>where
T: PartialEq,
Auto Trait Implementations§
impl<const N: usize, T> Forget for Mat<N, T>
impl<const N: usize, T> Freeze for Mat<N, T>
impl<const N: usize, T> Move for Mat<N, T>
impl<const N: usize, T> RefUnwindSafe for Mat<N, T>
impl<const N: usize, T> Send for Mat<N, T>
impl<const N: usize, T> Sync for Mat<N, T>
impl<const N: usize, T> Unpin for Mat<N, T>
impl<const N: usize, T> UnsafeUnpin for Mat<N, T>
impl<const N: usize, T> UnwindSafe for Mat<N, T>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().