Struct Isometry

Source
#[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 3D isometry is composed of:

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

§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.

§Conversion to a matrix

Fields§

§rotation: R

The pure rotational part of this isometry.

§translation: Translation<T, D>

The pure translational part of this isometry.

Implementations§

Source§

impl<T, R, const D: usize> Isometry<T, R, D>
where T: Scalar, R: AbstractRotation<T, D>,

§From the translation and rotation parts

Source

pub fn from_parts( translation: Translation<T, D>, rotation: R, ) -> Isometry<T, R, D>

Creates a new isometry from its rotational and translational parts.

§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::PI);
let iso = Isometry3::from_parts(tra, rot);

assert_relative_eq!(iso * Point3::new(1.0, 2.0, 3.0), Point3::new(-1.0, 2.0, 0.0), epsilon = 1.0e-6);
Source§

impl<T, R, const D: usize> Isometry<T, R, D>

§Inversion and in-place composition

Source

pub fn inverse(&self) -> Isometry<T, R, D>

Inverts self.

§Example
let iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let inv = iso.inverse();
let pt = Point2::new(1.0, 2.0);

assert_eq!(inv * (iso * pt), pt);
Source

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);
Source

pub fn inv_mul(&self, rhs: &Isometry<T, R, D>) -> Isometry<T, R, D>

Computes self.inverse() * rhs in a more efficient way.

§Example
let mut iso1 = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let mut iso2 = Isometry2::new(Vector2::new(10.0, 20.0), f32::consts::FRAC_PI_4);

assert_eq!(iso1.inverse() * iso2, iso1.inv_mul(&iso2));
Source

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));
Source

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);
Source

pub fn append_rotation_wrt_point_mut(&mut self, r: &R, p: &OPoint<T, Const<D>>)

Appends in-place to self a rotation centered at the point p, i.e., the rotation that lets p invariant.

§Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let rot = UnitComplex::new(f32::consts::FRAC_PI_2);
let pt = Point2::new(1.0, 0.0);
iso.append_rotation_wrt_point_mut(&rot, &pt);

assert_relative_eq!(iso * pt, Point2::new(-2.0, 0.0), epsilon = 1.0e-6);
Source

pub fn append_rotation_wrt_center_mut(&mut self, r: &R)

Appends in-place to self a rotation centered at the point with coordinates self.translation.

§Example
let mut iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);
let rot = UnitComplex::new(f32::consts::FRAC_PI_2);
iso.append_rotation_wrt_center_mut(&rot);

// The translation part should not have changed.
assert_eq!(iso.translation.vector, Vector2::new(1.0, 2.0));
assert_eq!(iso.rotation, UnitComplex::new(f32::consts::PI));
Source§

impl<T, R, const D: usize> Isometry<T, R, D>

§Transformation of a vector or a point

Source

pub fn transform_point(&self, pt: &OPoint<T, Const<D>>) -> OPoint<T, Const<D>>

Transform the given point by this isometry.

This is the same as the multiplication self * pt.

§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);

let transformed_point = iso.transform_point(&Point3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Point3::new(3.0, 2.0, 2.0), epsilon = 1.0e-6);
Source

pub fn transform_vector( &self, v: &Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>, ) -> Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>

Transform the given vector by this isometry, ignoring the translation component of the isometry.

This is the same as the multiplication self * v.

§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);

let transformed_point = iso.transform_vector(&Vector3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Vector3::new(3.0, 2.0, -1.0), epsilon = 1.0e-6);
Source

pub fn inverse_transform_point( &self, pt: &OPoint<T, Const<D>>, ) -> OPoint<T, Const<D>>

Transform the given point by the inverse of this isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.

§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);

let transformed_point = iso.inverse_transform_point(&Point3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Point3::new(0.0, 2.0, 1.0), epsilon = 1.0e-6);
Source

pub fn inverse_transform_vector( &self, v: &Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>, ) -> Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>

Transform the given vector by the inverse of this isometry, ignoring the translation component of the isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.

§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::y() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);

let transformed_point = iso.inverse_transform_vector(&Vector3::new(1.0, 2.0, 3.0));
assert_relative_eq!(transformed_point, Vector3::new(-3.0, 2.0, 1.0), epsilon = 1.0e-6);
Source

pub fn inverse_transform_unit_vector( &self, v: &Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>, ) -> Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>

Transform the given unit vector by the inverse of this isometry, ignoring the translation component of the isometry. This may be less expensive than computing the entire isometry inverse and then transforming the point.

§Example
let tra = Translation3::new(0.0, 0.0, 3.0);
let rot = UnitQuaternion::from_scaled_axis(Vector3::z() * f32::consts::FRAC_PI_2);
let iso = Isometry3::from_parts(tra, rot);

let transformed_point = iso.inverse_transform_unit_vector(&Vector3::x_axis());
assert_relative_eq!(transformed_point, -Vector3::y_axis(), epsilon = 1.0e-6);
Source§

impl<T, R, const D: usize> Isometry<T, R, D>
where T: SimdRealField,

§Conversion to a matrix

Source

pub fn to_homogeneous( &self, ) -> Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T>>

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);
Source

pub fn to_matrix( &self, ) -> Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T>>

Converts this isometry into its equivalent homogeneous transformation matrix.

This is the same as self.to_homogeneous().

§Example
let iso = Isometry2::new(Vector2::new(10.0, 20.0), f32::consts::FRAC_PI_6);
let expected = Matrix3::new(0.8660254, -0.5,      10.0,
                            0.5,       0.8660254, 20.0,
                            0.0,       0.0,       1.0);

assert_relative_eq!(iso.to_matrix(), expected, epsilon = 1.0e-6);
Source§

impl<T, R, const D: usize> Isometry<T, R, D>

Source

pub fn identity() -> Isometry<T, R, D>

Creates a new identity isometry.

§Example

let iso = Isometry2::identity();
let pt = Point2::new(1.0, 2.0);
assert_eq!(iso * pt, pt);

let iso = Isometry3::identity();
let pt = Point3::new(1.0, 2.0, 3.0);
assert_eq!(iso * pt, pt);
Source

pub fn rotation_wrt_point(r: R, p: OPoint<T, Const<D>>) -> Isometry<T, R, D>

The isometry that applies the rotation r with its axis passing through the point p. This effectively lets p invariant.

§Example
let rot = UnitComplex::new(f32::consts::PI);
let pt = Point2::new(1.0, 0.0);
let iso = Isometry2::rotation_wrt_point(rot, pt);

assert_eq!(iso * pt, pt); // The rotation center is not affected.
assert_relative_eq!(iso * Point2::new(1.0, 2.0), Point2::new(1.0, -2.0), epsilon = 1.0e-6);
Source§

impl<T> Isometry<T, Rotation<T, 2>, 2>

§Construction from a 2D vector and/or a rotation angle

Source

