Struct nalgebra::geometry::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: Scalar, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>

§From the translation and rotation parts

source

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

Creates a new isometry from its rotational and translational parts.

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

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

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

§Inversion and in-place composition

source

pub fn inverse(&self) -> Self

Inverts self.

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

assert_eq!(inv * (iso * pt), pt);
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>) -> Self

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

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

assert_eq!(iso1.inverse() * iso2, iso1.inv_mul(&iso2));
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: &Point<T, D>)

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

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

assert_relative_eq!(iso * pt, Point2::new(-2.0, 0.0), epsilon = 1.0e-6);
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: SimdRealField, R: AbstractRotation<T, D>, const D: usize> Isometry<T, R, D>

§Transformation of a vector or a point

source

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

Transform the given point by this isometry.

This is the same as the multiplication self * pt.

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

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

pub fn transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>

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

This is the same as the multiplication self * v.

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

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

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

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

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

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

pub fn inverse_transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>

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

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

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

pub fn inverse_transform_unit_vector( &self, v: &Unit<SVector<T, D>> ) -> Unit<SVector<T, D>>

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

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

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

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

§Conversion to a matrix

source

pub fn to_homogeneous( &self ) -> OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>

Converts this isometry into its equivalent homogeneous transformation matrix.

This is the same as self.to_matrix().

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

assert_relative_eq!(iso.to_homogeneous(), expected, epsilon = 1.0e-6);
source

pub fn to_matrix( &self ) -> OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>

Converts this isometry into its equivalent homogeneous transformation matrix.

This is the same as self.to_homogeneous().

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

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

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

source

pub fn identity() -> Self

Creates a new identity isometry.

§Example

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

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

pub fn rotation_wrt_point(r: R, p: Point<T, D>) -> Self

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

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

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

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

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

source

pub fn new(translation: Vector2<T>, angle: T) -> Self

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

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

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

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

pub fn translation(x: T, y: T) -> Self

Creates a new isometry from the given translation coordinates.

source

pub fn rotation(angle: T) -> Self

Creates a new isometry from the given rotation angle.

source

pub fn cast<To: Scalar>(self) -> IsometryMatrix2<To>
where IsometryMatrix2<To>: SupersetOf<Self>,

Cast the components of self to another type.

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

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

source

pub fn new(translation: Vector2<T>, angle: T) -> Self

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

Its rotational part is represented as an unit complex number.

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

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

pub fn translation(x: T, y: T) -> Self

Creates a new isometry from the given translation coordinates.

source

pub fn rotation(angle: T) -> Self

Creates a new isometry from the given rotation angle.

source

pub fn cast<To: Scalar>(self) -> Isometry2<To>
where Isometry2<To>: SupersetOf<Self>,

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: SimdRealField> Isometry<T, Unit<Quaternion<T>>, 3>

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

source

pub fn new(translation: Vector3<T>, axisangle: Vector3<T>) -> Self

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

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

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

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

pub fn translation(x: T, y: T, z: T) -> Self

Creates a new isometry from the given translation coordinates.

source

pub fn rotation(axisangle: Vector3<T>) -> Self

Creates a new isometry from the given rotation angle.

source

pub fn cast<To: Scalar>(self) -> Isometry3<To>
where Isometry3<To>: SupersetOf<Self>,

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: SimdRealField> Isometry<T, Rotation<T, 3>, 3>

source

pub fn new(translation: Vector3<T>, axisangle: Vector3<T>) -> Self

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

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

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

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

pub fn translation(x: T, y: T, z: T) -> Self

Creates a new isometry from the given translation coordinates.

source

pub fn rotation(axisangle: Vector3<T>) -> Self

Creates a new isometry from the given rotation angle.

source

pub fn cast<To: Scalar>(self) -> IsometryMatrix3<To>
where IsometryMatrix3<To>: SupersetOf<Self>,

Cast the components of self to another type.

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

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

§Construction from a 3D eye position and target point

source

