Struct adi::Mat4 [−]
#[repr(C)]pub struct Mat4 { pub m00: f32, pub m01: f32, pub m02: f32, pub m03: f32, pub m10: f32, pub m11: f32, pub m12: f32, pub m13: f32, pub m20: f32, pub m21: f32, pub m22: f32, pub m23: f32, pub m30: f32, pub m31: f32, pub m32: f32, pub m33: f32, }
Single-precision 2x2 column major matrix.
Fields
m00: f32
m01: f32
m02: f32
m03: f32
m10: f32
m11: f32
m12: f32
m13: f32
m20: f32
m21: f32
m22: f32
m23: f32
m30: f32
m31: f32
m32: f32
m33: f32
Methods
impl Mat4
impl Mat4
pub fn new(
m00: f32,
m01: f32,
m02: f32,
m03: f32,
m10: f32,
m11: f32,
m12: f32,
m13: f32,
m20: f32,
m21: f32,
m22: f32,
m23: f32,
m30: f32,
m31: f32,
m32: f32,
m33: f32
) -> Mat4
pub fn new(
m00: f32,
m01: f32,
m02: f32,
m03: f32,
m10: f32,
m11: f32,
m12: f32,
m13: f32,
m20: f32,
m21: f32,
m22: f32,
m23: f32,
m30: f32,
m31: f32,
m32: f32,
m33: f32
) -> Mat4
Full constructor.
pub fn identity() -> Mat4
pub fn identity() -> Mat4
Identity constructor.
pub fn diagonal(di: f32) -> Mat4
pub fn diagonal(di: f32) -> Mat4
Diagonal constructor.
pub fn tridiagonal(lo: f32, di: f32, up: f32) -> Mat4
pub fn tridiagonal(lo: f32, di: f32, up: f32) -> Mat4
Tri-diagonal constructor.
impl Mat4
impl Mat4
pub fn determinant(self) -> f32
pub fn determinant(self) -> f32
Computes the matrix determinant.
pub fn trace(self) -> f32
pub fn trace(self) -> f32
Computes the matrix trace.
pub fn inverse(self) -> Mat4
pub fn inverse(self) -> Mat4
Computes the matrix inverse.
Panics
Panics if the matrix has no inverse (i.e. has zero determinant).
pub fn transpose(self) -> Mat4
pub fn transpose(self) -> Mat4
Returns the matrix transpose.
pub fn try_invert(self) -> Option<Mat4>
pub fn try_invert(self) -> Option<Mat4>
Attempts to compute the matrix inverse, returning None
if the matrix is
non-invertible (i.e. has zero determinant).
Trait Implementations
impl Into<[[f32; 4]; 4]> for Mat4
impl Into<[[f32; 4]; 4]> for Mat4
impl Add<Mat4> for Mat4
impl Add<Mat4> for Mat4
type Output = Mat4
The resulting type after applying the +
operator.
fn add(self, rhs: Mat4) -> <Mat4 as Add<Mat4>>::Output
fn add(self, rhs: Mat4) -> <Mat4 as Add<Mat4>>::Output
Performs the +
operation.
impl Sub<Mat4> for Mat4
impl Sub<Mat4> for Mat4
type Output = Mat4
The resulting type after applying the -
operator.
fn sub(self, rhs: Mat4) -> <Mat4 as Sub<Mat4>>::Output
fn sub(self, rhs: Mat4) -> <Mat4 as Sub<Mat4>>::Output
Performs the -
operation.
impl Display for Mat4
impl Display for Mat4
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl Clone for Mat4
impl Clone for Mat4
fn clone(&self) -> Mat4
fn clone(&self) -> Mat4
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Default for Mat4
impl Default for Mat4
impl Debug for Mat4
impl Debug for Mat4
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl Mul<f32> for Mat4
impl Mul<f32> for Mat4
type Output = Mat4
The resulting type after applying the *
operator.
fn mul(self, rhs: f32) -> <Mat4 as Mul<f32>>::Output
fn mul(self, rhs: f32) -> <Mat4 as Mul<f32>>::Output
Performs the *
operation.
impl Mul<Vec4> for Mat4
impl Mul<Vec4> for Mat4
type Output = Vec4
The resulting type after applying the *
operator.
fn mul(self, rhs: Vec4) -> <Mat4 as Mul<Vec4>>::Output
fn mul(self, rhs: Vec4) -> <Mat4 as Mul<Vec4>>::Output
Performs the *
operation.
impl Mul<Mat4> for f32
impl Mul<Mat4> for f32
type Output = Mat4
The resulting type after applying the *
operator.
fn mul(self, rhs: Mat4) -> <f32 as Mul<Mat4>>::Output
fn mul(self, rhs: Mat4) -> <f32 as Mul<Mat4>>::Output
Performs the *
operation.
impl Mul<Mat4> for Mat4
impl Mul<Mat4> for Mat4
type Output = Mat4
The resulting type after applying the *
operator.
fn mul(self, rhs: Mat4) -> <Mat4 as Mul<Mat4>>::Output
fn mul(self, rhs: Mat4) -> <Mat4 as Mul<Mat4>>::Output
Performs the *
operation.
impl<'a> Mul<Vec4> for &'a Mat4
impl<'a> Mul<Vec4> for &'a Mat4
type Output = Vec4
The resulting type after applying the *
operator.
fn mul(self, rhs: Vec4) -> <&'a Mat4 as Mul<Vec4>>::Output
fn mul(self, rhs: Vec4) -> <&'a Mat4 as Mul<Vec4>>::Output
Performs the *
operation.
impl Copy for Mat4
impl Copy for Mat4
impl AsRef<[[f32; 4]; 4]> for Mat4
impl AsRef<[[f32; 4]; 4]> for Mat4
impl PartialEq<Mat4> for Mat4
impl PartialEq<Mat4> for Mat4
fn eq(&self, other: &Mat4) -> bool
fn eq(&self, other: &Mat4) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Mat4) -> bool
fn ne(&self, other: &Mat4) -> bool
This method tests for !=
.
impl From<Mat3> for Mat4
impl From<Mat3> for Mat4
impl From<Mat4> for DMat2
impl From<Mat4> for DMat2
impl From<Mat4> for DMat4
impl From<Mat4> for DMat4
impl From<f32> for Mat4
impl From<f32> for Mat4
impl From<DMat2> for Mat4
impl From<DMat2> for Mat4
impl From<[[f32; 4]; 4]> for Mat4
impl From<[[f32; 4]; 4]> for Mat4
impl From<Mat2> for Mat4
impl From<Mat2> for Mat4
impl From<DMat4> for Mat4
impl From<DMat4> for Mat4
impl From<f64> for Mat4
impl From<f64> for Mat4
impl From<Mat4> for Mat2
impl From<Mat4> for Mat2
impl From<Mat4> for DMat3
impl From<Mat4> for DMat3
impl From<Mat4> for Mat3
impl From<Mat4> for Mat3
impl From<DMat3> for Mat4
impl From<DMat3> for Mat4
impl ApproxEq for Mat4
impl ApproxEq for Mat4
type Epsilon = <Matrix4<f32> as ApproxEq>::Epsilon
Used for specifying relative comparisons.
fn default_epsilon() -> <Mat4 as ApproxEq>::Epsilon
fn default_epsilon() -> <Mat4 as ApproxEq>::Epsilon
The default tolerance to use when testing values that are close together. Read more
fn default_max_relative() -> <Mat4 as ApproxEq>::Epsilon
fn default_max_relative() -> <Mat4 as ApproxEq>::Epsilon
The default relative tolerance for testing values that are far-apart. Read more
fn default_max_ulps() -> u32
fn default_max_ulps() -> u32
The default ULPs to tolerate when testing values that are far-apart. Read more
fn relative_eq(
&self,
other: &Mat4,
epsilon: <Mat4 as ApproxEq>::Epsilon,
max_relative: <Mat4 as ApproxEq>::Epsilon
) -> bool
fn relative_eq(
&self,
other: &Mat4,
epsilon: <Mat4 as ApproxEq>::Epsilon,
max_relative: <Mat4 as ApproxEq>::Epsilon
) -> bool
A test for equality that uses a relative comparison if the values are far apart.
fn ulps_eq(
&self,
other: &Mat4,
epsilon: <Mat4 as ApproxEq>::Epsilon,
max_ulps: u32
) -> bool
fn ulps_eq(
&self,
other: &Mat4,
epsilon: <Mat4 as ApproxEq>::Epsilon,
max_ulps: u32
) -> bool
A test for equality that uses units in the last place (ULP) if the values are far apart.
fn relative_ne(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
fn relative_ne(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
The inverse of ApproxEq::relative_eq
.
fn ulps_ne(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool
fn ulps_ne(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool
The inverse of ApproxEq::ulps_eq
.