pub fn new( translation: Matrix<T, Const<2>, Const<1>, ArrayStorage<T, 2, 1>>, angle: T, ) -> Isometry<T, Rotation<T, 2>, 2>

Creates a new 2D isometry from a translation and a rotation angle.

Its rotational part is represented as a 2x2 rotation matrix.

§Example
let iso = Isometry2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);

assert_eq!(iso * Point2::new(3.0, 4.0), Point2::new(-3.0, 5.0));
Source

pub fn translation(x: T, y: T) -> Isometry<T, Rotation<T, 2>, 2>

Creates a new isometry from the given translation coordinates.

Source

pub fn rotation(angle: T) -> Isometry<T, Rotation<T, 2>, 2>

Creates a new isometry from the given rotation angle.

Source

pub fn cast<To>(self) -> Isometry<To, Rotation<To, 2>, 2>
where To: Scalar, Isometry<To, Rotation<To, 2>, 2>: SupersetOf<Isometry<T, Rotation<T, 2>, 2>>,

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());
Source§

impl<T> Isometry<T, Unit<Complex<T>>, 2>

Source

pub fn new( translation: Matrix<T, Const<2>, Const<1>, ArrayStorage<T, 2, 1>>, angle: T, ) -> Isometry<T, Unit<Complex<T>>, 2>

Creates a new 2D isometry from a translation and a rotation angle.

Its rotational part is represented as an unit complex number.

§Example
let iso = IsometryMatrix2::new(Vector2::new(1.0, 2.0), f32::consts::FRAC_PI_2);

assert_eq!(iso * Point2::new(3.0, 4.0), Point2::new(-3.0, 5.0));
Source

pub fn translation(x: T, y: T) -> Isometry<T, Unit<Complex<T>>, 2>

Creates a new isometry from the given translation coordinates.

Source

pub fn rotation(angle: T) -> Isometry<T, Unit<Complex<T>>, 2>

Creates a new isometry from the given rotation angle.

Source

pub fn cast<To>(self) -> Isometry<To, Unit<Complex<To>>, 2>
where To: Scalar, Isometry<To, Unit<Complex<To>>, 2>: SupersetOf<Isometry<T, Unit<Complex<T>>, 2>>,

Cast the components of self to another type.

§Example
let iso = Isometry2::<f64>::identity();
let iso2 = iso.cast::<f32>();
assert_eq!(iso2, Isometry2::<f32>::identity());
Source§

impl<T> Isometry<T, Unit<Quaternion<T>>, 3>

§Construction from a 3D vector and/or an axis-angle

Source

pub fn new( translation: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>

Creates a new isometry from a translation and a rotation axis-angle.

§Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
// Point and vector being transformed in the tests.
let pt = Point3::new(4.0, 5.0, 6.0);
let vec = Vector3::new(4.0, 5.0, 6.0);

// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);

// Isometry with its rotation part represented as a Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
Source

pub fn translation(x: T, y: T, z: T) -> Isometry<T, Unit<Quaternion<T>>, 3>

Creates a new isometry from the given translation coordinates.

Source

pub fn rotation( axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>

Creates a new isometry from the given rotation angle.

Source

pub fn cast<To>(self) -> Isometry<To, Unit<Quaternion<To>>, 3>
where To: Scalar, Isometry<To, Unit<Quaternion<To>>, 3>: SupersetOf<Isometry<T, Unit<Quaternion<T>>, 3>>,

Cast the components of self to another type.

§Example
let iso = Isometry3::<f64>::identity();
let iso2 = iso.cast::<f32>();
assert_eq!(iso2, Isometry3::<f32>::identity());
Source§

impl<T> Isometry<T, Rotation<T, 3>, 3>

Source

pub fn new( translation: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>

Creates a new isometry from a translation and a rotation axis-angle.

§Example
let axisangle = Vector3::y() * f32::consts::FRAC_PI_2;
let translation = Vector3::new(1.0, 2.0, 3.0);
// Point and vector being transformed in the tests.
let pt = Point3::new(4.0, 5.0, 6.0);
let vec = Vector3::new(4.0, 5.0, 6.0);

// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);

// Isometry with its rotation part represented as a Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::new(translation, axisangle);
assert_relative_eq!(iso * pt, Point3::new(7.0, 7.0, -1.0), epsilon = 1.0e-6);
assert_relative_eq!(iso * vec, Vector3::new(6.0, 5.0, -4.0), epsilon = 1.0e-6);
Source

pub fn translation(x: T, y: T, z: T) -> Isometry<T, Rotation<T, 3>, 3>

Creates a new isometry from the given translation coordinates.

Source

pub fn rotation( axisangle: Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>

Creates a new isometry from the given rotation angle.

Source

pub fn cast<To>(self) -> Isometry<To, Rotation<To, 3>, 3>
where To: Scalar, Isometry<To, Rotation<To, 3>, 3>: SupersetOf<Isometry<T, Rotation<T, 3>, 3>>,

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());
Source§

impl<T> Isometry<T, Unit<Quaternion<T>>, 3>

§Construction from a 3D eye position and target point

Source

pub fn face_towards( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>

Creates an isometry that corresponds to the local frame of an observer standing at the point eye and looking toward target.

It maps the z axis to the view direction target - eyeand 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());
Source

pub fn new_observer_frame( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>

👎Deprecated: renamed to face_towards

Deprecated: Use Isometry::face_towards instead.

Source

pub fn look_at_rh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>

Builds a right-handed look-at view matrix.

It maps the view direction target - eye to the negative z axis to and the eye to the origin. This conforms to the common notion of right handed camera look-at view matrix from the computer graphics community, i.e. the camera is assumed to look toward its local -z axis.

§Arguments
  • eye - The eye position.
  • target - The target position.
  • up - A vector approximately aligned with required the vertical axis. The only requirement of this parameter is to not be collinear to target - eye.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();

// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());

// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
Source

pub fn look_at_lh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Unit<Quaternion<T>>, 3>

Builds a left-handed look-at view matrix.

It maps the view direction target - eye to the positive z axis and the eye to the origin. This conforms to the common notion of left handed camera look-at view matrix from the computer graphics community, i.e. the camera is assumed to look toward its local z axis.

§Arguments
  • eye - The eye position.
  • target - The target position.
  • up - A vector approximately aligned with required the vertical axis. The only requirement of this parameter is to not be collinear to target - eye.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();

// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());

// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());
Source§

impl<T> Isometry<T, Rotation<T, 3>, 3>

Source

pub fn face_towards( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>

Creates an isometry that corresponds to the local frame of an observer standing at the point eye and looking toward target.

It maps the z axis to the view direction target - eyeand 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());
Source

pub fn new_observer_frame( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>

👎Deprecated: renamed to face_towards

Deprecated: Use Isometry::face_towards instead.

Source

pub fn look_at_rh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>

Builds a right-handed look-at view matrix.

It maps the view direction target - eye to the negative z axis to and the eye to the origin. This conforms to the common notion of right handed camera look-at view matrix from the computer graphics community, i.e. the camera is assumed to look toward its local -z axis.

§Arguments
  • eye - The eye position.
  • target - The target position.
  • up - A vector approximately aligned with required the vertical axis. The only requirement of this parameter is to not be collinear to target - eye.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();

// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());

// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_rh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), -Vector3::z());
Source

pub fn look_at_lh( eye: &OPoint<T, Const<3>>, target: &OPoint<T, Const<3>>, up: &Matrix<T, Const<3>, Const<1>, ArrayStorage<T, 3, 1>>, ) -> Isometry<T, Rotation<T, 3>, 3>

Builds a left-handed look-at view matrix.

It maps the view direction target - eye to the positive z axis and the eye to the origin. This conforms to the common notion of left handed camera look-at view matrix from the computer graphics community, i.e. the camera is assumed to look toward its local z axis.

§Arguments
  • eye - The eye position.
  • target - The target position.
  • up - A vector approximately aligned with required the vertical axis. The only requirement of this parameter is to not be collinear to target - eye.
§Example
let eye = Point3::new(1.0, 2.0, 3.0);
let target = Point3::new(2.0, 2.0, 3.0);
let up = Vector3::y();

// Isometry with its rotation part represented as a UnitQuaternion
let iso = Isometry3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());

// Isometry with its rotation part represented as Rotation3 (a 3x3 rotation matrix).
let iso = IsometryMatrix3::look_at_lh(&eye, &target, &up);
assert_eq!(iso * eye, Point3::origin());
assert_relative_eq!(iso * Vector3::x(), Vector3::z());
Source§

impl<T> Isometry<T, Unit<Quaternion<T>>, 3>
where T: SimdRealField,

§Interpolation

Source

pub fn lerp_slerp( &self, other: &Isometry<T, Unit<Quaternion<T>>, 3>, t: T, ) -> Isometry<T, Unit<Quaternion<T>>, 3>
where T: RealField,

Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.

Panics if the angle between both rotations is 180 degrees (in which case the interpolation is not well-defined). Use .try_lerp_slerp instead to avoid the panic.

§Examples:

let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = UnitQuaternion::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = Isometry3::from_parts(t1, q1);
let iso2 = Isometry3::from_parts(t2, q2);

let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);

assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
Source

pub fn try_lerp_slerp( &self, other: &Isometry<T, Unit<Quaternion<T>>, 3>, t: T, epsilon: T, ) -> Option<Isometry<T, Unit<Quaternion<T>>, 3>>
where T: RealField,

Attempts to interpolate between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.

Returns None if the angle between both rotations is 180 degrees (in which case the interpolation is not well-defined).

§Examples:

let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = UnitQuaternion::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = Isometry3::from_parts(t1, q1);
let iso2 = Isometry3::from_parts(t2, q2);

let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);

assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
Source§

impl<T> Isometry<T, Rotation<T, 3>, 3>
where T: SimdRealField,

Source

pub fn lerp_slerp( &self, other: &Isometry<T, Rotation<T, 3>, 3>, t: T, ) -> Isometry<T, Rotation<T, 3>, 3>
where T: RealField,

Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.

Panics if the angle between both rotations is 180 degrees (in which case the interpolation is not well-defined). Use .try_lerp_slerp instead to avoid the panic.

§Examples:

let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = Rotation3::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = Rotation3::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = IsometryMatrix3::from_parts(t1, q1);
let iso2 = IsometryMatrix3::from_parts(t2, q2);

let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);

assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
Source

pub fn try_lerp_slerp( &self, other: &Isometry<T, Rotation<T, 3>, 3>, t: T, epsilon: T, ) -> Option<Isometry<T, Rotation<T, 3>, 3>>
where T: RealField,

Attempts to interpolate between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.

Returns None if the angle between both rotations is 180 degrees (in which case the interpolation is not well-defined).

§Examples:

let t1 = Translation3::new(1.0, 2.0, 3.0);
let t2 = Translation3::new(4.0, 8.0, 12.0);
let q1 = Rotation3::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0);
let q2 = Rotation3::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0);
let iso1 = IsometryMatrix3::from_parts(t1, q1);
let iso2 = IsometryMatrix3::from_parts(t2, q2);