pub fn face_towards( eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T> ) -> Self

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

It maps the z axis to the view direction target - 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: &Point3<T>, target: &Point3<T>, up: &Vector3<T> ) -> Self

👎Deprecated: renamed to face_towards

Deprecated: Use Isometry::face_towards instead.

source

pub fn look_at_rh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self

Builds a right-handed look-at view matrix.

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

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

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

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

pub fn look_at_lh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self

Builds a left-handed look-at view matrix.

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

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

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

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

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

source

pub fn face_towards( eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T> ) -> Self

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

It maps the z axis to the view direction target - 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: &Point3<T>, target: &Point3<T>, up: &Vector3<T> ) -> Self

👎Deprecated: renamed to face_towards

Deprecated: Use Isometry::face_towards instead.

source

pub fn look_at_rh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self

Builds a right-handed look-at view matrix.

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

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

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

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

pub fn look_at_lh(eye: &Point3<T>, target: &Point3<T>, up: &Vector3<T>) -> Self

Builds a left-handed look-at view matrix.

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

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

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

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

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

§Interpolation

source

pub fn lerp_slerp(&self, other: &Self, t: T) -> Self
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: &Self, t: T, epsilon: T) -> Option<Self>
where T: RealField,

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

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: SimdRealField> Isometry<T, Rotation<T, 3>, 3>

source

pub fn lerp_slerp(&self, other: &Self, t: T) -> Self
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: &Self, t: T, epsilon: T) -> Option<Self>
where T: RealField,

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

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: SimdRealField> Isometry<T, Unit<Complex<T>>, 2>

source

pub fn lerp_slerp(&self, other: &Self, t: T) -> Self
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: SimdRealField> Isometry<T, Rotation<T, 2>, 2>

source

pub fn lerp_slerp(&self, other: &Self, t: T) -> Self
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: RealField, R, const D: usize> AbsDiffEq for Isometry<T, R, D>
where R: AbstractRotation<T, D> + AbsDiffEq<Epsilon = T::Epsilon>, T::Epsilon: Clone,

§

type Epsilon = <T as AbsDiffEq>::Epsilon

Used for specifying relative comparisons.
source§

fn default_epsilon() -> Self::Epsilon

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

