pub struct SymmetricMat3 {
pub m00: f32,
pub m01: f32,
pub m02: f32,
pub m11: f32,
pub m12: f32,
pub m22: f32,
}
Expand description
The bottom left triangle (including the diagonal) of a symmetric 3x3 column-major matrix.
This is useful for storing a symmetric 3x3 matrix in a more compact form and performing some matrix operations more efficiently.
Some defining properties of symmetric matrices include:
- The matrix is equal to its transpose.
- The matrix has real eigenvalues.
- The eigenvectors corresponding to the eigenvalues are orthogonal.
- The matrix is always diagonalizable.
The sum and difference of two symmetric matrices is always symmetric.
However, the product of two symmetric matrices is only symmetric
if the matrices are commutable, meaning that AB = BA
.
Fields§
§m00: f32
The first element of the first column.
m01: f32
The second element of the first column.
m02: f32
The third element of the first column.
m11: f32
The second element of the second column.
m12: f32
The third element of the second column.
m22: f32
The third element of the third column.
Implementations§
Source§impl SymmetricMat3
impl SymmetricMat3
Sourcepub const ZERO: SymmetricMat3
pub const ZERO: SymmetricMat3
A symmetric 3x3 matrix with all elements set to 0.0
.
Sourcepub const IDENTITY: SymmetricMat3
pub const IDENTITY: SymmetricMat3
A symmetric 3x3 identity matrix, where all diagonal elements are 1.0
,
and all off-diagonal elements are 0.0
.
Sourcepub const NAN: SymmetricMat3
pub const NAN: SymmetricMat3
All NaNs.
Sourcepub const fn new(
m00: f32,
m01: f32,
m02: f32,
m11: f32,
m12: f32,
m22: f32,
) -> SymmetricMat3
pub const fn new( m00: f32, m01: f32, m02: f32, m11: f32, m12: f32, m22: f32, ) -> SymmetricMat3
Creates a new symmetric 3x3 matrix from its bottom left triangle, including diagonal elements.
The elements are in column-major order mCR
, where C
is the column index
and R
is the row index.
Sourcepub const fn from_cols_unchecked(
x_axis: Vec3,
y_axis: Vec3,
z_axis: Vec3,
) -> SymmetricMat3
pub const fn from_cols_unchecked( x_axis: Vec3, y_axis: Vec3, z_axis: Vec3, ) -> SymmetricMat3
Creates a symmetric 3x3 matrix from three column vectors.
Only the lower left triangle of the matrix is used. No check is performed to ensure that the given columns truly produce a symmetric matrix.
Sourcepub const fn from_cols_array_unchecked(m: &[f32; 9]) -> SymmetricMat3
pub const fn from_cols_array_unchecked(m: &[f32; 9]) -> SymmetricMat3
Creates a symmetric 3x3 matrix from an array stored in column major order.
Only the lower left triangle of the matrix is used. No check is performed to ensure that the given columns truly produce a symmetric matrix.
Sourcepub const fn to_cols_array(&self) -> [f32; 9]
pub const fn to_cols_array(&self) -> [f32; 9]
Creates an array storing data in column major order.
Sourcepub const fn from_cols_array_2d_unchecked(m: &[[f32; 3]; 3]) -> SymmetricMat3
pub const fn from_cols_array_2d_unchecked(m: &[[f32; 3]; 3]) -> SymmetricMat3
Creates a symmetric 3x3 matrix from a 2D array stored in column major order.
Only the lower left triangle of the matrix is used. No check is performed to ensure that the given columns truly produce a symmetric matrix.
Sourcepub const fn to_cols_array_2d(&self) -> [[f32; 3]; 3]
pub const fn to_cols_array_2d(&self) -> [[f32; 3]; 3]
Creates a 2D array storing data in column major order.
Sourcepub const fn from_cols_slice(slice: &[f32]) -> SymmetricMat3
pub const fn from_cols_slice(slice: &[f32]) -> SymmetricMat3
Creates a 3x3 matrix from the first 9 values in slice
.
Only the lower left triangle of the matrix is used. No check is performed to ensure that the given columns truly produce a symmetric matrix.
§Panics
Panics if slice
is less than 9 elements long.
Sourcepub const fn from_diagonal(diagonal: Vec3) -> SymmetricMat3
pub const fn from_diagonal(diagonal: Vec3) -> SymmetricMat3
Creates a symmetric 3x3 matrix with its diagonal set to diagonal
and all other entries set to 0.0
.
Sourcepub fn try_from_mat3(mat: Mat3) -> Result<SymmetricMat3, MatConversionError>
pub fn try_from_mat3(mat: Mat3) -> Result<SymmetricMat3, MatConversionError>
Tries to create a symmetric 3x3 matrix from a 3x3 matrix.
§Errors
Returns a MatConversionError
if the given matrix is not symmetric.
Sourcepub const fn from_mat3_unchecked(mat: Mat3) -> SymmetricMat3
pub const fn from_mat3_unchecked(mat: Mat3) -> SymmetricMat3
Creates a symmetric 3x3 matrix from a 3x3 matrix.
Only the lower left triangle of the matrix is used. No check is performed to ensure that the given matrix is truly symmetric.
Sourcepub const fn to_mat3(&self) -> Mat3
pub const fn to_mat3(&self) -> Mat3
Creates a 3x3 matrix from the symmetric 3x3 matrix in self
.
Sourcepub fn from_outer_product(v: Vec3) -> SymmetricMat3
pub fn from_outer_product(v: Vec3) -> SymmetricMat3
Creates a new symmetric 3x3 matrix from the outer product v * v^T
.
Sourcepub fn is_finite(&self) -> bool
pub fn is_finite(&self) -> bool
Returns true
if, and only if, all elements are finite.
If any element is either NaN
or positive or negative infinity, this will return false
.
Sourcepub fn determinant(&self) -> f32
pub fn determinant(&self) -> f32
Returns the determinant of self
.
Sourcepub fn inverse(&self) -> SymmetricMat3
pub fn inverse(&self) -> SymmetricMat3
Returns the inverse of self
.
If the matrix is not invertible the returned matrix will be invalid.
Sourcepub fn inverse_or_zero(&self) -> SymmetricMat3
pub fn inverse_or_zero(&self) -> SymmetricMat3
Returns the inverse of self
, or a zero matrix if the matrix is not invertible.
Sourcepub fn abs(&self) -> SymmetricMat3
pub fn abs(&self) -> SymmetricMat3
Takes the absolute value of each element in self
.
Sourcepub fn skew(&self, vec: Vec3) -> SymmetricMat3
pub fn skew(&self, vec: Vec3) -> SymmetricMat3
Computes skew_symmetric(vec) * self * skew_symmetric(vec).transpose()
for a symmetric matrix self
.
Sourcepub fn ldlt_solve(&self, rhs: Vec3) -> Vec3
pub fn ldlt_solve(&self, rhs: Vec3) -> Vec3
Solves self * x = rhs
for x
using the LDLT decomposition.
self
must be a positive semidefinite matrix.
Sourcepub fn complete_mat23_sandwich(a: &Mat23, b: &Mat23) -> SymmetricMat3
pub fn complete_mat23_sandwich(a: &Mat23, b: &Mat23) -> SymmetricMat3
Computes a * transpose(b)
, assuming a = b * M
for some symmetric matrix M
.
This effectively completes the second half of the sandwich product b * M * transpose(b)
.
Sourcepub fn complete_mat32_sandwich(a: &Mat32, b: &Mat32) -> SymmetricMat3
pub fn complete_mat32_sandwich(a: &Mat32, b: &Mat32) -> SymmetricMat3
Computes a * transpose(b)
, assuming a = b * M
for some symmetric matrix M
.
This effectively completes the second half of the sandwich product b * M * transpose(b)
.
Sourcepub fn mul_symmetric_mat3(&self, rhs: &SymmetricMat3) -> Mat3
pub fn mul_symmetric_mat3(&self, rhs: &SymmetricMat3) -> Mat3
Multiplies two symmetric 3x3 matrices.
Sourcepub fn add_symmetric_mat3(&self, rhs: &SymmetricMat3) -> SymmetricMat3
pub fn add_symmetric_mat3(&self, rhs: &SymmetricMat3) -> SymmetricMat3
Adds two symmetric 3x3 matrices.
Sourcepub fn sub_symmetric_mat3(&self, rhs: &SymmetricMat3) -> SymmetricMat3
pub fn sub_symmetric_mat3(&self, rhs: &SymmetricMat3) -> SymmetricMat3
Subtracts two symmetric 3x3 matrices.
Sourcepub fn mul_scalar(&self, rhs: f32) -> SymmetricMat3
pub fn mul_scalar(&self, rhs: f32) -> SymmetricMat3
Multiplies a 3x3 matrix by a scalar.
Sourcepub fn div_scalar(&self, rhs: f32) -> SymmetricMat3
pub fn div_scalar(&self, rhs: f32) -> SymmetricMat3
Divides a 3x3 matrix by a scalar.
Source§impl SymmetricMat3
impl SymmetricMat3
Sourcepub fn as_symmetric_dmat3(&self) -> SymmetricDMat3
pub fn as_symmetric_dmat3(&self) -> SymmetricDMat3
Returns the double precision version of self
.
Trait Implementations§
Source§impl Add<&&SymmetricMat3> for &SymmetricMat3
impl Add<&&SymmetricMat3> for &SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
+
operator.Source§fn add(
self,
rhs: &&SymmetricMat3,
) -> <&SymmetricMat3 as Add<&&SymmetricMat3>>::Output
fn add( self, rhs: &&SymmetricMat3, ) -> <&SymmetricMat3 as Add<&&SymmetricMat3>>::Output
+
operation. Read moreSource§impl Add<&Mat3> for &SymmetricMat3
impl Add<&Mat3> for &SymmetricMat3
Source§impl Add<&Mat3> for SymmetricMat3
impl Add<&Mat3> for SymmetricMat3
Source§impl Add<&SymmetricMat3> for SymmetricMat3
impl Add<&SymmetricMat3> for SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
+
operator.Source§fn add(
self,
rhs: &SymmetricMat3,
) -> <SymmetricMat3 as Add<&SymmetricMat3>>::Output
fn add( self, rhs: &SymmetricMat3, ) -> <SymmetricMat3 as Add<&SymmetricMat3>>::Output
+
operation. Read moreSource§impl Add<Mat3> for &SymmetricMat3
impl Add<Mat3> for &SymmetricMat3
Source§impl Add<Mat3> for SymmetricMat3
impl Add<Mat3> for SymmetricMat3
Source§impl Add for &SymmetricMat3
impl Add for &SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
+
operator.Source§fn add(self, rhs: &SymmetricMat3) -> <&SymmetricMat3 as Add>::Output
fn add(self, rhs: &SymmetricMat3) -> <&SymmetricMat3 as Add>::Output
+
operation. Read moreSource§impl Add for SymmetricMat3
impl Add for SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
+
operator.Source§fn add(self, rhs: SymmetricMat3) -> <SymmetricMat3 as Add>::Output
fn add(self, rhs: SymmetricMat3) -> <SymmetricMat3 as Add>::Output
+
operation. Read moreSource§impl AddAssign<&SymmetricMat3> for SymmetricMat3
impl AddAssign<&SymmetricMat3> for SymmetricMat3
Source§fn add_assign(&mut self, rhs: &SymmetricMat3)
fn add_assign(&mut self, rhs: &SymmetricMat3)
+=
operation. Read moreSource§impl AddAssign for SymmetricMat3
impl AddAssign for SymmetricMat3
Source§fn add_assign(&mut self, rhs: SymmetricMat3)
fn add_assign(&mut self, rhs: SymmetricMat3)
+=
operation. Read moreSource§impl Clone for SymmetricMat3
impl Clone for SymmetricMat3
Source§fn clone(&self) -> SymmetricMat3
fn clone(&self) -> SymmetricMat3
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SymmetricMat3
impl Debug for SymmetricMat3
Source§impl Default for SymmetricMat3
impl Default for SymmetricMat3
Source§fn default() -> SymmetricMat3
fn default() -> SymmetricMat3
Source§impl Display for SymmetricMat3
impl Display for SymmetricMat3
Source§impl Div<&f32> for &SymmetricMat3
impl Div<&f32> for &SymmetricMat3
Source§impl Div<&f32> for SymmetricMat3
impl Div<&f32> for SymmetricMat3
Source§impl Div<f32> for &SymmetricMat3
impl Div<f32> for &SymmetricMat3
Source§impl Div<f32> for SymmetricMat3
impl Div<f32> for SymmetricMat3
Source§impl DivAssign<&f32> for SymmetricMat3
impl DivAssign<&f32> for SymmetricMat3
Source§fn div_assign(&mut self, rhs: &f32)
fn div_assign(&mut self, rhs: &f32)
/=
operation. Read moreSource§impl DivAssign<f32> for SymmetricMat3
impl DivAssign<f32> for SymmetricMat3
Source§fn div_assign(&mut self, rhs: f32)
fn div_assign(&mut self, rhs: f32)
/=
operation. Read moreSource§impl From<AngularInertiaTensor> for SymmetricMat3
impl From<AngularInertiaTensor> for SymmetricMat3
Source§fn from(angular_inertia: AngularInertiaTensor) -> Self
fn from(angular_inertia: AngularInertiaTensor) -> Self
Source§impl From<SymmetricMat3> for AngularInertiaTensor
impl From<SymmetricMat3> for AngularInertiaTensor
Source§fn from(angular_inertia: SymmetricMat3) -> Self
fn from(angular_inertia: SymmetricMat3) -> Self
Source§impl FromReflect for SymmetricMat3
impl FromReflect for SymmetricMat3
Source§fn from_reflect(
reflect: &(dyn PartialReflect + 'static),
) -> Option<SymmetricMat3>
fn from_reflect( reflect: &(dyn PartialReflect + 'static), ) -> Option<SymmetricMat3>
Self
from a reflected value.Source§fn take_from_reflect(
reflect: Box<dyn PartialReflect>,
) -> Result<Self, Box<dyn PartialReflect>>
fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>
Self
using,
constructing the value using from_reflect
if that fails. Read moreSource§impl GetTypeRegistration for SymmetricMat3
impl GetTypeRegistration for SymmetricMat3
Source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration
for this type.Source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
Source§impl Mul<&&SymmetricMat3> for &SymmetricMat3
impl Mul<&&SymmetricMat3> for &SymmetricMat3
Source§fn mul(
self,
rhs: &&SymmetricMat3,
) -> <&SymmetricMat3 as Mul<&&SymmetricMat3>>::Output
fn mul( self, rhs: &&SymmetricMat3, ) -> <&SymmetricMat3 as Mul<&&SymmetricMat3>>::Output
*
operation. Read moreSource§impl Mul<&Mat3> for &SymmetricMat3
impl Mul<&Mat3> for &SymmetricMat3
Source§impl Mul<&Mat3> for SymmetricMat3
impl Mul<&Mat3> for SymmetricMat3
Source§impl Mul<&Mat32> for &SymmetricMat3
impl Mul<&Mat32> for &SymmetricMat3
Source§impl Mul<&Mat32> for SymmetricMat3
impl Mul<&Mat32> for SymmetricMat3
Source§impl Mul<&SymmetricMat3> for SymmetricMat3
impl Mul<&SymmetricMat3> for SymmetricMat3
Source§fn mul(
self,
rhs: &SymmetricMat3,
) -> <SymmetricMat3 as Mul<&SymmetricMat3>>::Output
fn mul( self, rhs: &SymmetricMat3, ) -> <SymmetricMat3 as Mul<&SymmetricMat3>>::Output
*
operation. Read moreSource§impl Mul<&Vec3> for &SymmetricMat3
impl Mul<&Vec3> for &SymmetricMat3
Source§impl Mul<&Vec3> for SymmetricMat3
impl Mul<&Vec3> for SymmetricMat3
Source§impl Mul<&f32> for &SymmetricMat3
impl Mul<&f32> for &SymmetricMat3
Source§impl Mul<&f32> for SymmetricMat3
impl Mul<&f32> for SymmetricMat3
Source§impl Mul<Mat3> for &SymmetricMat3
impl Mul<Mat3> for &SymmetricMat3
Source§impl Mul<Mat3> for SymmetricMat3
impl Mul<Mat3> for SymmetricMat3
Source§impl Mul<Mat32> for &SymmetricMat3
impl Mul<Mat32> for &SymmetricMat3
Source§impl Mul<Mat32> for SymmetricMat3
impl Mul<Mat32> for SymmetricMat3
Source§impl Mul<Vec3> for &SymmetricMat3
impl Mul<Vec3> for &SymmetricMat3
Source§impl Mul<Vec3> for SymmetricMat3
impl Mul<Vec3> for SymmetricMat3
Source§impl Mul<Vec3A> for SymmetricMat3
impl Mul<Vec3A> for SymmetricMat3
Source§impl Mul<f32> for &SymmetricMat3
impl Mul<f32> for &SymmetricMat3
Source§impl Mul<f32> for SymmetricMat3
impl Mul<f32> for SymmetricMat3
Source§impl Mul for &SymmetricMat3
impl Mul for &SymmetricMat3
Source§impl Mul for SymmetricMat3
impl Mul for SymmetricMat3
Source§impl MulAssign<&f32> for SymmetricMat3
impl MulAssign<&f32> for SymmetricMat3
Source§fn mul_assign(&mut self, rhs: &f32)
fn mul_assign(&mut self, rhs: &f32)
*=
operation. Read moreSource§impl MulAssign<f32> for SymmetricMat3
impl MulAssign<f32> for SymmetricMat3
Source§fn mul_assign(&mut self, rhs: f32)
fn mul_assign(&mut self, rhs: f32)
*=
operation. Read moreSource§impl Neg for &SymmetricMat3
impl Neg for &SymmetricMat3
Source§impl Neg for SymmetricMat3
impl Neg for SymmetricMat3
Source§impl PartialEq for SymmetricMat3
impl PartialEq for SymmetricMat3
Source§impl PartialReflect for SymmetricMat3
impl PartialReflect for SymmetricMat3
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn try_apply(
&mut self,
value: &(dyn PartialReflect + 'static),
) -> Result<(), ApplyError>
fn try_apply( &mut self, value: &(dyn PartialReflect + 'static), ) -> Result<(), ApplyError>
Source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
Source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Source§fn reflect_owned(self: Box<SymmetricMat3>) -> ReflectOwned
fn reflect_owned(self: Box<SymmetricMat3>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<SymmetricMat3>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<SymmetricMat3>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
Source§fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
Source§fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
Source§fn into_partial_reflect(self: Box<SymmetricMat3>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<SymmetricMat3>) -> Box<dyn PartialReflect>
Source§fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
Source§fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
Source§fn reflect_partial_eq(
&self,
value: &(dyn PartialReflect + 'static),
) -> Option<bool>
fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>
Source§fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
Self
using reflection. Read moreSource§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
Source§fn to_dynamic(&self) -> Box<dyn PartialReflect>
fn to_dynamic(&self) -> Box<dyn PartialReflect>
Source§fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
PartialReflect
, combines reflect_clone
and
take
in a useful fashion, automatically constructing an appropriate
ReflectCloneError
if the downcast fails. Read moreSource§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
Source§impl Reflect for SymmetricMat3
impl Reflect for SymmetricMat3
Source§fn into_any(self: Box<SymmetricMat3>) -> Box<dyn Any>
fn into_any(self: Box<SymmetricMat3>) -> Box<dyn Any>
Box<dyn Any>
. Read moreSource§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any
. Read moreSource§fn into_reflect(self: Box<SymmetricMat3>) -> Box<dyn Reflect>
fn into_reflect(self: Box<SymmetricMat3>) -> Box<dyn Reflect>
Source§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
Source§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
Source§impl Struct for SymmetricMat3
impl Struct for SymmetricMat3
Source§fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>
name
as a &dyn PartialReflect
.Source§fn field_mut(
&mut self,
name: &str,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_mut( &mut self, name: &str, ) -> Option<&mut (dyn PartialReflect + 'static)>
name
as a
&mut dyn PartialReflect
.Source§fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
index
as a
&dyn PartialReflect
.Source§fn field_at_mut(
&mut self,
index: usize,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_at_mut( &mut self, index: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>
index
as a &mut dyn PartialReflect
.Source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
index
.Source§fn iter_fields(&self) -> FieldIter<'_>
fn iter_fields(&self) -> FieldIter<'_>
Source§fn to_dynamic_struct(&self) -> DynamicStruct
fn to_dynamic_struct(&self) -> DynamicStruct
DynamicStruct
from this struct.Source§fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
None
if TypeInfo
is not available.Source§impl Sub<&&SymmetricMat3> for &SymmetricMat3
impl Sub<&&SymmetricMat3> for &SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
-
operator.Source§fn sub(
self,
rhs: &&SymmetricMat3,
) -> <&SymmetricMat3 as Sub<&&SymmetricMat3>>::Output
fn sub( self, rhs: &&SymmetricMat3, ) -> <&SymmetricMat3 as Sub<&&SymmetricMat3>>::Output
-
operation. Read moreSource§impl Sub<&Mat3> for &SymmetricMat3
impl Sub<&Mat3> for &SymmetricMat3
Source§impl Sub<&Mat3> for SymmetricMat3
impl Sub<&Mat3> for SymmetricMat3
Source§impl Sub<&SymmetricMat3> for SymmetricMat3
impl Sub<&SymmetricMat3> for SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
-
operator.Source§fn sub(
self,
rhs: &SymmetricMat3,
) -> <SymmetricMat3 as Sub<&SymmetricMat3>>::Output
fn sub( self, rhs: &SymmetricMat3, ) -> <SymmetricMat3 as Sub<&SymmetricMat3>>::Output
-
operation. Read moreSource§impl Sub<Mat3> for &SymmetricMat3
impl Sub<Mat3> for &SymmetricMat3
Source§impl Sub<Mat3> for SymmetricMat3
impl Sub<Mat3> for SymmetricMat3
Source§impl Sub for &SymmetricMat3
impl Sub for &SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
-
operator.Source§fn sub(self, rhs: &SymmetricMat3) -> <&SymmetricMat3 as Sub>::Output
fn sub(self, rhs: &SymmetricMat3) -> <&SymmetricMat3 as Sub>::Output
-
operation. Read moreSource§impl Sub for SymmetricMat3
impl Sub for SymmetricMat3
Source§type Output = SymmetricMat3
type Output = SymmetricMat3
-
operator.Source§fn sub(self, rhs: SymmetricMat3) -> <SymmetricMat3 as Sub>::Output
fn sub(self, rhs: SymmetricMat3) -> <SymmetricMat3 as Sub>::Output
-
operation. Read moreSource§impl SubAssign<&SymmetricMat3> for SymmetricMat3
impl SubAssign<&SymmetricMat3> for SymmetricMat3
Source§fn sub_assign(&mut self, rhs: &SymmetricMat3)
fn sub_assign(&mut self, rhs: &SymmetricMat3)
-=
operation. Read moreSource§impl SubAssign for SymmetricMat3
impl SubAssign for SymmetricMat3
Source§fn sub_assign(&mut self, rhs: SymmetricMat3)
fn sub_assign(&mut self, rhs: SymmetricMat3)
-=
operation. Read moreSource§impl<'a> Sum<&'a SymmetricMat3> for SymmetricMat3
impl<'a> Sum<&'a SymmetricMat3> for SymmetricMat3
Source§fn sum<I>(iter: I) -> SymmetricMat3where
I: Iterator<Item = &'a SymmetricMat3>,
fn sum<I>(iter: I) -> SymmetricMat3where
I: Iterator<Item = &'a SymmetricMat3>,
Self
from the elements by “summing up”
the items.Source§impl Sum for SymmetricMat3
impl Sum for SymmetricMat3
Source§fn sum<I>(iter: I) -> SymmetricMat3where
I: Iterator<Item = SymmetricMat3>,
fn sum<I>(iter: I) -> SymmetricMat3where
I: Iterator<Item = SymmetricMat3>,
Self
from the elements by “summing up”
the items.Source§impl TryFrom<Mat3> for SymmetricMat3
impl TryFrom<Mat3> for SymmetricMat3
Source§type Error = MatConversionError
type Error = MatConversionError
Source§fn try_from(
mat: Mat3,
) -> Result<SymmetricMat3, <SymmetricMat3 as TryFrom<Mat3>>::Error>
fn try_from( mat: Mat3, ) -> Result<SymmetricMat3, <SymmetricMat3 as TryFrom<Mat3>>::Error>
Source§impl TypePath for SymmetricMat3
impl TypePath for SymmetricMat3
Source§fn type_path() -> &'static str
fn type_path() -> &'static str
Source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
Source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
Source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
Source§impl Typed for SymmetricMat3
impl Typed for SymmetricMat3
impl Copy for SymmetricMat3
impl StructuralPartialEq for SymmetricMat3
Auto Trait Implementations§
impl Freeze for SymmetricMat3
impl RefUnwindSafe for SymmetricMat3
impl Send for SymmetricMat3
impl Sync for SymmetricMat3
impl Unpin for SymmetricMat3
impl UnwindSafe for SymmetricMat3
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
Source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path
.Source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
Source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident
.Source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name
.Source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
Source§impl<T> DynamicTyped for Twhere
T: Typed,
impl<T> DynamicTyped for Twhere
T: Typed,
Source§fn reflect_type_info(&self) -> &'static TypeInfo
fn reflect_type_info(&self) -> &'static TypeInfo
Typed::type_info
.Source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
Source§impl<T> GetPath for T
impl<T> GetPath for T
Source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
path
. Read moreSource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
path
. Read moreSource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moreSource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moreSource§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>
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>
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