let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);

assert_eq!(iso3.translation.vector, Vector3::new(2.0, 4.0, 6.0));
assert_eq!(iso3.rotation.euler_angles(), (std::f32::consts::FRAC_PI_2, 0.0, 0.0));
Source§

impl<T> Isometry<T, Unit<Complex<T>>, 2>
where T: SimdRealField,

Source

pub fn lerp_slerp( &self, other: &Isometry<T, Unit<Complex<T>>, 2>, t: T, ) -> Isometry<T, Unit<Complex<T>>, 2>
where T: RealField,

Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.

Panics if the angle between both rotations is 180 degrees (in which case the interpolation is not well-defined). Use .try_lerp_slerp instead to avoid the panic.

§Examples:

let t1 = Translation2::new(1.0, 2.0);
let t2 = Translation2::new(4.0, 8.0);
let q1 = UnitComplex::new(std::f32::consts::FRAC_PI_4);
let q2 = UnitComplex::new(-std::f32::consts::PI);
let iso1 = Isometry2::from_parts(t1, q1);
let iso2 = Isometry2::from_parts(t2, q2);

let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);

assert_eq!(iso3.translation.vector, Vector2::new(2.0, 4.0));
assert_relative_eq!(iso3.rotation.angle(), std::f32::consts::FRAC_PI_2);
Source§

impl<T> Isometry<T, Rotation<T, 2>, 2>
where T: SimdRealField,

Source

pub fn lerp_slerp( &self, other: &Isometry<T, Rotation<T, 2>, 2>, t: T, ) -> Isometry<T, Rotation<T, 2>, 2>
where T: RealField,

Interpolates between two isometries using a linear interpolation for the translation part, and a spherical interpolation for the rotation part.

Panics if the angle between both rotations is 180 degrees (in which case the interpolation is not well-defined). Use .try_lerp_slerp instead to avoid the panic.

§Examples:

let t1 = Translation2::new(1.0, 2.0);
let t2 = Translation2::new(4.0, 8.0);
let q1 = Rotation2::new(std::f32::consts::FRAC_PI_4);
let q2 = Rotation2::new(-std::f32::consts::PI);
let iso1 = IsometryMatrix2::from_parts(t1, q1);
let iso2 = IsometryMatrix2::from_parts(t2, q2);

let iso3 = iso1.lerp_slerp(&iso2, 1.0 / 3.0);

assert_eq!(iso3.translation.vector, Vector2::new(2.0, 4.0));
assert_relative_eq!(iso3.rotation.angle(), std::f32::consts::FRAC_PI_2);

Trait Implementations§

Source§