fn abs_diff_eq(&self, other: &Self, epsilon: Self::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: RealField + RealField, R, const D: usize> AbstractMagma<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

fn operate(&self, rhs: &Self) -> Self

Performs an operation.
source§

fn op(&self, _: O, lhs: &Self) -> Self

Performs specific operation.
source§

impl<T: RealField + RealField, R, const D: usize> AffineTransformation<OPoint<T, Const<D>>> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

§

type Rotation = R

Type of the first rotation to be applied.
§

type NonUniformScaling = Id

Type of the non-uniform scaling to be applied.
§

type Translation = Translation<T, D>

The type of the pure translation part of this affine transformation.
source§

fn decompose(&self) -> (Self::Translation, R, Id, R)

Decomposes this affine transformation into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation.
source§

fn append_translation(&self, t: &Self::Translation) -> Self

Appends a translation to this similarity.
source§

fn prepend_translation(&self, t: &Self::Translation) -> Self

Prepends a translation to this similarity.
source§

fn append_rotation(&self, r: &Self::Rotation) -> Self

Appends a rotation to this similarity.
source§

fn prepend_rotation(&self, r: &Self::Rotation) -> Self

Prepends a rotation to this similarity.
source§

fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self

Appends a scaling factor to this similarity.
source§

fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self

Prepends a scaling factor to this similarity.
source§

fn append_rotation_wrt_point( &self, r: &Self::Rotation, p: &Point<T, D> ) -> Option<Self>

Appends to this similarity a rotation centered at the point p, i.e., this point is left invariant. Read more
source§

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

source§

fn arbitrary(rng: &mut Gen) -> Self

Return an arbitrary value. Read more
source§

fn shrink(&self) -> Box<dyn Iterator<Item = Self>>

Return an iterator of values that are smaller than itself. Read more
source§

impl<T, R, const D: usize> Archive for Isometry<T, R, D>
where T: Archive, R: Archive + Archive, Translation<T, D>: Archive<Archived = Translation<T::Archived, D>>, Translation<T, D>: Archive,

§

type Archived = Isometry<<T as Archive>::Archived, <R as Archive>::Archived, D>

The archived representation of this type. Read more
§

type Resolver = IsometryResolver<T, R, D>

The resolver for this type. It must contain all the additional information from serializing needed to make the archived type from the normal type.
source§

unsafe fn resolve( &self, pos: usize, resolver: Self::Resolver, out: *mut Self::Archived )

Creates the archived version of this value at the given position and writes it to the given output. Read more
source§

impl<__C: ?Sized, T, R, const D: usize> CheckBytes<__C> for Isometry<T, R, D>
where R: CheckBytes<__C>, Translation<T, D>: CheckBytes<__C>,

§

type Error = StructCheckError

The error that may result from checking the type.
source§

unsafe fn check_bytes<'__bytecheck>( value: *const Self, context: &mut __C ) -> Result<&'__bytecheck Self, StructCheckError>

Checks whether the given pointer points to a valid value within the given context. Read more
source§

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

source§

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

Returns a copy 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: Debug, R: Debug, const D: usize> Debug for Isometry<T, R, D>

source§

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

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

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

source§

fn default() -> Self

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

impl<'de, T, R, const D: usize> Deserialize<'de> for Isometry<T, R, D>
where R: Deserialize<'de>, DefaultAllocator: Allocator<T, Const<D>>, Owned<T, Const<D>>: Deserialize<'de>, T: Scalar,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

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

impl<__D: Fallible + ?Sized, T, R, const D: usize> Deserialize<Isometry<T, R, D>, __D> for Archived<Isometry<T, R, D>>
where T: Archive, R: Archive + Archive, Translation<T, D>: Archive<Archived = Translation<T::Archived, D>>, Archived<R>: Deserialize<R, __D>, Translation<T, D>: Archive, Archived<Translation<T, D>>: Deserialize<Translation<T, D>, __D>,

source§

fn deserialize( &self, deserializer: &mut __D ) -> Result<Isometry<T, R, D>, __D::Error>

Deserializes using the given deserializer
source§

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

source§

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

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

impl<T: RealField, R, const D: usize> Distribution<Isometry<T, R, D>> for Standard

source§

fn sample<G: Rng + ?Sized>(&self, rng: &mut G) -> Isometry<T, R, D>

Generate a random value of T, using rng as the source of randomness.
source§

fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>
where R: Rng, Self: Sized,

Create an iterator that generates random values of T, using rng as the source of randomness. Read more
source§

fn map<F, S>(self, func: F) -> DistMap<Self, F, T, S>
where F: Fn(T) -> S, Self: Sized,

Create a distribution of values of ‘S’ by mapping the output of Self through the closure F Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

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>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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>) -> Self::Output

Performs the / operation. Read more
source§

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

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
source§

fn div(self, rhs: &'b Isometry3<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, right: &'b Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the / operation. Read more
source§

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

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
source§

fn div(self, rhs: &'b Isometry3<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, right: &'b Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: &'b UnitComplex<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: &'b UnitComplex<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: &'b UnitQuaternion<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: &'b UnitQuaternion<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

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>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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>) -> Self::Output

Performs the / operation. Read more
source§

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

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Isometry3<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, right: Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the / operation. Read more
source§

impl<T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Isometry3<T>) -> Self::Output

Performs the / operation. Read more
source§

impl<T: SimdRealField> Div<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>

§

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

The resulting type after applying the / operator.
source§

fn div(self, right: Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: Rotation<T, D>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: Rotation<T, D>) -> Self::Output

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: UnitComplex<T>) -> Self::Output

Performs the / operation. Read more
source§

