#[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
sourceimpl<T: Scalar, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>
impl<T: Scalar, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>
sourcepub fn from_parts(translation: Translation<T, D>, rotation: R) -> Self
pub fn from_parts(translation: Translation<T, D>, rotation: R) -> Self
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);
sourceimpl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>where
T::Element: SimdRealField,
sourcepub fn inverse(&self) -> Self
pub fn inverse(&self) -> Self
Inverts self
.
Example
let iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let inv = iso.inverse();
let pt = Point2::new(1.0, 2.0);
assert_eq!(inv * (iso * pt), pt);
sourcepub fn inverse_mut(&mut self)
pub fn inverse_mut(&mut self)
Inverts self
in-place.
Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let pt = Point2::new(1.0, 2.0);
let transformed_pt = iso * pt;
iso.inverse_mut();
assert_eq!(iso * transformed_pt, pt);
sourcepub fn inv_mul(&self, rhs: &Isometry<T, R, D>) -> Self
pub fn inv_mul(&self, rhs: &Isometry<T, R, D>) -> Self
Computes self.inverse() * rhs
in a more efficient way.
Example
let mut iso1 = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let mut iso2 = Isometry2::new(Vector2::new(10.0, 20.0), f32::consts::FRAC_PI_4);
assert_eq!(iso1.inverse() * iso2, iso1.inv_mul(&iso2));
sourcepub fn append_translation_mut(&mut self, t: &Translation<T, D>)
pub fn append_translation_mut(&mut self, t: &Translation<T, D>)
Appends to self
the given translation in-place.
Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let tra = Translation2::new(3.0, 4.0);
// Same as `iso = tra * iso`.
iso.append_translation_mut(&tra);
assert_eq!(iso.translation, Translation2::new(4.0, 6.0));
sourcepub fn append_rotation_mut(&mut self, r: &R)
pub fn append_rotation_mut(&mut self, r: &R)
Appends to self
the given rotation in-place.
Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::PI / 6.0);
let rot = UnitComplex::new(f32::consts::PI / 2.0);
// Same as `iso = rot * iso`.
iso.append_rotation_mut(&rot);
assert_relative_eq!(iso, Isometry2::new(Vector2::new(-2.0, 1.0), f32::consts::PI * 2.0 / 3.0), epsilon = 1.0e-6);
sourcepub fn append_rotation_wrt_point_mut(&mut self, r: &R, p: &Point<T, D>)
pub fn append_rotation_wrt_point_mut(&mut self, r: &R, p: &Point<T, D>)
Appends in-place to self
a rotation centered at the point p
, i.e., the rotation that
lets p
invariant.
Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let rot = UnitComplex::new(f32::consts::FRAC_PI_2);
let pt = Point2::new(1.0, 0.0);
iso.append_rotation_wrt_point_mut(&rot, &pt);
assert_relative_eq!(iso * pt, Point2::new(-2.0, 0.0), epsilon = 1.0e-6);
sourcepub fn append_rotation_wrt_center_mut(&mut self, r: &R)
pub fn append_rotation_wrt_center_mut(&mut self, r: &R)
Appends in-place to self
a rotation centered at the point with coordinates
self.translation
.
Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let rot = UnitComplex::new(f32::consts::FRAC_PI_2);
iso.append_rotation_wrt_center_mut(&rot);
// The translation part should not have changed.
assert_eq!(iso.translation.vector, Vector2::new(1.0, 2.0));
assert_eq!(iso.rotation, UnitComplex::new(f32::consts::PI));
sourceimpl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>where
T::Element: SimdRealField,
sourcepub fn transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
pub fn transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
Transform the given point by this isometry.
This is the same as the multiplication self * pt
.
Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.transform_point(&Point3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Point3::new(3.0, 2.0, 2.0), epsilon = 1.0e-6);
sourcepub fn transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
pub fn transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
Transform the given vector by this isometry, ignoring the translation component of the isometry.
This is the same as the multiplication self * v
.
Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.transform_vector(&Vector3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Vector3::new(3.0, 2.0, -1.0), epsilon = 1.0e-6);
sourcepub fn inverse_transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
pub fn inverse_transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
Transform the given point by the inverse of this isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.
Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.inverse_transform_point(&Point3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Point3::new(0.0, 2.0, 1.0), epsilon = 1.0e-6);
sourcepub fn inverse_transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
pub fn inverse_transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
Transform the given vector by the inverse of this isometry, ignoring the translation component of the isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.
Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);
let transformed_point = iso.inverse_transform_vector(&Vector3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Vector3::new(-3.0, 2.0, 1.0), epsilon = 1.0e-6);
sourcepub fn inverse_transform_unit_vector(
&self,
v: &Unit<SVector<T, D>>
) -> Unit<SVector<T, D>>
pub fn inverse_transform_unit_vector(
&self,
v: &Unit<SVector<T, D>>
) -> Unit<SVector<T, D>>
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);
sourceimpl<T: SimdRealField, R, const D: usize> Isometry<T, R, D>
impl<T: SimdRealField, R, const D: usize> Isometry<T, R, D>
sourcepub fn to_homogeneous(
&self
) -> OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>where
Const<D>: DimNameAdd<U1>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
pub fn to_homogeneous(
&self
) -> OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>where
Const<D>: DimNameAdd<U1>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
Converts this isometry into its equivalent homogeneous transformation matrix.
This is the same as self.to_matrix()
.
Example
let iso = Isometry2::new(Vector2::new(10.0, 20.0), f32::consts::FRAC_PI_6);
let expected = Matrix3::new(0.8660254, -0.5, 10.0,
0.5, 0.8660254, 20.0,
0.0, 0.0, 1.0);
assert_relative_eq!(iso.to_homogeneous(), expected, epsilon = 1.0e-6);
sourcepub fn to_matrix(
&self
) -> OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>where
Const<D>: DimNameAdd<U1>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
pub fn to_matrix(
&self
) -> OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>where
Const<D>: DimNameAdd<U1>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
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);
sourceimpl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>where
T::Element: SimdRealField,
sourcepub fn identity() -> Self
pub fn identity() -> Self
Creates a new identity isometry.
Example
let iso = Isometry2::identity();
let pt = Point2::new(1.0, 2.0);
assert_eq!(iso * pt, pt);
let iso = Isometry3::identity();
let pt = Point3::new(1.0, 2.0, 3.0);
assert_eq!(iso * pt, pt);
sourcepub fn rotation_wrt_point(r: R, p: Point<T, D>) -> Self
pub fn rotation_wrt_point(r: R, p: Point<T, D>) -> Self
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);
sourceimpl<T: SimdRealField> Isometry<T, Rotation<T, 2>, 2>where
T::Element: SimdRealField,
impl<T: SimdRealField> Isometry<T, Rotation<T, 2>, 2>where
T::Element: SimdRealField,
sourcepub fn new(translation: Vector2<T>, angle: T) -> Self
pub fn new(translation: Vector2<T>, angle: T) -> Self
Creates a new 2D isometry from a translation and a rotation angle.
Its rotational part is represented as a 2x2 rotation matrix.
Example
let iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
assert_eq!(iso * Point2::new(3.0, 4.0), Point2::new(-3.0, 5.0));
sourcepub fn translation(x: T, y: T) -> Self
pub fn translation(x: T, y: T) -> Self
Creates a new isometry from the given translation coordinates.
sourcepub fn cast<To: Scalar>(self) -> IsometryMatrix2<To>where
IsometryMatrix2<To>: SupersetOf<Self>,
pub fn cast<To: Scalar>(self) -> IsometryMatrix2<To>where
IsometryMatrix2<To>: SupersetOf<Self>,
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());
sourceimpl<T: SimdRealField> Isometry<T, Unit<Complex<T>>, 2>where
T::Element: SimdRealField,
impl<T: SimdRealField> Isometry<T, Unit<Complex<T>>, 2>where
T::Element: SimdRealField,
sourcepub fn new(translation: Vector2<T>, angle: T) -> Self
pub fn new(translation: Vector2<T>, angle: T) -> Self
Creates a new 2D isometry from a translation and a rotation angle.
Its rotational part is represented as an unit complex number.
Example
let iso = IsometryMatrix2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
assert_eq!(iso * Point2::new(3.0, 4.0), Point2::new(-3.0, 5.0));
sourcepub fn translation(x: T, y: T) -> Self
pub fn translation(x: T, y: T) -> Self
Creates a new isometry from the given translation coordinates.
sourceimpl<T: SimdRealField> Isometry<T, Unit<Quaternion<T>>, 3>where
T::Element: SimdRealField,
impl<T: SimdRealField> Isometry<T, Unit<Quaternion<T>>, 3>where
T::Element: SimdRealField,
sourcepub fn new(translation: Vector3<T>, axisangle: Vector3<T>) -> Self
pub fn new(translation: Vector3<T>, axisangle: Vector3<T>) -> Self
Creates a new isometry from a translation and a rotation axis-angle.
Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
// Point and vector being transformed in the tests.
let pt = Point3::new(4.0, 5.0, 6.0);
let vec = Vector3::new(4.0, 5.0, 6.0);
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
// Isometry with its rotation part represented as a Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
sourcepub fn translation(x: T, y: T, z: T) -> Self
pub fn translation(x: T, y: T, z: T) -> Self
Creates a new isometry from the given translation coordinates.
sourceimpl<T: SimdRealField> Isometry<T, Rotation<T, 3>, 3>where
T::Element: SimdRealField,
impl<T: SimdRealField> Isometry<T, Rotation<T, 3>, 3>where
T::Element: SimdRealField,
sourcepub fn new(translation: Vector3<T>, axisangle: Vector3<T>) -> Self
pub fn new(translation: Vector3<T>, axisangle: Vector3<T>) -> Self
Creates a new isometry from a translation and a rotation axis-angle.
Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
// Point and vector being transformed in the tests.
let pt = Point3::new(4.0, 5.0, 6.0);
let vec = Vector3::new(4.0, 5.0, 6.0);
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
// Isometry with its rotation part represented as a Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
sourcepub fn translation(x: T, y: T, z: T) -> Self
pub fn translation(x: T, y: T, z: T) -> Self
Creates a new isometry from the given translation coordinates.
sourcepub fn rotation(axisangle: Vector3<T>) -> Self
pub fn rotation(axisangle: Vector3<T>) -> Self
Creates a new isometry from the given rotation angle.
sourcepub fn cast<To: Scalar>(self) -> IsometryMatrix3<To>where
IsometryMatrix3<To>: SupersetOf<Self>,
pub fn cast<To: Scalar>(self) -> IsometryMatrix3<To>where
IsometryMatrix3<To>: SupersetOf<Self>,
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());
sourceimpl<T: SimdRealField> Isometry<T, Unit<Quaternion<T>>, 3>where
T::Element: SimdRealField,
impl<T: SimdRealField> Isometry<T, Unit<Quaternion<T>>, 3>where
T::Element: SimdRealField,
sourcepub fn face_towards(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
pub fn face_towards(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
Creates an isometry that corresponds to the local frame of an observer standing at the
point eye
and looking toward target
.
It maps the z
axis to the view direction target - eye
and the origin to the eye
.
Arguments
- eye - The observer position.
- target - The target position.
- up - Vertical direction. The only requirement of this parameter is to not be collinear
to
eye - at
. Non-collinearity is not checked.
Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
sourcepub fn new_observer_frame(
eye: &Point3<T>,
target: &Point3<T>,
up: &Vector3<T>
) -> Self
👎Deprecated: renamed to face_towards
pub fn new_observer_frame(
eye: &Point3<T>,
target: &Point3<T>,
up: &Vector3<T>
) -> Self
face_towards
Deprecated: Use Isometry::face_towards
instead.
sourcepub fn look_at_rh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
pub fn look_at_rh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
Builds a right-handed look-at view matrix.
It maps the view direction target - eye
to the negative z
axis to and the eye
to the origin.
This conforms to the common notion of right handed camera look-at view matrix from
the computer graphics community, i.e. the camera is assumed to look toward its local -z
axis.
Arguments
- eye - The eye position.
- target - The target position.
- up - A vector approximately aligned with required the vertical axis. The only
requirement of this parameter is to not be collinear to
target - eye
.
Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
sourcepub fn look_at_lh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
pub fn look_at_lh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
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());
sourceimpl<T: SimdRealField> Isometry<T, Rotation<T, 3>, 3>where
T::Element: SimdRealField,
impl<T: SimdRealField> Isometry<T, Rotation<T, 3>, 3>where
T::Element: SimdRealField,
sourcepub fn face_towards(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
pub fn face_towards(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
Creates an isometry that corresponds to the local frame of an observer standing at the
point eye
and looking toward target
.
It maps the z
axis to the view direction target - eye
and the origin to the eye
.
Arguments
- eye - The observer position.
- target - The target position.
- up - Vertical direction. The only requirement of this parameter is to not be collinear
to
eye - at
. Non-collinearity is not checked.
Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::face_towards(&eye, &target, &up);
assert_eq!(iso * Point3::origin(), eye);
assert_relative_eq!(iso * Vector3::z(), Vector3::x());
sourcepub fn new_observer_frame(
eye: &Point3<T>,
target: &Point3<T>,
up: &Vector3<T>
) -> Self
👎Deprecated: renamed to face_towards
pub fn new_observer_frame(
eye: &Point3<T>,
target: &Point3<T>,
up: &Vector3<T>
) -> Self
face_towards
Deprecated: Use Isometry::face_towards
instead.
sourcepub fn look_at_rh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
pub fn look_at_rh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
Builds a right-handed look-at view matrix.
It maps the view direction target - eye
to the negative z
axis to and the eye
to the origin.
This conforms to the common notion of right handed camera look-at view matrix from
the computer graphics community, i.e. the camera is assumed to look toward its local -z
axis.
Arguments
- eye - The eye position.
- target - The target position.
- up - A vector approximately aligned with required the vertical axis. The only
requirement of this parameter is to not be collinear to
target - eye
.
Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();
// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
sourcepub fn look_at_lh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
pub fn look_at_lh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self
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());
sourceimpl<T: SimdRealField> Isometry<T, Unit<Quaternion<T>>, 3>
impl<T: SimdRealField> Isometry<T, Unit<Quaternion<T>>, 3>
sourcepub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
pub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
Examples:
let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = UnitQuaternion::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = Isometry3::from_parts(t1, q1);
let iso2 = Isometry3::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
sourcepub fn try_lerp_slerp(&self, other: &Self, t: T, epsilon: T) -> Option<Self>where
T: RealField,
pub fn try_lerp_slerp(&self, other: &Self, t: T, epsilon: T) -> Option<Self>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));
sourceimpl<T: SimdRealField> Isometry<T, Rotation<T, 3>, 3>
impl<T: SimdRealField> Isometry<T, Rotation<T, 3>, 3>
sourcepub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
pub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
Examples:
let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = Rotation3::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = Rotation3::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = IsometryMatrix3::from_parts(t1, q1);
let iso2 = IsometryMatrix3::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
sourcepub fn try_lerp_slerp(&self, other: &Self, t: T, epsilon: T) -> Option<Self>where
T: RealField,
pub fn try_lerp_slerp(&self, other: &Self, t: T, epsilon: T) -> Option<Self>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 = 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));
sourceimpl<T: SimdRealField> Isometry<T, Unit<Complex<T>>, 2>
impl<T: SimdRealField> Isometry<T, Unit<Complex<T>>, 2>
sourcepub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
pub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
Examples:
let t1 = Translation2::new(1.0, 2.0);
let t2 = Translation2::new(4.0, 8.0);
let q1 = UnitComplex::new(std::f32::consts::FRAC_PI_4);
let q2 = UnitComplex::new(-std::f32::consts::PI);
let iso1 = Isometry2::from_parts(t1, q1);
let iso2 = Isometry2::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector2::new(2.0, 4.0));
assert_relative_eq!(iso3.rotation.angle(), std::f32::consts::FRAC_PI_2);
sourceimpl<T: SimdRealField> Isometry<T, Rotation<T, 2>, 2>
impl<T: SimdRealField> Isometry<T, Rotation<T, 2>, 2>
sourcepub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
pub fn lerp_slerp(&self, other: &Self, t: T) -> Selfwhere
T: RealField,
Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.
Panics if the angle between both rotations is 180 degrees (in which case the interpolation
is not well-defined). Use .try_lerp_slerp
instead to avoid the panic.
Examples:
let t1 = Translation2::new(1.0, 2.0);
let t2 = Translation2::new(4.0, 8.0);
let q1 = Rotation2::new(std::f32::consts::FRAC_PI_4);
let q2 = Rotation2::new(-std::f32::consts::PI);
let iso1 = IsometryMatrix2::from_parts(t1, q1);
let iso2 = IsometryMatrix2::from_parts(t2, q2);
let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);
assert_eq!(iso3.translation.vector, Vector2::new(2.0, 4.0));
assert_relative_eq!(iso3.rotation.angle(), std::f32::consts::FRAC_PI_2);
Trait Implementations
sourceimpl<T: RealField, R, const D: usize> AbsDiffEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + AbsDiffEq<Epsilon = T::Epsilon>,
T::Epsilon: Clone,
impl<T: RealField, R, const D: usize> AbsDiffEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + AbsDiffEq<Epsilon = T::Epsilon>,
T::Epsilon: Clone,
sourcefn default_epsilon() -> Self::Epsilon
fn default_epsilon() -> Self::Epsilon
sourcefn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool
fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool
sourcefn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
AbsDiffEq::abs_diff_eq
.sourceimpl<T: RealField + RealField, R, const D: usize> AbstractMagma<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> AbstractMagma<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
sourceimpl<T: RealField + RealField, R, const D: usize> AffineTransformation<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> AffineTransformation<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
type Rotation = R
type Rotation = R
type NonUniformScaling = Id<Multiplicative>
type NonUniformScaling = Id<Multiplicative>
type Translation = Translation<T, D>
type Translation = Translation<T, D>
sourcefn decompose(&self) -> (Self::Translation, R, Id, R)
fn decompose(&self) -> (Self::Translation, R, Id, R)
sourcefn append_translation(&self, t: &Self::Translation) -> Self
fn append_translation(&self, t: &Self::Translation) -> Self
sourcefn prepend_translation(&self, t: &Self::Translation) -> Self
fn prepend_translation(&self, t: &Self::Translation) -> Self
sourcefn append_rotation(&self, r: &Self::Rotation) -> Self
fn append_rotation(&self, r: &Self::Rotation) -> Self
sourcefn prepend_rotation(&self, r: &Self::Rotation) -> Self
fn prepend_rotation(&self, r: &Self::Rotation) -> Self
sourcefn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
sourcefn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
sourceimpl<T, R, const D: usize> Arbitrary for Isometry<T, R, D>where
T: SimdRealField + Arbitrary + Send,
T::Element: SimdRealField,
R: AbstractRotation<T, D> + Arbitrary + Send,
Owned<T, Const<D>>: Send,
impl<T, R, const D: usize> Arbitrary for Isometry<T, R, D>where
T: SimdRealField + Arbitrary + Send,
T::Element: SimdRealField,
R: AbstractRotation<T, D> + Arbitrary + Send,
Owned<T, Const<D>>: Send,
sourceimpl<T, R, const D: usize> Archive for Isometry<T, R, D>where
R: Archive,
Translation<T, D>: Archive,
impl<T, R, const D: usize> Archive for Isometry<T, R, D>where
R: Archive,
Translation<T, D>: Archive,
type Archived = ArchivedIsometry<T, R, D>
type Archived = ArchivedIsometry<T, R, D>
type Resolver = IsometryResolver<T, R, D>
type Resolver = IsometryResolver<T, R, D>
sourceimpl<__C: ?Sized, T, R, const D: usize> CheckBytes<__C> for Isometry<T, R, D>where
R: CheckBytes<__C>,
Translation<T, D>: CheckBytes<__C>,
impl<__C: ?Sized, T, R, const D: usize> CheckBytes<__C> for Isometry<T, R, D>where
R: CheckBytes<__C>,
Translation<T, D>: CheckBytes<__C>,
type Error = StructCheckError
type Error = StructCheckError
sourceunsafe fn check_bytes<'__bytecheck>(
value: *const Self,
context: &mut __C
) -> Result<&'__bytecheck Self, StructCheckError>
unsafe fn check_bytes<'__bytecheck>(
value: *const Self,
context: &mut __C
) -> Result<&'__bytecheck Self, StructCheckError>
sourceimpl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Default for Isometry<T, R, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Default for Isometry<T, R, D>where
T::Element: SimdRealField,
sourceimpl<'de, T, R, const D: usize> Deserialize<'de> for Isometry<T, R, D>where
R: Deserialize<'de>,
DefaultAllocator: Allocator<T, Const<D>>,
Owned<T, Const<D>>: Deserialize<'de>,
T: Scalar,
impl<'de, T, R, const D: usize> Deserialize<'de> for Isometry<T, R, D>where
R: Deserialize<'de>,
DefaultAllocator: Allocator<T, Const<D>>,
Owned<T, Const<D>>: Deserialize<'de>,
T: Scalar,
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
sourceimpl<__D: Fallible + ?Sized, T, R, const D: usize> Deserialize<Isometry<T, R, D>, __D> for Archived<Isometry<T, R, D>>where
R: Archive,
Archived<R>: Deserialize<R, __D>,
Translation<T, D>: Archive,
Archived<Translation<T, D>>: Deserialize<Translation<T, D>, __D>,
impl<__D: Fallible + ?Sized, T, R, const D: usize> Deserialize<Isometry<T, R, D>, __D> for Archived<Isometry<T, R, D>>where
R: Archive,
Archived<R>: Deserialize<R, __D>,
Translation<T, D>: Archive,
Archived<Translation<T, D>>: Deserialize<Translation<T, D>, __D>,
sourceimpl<T: RealField + Display, R, const D: usize> Display for Isometry<T, R, D>where
R: Display,
impl<T: RealField + Display, R, const D: usize> Display for Isometry<T, R, D>where
R: Display,
sourceimpl<T: RealField, R, const D: usize> Distribution<Isometry<T, R, D>> for Standardwhere
R: AbstractRotation<T, D>,
Standard: Distribution<T> + Distribution<R>,
impl<T: RealField, R, const D: usize> Distribution<Isometry<T, R, D>> for Standardwhere
R: AbstractRotation<T, D>,
Standard: Distribution<T> + Distribution<R>,
sourcefn sample<G: Rng + ?Sized>(&self, rng: &mut G) -> Isometry<T, R, D>
fn sample<G: Rng + ?Sized>(&self, rng: &mut G) -> Isometry<T, R, D>
T
, using rng
as the source of randomness.sourcefn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>where
R: Rng,
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>where
R: Rng,
T
, using rng
as
the source of randomness. Read moresourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Div<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourceimpl<'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourceimpl<'a, 'b, T: SimdRealField, const D: usize> Div<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField, const D: usize> Div<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField, const D: usize> Div<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField, const D: usize> Div<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Div<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Div<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.sourcefn div(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
fn div(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
/
operation. Read moresourceimpl<'b, T: SimdRealField, R, const D: usize> Div<&'b Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Div<&'b Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.sourcefn div(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
fn div(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
/
operation. Read moresourceimpl<'a, 'b, T: SimdRealField> Div<&'b Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Div<&'b Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField> Div<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Div<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField> Div<&'b Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Div<&'b Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourcefn div(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
fn div(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
/
operation. Read moresourceimpl<'b, T: SimdRealField> Div<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Div<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourcefn div(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
fn div(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
/
operation. Read moresourceimpl<'a, T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Div<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourceimpl<T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourceimpl<'a, T: SimdRealField, const D: usize> Div<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField, const D: usize> Div<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField, const D: usize> Div<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, const D: usize> Div<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField, R, const D: usize> Div<Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Div<Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.sourcefn div(self, rhs: Similarity<T, R, D>) -> Self::Output
fn div(self, rhs: Similarity<T, R, D>) -> Self::Output
/
operation. Read moresourceimpl<T: SimdRealField, R, const D: usize> Div<Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Div<Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
/
operator.sourcefn div(self, rhs: Similarity<T, R, D>) -> Self::Output
fn div(self, rhs: Similarity<T, R, D>) -> Self::Output
/
operation. Read moresourceimpl<'a, T: SimdRealField> Div<Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Div<Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField> Div<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<T: SimdRealField> Div<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField> Div<Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Div<Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourcefn div(self, rhs: UnitQuaternion<T>) -> Self::Output
fn div(self, rhs: UnitQuaternion<T>) -> Self::Output
/
operation. Read moresourceimpl<T: SimdRealField> Div<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<T: SimdRealField> Div<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
/
operator.sourcefn div(self, rhs: UnitQuaternion<T>) -> Self::Output
fn div(self, rhs: UnitQuaternion<T>) -> Self::Output
/
operation. Read moresourceimpl<'b, T: SimdRealField, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)
fn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)
/=
operation. Read moresourceimpl<'b, T: SimdRealField, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)
fn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)
/=
operation. Read moresourceimpl<'b, T: SimdRealField> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: &'b Isometry3<T>)
fn div_assign(&mut self, rhs: &'b Isometry3<T>)
/=
operation. Read moresourceimpl<'b, T, const D: usize> DivAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<'b, T, const D: usize> DivAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: &'b Rotation<T, D>)
fn div_assign(&mut self, rhs: &'b Rotation<T, D>)
/=
operation. Read moresourceimpl<'b, T> DivAssign<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<'b, T> DivAssign<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: &'b UnitComplex<T>)
fn div_assign(&mut self, rhs: &'b UnitComplex<T>)
/=
operation. Read moresourceimpl<'b, T> DivAssign<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<'b, T> DivAssign<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: &'b UnitQuaternion<T>)
fn div_assign(&mut self, rhs: &'b UnitQuaternion<T>)
/=
operation. Read moresourceimpl<T: SimdRealField, R, const D: usize> DivAssign<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> DivAssign<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn div_assign(&mut self, rhs: Isometry<T, R, D>)
fn div_assign(&mut self, rhs: Isometry<T, R, D>)
/=
operation. Read moresourceimpl<T: SimdRealField, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn div_assign(&mut self, rhs: Isometry<T, R, D>)
fn div_assign(&mut self, rhs: Isometry<T, R, D>)
/=
operation. Read moresourceimpl<T: SimdRealField> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: Isometry3<T>)
fn div_assign(&mut self, rhs: Isometry3<T>)
/=
operation. Read moresourceimpl<T, const D: usize> DivAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<T, const D: usize> DivAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: Rotation<T, D>)
fn div_assign(&mut self, rhs: Rotation<T, D>)
/=
operation. Read moresourceimpl<T> DivAssign<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<T> DivAssign<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: UnitComplex<T>)
fn div_assign(&mut self, rhs: UnitComplex<T>)
/=
operation. Read moresourceimpl<T> DivAssign<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<T> DivAssign<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn div_assign(&mut self, rhs: UnitQuaternion<T>)
fn div_assign(&mut self, rhs: UnitQuaternion<T>)
/=
operation. Read moresourceimpl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 16]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 16]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
impl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 16]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 16]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
sourceimpl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 2]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 2]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
impl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 2]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 2]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
sourceimpl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 4]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 4]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
impl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 4]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 4]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
sourceimpl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 8]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 8]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
impl<T: Scalar + PrimitiveSimdValue, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Isometry<T, R, D>where
T: From<[<T as SimdValue>::Element; 8]>,
R: SimdValue + AbstractRotation<T, D> + From<[<R as SimdValue>::Element; 8]>,
R::Element: AbstractRotation<T::Element, D>,
T::Element: Scalar + Copy,
R::Element: Scalar + Copy,
sourceimpl<T: SimdRealField, R, const D: usize> From<[T; D]> for Isometry<T, R, D>where
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> From<[T; D]> for Isometry<T, R, D>where
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> From<Isometry<T, R, D>> for OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>where
Const<D>: DimNameAdd<U1>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<T: SimdRealField, R, const D: usize> From<Isometry<T, R, D>> for OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>where
Const<D>: DimNameAdd<U1>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
sourceimpl<T: SimdRealField> From<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> From<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField, R, const D: usize> From<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> From<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> From<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> From<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> From<Translation<T, D>> for Isometry<T, R, D>
impl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> From<Translation<T, D>> for Isometry<T, R, D>
sourcefn from(tra: Translation<T, D>) -> Self
fn from(tra: Translation<T, D>) -> Self
sourceimpl<T: Scalar + Hash, R: Hash, const D: usize> Hash for Isometry<T, R, D>where
Owned<T, Const<D>>: Hash,
impl<T: Scalar + Hash, R: Hash, const D: usize> Hash for Isometry<T, R, D>where
Owned<T, Const<D>>: Hash,
sourceimpl<T: RealField + RealField, R, const D: usize> Identity<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> Identity<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Complex<T>>, 2>> for &'a UnitComplex<T>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Complex<T>>, 2>> for &'a UnitComplex<T>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Complex<T>>, 2>> for UnitComplex<T>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Complex<T>>, 2>> for UnitComplex<T>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourceimpl<'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField, const D: usize> Mul<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField, const D: usize> Mul<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField, const D: usize> Mul<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField, const D: usize> Mul<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.sourcefn mul(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
fn mul(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
*
operation. Read moresourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.sourcefn mul(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
fn mul(self, rhs: &'b Similarity<T, R, D>) -> Self::Output
*
operation. Read moresourceimpl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField> Mul<&'b Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Mul<&'b Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<'b, T: SimdRealField> Mul<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Mul<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, 'b, T: SimdRealField, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, 'b, T: SimdRealField> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<'a, 'b, T: SimdRealField> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourcefn mul(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
fn mul(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
*
operation. Read moresourceimpl<'b, T: SimdRealField> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourcefn mul(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
fn mul(self, rhs: &'b UnitQuaternion<T>) -> Self::Output
*
operation. Read moresourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<Isometry<T, R, D>> for Translation<T, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField> Mul<Isometry<T, Unit<Complex<T>>, 2>> for &'a UnitComplex<T>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Mul<Isometry<T, Unit<Complex<T>>, 2>> for &'a UnitComplex<T>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField> Mul<Isometry<T, Unit<Complex<T>>, 2>> for UnitComplex<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> Mul<Isometry<T, Unit<Complex<T>>, 2>> for UnitComplex<T>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourceimpl<T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<OPoint<T, Const<D>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<OPoint<T, Const<D>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Mul<OPoint<T, Const<D>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<OPoint<T, Const<D>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField, const D: usize> Mul<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField, const D: usize> Mul<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField, const D: usize> Mul<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, const D: usize> Mul<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.sourcefn mul(self, rhs: Similarity<T, R, D>) -> Self::Output
fn mul(self, rhs: Similarity<T, R, D>) -> Self::Output
*
operation. Read moresourceimpl<T: SimdRealField, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
type Output = Similarity<T, R, D>
type Output = Similarity<T, R, D>
*
operator.sourcefn mul(self, rhs: Similarity<T, R, D>) -> Self::Output
fn mul(self, rhs: Similarity<T, R, D>) -> Self::Output
*
operation. Read moresourceimpl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategoryMul<TAffine>,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
*
operator.sourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<Translation<T, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<Translation<T, D>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Mul<Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField> Mul<Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Mul<Unit<Complex<T>>> for &'a Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField> Mul<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
impl<T: SimdRealField> Mul<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T::Element: SimdRealField,
sourceimpl<'a, T: SimdRealField, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'a, T: SimdRealField, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<T: SimdRealField, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourceimpl<'a, T: SimdRealField> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<'a, T: SimdRealField> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourcefn mul(self, rhs: UnitQuaternion<T>) -> Self::Output
fn mul(self, rhs: UnitQuaternion<T>) -> Self::Output
*
operation. Read moresourceimpl<T: SimdRealField> Mul<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
impl<T: SimdRealField> Mul<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T::Element: SimdRealField,
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
type Output = Isometry<T, Unit<Quaternion<T>>, 3>
*
operator.sourcefn mul(self, rhs: UnitQuaternion<T>) -> Self::Output
fn mul(self, rhs: UnitQuaternion<T>) -> Self::Output
*
operation. Read moresourceimpl<'b, T: SimdRealField, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
*=
operation. Read moresourceimpl<'b, T: SimdRealField, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
*=
operation. Read moresourceimpl<'b, T, C, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategory,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<'b, T, C, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategory,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
sourcefn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)
*=
operation. Read moresourceimpl<'b, T: SimdRealField> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<'b, T: SimdRealField> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: &'b Isometry3<T>)
fn mul_assign(&mut self, rhs: &'b Isometry3<T>)
*=
operation. Read moresourceimpl<'b, T, const D: usize> MulAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<'b, T, const D: usize> MulAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: &'b Rotation<T, D>)
fn mul_assign(&mut self, rhs: &'b Rotation<T, D>)
*=
operation. Read moresourceimpl<'b, T: SimdRealField, R, const D: usize> MulAssign<&'b Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<'b, T: SimdRealField, R, const D: usize> MulAssign<&'b Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn mul_assign(&mut self, rhs: &'b Translation<T, D>)
fn mul_assign(&mut self, rhs: &'b Translation<T, D>)
*=
operation. Read moresourceimpl<'b, T> MulAssign<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<'b, T> MulAssign<&'b Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: &'b UnitComplex<T>)
fn mul_assign(&mut self, rhs: &'b UnitComplex<T>)
*=
operation. Read moresourceimpl<'b, T> MulAssign<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<'b, T> MulAssign<&'b Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: &'b UnitQuaternion<T>)
fn mul_assign(&mut self, rhs: &'b UnitQuaternion<T>)
*=
operation. Read moresourceimpl<T: SimdRealField, R, const D: usize> MulAssign<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> MulAssign<Isometry<T, R, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn mul_assign(&mut self, rhs: Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: Isometry<T, R, D>)
*=
operation. Read moresourceimpl<T: SimdRealField, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn mul_assign(&mut self, rhs: Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: Isometry<T, R, D>)
*=
operation. Read moresourceimpl<T, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategory,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<T, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
Const<D>: DimNameAdd<U1>,
C: TCategory,
R: SubsetOf<OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
sourcefn mul_assign(&mut self, rhs: Isometry<T, R, D>)
fn mul_assign(&mut self, rhs: Isometry<T, R, D>)
*=
operation. Read moresourceimpl<T: SimdRealField> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
impl<T: SimdRealField> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>where
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: Isometry3<T>)
fn mul_assign(&mut self, rhs: Isometry3<T>)
*=
operation. Read moresourceimpl<T, const D: usize> MulAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<T, const D: usize> MulAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: Rotation<T, D>)
fn mul_assign(&mut self, rhs: Rotation<T, D>)
*=
operation. Read moresourceimpl<T: SimdRealField, R, const D: usize> MulAssign<Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> MulAssign<Translation<T, D>> for Isometry<T, R, D>where
T::Element: SimdRealField,
R: AbstractRotation<T, D>,
sourcefn mul_assign(&mut self, rhs: Translation<T, D>)
fn mul_assign(&mut self, rhs: Translation<T, D>)
*=
operation. Read moresourceimpl<T> MulAssign<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<T> MulAssign<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: UnitComplex<T>)
fn mul_assign(&mut self, rhs: UnitComplex<T>)
*=
operation. Read moresourceimpl<T> MulAssign<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
impl<T> MulAssign<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>where
T: Scalar + Zero + One + ClosedAdd + ClosedMul + SimdRealField,
T::Element: SimdRealField,
sourcefn mul_assign(&mut self, rhs: UnitQuaternion<T>)
fn mul_assign(&mut self, rhs: UnitQuaternion<T>)
*=
operation. Read moresourceimpl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> One for Isometry<T, R, D>where
T::Element: SimdRealField,
impl<T: SimdRealField, R: AbstractRotation<T, D>, const D: usize> One for Isometry<T, R, D>where
T::Element: SimdRealField,
sourceimpl<T: SimdRealField, R, const D: usize> PartialEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + PartialEq,
impl<T: SimdRealField, R, const D: usize> PartialEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + PartialEq,
sourceimpl<T: RealField + RealField, R, const D: usize> ProjectiveTransformation<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> ProjectiveTransformation<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
sourcefn inverse_transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
fn inverse_transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
sourcefn inverse_transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
fn inverse_transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
sourceimpl<T: RealField, R, const D: usize> RelativeEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + RelativeEq<Epsilon = T::Epsilon>,
T::Epsilon: Clone,
impl<T: RealField, R, const D: usize> RelativeEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + RelativeEq<Epsilon = T::Epsilon>,
T::Epsilon: Clone,
sourcefn default_max_relative() -> Self::Epsilon
fn default_max_relative() -> Self::Epsilon
sourcefn relative_eq(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
fn relative_eq(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
sourcefn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
RelativeEq::relative_eq
.sourceimpl<__S: Fallible + ?Sized, T, R, const D: usize> Serialize<__S> for Isometry<T, R, D>where
R: Serialize<__S>,
Translation<T, D>: Serialize<__S>,
impl<__S: Fallible + ?Sized, T, R, const D: usize> Serialize<__S> for Isometry<T, R, D>where
R: Serialize<__S>,
Translation<T, D>: Serialize<__S>,
sourceimpl<T, R, const D: usize> Serialize for Isometry<T, R, D>where
R: Serialize,
DefaultAllocator: Allocator<T, Const<D>>,
Owned<T, Const<D>>: Serialize,
T: Scalar,
impl<T, R, const D: usize> Serialize for Isometry<T, R, D>where
R: Serialize,
DefaultAllocator: Allocator<T, Const<D>>,
Owned<T, Const<D>>: Serialize,
T: Scalar,
sourceimpl<T: SimdRealField, R, const D: usize> SimdValue for Isometry<T, R, D>where
T::Element: SimdRealField,
R: SimdValue<SimdBool = T::SimdBool> + AbstractRotation<T, D>,
R::Element: AbstractRotation<T::Element, D>,
impl<T: SimdRealField, R, const D: usize> SimdValue for Isometry<T, R, D>where
T::Element: SimdRealField,
R: SimdValue<SimdBool = T::SimdBool> + AbstractRotation<T, D>,
R::Element: AbstractRotation<T::Element, D>,
type Element = Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>
type Element = Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>
type SimdBool = <T as SimdValue>::SimdBool
type SimdBool = <T as SimdValue>::SimdBool
self
.sourceunsafe fn extract_unchecked(&self, i: usize) -> Self::Element
unsafe fn extract_unchecked(&self, i: usize) -> Self::Element
self
without bound-checking.sourceunsafe fn replace_unchecked(&mut self, i: usize, val: Self::Element)
unsafe fn replace_unchecked(&mut self, i: usize, val: Self::Element)
self
by val
without bound-checking.sourceimpl<T: RealField + RealField, R, const D: usize> Similarity<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> Similarity<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
type Scaling = Id<Multiplicative>
type Scaling = Id<Multiplicative>
sourcefn translation(&self) -> Translation<T, D>
fn translation(&self) -> Translation<T, D>
sourcefn translate_point(&self, pt: &E) -> E
fn translate_point(&self, pt: &E) -> E
sourcefn rotate_point(&self, pt: &E) -> E
fn rotate_point(&self, pt: &E) -> E
sourcefn scale_point(&self, pt: &E) -> E
fn scale_point(&self, pt: &E) -> E
sourcefn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
sourcefn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
sourcefn inverse_translate_point(&self, pt: &E) -> E
fn inverse_translate_point(&self, pt: &E) -> E
sourcefn inverse_rotate_point(&self, pt: &E) -> E
fn inverse_rotate_point(&self, pt: &E) -> E
sourcefn inverse_scale_point(&self, pt: &E) -> E
fn inverse_scale_point(&self, pt: &E) -> E
sourcefn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
sourcefn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
sourceimpl<T1, T2, R> SubsetOf<Isometry<T2, R, 2>> for UnitComplex<T1>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 2> + SupersetOf<Self>,
impl<T1, T2, R> SubsetOf<Isometry<T2, R, 2>> for UnitComplex<T1>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 2> + SupersetOf<Self>,
sourcefn to_superset(&self) -> Isometry<T2, R, 2>
fn to_superset(&self) -> Isometry<T2, R, 2>
self
to the equivalent element of its superset.sourcefn is_in_subset(iso: &Isometry<T2, R, 2>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, 2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(iso: &Isometry<T2, R, 2>) -> Self
fn from_superset_unchecked(iso: &Isometry<T2, R, 2>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<T1, T2, R> SubsetOf<Isometry<T2, R, 3>> for UnitQuaternion<T1>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 3> + SupersetOf<Self>,
impl<T1, T2, R> SubsetOf<Isometry<T2, R, 3>> for UnitQuaternion<T1>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, 3> + SupersetOf<Self>,
sourcefn to_superset(&self) -> Isometry<T2, R, 3>
fn to_superset(&self) -> Isometry<T2, R, 3>
self
to the equivalent element of its superset.sourcefn is_in_subset(iso: &Isometry<T2, R, 3>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, 3>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(iso: &Isometry<T2, R, 3>) -> Self
fn from_superset_unchecked(iso: &Isometry<T2, R, 3>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<T1, T2, R, const D: usize> SubsetOf<Isometry<T2, R, D>> for Rotation<T1, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, D> + SupersetOf<Self>,
impl<T1, T2, R, const D: usize> SubsetOf<Isometry<T2, R, D>> for Rotation<T1, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T2, D> + SupersetOf<Self>,
sourcefn to_superset(&self) -> Isometry<T2, R, D>
fn to_superset(&self) -> Isometry<T2, R, D>
self
to the equivalent element of its superset.sourcefn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Self
fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<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>,
sourcefn to_superset(&self) -> Isometry<T2, R, D>
fn to_superset(&self) -> Isometry<T2, R, D>
self
to the equivalent element of its superset.sourcefn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Self
fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<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>,
sourcefn to_superset(&self) -> Isometry<T2, R2, D>
fn to_superset(&self) -> Isometry<T2, R2, D>
self
to the equivalent element of its superset.sourcefn is_in_subset(iso: &Isometry<T2, R2, D>) -> bool
fn is_in_subset(iso: &Isometry<T2, R2, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(iso: &Isometry<T2, R2, D>) -> Self
fn from_superset_unchecked(iso: &Isometry<T2, R2, D>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<T1, T2> SubsetOf<Isometry<T2, Unit<Quaternion<T2>>, 3>> for UnitDualQuaternion<T1>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
impl<T1, T2> SubsetOf<Isometry<T2, Unit<Quaternion<T2>>, 3>> for UnitDualQuaternion<T1>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
sourcefn to_superset(&self) -> Isometry3<T2>
fn to_superset(&self) -> Isometry3<T2>
self
to the equivalent element of its superset.sourcefn is_in_subset(iso: &Isometry3<T2>) -> bool
fn is_in_subset(iso: &Isometry3<T2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(iso: &Isometry3<T2>) -> Self
fn from_superset_unchecked(iso: &Isometry3<T2>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<T1, T2, R, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> for Isometry<T1, R, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T1, D> + SubsetOf<OMatrix<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>> + SubsetOf<OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
Const<D>: DimNameAdd<U1> + DimMin<Const<D>, Output = Const<D>>,
DefaultAllocator: Allocator<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
impl<T1, T2, R, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> for Isometry<T1, R, D>where
T1: RealField,
T2: RealField + SupersetOf<T1>,
R: AbstractRotation<T1, D> + SubsetOf<OMatrix<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>> + SubsetOf<OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
Const<D>: DimNameAdd<U1> + DimMin<Const<D>, Output = Const<D>>,
DefaultAllocator: Allocator<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
sourcefn to_superset(
&self
) -> OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>
fn to_superset(
&self
) -> OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>
self
to the equivalent element of its superset.sourcefn is_in_subset(
m: &OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>
) -> bool
fn is_in_subset(
m: &OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>
) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(
m: &OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>
) -> Self
fn from_superset_unchecked(
m: &OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>
) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<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>,
sourcefn to_superset(&self) -> Similarity<T2, R2, D>
fn to_superset(&self) -> Similarity<T2, R2, D>
self
to the equivalent element of its superset.sourcefn is_in_subset(sim: &Similarity<T2, R2, D>) -> bool
fn is_in_subset(sim: &Similarity<T2, R2, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(sim: &Similarity<T2, R2, D>) -> Self
fn from_superset_unchecked(sim: &Similarity<T2, R2, D>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<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<OMatrix<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>> + SubsetOf<OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
Const<D>: DimNameAdd<U1> + DimMin<Const<D>, Output = Const<D>>,
DefaultAllocator: Allocator<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
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<OMatrix<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>> + SubsetOf<OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>>,
Const<D>: DimNameAdd<U1> + DimMin<Const<D>, Output = Const<D>>,
DefaultAllocator: Allocator<T1, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> + Allocator<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
sourcefn to_superset(&self) -> Transform<T2, C, D>
fn to_superset(&self) -> Transform<T2, C, D>
self
to the equivalent element of its superset.sourcefn is_in_subset(t: &Transform<T2, C, D>) -> bool
fn is_in_subset(t: &Transform<T2, C, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).sourcefn from_superset_unchecked(t: &Transform<T2, C, D>) -> Self
fn from_superset_unchecked(t: &Transform<T2, C, D>) -> Self
self.to_superset
but without any property checks. Always succeeds.sourcefn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
self
from the equivalent element of its
superset. Read moresourceimpl<T: RealField + RealField, R, const D: usize> Transformation<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> Transformation<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
sourcefn transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
fn transform_point(&self, pt: &Point<T, D>) -> Point<T, D>
sourcefn transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
fn transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>
sourceimpl<T: RealField + RealField, R, const D: usize> TwoSidedInverse<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> TwoSidedInverse<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
sourcefn two_sided_inverse(&self) -> Self
fn two_sided_inverse(&self) -> Self
sourcefn two_sided_inverse_mut(&mut self)
fn two_sided_inverse_mut(&mut self)
sourceimpl<T: RealField, R, const D: usize> UlpsEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + UlpsEq<Epsilon = T::Epsilon>,
T::Epsilon: Clone,
impl<T: RealField, R, const D: usize> UlpsEq<Isometry<T, R, D>> for Isometry<T, R, D>where
R: AbstractRotation<T, D> + UlpsEq<Epsilon = T::Epsilon>,
T::Epsilon: Clone,
impl<T: RealField + RealField, R, const D: usize> AbstractGroup<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> AbstractLoop<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> AbstractMonoid<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> AbstractQuasigroup<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: RealField + RealField, R, const D: usize> AbstractSemigroup<Multiplicative> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: Copy, R: Copy, const D: usize> Copy for Isometry<T, R, D>
impl<T: DeviceCopy, R: DeviceCopy, const D: usize> DeviceCopy for Isometry<T, R, D>
impl<T: RealField + RealField, R, const D: usize> DirectIsometry<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
impl<T: SimdRealField, R, const D: usize> Eq for Isometry<T, R, D>where
R: AbstractRotation<T, D> + Eq,
impl<T: RealField + RealField, R, const D: usize> Isometry<OPoint<T, Const<D>>> for Isometry<T, R, D>where
R: Rotation<Point<T, D>> + AbstractRotation<T, D>,
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> Send for Isometry<T, R, D>where
R: Send,
T: Send,
impl<T, R, const D: usize> Sync for Isometry<T, R, D>where
R: Sync,
T: Sync,
impl<T, R, const D: usize> Unpin for Isometry<T, R, D>where
R: Unpin,
T: Unpin,
impl<T, R, const D: usize> UnwindSafe for Isometry<T, R, D>where
R: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
sourcefn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
sourceimpl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive
, it may be unsized. Read moretype MetadataResolver = ()
type MetadataResolver = ()
sourceunsafe fn resolve_metadata(
&self,
usize,
<T as ArchiveUnsized>::MetadataResolver,
*mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
)
unsafe fn resolve_metadata(
&self,
usize,
<T as ArchiveUnsized>::MetadataResolver,
*mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
)
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
sourceimpl<T, S> SerializeUnsized<S> for Twhere
T: Serialize<S>,
S: Serializer + ?Sized,
impl<T, S> SerializeUnsized<S> for Twhere
T: Serialize<S>,
S: Serializer + ?Sized,
sourceimpl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
sourcefn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresourcefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).sourcefn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.sourcefn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.sourceimpl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
sourcefn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresourcefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).sourceunsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.sourcefn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.