impl<T, R, const D: usize> AbsDiffEq for Isometry<T, R, D>
where T: RealField, R: AbstractRotation<T, D> + AbsDiffEq<Epsilon = <T as AbsDiffEq>::Epsilon>, <T as AbsDiffEq>::Epsilon: Clone,

Source§

type Epsilon = <T as AbsDiffEq>::Epsilon

Used for specifying relative comparisons.
Source§

fn default_epsilon() -> <Isometry<T, R, D> as AbsDiffEq>::Epsilon

The default tolerance to use when testing values that are close together. Read more
Source§

fn abs_diff_eq( &self, other: &Isometry<T, R, D>, epsilon: <Isometry<T, R, D> as AbsDiffEq>::Epsilon, ) -> bool

A test for equality that uses the absolute difference to compute the approximate equality of two numbers.
Source§

fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool

The inverse of AbsDiffEq::abs_diff_eq.
Source§

impl<T, R, const D: usize> Clone for Isometry<T, R, D>
where T: Clone, R: Clone,

Source§

fn clone(&self) -> Isometry<T, R, D>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T, R, const D: usize> Debug for Isometry<T, R, D>
where T: Debug, R: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<T, R, const D: usize> Default for Isometry<T, R, D>

Source§

fn default() -> Isometry<T, R, D>

Returns the “default value” for a type. Read more
Source§

impl<'de, T, R, const D: usize> Deserialize<'de> for Isometry<T, R, D>

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<Isometry<T, R, D>, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<T, R, const D: usize> Display for Isometry<T, R, D>
where T: RealField + Display, R: Display,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Isometry<T, R, D>, ) -> <&'a Isometry<T, R, D> as Div<&'b Isometry<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Isometry<T, R, D>, ) -> <&'a Similarity<T, R, D> as Div<&'b Isometry<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Isometry<T, R, D>, ) -> <Isometry<T, R, D> as Div<&'b Isometry<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T, R, const D: usize> Div<&'b Isometry<T, R, D>> for Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Isometry<T, R, D>, ) -> <Similarity<T, R, D> as Div<&'b Isometry<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, right: &'b Isometry<T, Rotation<T, D>, D>, ) -> <&'a Rotation<T, D> as Div<&'b Isometry<T, Rotation<T, D>, D>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T, const D: usize> Div<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, right: &'b Isometry<T, Rotation<T, D>, D>, ) -> <Rotation<T, D> as Div<&'b Isometry<T, Rotation<T, D>, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T> Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Div<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T, const D: usize> Div<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Rotation<T, D>, ) -> <&'a Isometry<T, Rotation<T, D>, D> as Div<&'b Rotation<T, D>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T, const D: usize> Div<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Rotation<T, D>, ) -> <Isometry<T, Rotation<T, D>, D> as Div<&'b Rotation<T, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T, R, const D: usize> Div<&'b Similarity<T, R, D>> for Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Div<&'b Similarity<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T> Div<&'b Unit<Complex<T>>> for &'a Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Unit<Complex<T>>, ) -> <&'a Isometry<T, Unit<Complex<T>>, 2> as Div<&'b Unit<Complex<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T> Div<&'b Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Unit<Complex<T>>, ) -> <Isometry<T, Unit<Complex<T>>, 2> as Div<&'b Unit<Complex<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T> Div<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<DualQuaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T> Div<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<DualQuaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'a, 'b, T> Div<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<Quaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'b, T> Div<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'b Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<&'b Unit<Quaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T, R, const D: usize> Div<Isometry<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Isometry<T, R, D>, ) -> <&'a Isometry<T, R, D> as Div<Isometry<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T, R, const D: usize> Div<Isometry<T, R, D>> for &'a Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Isometry<T, R, D>, ) -> <&'a Similarity<T, R, D> as Div<Isometry<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<T, R, const D: usize> Div<Isometry<T, R, D>> for Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Isometry<T, R, D>, ) -> <Similarity<T, R, D> as Div<Isometry<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, right: Isometry<T, Rotation<T, D>, D>, ) -> <&'a Rotation<T, D> as Div<Isometry<T, Rotation<T, D>, D>>>::Output

Performs the / operation. Read more
Source§

impl<T, const D: usize> Div<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, right: Isometry<T, Rotation<T, D>, D>, ) -> <Rotation<T, D> as Div<Isometry<T, Rotation<T, D>, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<T> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Div<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T, const D: usize> Div<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Rotation<T, D>, ) -> <&'a Isometry<T, Rotation<T, D>, D> as Div<Rotation<T, D>>>::Output

Performs the / operation. Read more
Source§

impl<T, const D: usize> Div<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Rotation<T, D>, ) -> <Isometry<T, Rotation<T, D>, D> as Div<Rotation<T, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T, R, const D: usize> Div<Similarity<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<T, R, const D: usize> Div<Similarity<T, R, D>> for Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Div<Similarity<T, R, D>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T> Div<Unit<Complex<T>>> for &'a Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Unit<Complex<T>>, ) -> <&'a Isometry<T, Unit<Complex<T>>, 2> as Div<Unit<Complex<T>>>>::Output

Performs the / operation. Read more
Source§

impl<T> Div<Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Unit<Complex<T>>, ) -> <Isometry<T, Unit<Complex<T>>, 2> as Div<Unit<Complex<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T> Div<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<DualQuaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<T> Div<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<DualQuaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<'a, T> Div<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<Quaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<T> Div<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Div<Unit<Quaternion<T>>>>::Output

Performs the / operation. Read more
Source§

impl<T, R, const D: usize> Div for Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Isometry<T, R, D>) -> <Isometry<T, R, D> as Div>::Output

Performs the / operation. Read more
Source§

impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>

Source§

fn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)

Performs the /= operation. Read more
Source§

impl<'b, T, R, const D: usize> DivAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>

Source§