impl<T: SimdRealField> Div<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: UnitComplex<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: UnitQuaternion<T>) -> Self::Output

Performs the / operation. Read more
source§

impl<T: SimdRealField> Div<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>

§

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

The resulting type after applying the / operator.
source§

fn div(self, rhs: UnitQuaternion<T>) -> Self::Output

Performs the / operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the / operator.
source§

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

Performs the / operation. Read more
source§

impl<'b, T: SimdRealField, 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: SimdRealField, 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: SimdRealField> DivAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>

source§

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

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, UnitComplex<T>, 2>

source§

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

Performs the /= operation. Read more
source§

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

source§

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

Performs the /= operation. Read more
source§

impl<T: SimdRealField, 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: SimdRealField> DivAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>

source§

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

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, UnitComplex<T>, 2>

source§

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

Performs the /= operation. Read more
source§

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

source§

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

Performs the /= operation. Read more
source§

impl<T: SimdRealField, 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::Element, R::Element, D>; 16]) -> Self

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::Element, R::Element, D>; 2]) -> Self

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::Element, R::Element, D>; 4]) -> Self

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::Element, R::Element, D>; 8]) -> Self

Converts to this type from the input type.
source§

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

source§

fn from(coords: [T; D]) -> Self

Converts to this type from the input type.
source§

impl<T: SimdRealField, R, const D: usize> From<Isometry<T, R, D>> for OMatrix<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>

source§

fn from(iso: Isometry<T, R, D>) -> Self

Converts to this type from the input type.
source§

impl<T: SimdRealField> From<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>

source§

fn from(iso: Isometry3<T>) -> Self

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for (Vec2, f32)

source§

fn from(iso: Isometry2<f32>) -> (Vec2, f32)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Complex<f32>>, 2>> for Mat3

source§

fn from(iso: Isometry2<f32>) -> Mat3

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for (Vec3, Quat)

source§

fn from(iso: Isometry3<f32>) -> (Vec3, Quat)

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f32, Unit<Quaternion<f32>>, 3>> for Mat4

source§

fn from(iso: Isometry3<f32>) -> Mat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for (DVec2, f64)

source§

fn from(iso: Isometry2<f64>) -> (DVec2, f64)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Complex<f64>>, 2>> for DMat3

source§

fn from(iso: Isometry2<f64>) -> DMat3

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for (DVec3, DQuat)

source§

fn from(iso: Isometry3<f64>) -> (DVec3, DQuat)

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

impl From<Isometry<f64, Unit<Quaternion<f64>>, 3>> for DMat4

source§

fn from(iso: Isometry3<f64>) -> DMat4

Converts to this type from the input type.
source§

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

source§

fn from(coords: SVector<T, D>) -> Self

Converts to this type from the input type.
source§

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

source§

fn from(coords: Point<T, D>) -> Self

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

impl<T: Scalar + Hash, R: Hash, const D: usize> Hash for Isometry<T, R, D>
where Owned<T, Const<D>>: Hash,

source§

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

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<T: RealField + RealField, R, const D: usize> Identity<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

fn identity() -> Self

The identity element.
source§

fn id(_: O) -> Self
where Self: Sized,

Specific identity.
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b Isometry<T, R, D>) -> Self::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>

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b Isometry<T, R, D>) -> Self::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>

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b Isometry<T, UnitComplex<T>, 2>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b Isometry<T, UnitComplex<T>, 2>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b Isometry3<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: &'b Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b Isometry3<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: &'b Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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 SVector<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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 SVector<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: &'b Point<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: &'b Point<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b Similarity<T, R, D>) -> Self::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>

§

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>) -> Self::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>

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, right: &'b Translation<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, right: &'b Translation<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b UnitComplex<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b UnitComplex<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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<SVector<T, D>>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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<SVector<T, D>>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b UnitQuaternion<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &'b UnitQuaternion<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Isometry<T, R, D>) -> Self::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>

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Isometry<T, UnitComplex<T>, 2>) -> Self::Output

