#[repr(C)]pub struct Isometry<T, R, const D: usize> {
pub rotation: R,
pub translation: Translation<T, D>,
}
Expand description
A direct isometry, i.e., a rotation followed by a translation (aka. a rigid-body motion).
This is also known as an element of a Special Euclidean (SE) group.
The Isometry
type can either represent a 2D or 3D isometry.
A 2D isometry is composed of:
- A translation part of type
Translation2
- A rotation part which can either be a
UnitComplex
or aRotation2
.
A 3D isometry is composed of:
- A translation part of type
Translation3
- A rotation part which can either be a
UnitQuaternion
or aRotation3
.
Note that instead of using the Isometry
type in your code directly, you should use one
of its aliases: Isometry2
, Isometry3
,
IsometryMatrix2
, IsometryMatrix3
. Though
keep in mind that all the documentation of all the methods of these aliases will also appears on
this page.
§Construction
- From a 2D vector and/or an angle
new
,translation
,rotation
… - From a 3D vector and/or an axis-angle
new
,translation
,rotation
… - From a 3D eye position and target point
look_at
,look_at_lh
,face_towards
… - From the translation and rotation parts
from_parts
…
§Transformation and composition
Note that transforming vectors and points can be done by multiplication, e.g., isometry * point
.
Composing an isometry with another transformation can also be done by multiplication or division.
- Transformation of a vector or a point
transform_vector
,inverse_transform_point
… - Inversion and in-place composition
inverse
,append_rotation_wrt_point_mut
… - Interpolation
lerp_slerp
…
§Conversion to a matrix
Fields§
§rotation: R
The pure rotational part of this isometry.
translation: Translation<T, D>
The pure translational part of this isometry.
Implementations§
source§impl<T, R, const D: usize> Isometry<T, R, D>where
T: Scalar,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> Isometry<T, R, D>where
T: Scalar,
R: AbstractRotation<T, D>,
§From the translation and rotation parts
sourcepub fn from_parts(
translation: Translation<T, D>,
rotation: R,
) -> Isometry<T, R, D>
pub fn from_parts( translation: Translation<T, D>, rotation: R, ) -> Isometry<T, R, D>
Creates a new isometry from its rotational and translational parts.
§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::PI);
let iso = Isometry3::from_parts(tra, rot);
assert_relative_eq!(iso * Point3::new(1.0, 2.0, 3.0), Point3::new(-1.0, 2.0, 0.0), epsilon = 1.0e-6);
source§impl<T, R, const D: usize> Isometry<T, R, D>
impl<T, R, const D: usize> Isometry<T, R, D>
§Inversion and in-place composition
sourcepub fn inverse(&self) -> Isometry<T, R, D>
pub fn inverse(&self) -> Isometry<T, R, D>
Inverts self
.
§Example
let iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let inv = iso.inverse();
let pt = Point2::new(1.0, 2.0);
assert_eq!(inv * (iso * pt), pt);
sourcepub fn inverse_mut(&mut self)
pub fn inverse_mut(&mut self)
Inverts self
in-place.
§Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let pt = Point2::new(1.0, 2.0);
let transformed_pt = iso * pt;
iso.inverse_mut();
assert_eq!(iso * transformed_pt, pt);
sourcepub fn inv_mul(&self, rhs: &Isometry<T, R, D>) -> Isometry<T, R, D>
pub fn inv_mul(&self, rhs: &Isometry<T, R, D>) -> Isometry<T, R, D>
Computes self.inverse() * rhs
in a more efficient way.
§Example
let mut iso1 = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let mut iso2 = Isometry2::new(Vector2::new(10.0, 20.0), f32::consts::FRAC_PI_4);
assert_eq!(iso1.inverse() * iso2, iso1.inv_mul(&iso2));
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.
§Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let tra = Translation2::new(3.0, 4.0);
// Same as `iso = tra * iso`.
iso.append_translation_mut(&tra);
assert_eq!(iso.translation, Translation2::new(4.0, 6.0));
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.
§Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::PI / 6.0);
let rot = UnitComplex::new(f32::consts::PI / 2.0);
// Same as `iso = rot * iso`.
iso.append_rotation_mut(&rot);
assert_relative_eq!(iso, Isometry2::new(Vector2::new(-2.0, 1.0), f32::consts::PI * 2.0 / 3.0), epsilon = 1.0e-6);
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.
§Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let rot = UnitComplex::new(f32::consts::FRAC_PI_2);
let pt = Point2::new(1.0, 0.0);
iso.append_rotation_wrt_point_mut(&rot, &pt);
assert_relative_eq!(iso * pt, Point2::new(-2.0, 0.0), epsilon = 1.0e-6);
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
.
§Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let rot = UnitComplex::new(f32::consts::FRAC_PI_2);
iso.append_rotation_wrt_center_mut(&rot);
// The translation part should not have changed.
assert_eq!(iso.translation.vector, Vector2::new(1.0, 2.0));
assert_eq!(iso.rotation, UnitComplex::new(f32::consts::PI));
source§impl<T, R, const D: usize> Isometry<T, R, D>
impl<T, R, const D: usize> Isometry<T, R, D>
§Transformation of a vector or a point
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 isometry.
This is the same as the multiplication self * pt
.
§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.transform_point(&Point3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Point3::new(3.0, 2.0, 2.0), epsilon = 1.0e-6);
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 isometry, ignoring the translation component of the isometry.
This is the same as the multiplication self * v
.
§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.transform_vector(&Vector3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Vector3::new(3.0, 2.0, -1.0), epsilon = 1.0e-6);
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 isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.
§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.inverse_transform_point(&Point3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Point3::new(0.0, 2.0, 1.0), epsilon = 1.0e-6);
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 isometry, ignoring the translation component of the isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.
§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.inverse_transform_vector(&Vector3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Vector3::new(-3.0, 2.0, 1.0), epsilon = 1.0e-6);
sourcepub fn inverse_transform_unit_vector(
&self,
v: &Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>,
) -> Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>
pub fn inverse_transform_unit_vector( &self, v: &Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>, ) -> Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>
Transform the given unit vector by the inverse of this isometry, ignoring the translation component of the isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.
§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::z() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.inverse_transform_unit_vector(&Vector3::x_axis());
assert_relative_eq!(transformed_point, -Vector3::y_axis(), epsilon = 1.0e-6);
source§impl<T, R, const D: usize> Isometry<T, R, D>where
T: SimdRealField,
impl<T, R, const D: usize> Isometry<T, R, D>where
T: SimdRealField,
§Conversion to a matrix
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 isometry into its equivalent homogeneous transformation matrix.
This is the same as self.to_matrix()
.
§Example
let iso = Isometry2::new(Vector2::new(10.0, 20.0), f32::consts::FRAC_PI_6);
let expected = Matrix3::new(0.8660254, -0.5, 10.0,
0.5, 0.8660254, 20.0,
0.0, 0.0, 1.0);
assert_relative_eq!(iso.to_homogeneous(), expected, epsilon = 1.0e-6);
sourcepub fn to_matrix(
&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_matrix(
&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 isometry into its equivalent homogeneous transformation matrix.
This is the same as self.to_homogeneous()
.
§Example
let iso = Isometry2::new(Vector2::new(10.0, 20.0), f32::consts::FRAC_PI_6);
let expected = Matrix3::new(0.8660254, -0.5, 10.0,
0.5, 0.8660254, 20.0,
0.0, 0.0, 1.0);
assert_relative_eq!(iso.to_matrix(), expected, epsilon = 1.0e-6);
source§impl<T, R, const D: usize> Isometry<T, R, D>
impl<T, R, const D: usize> Isometry<T, R, D>
sourcepub fn identity() -> Isometry<T, R, D>
pub fn identity() -> Isometry<T, R, D>
Creates a new identity isometry.
§Example
let iso = Isometry2::identity();
let pt = Point2::new(1.0, 2.0);
assert_eq!(iso * pt, pt);
let iso = Isometry3::identity();
let pt = Point3::new(1.0, 2.0, 3.0);
assert_eq!(iso * pt, pt);
sourcepub fn rotation_wrt_point(r: R, p: OPoint<T, Const<D>>) -> Isometry<T, R, D>
pub fn rotation_wrt_point(r: R, p: OPoint<T, Const<D>>) -> Isometry<T, R, D>
The isometry that applies the rotation r
with its axis passing through the point p
.
This effectively lets p
invariant.
§Example
let rot = UnitComplex::new(f32::consts::PI);
let pt = Point2::new(1.0, 0.0);
let iso = Isometry2::rotation_wrt_point(rot, pt);
assert_eq!(iso * pt, pt); // The rotation center is not affected.
assert_relative_eq!(iso * Point2::new(1.0, 2.0), Point2::new(1.0, -2.0), epsilon = 1.0e-6);
source§impl<T> Isometry<T, Rotation<T, 2>, 2>
impl<T> Isometry<T, Rotation<T, 2>, 2>
§Construction from a 2D vector and/or a rotation angle
sourcepub fn new(
translation: Matrix<T, Const<2>, Const<1>, ArrayStorage<T, 2, 1>>,
angle: T,
) -> Isometry<T, Rotation<T, 2>, 2>
pub fn new( translation: Matrix<T, Const<2>, Const<1>, ArrayStorage<T, 2, 1>>, angle: T, ) -> Isometry<T, Rotation<T, 2>, 2>
Creates a new 2D isometry from a translation and a rotation angle.
Its rotational part is represented as a 2x2 rotation matrix.
§Example
let iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
assert_eq!(iso * Point2::new(3.0, 4.0), Point2::new(-3.0, 5.0));
sourcepub fn translation(x: T, y: T) -> Isometry<T, Rotation<T, 2>, 2>
pub fn translation(x: T, y: T) -> Isometry<T, Rotation<T, 2>, 2>
Creates a new isometry from the given translation coordinates.
sourcepub fn rotation(angle: T) -> Isometry<T, Rotation<T, 2>, 2>
pub fn rotation(angle: T) -> Isometry<T, Rotation<T, 2>, 2>
Creates a new isometry from the given rotation angle.
source§impl<T> Isometry<T, Unit<Complex<T>>, 2>
impl<T> Isometry<T, Unit<Complex<T>>, 2>
sourcepub fn new(
translation: Matrix<T, Const<2>, Const<1>, ArrayStorage<T, 2, 1>>,
angle: T,
) -> Isometry<T, Unit<Complex<T>>, 2>
pub fn new( translation: Matrix<T, Const<2>, Const<1>, ArrayStorage<T, 2, 1>>, angle: T, ) -> Isometry<T, Unit<Complex<T>>, 2>
Creates a new 2D isometry from a translation and a rotation angle.
Its rotational part is represented as an unit complex number.
§Example
let iso = IsometryMatrix2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
assert_eq!(iso * Point2::new(3.0, 4.0), Point2::new(-3.0, 5.0));
sourcepub fn translation(x: T, y: T) -> Isometry<T, Unit<Complex<T>>, 2>
pub fn translation(x: T, y: T) -> Isometry<T, Unit<Complex<T>>, 2>
Creates a new isometry from the given translation coordinates.
sourcepub fn rotation(angle: T) -> Isometry<T, Unit<Complex<T>>, 2>
pub fn rotation(angle: T) -> Isometry<T, Unit<Complex<T>>, 2>
Creates a new isometry from the given rotation angle.
source§impl<T> Isometry<T, Unit<Quaternion<T>>, 3>
impl<T> Isometry<T, Unit<Quaternion<T>>, 3>
§Construction from a 3D vector and/or an axis-angle
sourcepub fn new(
translation: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Unit<Quaternion<T>>, 3>
pub fn new( translation: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>
Creates a new isometry from a translation and a rotation axis-angle.
§Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
// Point and vector being transformed in the tests.
let pt = Point3::new(4.0, 5.0, 6.0);
let vec = Vector3::new(4.0, 5.0, 6.0);
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
// Isometry with its rotation part represented as a Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
sourcepub fn translation(x: T, y: T, z: T) -> Isometry<T, Unit<Quaternion<T>>, 3>
pub fn translation(x: T, y: T, z: T) -> Isometry<T, Unit<Quaternion<T>>, 3>
Creates a new isometry from the given translation coordinates.
sourcepub fn rotation(
axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Unit<Quaternion<T>>, 3>
pub fn rotation( axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>
Creates a new isometry from the given rotation angle.
sourcepub fn cast<To>(self) -> Isometry<To, Unit<Quaternion<To>>, 3>where
To: Scalar,
Isometry<To, Unit<Quaternion<To>>, 3>: SupersetOf<Isometry<T, Unit<Quaternion<T>>, 3>>,
pub fn cast<To>(self) -> Isometry<To, Unit<Quaternion<To>>, 3>where
To: Scalar,
Isometry<To, Unit<Quaternion<To>>, 3>: SupersetOf<Isometry<T, Unit<Quaternion<T>>, 3>>,
Cast the components of self
to another type.
§Example
let iso = Isometry3::<f64>::identity();
let iso2 = iso.cast::<f32>();
assert_eq!(iso2, Isometry3::<f32>::identity());
source§impl<T> Isometry<T, Rotation<T, 3>, 3>
impl<T> Isometry<T, Rotation<T, 3>, 3>
sourcepub fn new(
translation: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Rotation<T, 3>, 3>
pub fn new( translation: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>
Creates a new isometry from a translation and a rotation axis-angle.
§Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
// Point and vector being transformed in the tests.
let pt = Point3::new(4.0, 5.0, 6.0);
let vec = Vector3::new(4.0, 5.0, 6.0);
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
// Isometry with its rotation part represented as a Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
sourcepub fn translation(x: T, y: T, z: T) -> Isometry<T, Rotation<T, 3>, 3>
pub fn translation(x: T, y: T, z: T) -> Isometry<T, Rotation<T, 3>, 3>
Creates a new isometry from the given translation coordinates.
sourcepub fn rotation(
axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Rotation<T, 3>, 3>
pub fn rotation( axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>
Creates a new isometry from the given rotation angle.
source§impl<T> Isometry<T, Unit<Quaternion<T>>, 3>
impl<T> Isometry<T, Unit<Quaternion<T>>, 3>
§Construction from a 3D eye position and target point
sourcepub fn face_towards(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Unit<Quaternion<T>>, 3>
pub fn face_towards( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>
Creates an isometry that corresponds to the local frame of an observer standing at the
point eye
and looking toward target
.
It maps the z
axis to the view direction target - eye
and the origin to the eye
.
§Arguments
- eye - The observer position.
- target - The target position.
- up - Vertical direction. The only requirement of this parameter is to not be collinear
to
eye - at
. Non-collinearity is not checked.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
sourcepub fn new_observer_frame(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Unit<Quaternion<T>>, 3>
👎Deprecated: renamed to face_towards
pub fn new_observer_frame( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>
face_towards
Deprecated: Use Isometry::face_towards
instead.
sourcepub fn look_at_rh(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Unit<Quaternion<T>>, 3>
pub fn look_at_rh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>
Builds a right-handed look-at view matrix.
It maps the view direction target - eye
to the negative z
axis to and the eye
to the origin.
This conforms to the common notion of right handed camera look-at view matrix from
the computer graphics community, i.e. the camera is assumed to look toward its local -z
axis.
§Arguments
- eye - The eye position.
- target - The target position.
- up - A vector approximately aligned with required the vertical axis. The only
requirement of this parameter is to not be collinear to
target - eye
.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
sourcepub fn look_at_lh(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Unit<Quaternion<T>>, 3>
pub fn look_at_lh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>
Builds a left-handed look-at view matrix.
It maps the view direction target - eye
to the positive z
axis and the eye
to the origin.
This conforms to the common notion of right handed camera look-at view matrix from
the computer graphics community, i.e. the camera is assumed to look toward its local z
axis.
§Arguments
- eye - The eye position.
- target - The target position.
- up - A vector approximately aligned with required the vertical axis. The only
requirement of this parameter is to not be collinear to
target - eye
.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());
source§impl<T> Isometry<T, Rotation<T, 3>, 3>
impl<T> Isometry<T, Rotation<T, 3>, 3>
sourcepub fn face_towards(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Rotation<T, 3>, 3>
pub fn face_towards( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>
Creates an isometry that corresponds to the local frame of an observer standing at the
point eye
and looking toward target
.
It maps the z
axis to the view direction target - eye
and the origin to the eye
.
§Arguments
- eye - The observer position.
- target - The target position.
- up - Vertical direction. The only requirement of this parameter is to not be collinear
to
eye - at
. Non-collinearity is not checked.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
sourcepub fn new_observer_frame(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Rotation<T, 3>, 3>
👎Deprecated: renamed to face_towards
pub fn new_observer_frame( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>
face_towards
Deprecated: Use Isometry::face_towards
instead.
sourcepub fn look_at_rh(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Rotation<T, 3>, 3>
pub fn look_at_rh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>
Builds a right-handed look-at view matrix.
It maps the view direction target - eye
to the negative z
axis to and the eye
to the origin.
This conforms to the common notion of right handed camera look-at view matrix from
the computer graphics community, i.e. the camera is assumed to look toward its local -z
axis.
§Arguments
- eye - The eye position.
- target - The target position.
- up - A vector approximately aligned with required the vertical axis. The only
requirement of this parameter is to not be collinear to
target - eye
.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
sourcepub fn look_at_lh(
eye: &OPoint<T, Const<3>>,
target: &OPoint<T, Const<3>>,
up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>,
) -> Isometry<T, Rotation<T, 3>, 3>
pub fn look_at_lh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>
Builds a left-handed look-at view matrix.
It maps the view direction target - eye
to the positive z
axis and the eye
to the origin.
This conforms to the common notion of right handed camera look-at view matrix from
the computer graphics community, i.e. the camera is assumed to look toward its local z
axis.
§Arguments
- eye - The eye position.
- target - The target position.
- up - A vector approximately aligned with required the vertical axis. The only
requirement of this parameter is to not be collinear to
target - eye
.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());
source§impl<T> Isometry<T, Unit<Quaternion<T>>, 3>where
T: SimdRealField,
impl<T> Isometry<T, Unit<Quaternion<T>>, 3>where
T: SimdRealField,
§Interpolation
sourcepub fn lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3>,
t: T,
) -> Isometry<T, Unit<Quaternion<T>>, 3>where
T: RealField,
pub fn lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3>,
t: T,
) -> Isometry<T, Unit<Quaternion<T>>, 3>where
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
§Examples:
let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = UnitQuaternion::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = Isometry3::from_parts(t1, q1);
let iso2 = Isometry3::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
sourcepub fn try_lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3>,
t: T,
epsilon: T,
) -> Option<Isometry<T, Unit<Quaternion<T>>, 3>>where
T: RealField,
pub fn try_lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3>,
t: T,
epsilon: T,
) -> Option<Isometry<T, Unit<Quaternion<T>>, 3>>where
T: RealField,
Attempts to interpolate between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Returns None
if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined).
§Examples:
let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = UnitQuaternion::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = Isometry3::from_parts(t1, q1);
let iso2 = Isometry3::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
source§impl<T> Isometry<T, Rotation<T, 3>, 3>where
T: SimdRealField,
impl<T> Isometry<T, Rotation<T, 3>, 3>where
T: SimdRealField,
sourcepub fn lerp_slerp(
&self,
other: &Isometry<T, Rotation<T, 3>, 3>,
t: T,
) -> Isometry<T, Rotation<T, 3>, 3>where
T: RealField,
pub fn lerp_slerp(
&self,
other: &Isometry<T, Rotation<T, 3>, 3>,
t: T,
) -> Isometry<T, Rotation<T, 3>, 3>where
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
§Examples:
let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = Rotation3::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = Rotation3::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = IsometryMatrix3::from_parts(t1, q1);
let iso2 = IsometryMatrix3::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
sourcepub fn try_lerp_slerp(
&self,
other: &Isometry<T, Rotation<T, 3>, 3>,
t: T,
epsilon: T,
) -> Option<Isometry<T, Rotation<T, 3>, 3>>where
T: RealField,
pub fn try_lerp_slerp(
&self,
other: &Isometry<T, Rotation<T, 3>, 3>,
t: T,
epsilon: T,
) -> Option<Isometry<T, Rotation<T, 3>, 3>>where
T: RealField,
Attempts to interpolate between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Returns None
if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined).
§Examples:
let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = Rotation3::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = Rotation3::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = IsometryMatrix3::from_parts(t1, q1);
let iso2 = IsometryMatrix3::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
source§impl<T> Isometry<T, Unit<Complex<T>>, 2>where
T: SimdRealField,
impl<T> Isometry<T, Unit<Complex<T>>, 2>where
T: SimdRealField,
sourcepub fn lerp_slerp(
&self,
other: &Isometry<T, Unit<Complex<T>>, 2>,
t: T,
) -> Isometry<T, Unit<Complex<T>>, 2>where
T: RealField,
pub fn lerp_slerp(
&self,
other: &Isometry<T, Unit<Complex<T>>, 2>,
t: T,
) -> Isometry<T, Unit<Complex<T>>, 2>where
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
§Examples:
let t1 = Translation2::new(1.0, 2.0);
let t2 = Translation2::new(4.0, 8.0);
let q1 = UnitComplex::new(std::f32::consts::FRAC_PI_4);
let q2 = UnitComplex::new(-std::f32::consts::PI);
let iso1 = Isometry2::from_parts(t1, q1);
let iso2 = Isometry2::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector2::new(2.0, 4.0));
assert_relative_eq!(iso3.rotation.angle(), std::f32::consts::FRAC_PI_2);
source§impl<T> Isometry<T, Rotation<T, 2>, 2>where
T: SimdRealField,
impl<T> Isometry<T, Rotation<T, 2>, 2>where
T: SimdRealField,
sourcepub fn lerp_slerp(
&self,
other: &Isometry<T, Rotation<T, 2>, 2>,
t: T,
) -> Isometry<T, Rotation<T, 2>, 2>where
T: RealField,
pub fn lerp_slerp(
&self,
other: &Isometry<T, Rotation<T, 2>, 2>,
t: T,
) -> Isometry<T, Rotation<T, 2>, 2>where
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
§Examples:
let t1 = Translation2::new(1.0, 2.0);
let t2 = Translation2::new(4.0, 8.0);
let q1 = Rotation2::new(std::f32::consts::FRAC_PI_4);
let q2 = Rotation2::new(-std::f32::consts::PI);
let iso1 = IsometryMatrix2::from_parts(t1, q1);
let iso2 = IsometryMatrix2::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector2::new(2.0, 4.0));
assert_relative_eq!(iso3.rotation.angle(), std::f32::consts::FRAC_PI_2);
Trait Implementations§
source§impl<T, R, const D: usize> AbsDiffEq for Isometry<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + AbsDiffEq<Epsilon = <T as AbsDiffEq>::Epsilon>,
<T as AbsDiffEq>::Epsilon: Clone,
impl<T, R, const D: usize> AbsDiffEq for Isometry<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + AbsDiffEq<Epsilon = <T as AbsDiffEq>::Epsilon>,
<T as AbsDiffEq>::Epsilon: Clone,
source§fn default_epsilon() -> <Isometry<T, R, D> as AbsDiffEq>::Epsilon
fn default_epsilon() -> <Isometry<T, R, D> as AbsDiffEq>::Epsilon
source§fn abs_diff_eq(
&self,
other: &Isometry<T, R, D>,
epsilon: <Isometry<T, R, D> as AbsDiffEq>::Epsilon,
) -> bool
fn abs_diff_eq( &self, other: &Isometry<T, R, D>, epsilon: <Isometry<T, R, D> as AbsDiffEq>::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<'a, 'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>
impl<'a, 'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>
source§impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<'a, 'b, T, const D: usize> Div<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>
impl<'a, 'b, T, const D: usize> Div<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>
source§impl<'a, 'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>
impl<'a, 'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.source§fn div(
self,
rhs: &'b Similarity<T, R, D>,
) -> <&'a Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
fn div( self, rhs: &'b Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
/
operation. Read moresource§impl<'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for Isometry<T, R, D>
impl<'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.source§fn div(
self,
rhs: &'b Similarity<T, R, D>,
) -> <Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
fn div( self, rhs: &'b Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
/
operation. Read moresource§impl<'a, 'b, T> Div<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, 'b, T> Div<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: &'b Unit<DualQuaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<DualQuaternion<T>>>>::Output
fn div( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<DualQuaternion<T>>>>::Output
/
operation. Read moresource§impl<'b, T> Div<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<'b, T> Div<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: &'b Unit<DualQuaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<DualQuaternion<T>>>>::Output
fn div( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<DualQuaternion<T>>>>::Output
/
operation. Read moresource§impl<'a, 'b, T> Div<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, 'b, T> Div<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
rhs: &'b Unit<Quaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<Quaternion<T>>>>::Output
fn div( self, rhs: &'b Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<Quaternion<T>>>>::Output
/
operation. Read moresource§impl<'b, T> Div<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<'b, T> Div<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
rhs: &'b Unit<Quaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<Quaternion<T>>>>::Output
fn div( self, rhs: &'b Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<Quaternion<T>>>>::Output
/
operation. Read moresource§impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn div( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
/
operation. Read moresource§impl<'a, T, R, const D: usize> Div<Similarity<T, R, D>> for &'a Isometry<T, R, D>
impl<'a, T, R, const D: usize> Div<Similarity<T, R, D>> for &'a Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.source§fn div(
self,
rhs: Similarity<T, R, D>,
) -> <&'a Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
fn div( self, rhs: Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
/
operation. Read moresource§impl<T, R, const D: usize> Div<Similarity<T, R, D>> for Isometry<T, R, D>
impl<T, R, const D: usize> Div<Similarity<T, R, D>> for Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.source§fn div(
self,
rhs: Similarity<T, R, D>,
) -> <Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
fn div( self, rhs: Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
/
operation. Read moresource§impl<'a, T> Div<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, T> Div<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: Unit<DualQuaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<DualQuaternion<T>>>>::Output
fn div( self, rhs: Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<DualQuaternion<T>>>>::Output
/
operation. Read moresource§impl<T> Div<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<T> Div<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
/
operator.source§fn div(
self,
rhs: Unit<DualQuaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<DualQuaternion<T>>>>::Output
fn div( self, rhs: Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<DualQuaternion<T>>>>::Output
/
operation. Read moresource§impl<'a, T> Div<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, T> Div<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
rhs: Unit<Quaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<Quaternion<T>>>>::Output
fn div( self, rhs: Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<Quaternion<T>>>>::Output
/
operation. Read moresource§impl<T> Div<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<T> Div<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.source§fn div(
self,
rhs: Unit<Quaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<Quaternion<T>>>>::Output
fn div( self, rhs: Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<Quaternion<T>>>>::Output
/
operation. Read moresource§impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>
impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Isometry<T, R, 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 Isometry<T, R, D>> for Similarity<T, R, D>
impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, 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> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<'b, T> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
source§fn div_assign(&mut self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>)
fn div_assign(&mut self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>)
/=
operation. Read moresource§impl<'b, T, const D: usize> DivAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> DivAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn div_assign(&mut self, rhs: &'b Rotation<T, D>)
fn div_assign(&mut self, rhs: &'b Rotation<T, D>)
/=
operation. Read moresource§impl<'b, T> DivAssign<&'b Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> DivAssign<&'b Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§impl<'b, T> DivAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> DivAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn div_assign(&mut self, rhs: &'b Unit<Quaternion<T>>)
fn div_assign(&mut self, rhs: &'b Unit<Quaternion<T>>)
/=
operation. Read moresource§impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D>
impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, 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> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<T> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
source§fn div_assign(&mut self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>)
fn div_assign(&mut self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>)
/=
operation. Read moresource§impl<T, const D: usize> DivAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> DivAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn div_assign(&mut self, rhs: Rotation<T, D>)
fn div_assign(&mut self, rhs: Rotation<T, D>)
/=
operation. Read moresource§impl<T> DivAssign<Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> DivAssign<Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§impl<T> DivAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> DivAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn div_assign(&mut self, rhs: Unit<Quaternion<T>>)
fn div_assign(&mut self, rhs: Unit<Quaternion<T>>)
/=
operation. Read moresource§impl<T, R, const D: usize> DivAssign for Isometry<T, R, D>
impl<T, R, const D: usize> DivAssign for Isometry<T, R, 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> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Isometry<T, R, D>
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Isometry<T, R, D>
source§impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Isometry<T, R, D>
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Isometry<T, R, D>
source§impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Isometry<T, R, D>
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Isometry<T, R, D>
source§impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Isometry<T, R, D>
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Isometry<T, R, D>
source§impl<T, R, const D: usize> From<[T; D]> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> From<[T; D]> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
source§impl<T, R, const D: usize> From<Isometry<T, R, D>> for 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
T: SimdRealField,
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>,
impl<T, R, const D: usize> From<Isometry<T, R, D>> for 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
T: SimdRealField,
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>,
source§fn from(
iso: Isometry<T, R, D>,
) -> 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>
fn from( iso: Isometry<T, R, D>, ) -> 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>
source§impl<T> From<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<T> From<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
source§fn from(iso: Isometry<T, Unit<Quaternion<T>>, 3>) -> Unit<DualQuaternion<T>>
fn from(iso: Isometry<T, Unit<Quaternion<T>>, 3>) -> Unit<DualQuaternion<T>>
source§impl<T, R, const D: usize> From<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> From<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
source§impl<T, R, const D: usize> From<OPoint<T, Const<D>>> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> From<OPoint<T, Const<D>>> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
source§impl<T, R, const D: usize> From<Translation<T, D>> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
impl<T, R, const D: usize> From<Translation<T, D>> for Isometry<T, R, D>where
T: SimdRealField,
R: AbstractRotation<T, D>,
source§fn from(tra: Translation<T, D>) -> Isometry<T, R, D>
fn from(tra: Translation<T, D>) -> Isometry<T, R, D>
source§impl<T> From<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<T> From<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
source§fn from(dq: Unit<DualQuaternion<T>>) -> Isometry<T, Unit<Quaternion<T>>, 3>
fn from(dq: Unit<DualQuaternion<T>>) -> Isometry<T, Unit<Quaternion<T>>, 3>
source§impl IsometryOps<AutoSimd<[f32; 4]>> for Isometry<AutoSimd<[f32; 4]>, Unit<Complex<AutoSimd<[f32; 4]>>>, 2>
impl IsometryOps<AutoSimd<[f32; 4]>> for Isometry<AutoSimd<[f32; 4]>, Unit<Complex<AutoSimd<[f32; 4]>>>, 2>
source§fn absolute_transform_vector(
&self,
v: &Matrix<AutoSimd<[f32; 4]>, Const<2>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 2, 1>>,
) -> Matrix<AutoSimd<[f32; 4]>, Const<2>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 2, 1>>
fn absolute_transform_vector( &self, v: &Matrix<AutoSimd<[f32; 4]>, Const<2>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 2, 1>>, ) -> Matrix<AutoSimd<[f32; 4]>, Const<2>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 2, 1>>
self
.source§impl IsometryOps<f32> for Isometry<f32, Unit<Complex<f32>>, 2>
impl IsometryOps<f32> for Isometry<f32, Unit<Complex<f32>>, 2>
source§fn absolute_transform_vector(
&self,
v: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
) -> Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
fn absolute_transform_vector( &self, v: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, ) -> Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
self
.source§impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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 Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<'a, 'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>
impl<'a, 'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>
source§impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>
impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>
source§impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>
source§impl<'a, 'b, T, const D: usize> Mul<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>
impl<'a, 'b, T, const D: usize> Mul<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>
source§impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
rhs: &'b Similarity<T, R, D>,
) -> <&'a Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
fn mul( self, rhs: &'b Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
*
operation. Read moresource§impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D>
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
rhs: &'b Similarity<T, R, D>,
) -> <Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
fn mul( self, rhs: &'b Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
*
operation. Read moresource§impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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 Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
fn mul( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
*
operation. Read moresource§impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
fn mul( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
*
operation. Read moresource§impl<'a, 'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>
impl<'a, 'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>
source§impl<'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>
impl<'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>
source§impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
rhs: &'b Unit<Quaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<Quaternion<T>>>>::Output
fn mul( self, rhs: &'b Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<Quaternion<T>>>>::Output
*
operation. Read moresource§impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
rhs: &'b Unit<Quaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<Quaternion<T>>>>::Output
fn mul( self, rhs: &'b Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<Quaternion<T>>>>::Output
*
operation. Read moresource§impl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <&'a Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3>,
) -> <Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
fn mul( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output
*
operation. Read moresource§impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>
impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>
source§impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>
source§impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D>
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
rhs: Similarity<T, R, D>,
) -> <&'a Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
fn mul( self, rhs: Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
*
operation. Read moresource§impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D>
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D>
§type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.source§fn mul(
self,
rhs: Similarity<T, R, D>,
) -> <Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
fn mul( self, rhs: Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
*
operation. Read moresource§impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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 Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + 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>,
source§impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: Unit<DualQuaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<DualQuaternion<T>>>>::Output
fn mul( self, rhs: Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<DualQuaternion<T>>>>::Output
*
operation. Read moresource§impl<T> Mul<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<T> Mul<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
*
operator.source§fn mul(
self,
rhs: Unit<DualQuaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<DualQuaternion<T>>>>::Output
fn mul( self, rhs: Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<DualQuaternion<T>>>>::Output
*
operation. Read moresource§impl<'a, T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>
impl<'a, T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>
source§impl<T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>
impl<T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>
source§impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
rhs: Unit<Quaternion<T>>,
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<Quaternion<T>>>>::Output
fn mul( self, rhs: Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<Quaternion<T>>>>::Output
*
operation. Read moresource§impl<T> Mul<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
impl<T> Mul<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>
§type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.source§fn mul(
self,
rhs: Unit<Quaternion<T>>,
) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<Quaternion<T>>>>::Output
fn mul( self, rhs: Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<Quaternion<T>>>>::Output
*
operation. Read moresource§impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>
impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Isometry<T, R, 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 Isometry<T, R, D>> for Similarity<T, R, D>
impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, 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, C, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<Const<1>>,
C: TCategory,
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> MulAssign<&'b Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<Const<1>>,
C: TCategory,
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>,
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> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<'b, T> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
source§fn mul_assign(&mut self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>)
fn mul_assign(&mut self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>)
*=
operation. Read moresource§impl<'b, T, const D: usize> MulAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> MulAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn mul_assign(&mut self, rhs: &'b Rotation<T, D>)
fn mul_assign(&mut self, rhs: &'b Rotation<T, D>)
*=
operation. Read moresource§impl<'b, T, R, const D: usize> MulAssign<&'b Translation<T, D>> for Isometry<T, R, D>
impl<'b, T, R, const D: usize> MulAssign<&'b Translation<T, D>> for Isometry<T, R, 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 Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> MulAssign<&'b Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§impl<'b, T> MulAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> MulAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn mul_assign(&mut self, rhs: &'b Unit<Quaternion<T>>)
fn mul_assign(&mut self, rhs: &'b Unit<Quaternion<T>>)
*=
operation. Read moresource§impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D>
impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, 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, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<Const<1>>,
C: TCategory,
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> MulAssign<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<Const<1>>,
C: TCategory,
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>,
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> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
impl<T> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>
source§fn mul_assign(&mut self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>)
fn mul_assign(&mut self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>)
*=
operation. Read moresource§impl<T, const D: usize> MulAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> MulAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn mul_assign(&mut self, rhs: Rotation<T, D>)
fn mul_assign(&mut self, rhs: Rotation<T, D>)
*=
operation. Read moresource§impl<T, R, const D: usize> MulAssign<Translation<T, D>> for Isometry<T, R, D>
impl<T, R, const D: usize> MulAssign<Translation<T, D>> for Isometry<T, R, 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 Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> MulAssign<Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§impl<T> MulAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> MulAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
source§fn mul_assign(&mut self, rhs: Unit<Quaternion<T>>)
fn mul_assign(&mut self, rhs: Unit<Quaternion<T>>)
*=
operation. Read moresource§impl<T, R, const D: usize> MulAssign for Isometry<T, R, D>
impl<T, R, const D: usize> MulAssign for Isometry<T, R, 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> PartialEq for Isometry<T, R, D>
impl<T, R, const D: usize> PartialEq for Isometry<T, R, D>
source§impl<T, R, const D: usize> RelativeEq for Isometry<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + RelativeEq<Epsilon = <T as AbsDiffEq>::Epsilon>,
<T as AbsDiffEq>::Epsilon: Clone,
impl<T, R, const D: usize> RelativeEq for Isometry<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + RelativeEq<Epsilon = <T as AbsDiffEq>::Epsilon>,
<T as AbsDiffEq>::Epsilon: Clone,
source§fn default_max_relative() -> <Isometry<T, R, D> as AbsDiffEq>::Epsilon
fn default_max_relative() -> <Isometry<T, R, D> as AbsDiffEq>::Epsilon
source§fn relative_eq(
&self,
other: &Isometry<T, R, D>,
epsilon: <Isometry<T, R, D> as AbsDiffEq>::Epsilon,
max_relative: <Isometry<T, R, D> as AbsDiffEq>::Epsilon,
) -> bool
fn relative_eq( &self, other: &Isometry<T, R, D>, epsilon: <Isometry<T, R, D> as AbsDiffEq>::Epsilon, max_relative: <Isometry<T, R, D> as AbsDiffEq>::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> SimdValue for Isometry<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 Isometry<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 = Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>
type Element = Isometry<<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: <Isometry<T, R, D> as SimdValue>::Element) -> Isometry<T, R, D>
fn splat(val: <Isometry<T, R, D> as SimdValue>::Element) -> Isometry<T, R, D>
val
.source§fn extract(&self, i: usize) -> <Isometry<T, R, D> as SimdValue>::Element
fn extract(&self, i: usize) -> <Isometry<T, R, D> as SimdValue>::Element
self
. Read moresource§unsafe fn extract_unchecked(
&self,
i: usize,
) -> <Isometry<T, R, D> as SimdValue>::Element
unsafe fn extract_unchecked( &self, i: usize, ) -> <Isometry<T, R, D> as SimdValue>::Element
self
without bound-checking.source§unsafe fn replace_unchecked(
&mut self,
i: usize,
val: <Isometry<T, R, D> as SimdValue>::Element,
)
unsafe fn replace_unchecked( &mut self, i: usize, val: <Isometry<T, R, D> as SimdValue>::Element, )
self
by val
without bound-checking.source§fn select(
self,
cond: <Isometry<T, R, D> as SimdValue>::SimdBool,
other: Isometry<T, R, D>,
) -> Isometry<T, R, D>
fn select( self, cond: <Isometry<T, R, D> as SimdValue>::SimdBool, other: Isometry<T, R, D>, ) -> Isometry<T, R, D>
source§impl<T1, T2, R> SubsetOf<Isometry<T2, R, 2>> for Unit<Complex<T1>>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 2> + SupersetOf<Unit<Complex<T1>>>,
impl<T1, T2, R> SubsetOf<Isometry<T2, R, 2>> for Unit<Complex<T1>>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 2> + SupersetOf<Unit<Complex<T1>>>,
source§fn to_superset(&self) -> Isometry<T2, R, 2>
fn to_superset(&self) -> Isometry<T2, R, 2>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<T2, R, 2>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, 2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(iso: &Isometry<T2, R, 2>) -> Unit<Complex<T1>>
fn from_superset_unchecked(iso: &Isometry<T2, R, 2>) -> Unit<Complex<T1>>
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> SubsetOf<Isometry<T2, R, 3>> for Unit<Quaternion<T1>>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 3> + SupersetOf<Unit<Quaternion<T1>>>,
impl<T1, T2, R> SubsetOf<Isometry<T2, R, 3>> for Unit<Quaternion<T1>>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 3> + SupersetOf<Unit<Quaternion<T1>>>,
source§fn to_superset(&self) -> Isometry<T2, R, 3>
fn to_superset(&self) -> Isometry<T2, R, 3>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<T2, R, 3>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, 3>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(iso: &Isometry<T2, R, 3>) -> Unit<Quaternion<T1>>
fn from_superset_unchecked(iso: &Isometry<T2, R, 3>) -> Unit<Quaternion<T1>>
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, const D: usize> SubsetOf<Isometry<T2, R, D>> for Rotation<T1, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, D> + SupersetOf<Rotation<T1, D>>,
impl<T1, T2, R, const D: usize> SubsetOf<Isometry<T2, R, D>> for Rotation<T1, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, D> + SupersetOf<Rotation<T1, D>>,
source§fn to_superset(&self) -> Isometry<T2, R, D>
fn to_superset(&self) -> Isometry<T2, R, D>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Rotation<T1, D>
fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Rotation<T1, 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, const D: usize> SubsetOf<Isometry<T2, R, D>> for Translation<T1, D>
impl<T1, T2, R, const D: usize> SubsetOf<Isometry<T2, R, D>> for Translation<T1, D>
source§fn to_superset(&self) -> Isometry<T2, R, D>
fn to_superset(&self) -> Isometry<T2, R, D>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Translation<T1, D>
fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Translation<T1, 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<Isometry<T2, R2, D>> for Isometry<T1, R1, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R1: AbstractRotation<T1, D> + SubsetOf<R2>,
R2: AbstractRotation<T2, D>,
impl<T1, T2, R1, R2, const D: usize> SubsetOf<Isometry<T2, R2, D>> for Isometry<T1, R1, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R1: AbstractRotation<T1, D> + SubsetOf<R2>,
R2: AbstractRotation<T2, D>,
source§fn to_superset(&self) -> Isometry<T2, R2, D>
fn to_superset(&self) -> Isometry<T2, R2, D>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<T2, R2, D>) -> bool
fn is_in_subset(iso: &Isometry<T2, R2, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(iso: &Isometry<T2, R2, D>) -> Isometry<T1, R1, D>
fn from_superset_unchecked(iso: &Isometry<T2, R2, D>) -> Isometry<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> SubsetOf<Isometry<T2, Unit<Quaternion<T2>>, 3>> for Unit<DualQuaternion<T1>>
impl<T1, T2> SubsetOf<Isometry<T2, Unit<Quaternion<T2>>, 3>> for Unit<DualQuaternion<T1>>
source§fn to_superset(&self) -> Isometry<T2, Unit<Quaternion<T2>>, 3>
fn to_superset(&self) -> Isometry<T2, Unit<Quaternion<T2>>, 3>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<T2, Unit<Quaternion<T2>>, 3>) -> bool
fn is_in_subset(iso: &Isometry<T2, Unit<Quaternion<T2>>, 3>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(
iso: &Isometry<T2, Unit<Quaternion<T2>>, 3>,
) -> Unit<DualQuaternion<T1>>
fn from_superset_unchecked( iso: &Isometry<T2, Unit<Quaternion<T2>>, 3>, ) -> Unit<DualQuaternion<T1>>
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, 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 Isometry<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 Isometry<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>,
) -> Isometry<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>, ) -> Isometry<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 Isometry<T1, R1, D>where
T1: RealField,
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 Isometry<T1, R1, D>where
T1: RealField,
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>) -> Isometry<T1, R1, D>
fn from_superset_unchecked(sim: &Similarity<T2, R2, D>) -> Isometry<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 Isometry<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 Isometry<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>) -> Isometry<T1, R, D>
fn from_superset_unchecked(t: &Transform<T2, C, D>) -> Isometry<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> SubsetOf<Unit<DualQuaternion<T2>>> for Isometry<T1, Unit<Quaternion<T1>>, 3>
impl<T1, T2> SubsetOf<Unit<DualQuaternion<T2>>> for Isometry<T1, Unit<Quaternion<T1>>, 3>
source§fn to_superset(&self) -> Unit<DualQuaternion<T2>>
fn to_superset(&self) -> Unit<DualQuaternion<T2>>
self
to the equivalent element of its superset.source§fn is_in_subset(dq: &Unit<DualQuaternion<T2>>) -> bool
fn is_in_subset(dq: &Unit<DualQuaternion<T2>>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§fn from_superset_unchecked(
dq: &Unit<DualQuaternion<T2>>,
) -> Isometry<T1, Unit<Quaternion<T1>>, 3>
fn from_superset_unchecked( dq: &Unit<DualQuaternion<T2>>, ) -> Isometry<T1, Unit<Quaternion<T1>>, 3>
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<T, R, const D: usize> UlpsEq for Isometry<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + UlpsEq<Epsilon = <T as AbsDiffEq>::Epsilon>,
<T as AbsDiffEq>::Epsilon: Clone,
impl<T, R, const D: usize> UlpsEq for Isometry<T, R, D>where
T: RealField,
R: AbstractRotation<T, D> + UlpsEq<Epsilon = <T as AbsDiffEq>::Epsilon>,
<T as AbsDiffEq>::Epsilon: Clone,
source§fn default_max_ulps() -> u32
fn default_max_ulps() -> u32
impl<T, R, const D: usize> Copy for Isometry<T, R, D>
impl<T, R, const D: usize> Eq for Isometry<T, R, D>
Auto Trait Implementations§
impl<T, R, const D: usize> Freeze for Isometry<T, R, D>
impl<T, R, const D: usize> RefUnwindSafe for Isometry<T, R, D>where
R: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, R, const D: usize> Send for Isometry<T, R, D>
impl<T, R, const D: usize> Sync for Isometry<T, R, D>
impl<T, R, const D: usize> Unpin for Isometry<T, R, D>
impl<T, R, const D: usize> UnwindSafe for Isometry<T, R, D>where
R: UnwindSafe,
T: UnwindSafe,
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist.§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Conv for T
impl<T> Conv for T
§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>
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>
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)
&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)
&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<T> DynEq for T
impl<T> DynEq for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given [World]§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
§fn from_world(_world: &World) -> T
fn from_world(_world: &World) -> T
Self
using data from the given World
.§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>
§impl<T> IntoArcAny for T
impl<T> IntoArcAny for T
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>
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§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> RawDefault for Twhere
T: Default,
impl<T> RawDefault for Twhere
T: Default,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.