fn div_assign(&mut self, rhs: &'b Isometry<T, R, D>)

Performs the /= operation. Read more
Source§

impl<'b, T> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

fn div_assign(&mut self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>)

Performs the /= operation. Read more
Source§

impl<'b, T, const D: usize> DivAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

fn div_assign(&mut self, rhs: &'b Rotation<T, D>)

Performs the /= operation. Read more
Source§

impl<'b, T> DivAssign<&'b Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

fn div_assign(&mut self, rhs: &'b Unit<Complex<T>>)

Performs the /= operation. Read more
Source§

impl<'b, T> DivAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

fn div_assign(&mut self, rhs: &'b Unit<Quaternion<T>>)

Performs the /= operation. Read more
Source§

impl<T, R, const D: usize> DivAssign<Isometry<T, R, D>> for Similarity<T, R, D>

Source§

fn div_assign(&mut self, rhs: Isometry<T, R, D>)

Performs the /= operation. Read more
Source§

impl<T> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

fn div_assign(&mut self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>)

Performs the /= operation. Read more
Source§

impl<T, const D: usize> DivAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

fn div_assign(&mut self, rhs: Rotation<T, D>)

Performs the /= operation. Read more
Source§

impl<T> DivAssign<Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

fn div_assign(&mut self, rhs: Unit<Complex<T>>)

Performs the /= operation. Read more
Source§

impl<T> DivAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

fn div_assign(&mut self, rhs: Unit<Quaternion<T>>)

Performs the /= operation. Read more
Source§

impl<T, R, const D: usize> DivAssign for Isometry<T, R, D>

Source§

fn div_assign(&mut self, rhs: Isometry<T, R, D>)

Performs the /= operation. Read more
Source§

impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16]> for Isometry<T, R, D>

Source§

fn from( arr: [Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 16], ) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2]> for Isometry<T, R, D>

Source§

fn from( arr: [Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 2], ) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4]> for Isometry<T, R, D>

Source§

fn from( arr: [Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 4], ) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<[Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8]> for Isometry<T, R, D>

Source§

fn from( arr: [Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>; 8], ) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<[T; D]> for Isometry<T, R, D>
where T: SimdRealField, R: AbstractRotation<T, D>,

Source§

fn from(coords: [T; D]) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<Isometry<T, R, D>> for Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T>>

Source§

fn from( iso: Isometry<T, R, D>, ) -> Matrix<T, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T>>

Converts to this type from the input type.
Source§

impl<T> From<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

fn from(iso: Isometry<T, Unit<Quaternion<T>>, 3>) -> Unit<DualQuaternion<T>>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>
where T: SimdRealField, R: AbstractRotation<T, D>,

Source§

fn from( coords: Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>, ) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<OPoint<T, Const<D>>> for Isometry<T, R, D>
where T: SimdRealField, R: AbstractRotation<T, D>,

Source§

fn from(coords: OPoint<T, Const<D>>) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> From<Translation<T, D>> for Isometry<T, R, D>
where T: SimdRealField, R: AbstractRotation<T, D>,

Source§

fn from(tra: Translation<T, D>) -> Isometry<T, R, D>

Converts to this type from the input type.
Source§

impl<T> From<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

fn from(dq: Unit<DualQuaternion<T>>) -> Isometry<T, Unit<Quaternion<T>>, 3>

Converts to this type from the input type.
Source§

impl<T, R, const D: usize> Hash for Isometry<T, R, D>
where T: Scalar + Hash, R: Hash, <DefaultAllocator as Allocator<Const<D>>>::Buffer<T>: Hash,

Source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IsometryOps<AutoSimd<[f32; 4]>> for Isometry<AutoSimd<[f32; 4]>, Unit<Complex<AutoSimd<[f32; 4]>>>, 2>

Source§

fn absolute_transform_vector( &self, v: &Matrix<AutoSimd<[f32; 4]>, Const<2>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 2, 1>>, ) -> Matrix<AutoSimd<[f32; 4]>, Const<2>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 2, 1>>

Transform a vector by the absolute value of the homogeneous matrix equivalent to self.
Source§

impl IsometryOps<AutoSimd<[f32; 4]>> for Isometry<AutoSimd<[f32; 4]>, Unit<Quaternion<AutoSimd<[f32; 4]>>>, 3>

Source§

fn absolute_transform_vector( &self, v: &Matrix<AutoSimd<[f32; 4]>, Const<3>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 3, 1>>, ) -> Matrix<AutoSimd<[f32; 4]>, Const<3>, Const<1>, ArrayStorage<AutoSimd<[f32; 4]>, 3, 1>>

Transform a vector by the absolute value of the homogeneous matrix equivalent to self.
Source§

impl IsometryOps<f32> for Isometry<f32, Unit<Complex<f32>>, 2>

Source§

fn absolute_transform_vector( &self, v: &Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>, ) -> Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>

Transform a vector by the absolute value of the homogeneous matrix equivalent to self.
Source§

impl IsometryOps<f32> for Isometry<f32, Unit<Quaternion<f32>>, 3>

Source§

fn absolute_transform_vector( &self, v: &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>, ) -> Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>

Transform a vector by the absolute value of the homogeneous matrix equivalent to self.
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, R, D>, ) -> <&'a Isometry<T, R, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, R, D>, ) -> <&'a Similarity<T, R, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, R, D>, ) -> <&'a Transform<T, C, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Translation<T, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Isometry<T, R, D>, ) -> <&'a Translation<T, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, R, D>, ) -> <Isometry<T, R, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, R, D>, ) -> <Similarity<T, R, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, R, D>, ) -> <Transform<T, C, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Translation<T, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Isometry<T, R, D>, ) -> <Translation<T, D> as Mul<&'b Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Isometry<T, Rotation<T, D>, D>, ) -> <&'a Rotation<T, D> as Mul<&'b Isometry<T, Rotation<T, D>, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, const D: usize> Mul<&'b Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Isometry<T, Rotation<T, D>, D>, ) -> <Rotation<T, D> as Mul<&'b Isometry<T, Rotation<T, D>, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Complex<T>>, 2>> for &'a Unit<Complex<T>>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, Unit<Complex<T>>, 2>, ) -> <&'a Unit<Complex<T>> as Mul<&'b Isometry<T, Unit<Complex<T>>, 2>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T> Mul<&'b Isometry<T, Unit<Complex<T>>, 2>> for Unit<Complex<T>>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, Unit<Complex<T>>, 2>, ) -> <Unit<Complex<T>> as Mul<&'b Isometry<T, Unit<Complex<T>>, 2>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T> Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Mul<&'b Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>

Source§

type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>, ) -> <&'a Isometry<T, R, D> as Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>

Source§

type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>, ) -> <Isometry<T, R, D> as Mul<&'b Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for &'a Isometry<T, R, D>

Source§

type Output = OPoint<T, Const<D>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b OPoint<T, Const<D>>, ) -> <&'a Isometry<T, R, D> as Mul<&'b OPoint<T, Const<D>>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Isometry<T, R, D>

Source§

type Output = OPoint<T, Const<D>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b OPoint<T, Const<D>>, ) -> <Isometry<T, R, D> as Mul<&'b OPoint<T, Const<D>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, const D: usize> Mul<&'b Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Rotation<T, D>, ) -> <&'a Isometry<T, Rotation<T, D>, D> as Mul<&'b Rotation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, const D: usize> Mul<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Rotation<T, D>, ) -> <Isometry<T, Rotation<T, D>, D> as Mul<&'b Rotation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Mul<&'b Similarity<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Transform<T, C, D>, ) -> <&'a Isometry<T, R, D> as Mul<&'b Transform<T, C, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Transform<T, C, D>, ) -> <Isometry<T, R, D> as Mul<&'b Transform<T, C, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for &'a Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Translation<T, D>, ) -> <&'a Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b Translation<T, D>> for Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Translation<T, D>, ) -> <Isometry<T, R, D> as Mul<&'b Translation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'b Unit<Complex<T>>> for &'a Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Unit<Complex<T>>, ) -> <&'a Isometry<T, Unit<Complex<T>>, 2> as Mul<&'b Unit<Complex<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T> Mul<&'b Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Unit<Complex<T>>, ) -> <Isometry<T, Unit<Complex<T>>, 2> as Mul<&'b Unit<Complex<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'b Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<DualQuaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T> Mul<&'b Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<DualQuaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>