Performs the * operation. Read more
source§

impl<T: SimdRealField> Mul<Isometry<T, Unit<Complex<T>>, 2>> for UnitComplex<T>

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Isometry<T, UnitComplex<T>, 2>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Isometry3<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the * operation. Read more
source§

impl<T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>

§

type Output = Unit<DualQuaternion<T>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Isometry3<T>) -> Self::Output

Performs the * operation. Read more
source§

impl<T: SimdRealField> Mul<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitQuaternion<T>

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: Isometry<T, UnitQuaternion<T>, 3>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: SVector<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: SVector<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: Point<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, right: Point<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Rotation<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Rotation<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

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

§

type Output = Similarity<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Similarity<T, R, D>) -> Self::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>

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, right: Translation<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

fn mul(self, right: Translation<T, D>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: UnitComplex<T>) -> Self::Output

Performs the * operation. Read more
source§

impl<T: SimdRealField> Mul<Unit<Complex<T>>> for Isometry<T, UnitComplex<T>, 2>

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: UnitComplex<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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<SVector<T, D>>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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<SVector<T, D>>) -> Self::Output

Performs the * operation. Read more
source§

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

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: UnitQuaternion<T>) -> Self::Output

Performs the * operation. Read more
source§

impl<T: SimdRealField> Mul<Unit<Quaternion<T>>> for Isometry<T, UnitQuaternion<T>, 3>

§

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

The resulting type after applying the * operator.
source§

fn mul(self, rhs: UnitQuaternion<T>) -> Self::Output

Performs the * operation. Read more
source§

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

§

type Output = Isometry<T, R, D>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<'b, T: SimdRealField, 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: SimdRealField, 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: SimdRealField> MulAssign<&'b Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>

source§

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

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: SimdRealField, 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, UnitComplex<T>, 2>

source§

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

Performs the *= operation. Read more
source§

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

source§

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

Performs the *= operation. Read more
source§

impl<T: SimdRealField, 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: SimdRealField> MulAssign<Isometry<T, Unit<Quaternion<T>>, 3>> for UnitDualQuaternion<T>

source§

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

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: SimdRealField, 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, UnitComplex<T>, 2>

source§

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

Performs the *= operation. Read more
source§

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

source§

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

Performs the *= operation. Read more
source§

impl<T: SimdRealField, 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: SimdRealField, R: AbstractRotation<T, D>, const D: usize> One for Isometry<T, R, D>

source§

fn one() -> Self

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: SimdRealField, R, const D: usize> PartialEq for Isometry<T, R, D>
where R: AbstractRotation<T, D> + PartialEq,

source§

