Struct bevy_rapier2d::prelude::nalgebra::Isometry [−][src]
#[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
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);
impl<T, R, const D: usize> Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
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);
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);
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));
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));
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);
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);
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));
impl<T, R, const D: usize> Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
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);
pub fn transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
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);
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);
pub fn inverse_transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn inverse_transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
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);
pub fn inverse_transform_unit_vector(
&self,
v: &Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>
) -> Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>
pub fn inverse_transform_unit_vector(
&self,
v: &Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>
) -> Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>
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);
pub fn to_homogeneous(
&self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
pub fn to_homogeneous(
&self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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);
pub fn to_matrix(
&self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
pub fn to_matrix(
&self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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);
impl<T, R, const D: usize> Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
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);
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);
impl<T> Isometry<T, Rotation<T, 2_usize>, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Isometry<T, Rotation<T, 2_usize>, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
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));
Creates a new isometry from the given translation coordinates.
Creates a new isometry from the given rotation angle.
Cast the components of self
to another type.
Example
let iso = IsometryMatrix2::<f64>::identity();
let iso2 = iso.cast::<f32>();
assert_eq!(iso2, IsometryMatrix2::<f32>::identity());
impl<T> Isometry<T, Unit<Complex<T>>, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Isometry<T, Unit<Complex<T>>, 2_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
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));
Creates a new isometry from the given translation coordinates.
Creates a new isometry from the given rotation angle.
Cast the components of self
to another type.
Example
let iso = Isometry2::<f64>::identity();
let iso2 = iso.cast::<f32>();
assert_eq!(iso2, Isometry2::<f32>::identity());
impl<T> Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
pub fn new(
translation: Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>,
axisangle: Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn new(
translation: Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>,
axisangle: Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
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);
Creates a new isometry from the given translation coordinates.
pub fn rotation(
axisangle: Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn rotation(
axisangle: Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
Creates a new isometry from the given rotation angle.
pub fn cast<To>(self) -> Isometry<To, Unit<Quaternion<To>>, 3_usize> where
To: Scalar,
Isometry<To, Unit<Quaternion<To>>, 3_usize>: SupersetOf<Isometry<T, Unit<Quaternion<T>>, 3_usize>>,
pub fn cast<To>(self) -> Isometry<To, Unit<Quaternion<To>>, 3_usize> where
To: Scalar,
Isometry<To, Unit<Quaternion<To>>, 3_usize>: SupersetOf<Isometry<T, Unit<Quaternion<T>>, 3_usize>>,
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());
impl<T> Isometry<T, Rotation<T, 3_usize>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Isometry<T, Rotation<T, 3_usize>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
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);
Creates a new isometry from the given translation coordinates.
Creates a new isometry from the given rotation angle.
Cast the components of self
to another type.
Example
let iso = IsometryMatrix3::<f64>::identity();
let iso2 = iso.cast::<f32>();
assert_eq!(iso2, IsometryMatrix3::<f32>::identity());
impl<T> Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
pub fn face_towards(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn face_towards(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
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());
pub fn new_observer_frame(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
👎 Deprecated: renamed to face_towards
pub fn new_observer_frame(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
renamed to face_towards
Deprecated: Use Isometry::face_towards
instead.
pub fn look_at_rh(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn look_at_rh(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
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());
pub fn look_at_lh(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
pub fn look_at_lh(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize>
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());
impl<T> Isometry<T, Rotation<T, 3_usize>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Isometry<T, Rotation<T, 3_usize>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
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());
pub fn new_observer_frame(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Rotation<T, 3_usize>, 3_usize>
👎 Deprecated: renamed to face_towards
pub fn new_observer_frame(
eye: &OPoint<T, Const<3_usize>>,
target: &OPoint<T, Const<3_usize>>,
up: &Matrix<T, Const<{_: usize}>, Const<1_usize>, ArrayStorage<T, 3_usize, 1_usize>>
) -> Isometry<T, Rotation<T, 3_usize>, 3_usize>
renamed to face_towards
Deprecated: Use Isometry::face_towards
instead.
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());
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());
pub fn lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3_usize>,
t: T
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: RealField,
pub fn lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3_usize>,
t: T
) -> Isometry<T, Unit<Quaternion<T>>, 3_usize> 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));
pub fn try_lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3_usize>,
t: T,
epsilon: T
) -> Option<Isometry<T, Unit<Quaternion<T>>, 3_usize>> where
T: RealField,
pub fn try_lerp_slerp(
&self,
other: &Isometry<T, Unit<Quaternion<T>>, 3_usize>,
t: T,
epsilon: T
) -> Option<Isometry<T, Unit<Quaternion<T>>, 3_usize>> 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.
Retuns 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));
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));
Attempts to interpolate between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Retuns 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));
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);
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
type Epsilon = <T as AbsDiffEq<T>>::Epsilon
type Epsilon = <T as AbsDiffEq<T>>::Epsilon
Used for specifying relative comparisons.
The default tolerance to use when testing values that are close together. Read more
A test for equality that uses the absolute difference to compute the approximate equality of two numbers. Read more
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
The inverse of [AbsDiffEq::abs_diff_eq
].
impl<T, R, const D: usize> Default for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Default for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
impl<'a, 'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<'b, T, const D: usize> Div<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Div<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Div<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Div<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
pub fn div(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
Performs the /
operation. Read more
impl<'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Similarity<T, R, D>
) -> <Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
pub fn div(
self,
rhs: &'b Similarity<T, R, D>
) -> <Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output
Performs the /
operation. Read more
impl<'b, T> Div<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Div<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<DualQuaternion<T>>>>::Output
pub fn div(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<DualQuaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'a, 'b, T> Div<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Div<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<DualQuaternion<T>>>>::Output
pub fn div(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<DualQuaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'b, T> Div<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Div<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'a, 'b, T> Div<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Div<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'a, T, R, const D: usize> Div<Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Div<Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
impl<T, R, const D: usize> Div<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Div<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
impl<'a, T, R, const D: usize> Div<Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Div<Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Div<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Div<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn div(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the /
operation. Read more
impl<T, const D: usize> Div<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Div<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Div<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Div<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Div<Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Div<Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
pub fn div(
self,
rhs: Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
Performs the /
operation. Read more
impl<T, R, const D: usize> Div<Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Div<Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Similarity<T, R, D>
) -> <Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
pub fn div(
self,
rhs: Similarity<T, R, D>
) -> <Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output
Performs the /
operation. Read more
impl<T> Div<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Div<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<DualQuaternion<T>>>>::Output
pub fn div(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<DualQuaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'a, T> Div<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Div<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<DualQuaternion<T>>>>::Output
pub fn div(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<DualQuaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'a, T> Div<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Div<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
impl<T> Div<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Div<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
impl<'b, T> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
impl<'b, T> DivAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> DivAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
impl<T> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
impl<T> DivAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> DivAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the /=
operation. Read more
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 16]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 16]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 16]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 16]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 2]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 2]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 2]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 2]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 4]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 4]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 4]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 4]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 8]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 8]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Isometry<T, R, D> where
T: Scalar + PrimitiveSimdValue + From<[<T as SimdValue>::Element; 8]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 8]>,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
<T as SimdValue>::Element: Scalar,
<T as SimdValue>::Element: Copy,
<R as SimdValue>::Element: Scalar,
<R as SimdValue>::Element: Copy,
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>,
impl<T, R, const D: usize> From<Isometry<T, R, D>> for Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
T: SimdRealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, R, const D: usize> From<Isometry<T, R, D>> for Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
T: SimdRealField,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
pub fn from(
iso: Isometry<T, R, D>
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn from(
iso: Isometry<T, R, D>
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
Performs the conversion.
impl<T> From<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> From<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the conversion.
impl<T, R, const D: usize> From<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> 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_usize>, ArrayStorage<T, D, 1_usize>>> 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>,
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<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>,
Performs the conversion.
impl<T> From<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> From<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the conversion.
pub fn absolute_transform_vector(
&self,
v: &Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>
) -> Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>
pub fn absolute_transform_vector(
&self,
v: &Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>
) -> Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>
Transform a vector by the absolute value of the homogeneous matrix
equivalent to self
. Read more
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
right: &'b Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Mul<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, const D: usize> Mul<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Mul<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, const D: usize> Mul<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output
Performs the *
operation. Read more
impl<'a, 'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <&'a Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output
pub fn mul(
self,
right: &'b Translation<T, D>
) -> <&'a Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output
Performs the *
operation. Read more
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
Performs the *
operation. Read more
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
pub fn mul(
self,
rhs: &'b Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<DualQuaternion<T>>>>::Output
Performs the *
operation. Read more
impl<'a, 'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
The resulting type after applying the *
operator.
impl<'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
The resulting type after applying the *
operator.
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Translation<T, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<Quaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
right: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for &'a Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
pub fn mul(
self,
rhs: Isometry<T, Unit<Quaternion<T>>, 3_usize>
) -> <&'a Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3_usize>>>::Output
Performs the *
operation. Read more
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<'a, T, R, const D: usize> Mul<OPoint<T, Const<D>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<OPoint<T, Const<D>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<OPoint<T, Const<D>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<OPoint<T, Const<D>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Mul<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T, const D: usize> Mul<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Mul<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, const D: usize> Mul<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <&'a Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, R, const D: usize> Mul<Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: Translation<T, D>
) -> <Isometry<T, R, D> as Mul<Translation<T, D>>>::Output
pub fn mul(
self,
right: Translation<T, D>
) -> <Isometry<T, R, D> as Mul<Translation<T, D>>>::Output
Performs the *
operation. Read more
impl<'a, T, R, const D: usize> Mul<Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Translation<T, D>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
pub fn mul(
self,
right: Translation<T, D>
) -> <&'a Isometry<T, R, D> as Mul<Translation<T, D>>>::Output
pub fn mul(
self,
right: Translation<T, D>
) -> <&'a Isometry<T, R, D> as Mul<Translation<T, D>>>::Output
Performs the *
operation. Read more
impl<T> Mul<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
Performs the *
operation. Read more
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Unit<DualQuaternion<T>>
type Output = Unit<DualQuaternion<T>>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
pub fn mul(
self,
rhs: Unit<DualQuaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<DualQuaternion<T>>>>::Output
Performs the *
operation. Read more
impl<T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
The resulting type after applying the *
operator.
impl<'a, T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>>> for &'a Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
The resulting type after applying the *
operator.
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
impl<T> Mul<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> Mul<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
type Output = Isometry<T, Unit<Quaternion<T>>, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Isometry<T, Unit<Quaternion<T>>, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
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<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
impl<'b, T> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
Performs the *=
operation. Read more
impl<'b, T, R, const D: usize> MulAssign<&'b Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T, R, const D: usize> MulAssign<&'b Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
Performs the *=
operation. Read more
impl<'b, T> MulAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<'b, T> MulAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
impl<T, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
impl<T> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3_usize>> for Unit<DualQuaternion<T>> where
T: SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
Performs the *=
operation. Read more
impl<T, R, const D: usize> MulAssign<Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> MulAssign<Translation<T, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
Performs the *=
operation. Read more
impl<T> MulAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
impl<T> MulAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3_usize> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + SimdRealField,
<T as SimdValue>::Element: SimdRealField,
Performs the *=
operation. Read more
impl<T, R, const D: usize> One for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> One for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
impl<T, R, const D: usize> PartialEq<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D> + PartialEq<R>,
impl<T, R, const D: usize> PartialEq<Isometry<T, R, D>> for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D> + PartialEq<R>,
The default relative tolerance for testing values that are far-apart. Read more
A test for equality that uses a relative comparison if the values are far apart.
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
The inverse of [RelativeEq::relative_eq
].
impl<T, R, const D: usize> SimdValue for Isometry<T, R, D> where
T: SimdRealField,
R: SimdValue<SimdBool = <T as SimdValue>::SimdBool> + AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
<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,
R: SimdValue<SimdBool = <T as SimdValue>::SimdBool> + AbstractRotation<T, D>,
<T as SimdValue>::Element: SimdRealField,
<R as SimdValue>::Element: AbstractRotation<<T as SimdValue>::Element, D>,
The type of the elements of each lane of this SIMD value.
Type of the result of comparing two SIMD values like self
.
Initializes an SIMD value with each lanes set to val
.
Extracts the i-th lane of self
. Read more
Extracts the i-th lane of self
without bound-checking.
Replaces the i-th lane of self
by val
. Read more
Replaces the i-th lane of self
by val
without bound-checking.
Merges self
and other
depending on the lanes of cond
. Read more
Applies a function to each lane of self
. Read more
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, R> SubsetOf<Isometry<T2, R, 3_usize>> for Unit<Quaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 3_usize> + SupersetOf<Unit<Quaternion<T1>>>,
impl<T1, T2, R> SubsetOf<Isometry<T2, R, 3_usize>> for Unit<Quaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 3_usize> + SupersetOf<Unit<Quaternion<T1>>>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, R, const D: usize> SubsetOf<Isometry<T2, R, D>> for Translation<T1, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, D>,
impl<T1, T2, R, const D: usize> SubsetOf<Isometry<T2, R, D>> for Translation<T1, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, D>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
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>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2> SubsetOf<Isometry<T2, Unit<Quaternion<T2>>, 3_usize>> for Unit<DualQuaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
impl<T1, T2> SubsetOf<Isometry<T2, Unit<Quaternion<T2>>, 3_usize>> for Unit<DualQuaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
pub fn from_superset_unchecked(
iso: &Isometry<T2, Unit<Quaternion<T2>>, 3_usize>
) -> Unit<DualQuaternion<T1>>
pub fn from_superset_unchecked(
iso: &Isometry<T2, Unit<Quaternion<T2>>, 3_usize>
) -> Unit<DualQuaternion<T1>>
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, R, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
impl<T1, T2, R, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::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_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
pub fn to_superset(
&self
) -> Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn to_superset(
&self
) -> Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
The inclusion map: converts self
to the equivalent element of its superset.
pub fn is_in_subset(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> bool
pub fn is_in_subset(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> bool
Checks if element
is actually part of the subset Self
(and can be converted to it).
pub fn from_superset_unchecked(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> Isometry<T1, R, D>
pub fn from_superset_unchecked(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> Isometry<T1, R, D>
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
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>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
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_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
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_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2> SubsetOf<Unit<DualQuaternion<T2>>> for Isometry<T1, Unit<Quaternion<T1>>, 3_usize> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
impl<T1, T2> SubsetOf<Unit<DualQuaternion<T2>>> for Isometry<T1, Unit<Quaternion<T1>>, 3_usize> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
pub fn from_superset_unchecked(
dq: &Unit<DualQuaternion<T2>>
) -> Isometry<T1, Unit<Quaternion<T1>>, 3_usize>
pub fn from_superset_unchecked(
dq: &Unit<DualQuaternion<T2>>
) -> Isometry<T1, Unit<Quaternion<T1>>, 3_usize>
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
The default ULPs to tolerate when testing values that are far-apart. Read more
A test for equality that uses units in the last place (ULP) if the values are far apart.
impl<T, R, const D: usize> Eq for Isometry<T, R, D> where
T: SimdRealField,
R: AbstractRotation<T, D> + Eq,
Auto Trait Implementations
impl<T, R, const D: usize> RefUnwindSafe for Isometry<T, R, D> where
R: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, R, const D: usize> UnwindSafe for Isometry<T, R, D> where
R: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
impl<T> DynHash for T where
T: DynEq + Hash,
impl<T> DynHash for T where
T: DynEq + Hash,
Compare self to key
and return true
if they are equal.
impl<T> FromWorld for T where
T: Default,
impl<T> FromWorld for T where
T: Default,
pub fn from_world(_world: &mut World) -> T
pub fn from_world(_world: &mut World) -> T
Creates Self
using data from the given [World]
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more