Source§

type Output = Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>, ) -> <&'a Isometry<T, R, D> as Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>

Source§

type Output = Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: &'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>, ) -> <Isometry<T, R, D> as Mul<&'b Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'b Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<Quaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'b, T> Mul<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'b Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<&'b Unit<Quaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, R, D>, ) -> <&'a Isometry<T, R, D> as Mul<Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, R, D>, ) -> <&'a Similarity<T, R, D> as Mul<Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, R, D>, ) -> <&'a Transform<T, C, D> as Mul<Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Translation<T, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Isometry<T, R, D>, ) -> <&'a Translation<T, D> as Mul<Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Similarity<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, R, D>, ) -> <Similarity<T, R, D> as Mul<Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, R, D>, ) -> <Transform<T, C, D> as Mul<Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul<Isometry<T, R, D>> for Translation<T, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Isometry<T, R, D>, ) -> <Translation<T, D> as Mul<Isometry<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for &'a Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Isometry<T, Rotation<T, D>, D>, ) -> <&'a Rotation<T, D> as Mul<Isometry<T, Rotation<T, D>, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, const D: usize> Mul<Isometry<T, Rotation<T, D>, D>> for Rotation<T, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Isometry<T, Rotation<T, D>, D>, ) -> <Rotation<T, D> as Mul<Isometry<T, Rotation<T, D>, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Isometry<T, Unit<Complex<T>>, 2>> for &'a Unit<Complex<T>>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, Unit<Complex<T>>, 2>, ) -> <&'a Unit<Complex<T>> as Mul<Isometry<T, Unit<Complex<T>>, 2>>>::Output

Performs the * operation. Read more
Source§

impl<T> Mul<Isometry<T, Unit<Complex<T>>, 2>> for Unit<Complex<T>>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, Unit<Complex<T>>, 2>, ) -> <Unit<Complex<T>> as Mul<Isometry<T, Unit<Complex<T>>, 2>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for &'a Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <&'a Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<DualQuaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<T> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<Quaternion<T>>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Isometry<T, Unit<Quaternion<T>>, 3>, ) -> <Unit<Quaternion<T>> as Mul<Isometry<T, Unit<Quaternion<T>>, 3>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for &'a Isometry<T, R, D>

Source§

type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>, ) -> <&'a Isometry<T, R, D> as Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>> for Isometry<T, R, D>

Source§

type Output = Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>, ) -> <Isometry<T, R, D> as Mul<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<OPoint<T, Const<D>>> for &'a Isometry<T, R, D>

Source§

type Output = OPoint<T, Const<D>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: OPoint<T, Const<D>>, ) -> <&'a Isometry<T, R, D> as Mul<OPoint<T, Const<D>>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul<OPoint<T, Const<D>>> for Isometry<T, R, D>

Source§

type Output = OPoint<T, Const<D>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: OPoint<T, Const<D>>, ) -> <Isometry<T, R, D> as Mul<OPoint<T, Const<D>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, const D: usize> Mul<Rotation<T, D>> for &'a Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Rotation<T, D>, ) -> <&'a Isometry<T, Rotation<T, D>, D> as Mul<Rotation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, const D: usize> Mul<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

type Output = Isometry<T, Rotation<T, D>, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Rotation<T, D>, ) -> <Isometry<T, Rotation<T, D>, D> as Mul<Rotation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Similarity<T, R, D>, ) -> <&'a Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul<Similarity<T, R, D>> for Isometry<T, R, D>

Source§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Similarity<T, R, D>, ) -> <Isometry<T, R, D> as Mul<Similarity<T, R, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Transform<T, C, D>, ) -> <&'a Isometry<T, R, D> as Mul<Transform<T, C, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D>

Source§

type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Transform<T, C, D>, ) -> <Isometry<T, R, D> as Mul<Transform<T, C, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<Translation<T, D>> for &'a Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Translation<T, D>, ) -> <&'a Isometry<T, R, D> as Mul<Translation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul<Translation<T, D>> for Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Translation<T, D>, ) -> <Isometry<T, R, D> as Mul<Translation<T, D>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Unit<Complex<T>>> for &'a Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Unit<Complex<T>>, ) -> <&'a Isometry<T, Unit<Complex<T>>, 2> as Mul<Unit<Complex<T>>>>::Output

Performs the * operation. Read more
Source§

impl<T> Mul<Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

type Output = Isometry<T, Unit<Complex<T>>, 2>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Unit<Complex<T>>, ) -> <Isometry<T, Unit<Complex<T>>, 2> as Mul<Unit<Complex<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Unit<DualQuaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Unit<DualQuaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<DualQuaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<T> Mul<Unit<DualQuaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Unit<DualQuaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<DualQuaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for &'a Isometry<T, R, D>

Source§

type Output = Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>, ) -> <&'a Isometry<T, R, D> as Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>> for Isometry<T, R, D>

Source§

type Output = Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>

The resulting type after applying the * operator.
Source§

fn mul( self, right: Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>, ) -> <Isometry<T, R, D> as Mul<Unit<Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>>>>::Output

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Unit<Quaternion<T>>> for &'a Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Unit<Quaternion<T>>, ) -> <&'a Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<Quaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<T> Mul<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

type Output = Isometry<T, Unit<Quaternion<T>>, 3>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: Unit<Quaternion<T>>, ) -> <Isometry<T, Unit<Quaternion<T>>, 3> as Mul<Unit<Quaternion<T>>>>::Output

Performs the * operation. Read more
Source§

impl<T, R, const D: usize> Mul for Isometry<T, R, D>

Source§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Isometry<T, R, D>) -> <Isometry<T, R, D> as Mul>::Output

Performs the * operation. Read more
Source§

impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Isometry<T, R, D>

Source§

fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)

Performs the *= operation. Read more
Source§

impl<'b, T, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Similarity<T, R, D>

Source§

fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)

Performs the *= operation. Read more
Source§

impl<'b, T, C, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Transform<T, C, D>

Source§