fn eq(&self, right: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: RealField + RealField, R, const D: usize> ProjectiveTransformation<OPoint<T, Const<D>>> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

fn inverse_transform_point(&self, pt: &Point<T, D>) -> Point<T, D>

Applies this group’s two_sided_inverse action on a point from the euclidean space.
source§

fn inverse_transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>

Applies this group’s two_sided_inverse action on a vector from the euclidean space. Read more
source§

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

source§

fn default_max_relative() -> Self::Epsilon

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

fn relative_eq( &self, other: &Self, epsilon: Self::Epsilon, max_relative: Self::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<__S: Fallible + ?Sized, T, R, const D: usize> Serialize<__S> for Isometry<T, R, D>
where T: Archive, R: Archive + Serialize<__S>, Translation<T, D>: Archive<Archived = Translation<T::Archived, D>>, Translation<T, D>: Serialize<__S>,

source§

fn serialize(&self, serializer: &mut __S) -> Result<Self::Resolver, __S::Error>

Writes the dependencies for the object and returns a resolver that can create the archived type.
source§

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

source§

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

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

impl<T: SimdRealField, R, const D: usize> SimdValue for Isometry<T, R, D>
where T::Element: SimdRealField, R: SimdValue<SimdBool = T::SimdBool> + AbstractRotation<T, D>, R::Element: AbstractRotation<T::Element, D>,

§

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

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

type SimdBool = <T as SimdValue>::SimdBool

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

fn lanes() -> usize

The number of lanes of this SIMD value.
source§

fn splat(val: Self::Element) -> Self

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

fn extract(&self, i: usize) -> Self::Element

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

unsafe fn extract_unchecked(&self, i: usize) -> Self::Element

Extracts the i-th lane of self without bound-checking.
source§

fn replace(&mut self, i: usize, val: Self::Element)

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

unsafe fn replace_unchecked(&mut self, i: usize, val: Self::Element)

Replaces the i-th lane of self by val without bound-checking.
source§

fn select(self, cond: Self::SimdBool, other: Self) -> Self

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<T: RealField + RealField, R, const D: usize> Similarity<OPoint<T, Const<D>>> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

§

type Scaling = Id

The type of the pure (uniform) scaling part of this similarity transformation.
source§

fn translation(&self) -> Translation<T, D>

The pure translational component of this similarity transformation.
source§

fn rotation(&self) -> R

The pure rotational component of this similarity transformation.
source§

fn scaling(&self) -> Id

The pure scaling component of this similarity transformation.
source§

fn translate_point(&self, pt: &E) -> E

Applies this transformation’s pure translational part to a point.
source§

fn rotate_point(&self, pt: &E) -> E

Applies this transformation’s pure rotational part to a point.
source§

fn scale_point(&self, pt: &E) -> E

Applies this transformation’s pure scaling part to a point.
source§

fn rotate_vector( &self, pt: &<E as EuclideanSpace>::Coordinates ) -> <E as EuclideanSpace>::Coordinates

Applies this transformation’s pure rotational part to a vector.
source§

fn scale_vector( &self, pt: &<E as EuclideanSpace>::Coordinates ) -> <E as EuclideanSpace>::Coordinates

Applies this transformation’s pure scaling part to a vector.
source§

fn inverse_translate_point(&self, pt: &E) -> E

Applies this transformation inverse’s pure translational part to a point.
source§

fn inverse_rotate_point(&self, pt: &E) -> E

Applies this transformation inverse’s pure rotational part to a point.
source§

fn inverse_scale_point(&self, pt: &E) -> E

Applies this transformation inverse’s pure scaling part to a point.
source§

fn inverse_rotate_vector( &self, pt: &<E as EuclideanSpace>::Coordinates ) -> <E as EuclideanSpace>::Coordinates

Applies this transformation inverse’s pure rotational part to a vector.
source§

fn inverse_scale_vector( &self, pt: &<E as EuclideanSpace>::Coordinates ) -> <E as EuclideanSpace>::Coordinates

Applies this transformation inverse’s pure scaling part to a vector.
source§

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

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>) -> Self

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 UnitQuaternion<T1>
where T1: RealField, T2: RealField + SupersetOf<T1>, R: AbstractRotation<T2, 3> + SupersetOf<Self>,

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>) -> Self

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

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>) -> Self

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>) -> Self

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>) -> Self

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 UnitDualQuaternion<T1>
where T1: RealField, T2: RealField + SupersetOf<T1>,

source§

fn to_superset(&self) -> Isometry3<T2>

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

fn is_in_subset(iso: &Isometry3<T2>) -> bool

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

fn from_superset_unchecked(iso: &Isometry3<T2>) -> Self

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<T2, <Const<D> as DimNameAdd<Const<1>>>::Output, <Const<D> as DimNameAdd<Const<1>>>::Output>>::Buffer>> for Isometry<T1, R, D>

source§

fn to_superset( &self ) -> OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>

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

fn is_in_subset( m: &OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> ) -> bool

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

fn from_superset_unchecked( m: &OMatrix<T2, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>> ) -> Self

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>) -> Self

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>) -> Self

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: RealField + RealField, R, const D: usize> Transformation<OPoint<T, Const<D>>> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

fn transform_point(&self, pt: &Point<T, D>) -> Point<T, D>

