Type Alias oxygengine_physics_2d::prelude::nalgebra::Similarity2
source · pub type Similarity2<T> = Similarity<T, Unit<Complex<T>>, 2>;
Expand description
A 2-dimensional similarity.
Aliased Type§
struct Similarity2<T> {
pub isometry: Isometry<T, Unit<Complex<T>>, 2>,
/* private fields */
}
Fields§
§isometry: Isometry<T, Unit<Complex<T>>, 2>
The part of this similarity that does not include the scaling factor.
Implementations§
source§impl<T, R, const D: usize> Similarity<T, R, D>where
T: Scalar + Zero,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Similarity<T, R, D>where T: Scalar + Zero, R: AbstractRotation<T, D>,
sourcepub fn from_parts(
translation: Translation<T, D>,
rotation: R,
scaling: T
) -> Similarity<T, R, D>
pub fn from_parts( translation: Translation<T, D>, rotation: R, scaling: T ) -> Similarity<T, R, D>
Creates a new similarity from its rotational and translational parts.
sourcepub fn from_isometry(
isometry: Isometry<T, R, D>,
scaling: T
) -> Similarity<T, R, D>
pub fn from_isometry( isometry: Isometry<T, R, D>, scaling: T ) -> Similarity<T, R, D>
Creates a new similarity from its rotational and translational parts.
sourcepub fn set_scaling(&mut self, scaling: T)
pub fn set_scaling(&mut self, scaling: T)
The scaling factor of this similarity transformation.
source§impl<T, R, const D: usize> Similarity<T, R, D>where
T: Scalar,
impl<T, R, const D: usize> Similarity<T, R, D>where T: Scalar,
source§impl<T, R, const D: usize> Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
sourcepub fn from_scaling(scaling: T) -> Similarity<T, R, D>
pub fn from_scaling(scaling: T) -> Similarity<T, R, D>
Creates a new similarity that applies only a scaling factor.
sourcepub fn inverse(&self) -> Similarity<T, R, D>
pub fn inverse(&self) -> Similarity<T, R, D>
Inverts self
.
sourcepub fn inverse_mut(&mut self)
pub fn inverse_mut(&mut self)
Inverts self
in-place.
sourcepub fn prepend_scaling(&self, scaling: T) -> Similarity<T, R, D>
pub fn prepend_scaling(&self, scaling: T) -> Similarity<T, R, D>
The similarity transformation that applies a scaling factor scaling
before self
.
sourcepub fn append_scaling(&self, scaling: T) -> Similarity<T, R, D>
pub fn append_scaling(&self, scaling: T) -> Similarity<T, R, D>
The similarity transformation that applies a scaling factor scaling
after self
.
sourcepub fn prepend_scaling_mut(&mut self, scaling: T)
pub fn prepend_scaling_mut(&mut self, scaling: T)
Sets self
to the similarity transformation that applies a scaling factor scaling
before self
.
sourcepub fn append_scaling_mut(&mut self, scaling: T)
pub fn append_scaling_mut(&mut self, scaling: T)
Sets self
to the similarity transformation that applies a scaling factor scaling
after self
.
sourcepub fn append_translation_mut(&mut self, t: &Translation<T, D>)
pub fn append_translation_mut(&mut self, t: &Translation<T, D>)
Appends to self
the given translation in-place.
sourcepub fn append_rotation_mut(&mut self, r: &R)
pub fn append_rotation_mut(&mut self, r: &R)
Appends to self
the given rotation in-place.
sourcepub fn append_rotation_wrt_point_mut(&mut self, r: &R, p: &OPoint<T, Const<D>>)
pub fn append_rotation_wrt_point_mut(&mut self, r: &R, p: &OPoint<T, Const<D>>)
Appends in-place to self
a rotation centered at the point p
, i.e., the rotation that
lets p
invariant.
sourcepub fn append_rotation_wrt_center_mut(&mut self, r: &R)
pub fn append_rotation_wrt_center_mut(&mut self, r: &R)
Appends in-place to self
a rotation centered at the point with coordinates
self.translation
.
sourcepub fn transform_point(&self, pt: &OPoint<T, Const<D>>) -> OPoint<T, Const<D>>
pub fn transform_point(&self, pt: &OPoint<T, Const<D>>) -> OPoint<T, Const<D>>
Transform the given point by this similarity.
This is the same as the multiplication self * pt
.
Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
let sim = Similarity3::new(translation, axisangle, 3.0);
let transformed_point = sim.transform_point(&Point3::new(4.0, 5.0, 6.0));
assert_relative_eq!(transformed_point, Point3::new(19.0, 17.0, -9.0), epsilon = 1.0e-5);
sourcepub fn transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
) -> Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
pub fn transform_vector( &self, v: &Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>> ) -> Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
Transform the given vector by this similarity, ignoring the translational component.
This is the same as the multiplication self * t
.
Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
let sim = Similarity3::new(translation, axisangle, 3.0);
let transformed_vector = sim.transform_vector(&Vector3::new(4.0, 5.0, 6.0));
assert_relative_eq!(transformed_vector, Vector3::new(18.0, 15.0, -12.0), epsilon = 1.0e-5);
sourcepub fn inverse_transform_point(
&self,
pt: &OPoint<T, Const<D>>
) -> OPoint<T, Const<D>>
pub fn inverse_transform_point( &self, pt: &OPoint<T, Const<D>> ) -> OPoint<T, Const<D>>
Transform the given point by the inverse of this similarity. This may be cheaper than inverting the similarity and then transforming the given point.
Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
let sim = Similarity3::new(translation, axisangle, 2.0);
let transformed_point = sim.inverse_transform_point(&Point3::new(4.0, 5.0, 6.0));
assert_relative_eq!(transformed_point, Point3::new(-1.5, 1.5, 1.5), epsilon = 1.0e-5);
sourcepub fn inverse_transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
) -> Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
pub fn inverse_transform_vector( &self, v: &Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>> ) -> Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
Transform the given vector by the inverse of this similarity, ignoring the translational component. This may be cheaper than inverting the similarity and then transforming the given vector.
Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
let sim = Similarity3::new(translation, axisangle, 2.0);
let transformed_vector = sim.inverse_transform_vector(&Vector3::new(4.0, 5.0, 6.0));
assert_relative_eq!(transformed_vector, Vector3::new(-3.0, 2.5, 2.0), epsilon = 1.0e-5);
source§impl<T, R, const D: usize> Similarity<T, R, D>where
T: SimdRealField,
impl<T, R, const D: usize> Similarity<T, R, D>where T: SimdRealField,
sourcepub fn to_homogeneous(
&self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>where
Const<D>: DimNameAdd<Const<1>>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
pub fn to_homogeneous( &self ) -> Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>where Const<D>: DimNameAdd<Const<1>>, R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>, DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
Converts this similarity into its equivalent homogeneous transformation matrix.
source§impl<T, R, const D: usize> Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
sourcepub fn identity() -> Similarity<T, R, D>
pub fn identity() -> Similarity<T, R, D>
Creates a new identity similarity.
Example
let sim = Similarity2::identity();
let pt = Point2::new(1.0, 2.0);
assert_eq!(sim * pt, pt);
let sim = Similarity3::identity();
let pt = Point3::new(1.0, 2.0, 3.0);
assert_eq!(sim * pt, pt);
source§impl<T, R, const D: usize> Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
sourcepub fn rotation_wrt_point(
r: R,
p: OPoint<T, Const<D>>,
scaling: T
) -> Similarity<T, R, D>
pub fn rotation_wrt_point( r: R, p: OPoint<T, Const<D>>, scaling: T ) -> Similarity<T, R, D>
The similarity that applies the scaling factor scaling
, followed by the rotation r
with
its axis passing through the point p
.
Example
let rot = UnitComplex::new(f32::consts::FRAC_PI_2);
let pt = Point2::new(3.0, 2.0);
let sim = Similarity2::rotation_wrt_point(rot, pt, 4.0);
assert_relative_eq!(sim * Point2::new(1.0, 2.0), Point2::new(-3.0, 3.0), epsilon = 1.0e-6);
source§impl<T> Similarity<T, Unit<Complex<T>>, 2>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Similarity<T, Unit<Complex<T>>, 2>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField,
sourcepub fn new(
translation: Matrix<T, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<T, 2, 1>>,
angle: T,
scaling: T
) -> Similarity<T, Unit<Complex<T>>, 2>
pub fn new( translation: Matrix<T, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<T, 2, 1>>, angle: T, scaling: T ) -> Similarity<T, Unit<Complex<T>>, 2>
Creates a new similarity from a translation and a rotation angle.
Example
let sim = Similarity2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2, 3.0);
assert_relative_eq!(sim * Point2::new(2.0, 4.0), Point2::new(-11.0, 8.0), epsilon = 1.0e-6);
sourcepub fn cast<To>(self) -> Similarity<To, Unit<Complex<To>>, 2>where
To: Scalar,
Similarity<To, Unit<Complex<To>>, 2>: SupersetOf<Similarity<T, Unit<Complex<T>>, 2>>,
pub fn cast<To>(self) -> Similarity<To, Unit<Complex<To>>, 2>where To: Scalar, Similarity<To, Unit<Complex<To>>, 2>: SupersetOf<Similarity<T, Unit<Complex<T>>, 2>>,
Cast the components of self
to another type.
Example
let sim = Similarity2::<f64>::identity();
let sim2 = sim.cast::<f32>();
assert_eq!(sim2, Similarity2::<f32>::identity());
Trait Implementations§
source§impl<T, R, const D: usize> AbsDiffEq<Similarity<T, R, D>> for Similarity<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + AbsDiffEq<R, Epsilon = <T as AbsDiffEq<T>>::Epsilon>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
impl<T, R, const D: usize> AbsDiffEq<Similarity<T, R, D>> for Similarity<T, R, D>where T: RealField, R: AbstractRotation<T, D> + AbsDiffEq<R, Epsilon = <T as AbsDiffEq<T>>::Epsilon>, <T as AbsDiffEq<T>>::Epsilon: Clone,
source§fn default_epsilon(
) -> <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon
fn default_epsilon( ) -> <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon
source§fn abs_diff_eq(
&self,
other: &Similarity<T, R, D>,
epsilon: <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon
) -> bool
fn abs_diff_eq( &self, other: &Similarity<T, R, D>, epsilon: <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon ) -> bool
§fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
AbsDiffEq::abs_diff_eq
].source§impl<T, R, const D: usize> Clone for Similarity<T, R, D>where
T: Scalar + Zero,
R: AbstractRotation<T, D> + Clone,
impl<T, R, const D: usize> Clone for Similarity<T, R, D>where T: Scalar + Zero, R: AbstractRotation<T, D> + Clone,
source§fn clone(&self) -> Similarity<T, R, D>
fn clone(&self) -> Similarity<T, R, D>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'de, T, R, const D: usize> Deserialize<'de> for Similarity<T, R, D>where
T: Scalar + Deserialize<'de>,
R: Deserialize<'de>,
DefaultAllocator: Allocator<T, Const<D>, Const<1>>,
<DefaultAllocator as Allocator<T, Const<D>, Const<1>>>::Buffer: Deserialize<'de>,
impl<'de, T, R, const D: usize> Deserialize<'de> for Similarity<T, R, D>where T: Scalar + Deserialize<'de>, R: Deserialize<'de>, DefaultAllocator: Allocator<T, Const<D>, Const<1>>, <DefaultAllocator as Allocator<T, Const<D>, Const<1>>>::Buffer: Deserialize<'de>,
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<Similarity<T, R, D>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>( __deserializer: __D ) -> Result<Similarity<T, R, D>, <__D as Deserializer<'de>>::Error>where __D: Deserializer<'de>,
source§impl<T, R, const D: usize> Display for Similarity<T, R, D>where
T: RealField + Display,
R: AbstractRotation<T, D> + Display,
impl<T, R, const D: usize> Display for Similarity<T, R, D>where T: RealField + Display, R: AbstractRotation<T, D> + Display,
source§impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§impl<'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.source§fn div(
self,
rhs: &'b Similarity<T, R, D>
) -> <Similarity<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
fn div( self, rhs: &'b Similarity<T, R, D> ) -> <Similarity<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
/
operation. Read moresource§impl<'b, T> Div<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Div<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<T, R, const D: usize> Div<Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Div<Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§impl<T, R, const D: usize> Div<Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Div<Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.source§fn div(
self,
rhs: Similarity<T, R, D>
) -> <Similarity<T, R, D> as Div<Similarity<T, R, D>>>::Output
fn div( self, rhs: Similarity<T, R, D> ) -> <Similarity<T, R, D> as Div<Similarity<T, R, D>>>::Output
/
operation. Read moresource§impl<T> Div<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Div<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)
fn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)
/=
operation. Read moresource§impl<'b, T, R, const D: usize> DivAssign<&'b Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> DivAssign<&'b Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn div_assign(&mut self, rhs: &'b Similarity<T, R, D>)
fn div_assign(&mut self, rhs: &'b Similarity<T, R, D>)
/=
operation. Read moresource§impl<'b, T> DivAssign<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> DivAssign<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn div_assign(&mut self, rhs: Isometry<T, R, D>)
fn div_assign(&mut self, rhs: Isometry<T, R, D>)
/=
operation. Read moresource§impl<T, R, const D: usize> DivAssign<Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> DivAssign<Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn div_assign(&mut self, rhs: Similarity<T, R, D>)
fn div_assign(&mut self, rhs: Similarity<T, R, D>)
/=
operation. Read moresource§impl<T> DivAssign<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> DivAssign<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Similarity<T, R, D>where
T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 16]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 16]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy,
<T as SimdValue>::Element: Scalar + Zero + Copy,
impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Similarity<T, R, D>where T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 16]>, R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 16]>, <R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy, <T as SimdValue>::Element: Scalar + Zero + Copy,
source§fn from(
arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]
) -> Similarity<T, R, D>
fn from( arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16] ) -> Similarity<T, R, D>
source§impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Similarity<T, R, D>where
T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 2]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 2]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy,
<T as SimdValue>::Element: Scalar + Zero + Copy,
impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Similarity<T, R, D>where T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 2]>, R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 2]>, <R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy, <T as SimdValue>::Element: Scalar + Zero + Copy,
source§fn from(
arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]
) -> Similarity<T, R, D>
fn from( arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2] ) -> Similarity<T, R, D>
source§impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Similarity<T, R, D>where
T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 4]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 4]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy,
<T as SimdValue>::Element: Scalar + Zero + Copy,
impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Similarity<T, R, D>where T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 4]>, R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 4]>, <R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy, <T as SimdValue>::Element: Scalar + Zero + Copy,
source§fn from(
arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]
) -> Similarity<T, R, D>
fn from( arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4] ) -> Similarity<T, R, D>
source§impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Similarity<T, R, D>where
T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 8]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 8]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy,
<T as SimdValue>::Element: Scalar + Zero + Copy,
impl<T, R, const D: usize> From<[Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Similarity<T, R, D>where T: Scalar + Zero + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 8]>, R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 8]>, <R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D> + Scalar + Zero + Copy, <T as SimdValue>::Element: Scalar + Zero + Copy,
source§fn from(
arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]
) -> Similarity<T, R, D>
fn from( arr: [Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8] ) -> Similarity<T, R, D>
source§impl<T, R, const D: usize> Hash for Similarity<T, R, D>where
T: Scalar + Hash,
R: Hash,
<DefaultAllocator as Allocator<T, Const<D>, Const<1>>>::Buffer: Hash,
impl<T, R, const D: usize> Hash for Similarity<T, R, D>where T: Scalar + Hash, R: Hash, <DefaultAllocator as Allocator<T, Const<D>, Const<1>>>::Buffer: Hash,
source§impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
*
operator.source§fn mul(
self,
right: &'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
) -> <Similarity<T, R, D> as Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output
fn mul( self, right: &'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>> ) -> <Similarity<T, R, D> as Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output
*
operation. Read moresource§impl<'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Similarity<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
fn mul( self, rhs: &'b Similarity<T, R, D> ) -> <Similarity<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
*
operation. Read moresource§impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Similarity<T, R, D>where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1>>,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Similarity<T, R, D>where T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField, Const<D>: DimNameAdd<Const<1>>, C: TCategoryMul<TAffine>, R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>, DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
§type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.source§impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
right: &'b Translation<T, D>
) -> <Similarity<T, R, D> as Mul<&'b Translation<T, D>>>::Output
fn mul( self, right: &'b Translation<T, D> ) -> <Similarity<T, R, D> as Mul<&'b Translation<T, D>>>::Output
*
operation. Read moresource§impl<'b, T> Mul<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
*
operator.source§fn mul(
self,
right: Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>
) -> <Similarity<T, R, D> as Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output
fn mul( self, right: Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>> ) -> <Similarity<T, R, D> as Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output
*
operation. Read moresource§impl<T, R, const D: usize> Mul<OPoint<T, Const<D>>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Mul<OPoint<T, Const<D>>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Similarity<T, R, D> as Mul<Similarity<T, R, D>>>::Output
fn mul( self, rhs: Similarity<T, R, D> ) -> <Similarity<T, R, D> as Mul<Similarity<T, R, D>>>::Output
*
operation. Read moresource§impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Similarity<T, R, D>where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
Const<D>: DimNameAdd<Const<1>>,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Similarity<T, R, D>where T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField, Const<D>: DimNameAdd<Const<1>>, C: TCategoryMul<TAffine>, R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>, DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
§type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.source§impl<T, R, const D: usize> Mul<Translation<T, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Mul<Translation<T, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
right: Translation<T, D>
) -> <Similarity<T, R, D> as Mul<Translation<T, D>>>::Output
fn mul( self, right: Translation<T, D> ) -> <Similarity<T, R, D> as Mul<Translation<T, D>>>::Output
*
operation. Read moresource§impl<T> Mul<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
*=
operation. Read moresource§impl<'b, T, R, const D: usize> MulAssign<&'b Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> MulAssign<&'b Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn mul_assign(&mut self, rhs: &'b Similarity<T, R, D>)
fn mul_assign(&mut self, rhs: &'b Similarity<T, R, D>)
*=
operation. Read moresource§impl<'b, T, R, const D: usize> MulAssign<&'b Translation<T, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T, R, const D: usize> MulAssign<&'b Translation<T, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn mul_assign(&mut self, rhs: &'b Translation<T, D>)
fn mul_assign(&mut self, rhs: &'b Translation<T, D>)
*=
operation. Read moresource§impl<'b, T> MulAssign<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> MulAssign<&'b Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn mul_assign(&mut self, rhs: Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: Isometry<T, R, D>)
*=
operation. Read moresource§impl<T, R, const D: usize> MulAssign<Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> MulAssign<Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn mul_assign(&mut self, rhs: Similarity<T, R, D>)
fn mul_assign(&mut self, rhs: Similarity<T, R, D>)
*=
operation. Read moresource§impl<T, R, const D: usize> MulAssign<Translation<T, D>> for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> MulAssign<Translation<T, D>> for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§fn mul_assign(&mut self, rhs: Translation<T, D>)
fn mul_assign(&mut self, rhs: Translation<T, D>)
*=
operation. Read moresource§impl<T> MulAssign<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> MulAssign<Unit<Complex<T>>> for Similarity<T, Unit<Complex<T>>, 2>where T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField, <T as SimdValue>::Element: SimdRealField,
source§impl<T, R, const D: usize> One for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> One for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: AbstractRotation<T, D>,
source§impl<T, R, const D: usize> PartialEq<Similarity<T, R, D>> for Similarity<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D> + PartialEq<R>,
impl<T, R, const D: usize> PartialEq<Similarity<T, R, D>> for Similarity<T, R, D>where T: SimdRealField, R: AbstractRotation<T, D> + PartialEq<R>,
source§fn eq(&self, right: &Similarity<T, R, D>) -> bool
fn eq(&self, right: &Similarity<T, R, D>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<T, R, const D: usize> RelativeEq<Similarity<T, R, D>> for Similarity<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + RelativeEq<R, Epsilon = <T as AbsDiffEq<T>>::Epsilon>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
impl<T, R, const D: usize> RelativeEq<Similarity<T, R, D>> for Similarity<T, R, D>where T: RealField, R: AbstractRotation<T, D> + RelativeEq<R, Epsilon = <T as AbsDiffEq<T>>::Epsilon>, <T as AbsDiffEq<T>>::Epsilon: Clone,
source§fn default_max_relative(
) -> <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon
fn default_max_relative( ) -> <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon
source§fn relative_eq(
&self,
other: &Similarity<T, R, D>,
epsilon: <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon,
max_relative: <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon
) -> bool
fn relative_eq( &self, other: &Similarity<T, R, D>, epsilon: <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon, max_relative: <Similarity<T, R, D> as AbsDiffEq<Similarity<T, R, D>>>::Epsilon ) -> bool
§fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon ) -> bool
RelativeEq::relative_eq
].source§impl<T, R, const D: usize> Serialize for Similarity<T, R, D>where
T: Scalar + Serialize,
R: Serialize,
DefaultAllocator: Allocator<T, Const<D>, Const<1>>,
<DefaultAllocator as Allocator<T, Const<D>, Const<1>>>::Buffer: Serialize,
impl<T, R, const D: usize> Serialize for Similarity<T, R, D>where T: Scalar + Serialize, R: Serialize, DefaultAllocator: Allocator<T, Const<D>, Const<1>>, <DefaultAllocator as Allocator<T, Const<D>, Const<1>>>::Buffer: Serialize,
source§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,
source§impl<T, R, const D: usize> SimdValue for Similarity<T, R, D>where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
R: SimdValue<SimdBool = <T as SimdValue>::SimdBool> + AbstractRotation<T, D>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
impl<T, R, const D: usize> SimdValue for Similarity<T, R, D>where T: SimdRealField, <T as SimdValue>::Element: SimdRealField, R: SimdValue<SimdBool = <T as SimdValue>::SimdBool> + AbstractRotation<T, D>, <R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
§type Element = Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>
type Element = Similarity<<T as SimdValue>::Element, <R as SimdValue>::Element, D>
§type SimdBool = <T as SimdValue>::SimdBool
type SimdBool = <T as SimdValue>::SimdBool
self
.source§fn splat(
val: <Similarity<T, R, D> as SimdValue>::Element
) -> Similarity<T, R, D>
fn splat( val: <Similarity<T, R, D> as SimdValue>::Element ) -> Similarity<T, R, D>
val
.source§fn extract(&self, i: usize) -> <Similarity<T, R, D> as SimdValue>::Element
fn extract(&self, i: usize) -> <Similarity<T, R, D> as SimdValue>::Element
self
. Read moresource§unsafe fn extract_unchecked(
&self,
i: usize
) -> <Similarity<T, R, D> as SimdValue>::Element
unsafe fn extract_unchecked( &self, i: usize ) -> <Similarity<T, R, D> as SimdValue>::Element
self
without bound-checking.source§unsafe fn replace_unchecked(
&mut self,
i: usize,
val: <Similarity<T, R, D> as SimdValue>::Element
)
unsafe fn replace_unchecked( &mut self, i: usize, val: <Similarity<T, R, D> as SimdValue>::Element )
self
by val
without bound-checking.source§fn select(
self,
cond: <Similarity<T, R, D> as SimdValue>::SimdBool,
other: Similarity<T, R, D>
) -> Similarity<T, R, D>
fn select( self, cond: <Similarity<T, R, D> as SimdValue>::SimdBool, other: Similarity<T, R, D> ) -> Similarity<T, R, D>
source§impl<T1, T2, R, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> for Similarity<T1, R, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1>> + DimMin<Const<D>, Output = Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output> + Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
impl<T1, T2, R, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> for Similarity<T1, R, D>where T1: RealField, T2: RealField + SupersetOf<T1>, R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>, Const<D>: DimNameAdd<Const<1>> + DimMin<Const<D>, Output = Const<D>>, DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output> + Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
source§fn to_superset(
&self
) -> Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>
fn to_superset( &self ) -> Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>
self
to the equivalent element of its superset.source§fn is_in_subset(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>
) -> bool
fn is_in_subset( m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer> ) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>
) -> Similarity<T1, R, D>
fn from_superset_unchecked( m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer> ) -> Similarity<T1, R, D>
self.to_superset
but without any property checks. Always succeeds.§fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresource§impl<T1, T2, R1, R2, const D: usize> SubsetOf<Similarity<T2, R2, D>> for Similarity<T1, R1, D>where
T1: RealField + SubsetOf<T2>,
T2: RealField + SupersetOf<T1>,
R1: AbstractRotation<T1, D> + SubsetOf<R2>,
R2: AbstractRotation<T2, D>,
impl<T1, T2, R1, R2, const D: usize> SubsetOf<Similarity<T2, R2, D>> for Similarity<T1, R1, D>where T1: RealField + SubsetOf<T2>, T2: RealField + SupersetOf<T1>, R1: AbstractRotation<T1, D> + SubsetOf<R2>, R2: AbstractRotation<T2, D>,
source§fn to_superset(&self) -> Similarity<T2, R2, D>
fn to_superset(&self) -> Similarity<T2, R2, D>
self
to the equivalent element of its superset.source§fn is_in_subset(sim: &Similarity<T2, R2, D>) -> bool
fn is_in_subset(sim: &Similarity<T2, R2, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(sim: &Similarity<T2, R2, D>) -> Similarity<T1, R1, D>
fn from_superset_unchecked(sim: &Similarity<T2, R2, D>) -> Similarity<T1, R1, D>
self.to_superset
but without any property checks. Always succeeds.§fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresource§impl<T1, T2, R, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Similarity<T1, R, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1>> + DimMin<Const<D>, Output = Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output> + Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
impl<T1, T2, R, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Similarity<T1, R, D>where T1: RealField, T2: RealField + SupersetOf<T1>, C: SuperTCategoryOf<TAffine>, R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>>, Const<D>: DimNameAdd<Const<1>> + DimMin<Const<D>, Output = Const<D>>, DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output> + Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,
source§fn to_superset(&self) -> Transform<T2, C, D>
fn to_superset(&self) -> Transform<T2, C, D>
self
to the equivalent element of its superset.source§fn is_in_subset(t: &Transform<T2, C, D>) -> bool
fn is_in_subset(t: &Transform<T2, C, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(t: &Transform<T2, C, D>) -> Similarity<T1, R, D>
fn from_superset_unchecked(t: &Transform<T2, C, D>) -> Similarity<T1, R, D>
self.to_superset
but without any property checks. Always succeeds.§fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read more