fn mul_assign(&mut self, rhs: &'b Isometry<T, R, D>)

Performs the *= operation. Read more
Source§

impl<'b, T> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

fn mul_assign(&mut self, rhs: &'b Isometry<T, Unit<Quaternion<T>>, 3>)

Performs the *= operation. Read more
Source§

impl<'b, T, const D: usize> MulAssign<&'b Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

fn mul_assign(&mut self, rhs: &'b Rotation<T, D>)

Performs the *= operation. Read more
Source§

impl<'b, T, R, const D: usize> MulAssign<&'b Translation<T, D>> for Isometry<T, R, D>

Source§

fn mul_assign(&mut self, rhs: &'b Translation<T, D>)

Performs the *= operation. Read more
Source§

impl<'b, T> MulAssign<&'b Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

fn mul_assign(&mut self, rhs: &'b Unit<Complex<T>>)

Performs the *= operation. Read more
Source§

impl<'b, T> MulAssign<&'b Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

fn mul_assign(&mut self, rhs: &'b Unit<Quaternion<T>>)

Performs the *= operation. Read more
Source§

impl<T, R, const D: usize> MulAssign<Isometry<T, R, D>> for Similarity<T, R, D>

Source§

fn mul_assign(&mut self, rhs: Isometry<T, R, D>)

Performs the *= operation. Read more
Source§

impl<T, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D>

Source§

fn mul_assign(&mut self, rhs: Isometry<T, R, D>)

Performs the *= operation. Read more
Source§

impl<T> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for Unit<DualQuaternion<T>>

Source§

fn mul_assign(&mut self, rhs: Isometry<T, Unit<Quaternion<T>>, 3>)

Performs the *= operation. Read more
Source§

impl<T, const D: usize> MulAssign<Rotation<T, D>> for Isometry<T, Rotation<T, D>, D>

Source§

fn mul_assign(&mut self, rhs: Rotation<T, D>)

Performs the *= operation. Read more
Source§

impl<T, R, const D: usize> MulAssign<Translation<T, D>> for Isometry<T, R, D>

Source§

fn mul_assign(&mut self, rhs: Translation<T, D>)

Performs the *= operation. Read more
Source§

impl<T> MulAssign<Unit<Complex<T>>> for Isometry<T, Unit<Complex<T>>, 2>

Source§

fn mul_assign(&mut self, rhs: Unit<Complex<T>>)

Performs the *= operation. Read more
Source§

impl<T> MulAssign<Unit<Quaternion<T>>> for Isometry<T, Unit<Quaternion<T>>, 3>

Source§

fn mul_assign(&mut self, rhs: Unit<Quaternion<T>>)

Performs the *= operation. Read more
Source§

impl<T, R, const D: usize> MulAssign for Isometry<T, R, D>

Source§

fn mul_assign(&mut self, rhs: Isometry<T, R, D>)

Performs the *= operation. Read more
Source§

impl<T, R, const D: usize> One for Isometry<T, R, D>

Source§

fn one() -> Isometry<T, R, D>

Creates a new identity isometry.

Source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
Source§

fn is_one(&self) -> bool
where Self: PartialEq,

Returns true if self is equal to the multiplicative identity. Read more
Source§

impl<T, R, const D: usize> PartialEq for Isometry<T, R, D>

Source§

fn eq(&self, right: &Isometry<T, R, D>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T, R, const D: usize> RelativeEq for Isometry<T, R, D>
where T: RealField, R: AbstractRotation<T, D> + RelativeEq<Epsilon = <T as AbsDiffEq>::Epsilon>, <T as AbsDiffEq>::Epsilon: Clone,

Source§

fn default_max_relative() -> <Isometry<T, R, D> as AbsDiffEq>::Epsilon

The default relative tolerance for testing values that are far-apart. Read more
Source§

fn relative_eq( &self, other: &Isometry<T, R, D>, epsilon: <Isometry<T, R, D> as AbsDiffEq>::Epsilon, max_relative: <Isometry<T, R, D> as AbsDiffEq>::Epsilon, ) -> bool

A test for equality that uses a relative comparison if the values are far apart.
Source§

fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool

The inverse of RelativeEq::relative_eq.
Source§

impl<T, R, const D: usize> Serialize for Isometry<T, R, D>

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<T, R, const D: usize> SimdValue for Isometry<T, R, D>

Source§

const LANES: usize = T::LANES

The number of lanes of this SIMD value.
Source§

type Element = Isometry<<T as SimdValue>::Element, <R as SimdValue>::Element, D>

The type of the elements of each lane of this SIMD value.
Source§

type SimdBool = <T as SimdValue>::SimdBool

Type of the result of comparing two SIMD values like self.
Source§

fn splat(val: <Isometry<T, R, D> as SimdValue>::Element) -> Isometry<T, R, D>

Initializes an SIMD value with each lanes set to val.
Source§

fn extract(&self, i: usize) -> <Isometry<T, R, D> as SimdValue>::Element

Extracts the i-th lane of self. Read more
Source§

unsafe fn extract_unchecked( &self, i: usize, ) -> <Isometry<T, R, D> as SimdValue>::Element

Extracts the i-th lane of self without bound-checking. Read more
Source§

fn replace(&mut self, i: usize, val: <Isometry<T, R, D> as SimdValue>::Element)

Replaces the i-th lane of self by val. Read more
Source§

unsafe fn replace_unchecked( &mut self, i: usize, val: <Isometry<T, R, D> as SimdValue>::Element, )

Replaces the i-th lane of self by val without bound-checking. Read more
Source§

fn select( self, cond: <Isometry<T, R, D> as SimdValue>::SimdBool, other: Isometry<T, R, D>, ) -> Isometry<T, R, D>

Merges self and other depending on the lanes of cond. Read more
Source§

fn map_lanes(self, f: impl Fn(Self::Element) -> Self::Element) -> Self
where Self: Clone,

Applies a function to each lane of self. Read more
Source§

fn zip_map_lanes( self, b: Self, f: impl Fn(Self::Element, Self::Element) -> Self::Element, ) -> Self
where Self: Clone,

Applies a function to each lane of self paired with the corresponding lane of b. Read more
Source§

impl<T1, T2, R> SubsetOf<Isometry<T2, R, 2>> for Unit<Complex<T1>>
where T1: RealField, T2: RealField + SupersetOf<T1>, R: AbstractRotation<T2, 2> + SupersetOf<Unit<Complex<T1>>>,

Source§

fn to_superset(&self) -> Isometry<T2, R, 2>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(iso: &Isometry<T2, R, 2>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked(iso: &Isometry<T2, R, 2>) -> Unit<Complex<T1>>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2, R> SubsetOf<Isometry<T2, R, 3>> for Unit<Quaternion<T1>>
where T1: RealField, T2: RealField + SupersetOf<T1>, R: AbstractRotation<T2, 3> + SupersetOf<Unit<Quaternion<T1>>>,

Source§

fn to_superset(&self) -> Isometry<T2, R, 3>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(iso: &Isometry<T2, R, 3>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked(iso: &Isometry<T2, R, 3>) -> Unit<Quaternion<T1>>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2, R, const D: usize> SubsetOf<Isometry<T2, R, D>> for Rotation<T1, D>
where T1: RealField, T2: RealField + SupersetOf<T1>, R: AbstractRotation<T2, D> + SupersetOf<Rotation<T1, D>>,

Source§

fn to_superset(&self) -> Isometry<T2, R, D>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Rotation<T1, D>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

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>,

Source§

fn to_superset(&self) -> Isometry<T2, R, D>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(iso: &Isometry<T2, R, D>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked(iso: &Isometry<T2, R, D>) -> Translation<T1, D>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2, R1, R2, const D: usize> SubsetOf<Isometry<T2, R2, D>> for Isometry<T1, R1, D>
where T1: RealField, T2: RealField + SupersetOf<T1>, R1: AbstractRotation<T1, D> + SubsetOf<R2>, R2: AbstractRotation<T2, D>,

Source§

fn to_superset(&self) -> Isometry<T2, R2, D>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(iso: &Isometry<T2, R2, D>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked(iso: &Isometry<T2, R2, D>) -> Isometry<T1, R1, D>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2> SubsetOf<Isometry<T2, Unit<Quaternion<T2>>, 3>> for Unit<DualQuaternion<T1>>
where T1: RealField, T2: RealField + SupersetOf<T1>,

Source§

fn to_superset(&self) -> Isometry<T2, Unit<Quaternion<T2>>, 3>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(iso: &Isometry<T2, Unit<Quaternion<T2>>, 3>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked( iso: &Isometry<T2, Unit<Quaternion<T2>>, 3>, ) -> Unit<DualQuaternion<T1>>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2, R, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T2>>> for Isometry<T1, R, D>
where T1: RealField, T2: RealField + SupersetOf<T1>, R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T1>>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T2>>>, Const<D>: DimNameAdd<Const<1>> + DimMin<Const<D>, Output = Const<D>>, DefaultAllocator: Allocator<Const<D>, Buffer<T1> = ArrayStorage<T1, D, 1>> + Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>,

Source§

fn to_superset( &self, ) -> Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T2>>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset( m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T2>>, ) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked( m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output, <DefaultAllocator as Allocator<<Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer<T2>>, ) -> Isometry<T1, R, D>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2, R1, R2, const D: usize> SubsetOf<Similarity<T2, R2, D>> for Isometry<T1, R1, D>
where T1: RealField, T2: RealField + SupersetOf<T1>, R1: AbstractRotation<T1, D> + SubsetOf<R2>, R2: AbstractRotation<T2, D>,

Source§

fn to_superset(&self) -> Similarity<T2, R2, D>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(sim: &Similarity<T2, R2, D>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked(sim: &Similarity<T2, R2, D>) -> Isometry<T1, R1, D>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2, R, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Isometry<T1, R, D>

Source§

fn to_superset(&self) -> Transform<T2, C, D>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(t: &Transform<T2, C, D>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked(t: &Transform<T2, C, D>) -> Isometry<T1, R, D>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T1, T2> SubsetOf<Unit<DualQuaternion<T2>>> for Isometry<T1, Unit<Quaternion<T1>>, 3>
where T1: RealField, T2: RealField + SupersetOf<T1>,

Source§

fn to_superset(&self) -> Unit<DualQuaternion<T2>>

The inclusion map: converts self to the equivalent element of its superset.
Source§

fn is_in_subset(dq: &Unit<DualQuaternion<T2>>) -> bool

Checks if element is actually part of the subset Self (and can be converted to it).
Source§

fn from_superset_unchecked( dq: &Unit<DualQuaternion<T2>>, ) -> Isometry<T1, Unit<Quaternion<T1>>, 3>

Use with care! Same as self.to_superset but without any property checks. Always succeeds.
Source§

fn from_superset(element: &T) -> Option<Self>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

impl<T, R, const D: usize> UlpsEq for Isometry<T, R, D>
where T: RealField, R: AbstractRotation<T, D> + UlpsEq<Epsilon = <T as AbsDiffEq>::Epsilon>, <T as AbsDiffEq>::Epsilon: Clone,

Source§

fn default_max_ulps() -> u32

The default ULPs to tolerate when testing values that are far-apart. Read more
Source§

fn ulps_eq( &self, other: &Isometry<T, R, D>, epsilon: <Isometry<T, R, D> as AbsDiffEq>::Epsilon, max_ulps: u32, ) -> bool

A test for equality that uses units in the last place (ULP) if the values are far apart.
Source§

fn ulps_ne(&self, other: &Rhs, epsilon: Self::Epsilon, max_ulps: u32) -> bool

The inverse of UlpsEq::ulps_eq.
Source§

impl<T, R, const D: usize> Zeroable for Isometry<T, R, D>
where T: Scalar, Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>: Zeroable, R: Zeroable,

Source§

fn zeroed() -> Self

Source§

impl<T, R, const D: usize> Copy for Isometry<T, R, D>
where T: Copy, R: Copy,

Source§

impl<T, R, const D: usize> Eq for Isometry<T, R, D>
where T: SimdRealField, R: AbstractRotation<T, D> + Eq,

Source§

impl<T, R, const D: usize> Pod for Isometry<T, R, D>
where T: Scalar + Copy, Matrix<T, Const<D>, Const<1>, ArrayStorage<T, D, 1>>: Pod, R: Pod,

Auto Trait Implementations§

§

impl<T, R, const D: usize> Freeze for Isometry<T, R, D>
where R: Freeze, T: Freeze,

§

impl<T, R, const D: usize> RefUnwindSafe for Isometry<T, R, D>

§

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§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsyncTaskResult for T
where T: Any + Send + 'static,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CheckedBitPattern for T
where T: AnyBitPattern,

Source§

type Bits = T

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
Source§

fn is_valid_bit_pattern(_bits: &T) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts self reference as a reference to Any. Could be used to downcast a trait object to a particular type.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts self reference as a reference to Any. Could be used to downcast a trait object to a particular type.
Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> FieldValue for T
where T: 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Casts self to a &dyn Any
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> MessageData for T
where T: 'static + Debug + PartialEq + Any + Send + Clone,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Casts self as Any reference.
Source§

fn compare(&self, other: &(dyn MessageData + 'static)) -> bool

Compares this message data with some other.
Source§

fn clone_box(&self) -> Box<dyn MessageData>

Clones self as boxed value.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ScriptMessagePayload for T
where T: 'static + Send + Debug,

Source§

fn as_any_ref(&self) -> &(dyn Any + 'static)

Returns self as &dyn Any
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Returns self as &dyn Any
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> AnyBitPattern for T
where T: Pod,

Source§

impl<T, Right> ClosedDiv<Right> for T
where T: Div<Right, Output = T> + DivAssign<Right>,

Source§

impl<T, Right> ClosedDivAssign<Right> for T
where T: ClosedDiv<Right> + DivAssign<Right>,

Source§

impl<T, Right> ClosedMul<Right> for T
where T: Mul<Right, Output = T> + MulAssign<Right>,

Source§

impl<T, Right> ClosedMulAssign<Right> for T
where T: ClosedMul<Right> + MulAssign<Right>,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> NoUninit for T
where T: Pod,

Source§

impl<T> ResourceLoadError for T
where T: 'static + Debug + Send + Sync,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,