Applies this group’s action on a point from the euclidean space.
source§

fn transform_vector(&self, v: &SVector<T, D>) -> SVector<T, D>

Applies this group’s action on a vector from the euclidean space. Read more
source§

impl<T: RealField + RealField, R, const D: usize> TwoSidedInverse<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

fn two_sided_inverse(&self) -> Self

Returns the two_sided_inverse of self, relative to the operator O. Read more
source§

fn two_sided_inverse_mut(&mut self)

In-place inversion of self, relative to the operator O. Read more
source§

impl<T: RealField, R, const D: usize> UlpsEq for Isometry<T, R, D>
where R: AbstractRotation<T, D> + UlpsEq<Epsilon = T::Epsilon>, T::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: &Self, epsilon: Self::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: RealField + RealField, R, const D: usize> AbstractGroup<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

impl<T: RealField + RealField, R, const D: usize> AbstractLoop<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

impl<T: RealField + RealField, R, const D: usize> AbstractMonoid<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

impl<T: RealField + RealField, R, const D: usize> AbstractQuasigroup<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

impl<T: RealField + RealField, R, const D: usize> AbstractSemigroup<Multiplicative> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

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

source§

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

source§

impl<T: RealField + RealField, R, const D: usize> DirectIsometry<OPoint<T, Const<D>>> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

source§

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

source§

impl<T: RealField + RealField, R, const D: usize> Isometry<OPoint<T, Const<D>>> for Isometry<T, R, D>
where R: Rotation<Point<T, D>> + AbstractRotation<T, D>,

Auto Trait Implementations§

§

impl<T, R, const D: usize> 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> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> ArchiveUnsized for T
where T: Archive,

§

type Archived = <T as Archive>::Archived

The archived counterpart of this type. Unlike Archive, it may be unsized. Read more
§

type MetadataResolver = ()

The resolver for the metadata of this type. Read more
source§

unsafe fn resolve_metadata( &self, _: usize, _: <T as ArchiveUnsized>::MetadataResolver, _: *mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata )

Creates the archived version of the metadata for this value at the given position and writes it to the given output. Read more
source§

unsafe fn resolve_unsized( &self, from: usize, to: usize, resolver: Self::MetadataResolver, out: *mut RelPtr<Self::Archived, <isize as Archive>::Archived> )

Resolves a relative pointer to this value with the given from and to and writes it to the given output. Read more
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> CallHasher for T
where T: Hash + ?Sized,

source§

default fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64
where H: Hash + ?Sized, B: BuildHasher,

source§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

source§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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> LayoutRaw for T

source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

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<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, S> SerializeUnsized<S> for T
where T: Serialize<S>, S: Serializer + ?Sized,

source§

fn serialize_unsized( &self, serializer: &mut S ) -> Result<usize, <S as Fallible>::Error>

Writes the object and returns the position of the archived type.
source§

fn serialize_metadata(&self, _: &mut S) -> Result<(), <S as Fallible>::Error>

Serializes the metadata for the given type.
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<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§

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

§

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> ToString for T
where T: Display + ?Sized,

source§

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

§

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

§

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, Right> ClosedDiv<Right> for T
where T: Div<Right, Output = T> + DivAssign<Right>,

source§

impl<T, Right> ClosedDiv<Right> for T
where T: Div<Right, Output = T> + DivAssign<Right>,

source§

impl<T, Right> ClosedMul<Right> for T
where T: Mul<Right, Output = T> + MulAssign<Right>,

source§

impl<T, Right> ClosedMul<Right> for T
where T: Mul<Right, Output = T> + MulAssign<Right>,

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

source§

impl<T> MultiplicativeGroup for T

source§

impl<T> MultiplicativeLoop for T

source§

impl<T> MultiplicativeMagma for T

source§

impl<T> MultiplicativeMonoid for T

source§

impl<T> MultiplicativeQuasigroup for T

source§

impl<T> MultiplicativeSemigroup for T

source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,