#[repr(C)]pub struct Rotation<N: Scalar, D: DimName>where
DefaultAllocator: Allocator<N, D, D>,{ /* private fields */ }
Expand description
A rotation matrix.
Implementations§
source§impl<N: Scalar, D: DimName> Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Scalar, D: DimName> Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
sourcepub fn matrix(&self) -> &MatrixN<N, D>
pub fn matrix(&self) -> &MatrixN<N, D>
A reference to the underlying matrix representation of this rotation.
sourcepub unsafe fn matrix_mut(&mut self) -> &mut MatrixN<N, D>
pub unsafe fn matrix_mut(&mut self) -> &mut MatrixN<N, D>
A mutable reference to the underlying matrix representation of this rotation.
This is unsafe because this allows the user to replace the matrix by another one that is non-square, non-inversible, or non-orthonormal. If one of those properties is broken, subsequent method calls may be UB.
sourcepub fn to_homogeneous(&self) -> MatrixN<N, DimNameSum<D, U1>>where
N: Zero + One,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>>,
pub fn to_homogeneous(&self) -> MatrixN<N, DimNameSum<D, U1>>where
N: Zero + One,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>>,
Converts this rotation into its equivalent homogeneous transformation matrix.
sourcepub fn from_matrix_unchecked(matrix: MatrixN<N, D>) -> Rotation<N, D>
pub fn from_matrix_unchecked(matrix: MatrixN<N, D>) -> Rotation<N, D>
Creates a new rotation from the given square matrix.
The matrix squareness is checked but not its orthonormality.
sourcepub fn transpose_mut(&mut self)
pub fn transpose_mut(&mut self)
Transposes self
in-place.
sourcepub fn inverse_mut(&mut self)
pub fn inverse_mut(&mut self)
Inverts self
in-place.
source§impl<N, D: DimName> Rotation<N, D>where
N: Scalar + Zero + One,
DefaultAllocator: Allocator<N, D, D>,
impl<N, D: DimName> Rotation<N, D>where
N: Scalar + Zero + One,
DefaultAllocator: Allocator<N, D, D>,
source§impl<N: Real> Rotation<N, U2>
impl<N: Real> Rotation<N, U2>
sourcepub fn from_scaled_axis<SB: Storage<N, U1>>(
axisangle: Vector<N, U1, SB>
) -> Self
pub fn from_scaled_axis<SB: Storage<N, U1>>(
axisangle: Vector<N, U1, SB>
) -> Self
Builds a 2 dimensional rotation matrix from an angle in radian wrapped in a 1-dimensional vector.
Equivalent to Self::new(axisangle[0])
.
source§impl<N: Real> Rotation<N, U2>
impl<N: Real> Rotation<N, U2>
sourcepub fn angle_to(&self, other: &Rotation2<N>) -> N
pub fn angle_to(&self, other: &Rotation2<N>) -> N
The rotation angle needed to make self
and other
coincide.
sourcepub fn rotation_to(&self, other: &Rotation2<N>) -> Rotation2<N>
pub fn rotation_to(&self, other: &Rotation2<N>) -> Rotation2<N>
The rotation matrix needed to make self
and other
coincide.
The result is such that: self.rotation_to(other) * self == other
.
sourcepub fn powf(&self, n: N) -> Rotation2<N>
pub fn powf(&self, n: N) -> Rotation2<N>
Raise the quaternion to a given floating power, i.e., returns the rotation with the angle
of self
multiplied by n
.
sourcepub fn scaled_axis(&self) -> VectorN<N, U1>
pub fn scaled_axis(&self) -> VectorN<N, U1>
The rotation angle returned as a 1-dimensional vector.
source§impl<N: Real> Rotation<N, U3>
impl<N: Real> Rotation<N, U3>
sourcepub fn new<SB: Storage<N, U3>>(axisangle: Vector<N, U3, SB>) -> Self
pub fn new<SB: Storage<N, U3>>(axisangle: Vector<N, U3, SB>) -> Self
Builds a 3 dimensional rotation matrix from an axis and an angle.
Arguments
axisangle
- A vector representing the rotation. Its magnitude is the amount of rotation in radian. Its direction is the axis of rotation.
sourcepub fn from_scaled_axis<SB: Storage<N, U3>>(
axisangle: Vector<N, U3, SB>
) -> Self
pub fn from_scaled_axis<SB: Storage<N, U3>>(
axisangle: Vector<N, U3, SB>
) -> Self
Builds a 3D rotation matrix from an axis scaled by the rotation angle.
sourcepub fn from_axis_angle<SB>(axis: &Unit<Vector<N, U3, SB>>, angle: N) -> Selfwhere
SB: Storage<N, U3>,
pub fn from_axis_angle<SB>(axis: &Unit<Vector<N, U3, SB>>, angle: N) -> Selfwhere
SB: Storage<N, U3>,
Builds a 3D rotation matrix from an axis and a rotation angle.
sourcepub fn from_euler_angles(roll: N, pitch: N, yaw: N) -> Self
pub fn from_euler_angles(roll: N, pitch: N, yaw: N) -> Self
Creates a new rotation from Euler angles.
The primitive rotations are applied in order: 1 roll − 2 pitch − 3 yaw.
sourcepub fn to_euler_angles(&self) -> (N, N, N)
pub fn to_euler_angles(&self) -> (N, N, N)
Creates Euler angles from a rotation.
The angles are produced in the form (roll, yaw, pitch).
sourcepub fn new_observer_frame<SB, SC>(
dir: &Vector<N, U3, SB>,
up: &Vector<N, U3, SC>
) -> Selfwhere
SB: Storage<N, U3>,
SC: Storage<N, U3>,
pub fn new_observer_frame<SB, SC>(
dir: &Vector<N, U3, SB>,
up: &Vector<N, U3, SC>
) -> Selfwhere
SB: Storage<N, U3>,
SC: Storage<N, U3>,
Creates a rotation that corresponds to the local frame of an observer standing at the
origin and looking toward dir
.
It maps the view direction dir
to the positive z
axis.
Arguments
- dir - The look direction, that is, direction the matrix
z
axis will be aligned with. - up - The vertical direction. The only requirement of this parameter is to not be
collinear
to
dir
. Non-collinearity is not checked.
sourcepub fn look_at_rh<SB, SC>(
dir: &Vector<N, U3, SB>,
up: &Vector<N, U3, SC>
) -> Selfwhere
SB: Storage<N, U3>,
SC: Storage<N, U3>,
pub fn look_at_rh<SB, SC>(
dir: &Vector<N, U3, SB>,
up: &Vector<N, U3, SC>
) -> Selfwhere
SB: Storage<N, U3>,
SC: Storage<N, U3>,
Builds a right-handed look-at view matrix without translation.
This conforms to the common notion of right handed look-at matrix from the computer graphics community.
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
.
sourcepub fn look_at_lh<SB, SC>(
dir: &Vector<N, U3, SB>,
up: &Vector<N, U3, SC>
) -> Selfwhere
SB: Storage<N, U3>,
SC: Storage<N, U3>,
pub fn look_at_lh<SB, SC>(
dir: &Vector<N, U3, SB>,
up: &Vector<N, U3, SC>
) -> Selfwhere
SB: Storage<N, U3>,
SC: Storage<N, U3>,
Builds a left-handed look-at view matrix without translation.
This conforms to the common notion of left handed look-at matrix from the computer graphics community.
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
.
sourcepub fn rotation_between<SB, SC>(
a: &Vector<N, U3, SB>,
b: &Vector<N, U3, SC>
) -> Option<Self>where
SB: Storage<N, U3>,
SC: Storage<N, U3>,
pub fn rotation_between<SB, SC>(
a: &Vector<N, U3, SB>,
b: &Vector<N, U3, SC>
) -> Option<Self>where
SB: Storage<N, U3>,
SC: Storage<N, U3>,
The rotation matrix required to align a
and b
but with its angle.
This is the rotation R
such that (R * a).angle(b) == 0 && (R * a).dot(b).is_positive()
.
sourcepub fn scaled_rotation_between<SB, SC>(
a: &Vector<N, U3, SB>,
b: &Vector<N, U3, SC>,
n: N
) -> Option<Self>where
SB: Storage<N, U3>,
SC: Storage<N, U3>,
pub fn scaled_rotation_between<SB, SC>(
a: &Vector<N, U3, SB>,
b: &Vector<N, U3, SC>,
n: N
) -> Option<Self>where
SB: Storage<N, U3>,
SC: Storage<N, U3>,
The smallest rotation needed to make a
and b
collinear and point toward the same
direction, raised to the power s
.
sourcepub fn axis(&self) -> Option<Unit<Vector3<N>>>
pub fn axis(&self) -> Option<Unit<Vector3<N>>>
The rotation axis. Returns None
if the rotation angle is zero or PI.
sourcepub fn scaled_axis(&self) -> Vector3<N>
pub fn scaled_axis(&self) -> Vector3<N>
The rotation axis multiplied by the rotation angle.
sourcepub fn angle_to(&self, other: &Rotation3<N>) -> N
pub fn angle_to(&self, other: &Rotation3<N>) -> N
The rotation angle needed to make self
and other
coincide.
sourcepub fn rotation_to(&self, other: &Rotation3<N>) -> Rotation3<N>
pub fn rotation_to(&self, other: &Rotation3<N>) -> Rotation3<N>
The rotation matrix needed to make self
and other
coincide.
The result is such that: self.rotation_to(other) * self == other
.
Trait Implementations§
source§impl<N, D: DimName> AbsDiffEq<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + AbsDiffEq,
DefaultAllocator: Allocator<N, D, D>,
N::Epsilon: Copy,
impl<N, D: DimName> AbsDiffEq<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + AbsDiffEq,
DefaultAllocator: Allocator<N, D, D>,
N::Epsilon: Copy,
source§fn default_epsilon() -> Self::Epsilon
fn default_epsilon() -> Self::Epsilon
source§impl<N: Real, D: DimName> AbstractMagma<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> AbstractMagma<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§impl<N: Real, D: DimName> AbstractMonoid<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> AbstractMonoid<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> boolwhere
Self: RelativeEq<Self>,
fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> boolwhere
Self: RelativeEq<Self>,
source§impl<N: Real, D: DimName> AbstractQuasigroup<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> AbstractQuasigroup<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
true
if latin squareness holds for the given arguments. Approximate
equality is used for verifications. Read moresource§impl<N: Real, D: DimName> AbstractSemigroup<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> AbstractSemigroup<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§fn prop_is_associative_approx(args: (Self, Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
fn prop_is_associative_approx(args: (Self, Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
true
if associativity holds for the given arguments. Approximate equality is used
for verifications. Read moresource§impl<N: Real, D: DimName> AffineTransformation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> AffineTransformation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
§type NonUniformScaling = Id<Multiplicative>
type NonUniformScaling = Id<Multiplicative>
§type Translation = Id<Multiplicative>
type Translation = Id<Multiplicative>
source§fn decompose(&self) -> (Id, Self, Id, Self)
fn decompose(&self) -> (Id, Self, Id, Self)
source§fn append_translation(&self, _: &Self::Translation) -> Self
fn append_translation(&self, _: &Self::Translation) -> Self
source§fn prepend_translation(&self, _: &Self::Translation) -> Self
fn prepend_translation(&self, _: &Self::Translation) -> Self
source§fn append_rotation(&self, r: &Self::Rotation) -> Self
fn append_rotation(&self, r: &Self::Rotation) -> Self
source§fn prepend_rotation(&self, r: &Self::Rotation) -> Self
fn prepend_rotation(&self, r: &Self::Rotation) -> Self
source§fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
source§fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
source§impl<N: Scalar, D: DimName> Clone for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
<DefaultAllocator as Allocator<N, D, D>>::Buffer: Clone,
impl<N: Scalar, D: DimName> Clone for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
<DefaultAllocator as Allocator<N, D, D>>::Buffer: Clone,
source§impl<N: Debug + Scalar, D: Debug + DimName> Debug for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Debug + Scalar, D: Debug + DimName> Debug for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§impl<N, D: DimName> Display for Rotation<N, D>where
N: Real + Display,
DefaultAllocator: Allocator<N, D, D> + Allocator<usize, D, D>,
impl<N, D: DimName> Display for Rotation<N, D>where
N: Real + Display,
DefaultAllocator: Allocator<N, D, D> + Allocator<usize, D, D>,
source§impl<N: Real> Distribution<Rotation<N, U2>> for Standardwhere
OpenClosed01: Distribution<N>,
impl<N: Real> Distribution<Rotation<N, U2>> for Standardwhere
OpenClosed01: Distribution<N>,
source§impl<N: Real> Distribution<Rotation<N, U3>> for Standardwhere
OpenClosed01: Distribution<N>,
impl<N: Real> Distribution<Rotation<N, U3>> for Standardwhere
OpenClosed01: Distribution<N>,
source§impl<'a, 'b, N: Real, D: DimName> Div<&'b Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, 'b, N: Real, D: DimName> Div<&'b Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'b, N: Real, D: DimName> Div<&'b Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'b, N: Real, D: DimName> Div<&'b Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, 'b, N, D: DimName> Div<&'b Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'a, 'b, N, D: DimName> Div<&'b Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<'b, N, D: DimName> Div<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'b, N, D: DimName> Div<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<'a, 'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<&'b Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<'a, 'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<&'b Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<&'b Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<&'b Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<'a, 'b, N: Real> Div<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, 'b, N: Real> Div<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> Div<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> Div<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, 'b, N: Real> Div<&'b Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'a, 'b, N: Real> Div<&'b Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'b, N: Real> Div<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'b, N: Real> Div<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'a, 'b, N: Real, D: DimName> Div<&'b Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, 'b, N: Real, D: DimName> Div<&'b Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'b, N: Real, D: DimName> Div<&'b Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'b, N: Real, D: DimName> Div<&'b Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<'a, 'b, N: Real> Div<&'b Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, 'b, N: Real> Div<&'b Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> Div<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> Div<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, 'b, N: Real> Div<&'b Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<'a, 'b, N: Real> Div<&'b Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
/
operator.source§impl<'b, N: Real> Div<&'b Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<'b, N: Real> Div<&'b Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
/
operator.source§impl<'a, N: Real, D: DimName> Div<Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, N: Real, D: DimName> Div<Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<N: Real, D: DimName> Div<Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<N: Real, D: DimName> Div<Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, N, D: DimName> Div<Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'a, N, D: DimName> Div<Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<N, D: DimName> Div<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<N, D: DimName> Div<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<'a, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<'a, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Div<Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<'a, N: Real> Div<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, N: Real> Div<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> Div<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> Div<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, N: Real> Div<Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'a, N: Real> Div<Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<N: Real> Div<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<N: Real> Div<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'a, N: Real, D: DimName> Div<Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, N: Real, D: DimName> Div<Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<N: Real, D: DimName> Div<Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<N: Real, D: DimName> Div<Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<'a, N: Real> Div<Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, N: Real> Div<Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> Div<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> Div<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, N: Real> Div<Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<'a, N: Real> Div<Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
/
operator.source§impl<N: Real> Div<Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<N: Real> Div<Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
/
operator.source§impl<'b, N, R1: DimName, C1: DimName> DivAssign<&'b Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
impl<'b, N, R1: DimName, C1: DimName> DivAssign<&'b Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
source§fn div_assign(&mut self, right: &'b Rotation<N, C1>)
fn div_assign(&mut self, right: &'b Rotation<N, C1>)
/=
operation. Read moresource§impl<'b, N, D: DimName> DivAssign<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'b, N, D: DimName> DivAssign<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§fn div_assign(&mut self, right: &'b Rotation<N, D>)
fn div_assign(&mut self, right: &'b Rotation<N, D>)
/=
operation. Read moresource§impl<'b, N, D: DimNameAdd<U1>, C: TCategory> DivAssign<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
impl<'b, N, D: DimNameAdd<U1>, C: TCategory> DivAssign<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
source§fn div_assign(&mut self, rhs: &'b Rotation<N, D>)
fn div_assign(&mut self, rhs: &'b Rotation<N, D>)
/=
operation. Read moresource§impl<'b, N: Real> DivAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> DivAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> DivAssign<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'b, N: Real> DivAssign<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'b, N: Real> DivAssign<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> DivAssign<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§fn div_assign(&mut self, rhs: &'b UnitComplex<N>)
fn div_assign(&mut self, rhs: &'b UnitComplex<N>)
/=
operation. Read moresource§impl<N, R1: DimName, C1: DimName> DivAssign<Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
impl<N, R1: DimName, C1: DimName> DivAssign<Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
source§fn div_assign(&mut self, right: Rotation<N, C1>)
fn div_assign(&mut self, right: Rotation<N, C1>)
/=
operation. Read moresource§impl<N, D: DimName> DivAssign<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<N, D: DimName> DivAssign<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§fn div_assign(&mut self, right: Rotation<N, D>)
fn div_assign(&mut self, right: Rotation<N, D>)
/=
operation. Read moresource§impl<N, D: DimNameAdd<U1>, C: TCategory> DivAssign<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
impl<N, D: DimNameAdd<U1>, C: TCategory> DivAssign<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
source§fn div_assign(&mut self, rhs: Rotation<N, D>)
fn div_assign(&mut self, rhs: Rotation<N, D>)
/=
operation. Read moresource§impl<N: Real> DivAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> DivAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> DivAssign<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<N: Real> DivAssign<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<N: Real> DivAssign<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> DivAssign<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§fn div_assign(&mut self, rhs: UnitComplex<N>)
fn div_assign(&mut self, rhs: UnitComplex<N>)
/=
operation. Read moresource§impl<N: Scalar + Hash, D: DimName + Hash> Hash for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
<DefaultAllocator as Allocator<N, D, D>>::Buffer: Hash,
impl<N: Scalar + Hash, D: DimName + Hash> Hash for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
<DefaultAllocator as Allocator<N, D, D>>::Buffer: Hash,
source§impl<N: Real, D: DimName> Identity<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> Identity<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§impl<N: Scalar, D: DimName> Index<(usize, usize)> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Scalar, D: DimName> Index<(usize, usize)> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§impl<N: Real, D: DimName> Inverse<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> Inverse<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§impl<'a, 'b, N: Real, D: DimName> Mul<&'b Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, 'b, N: Real, D: DimName> Mul<&'b Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'b, N: Real, D: DimName> Mul<&'b Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'b, N: Real, D: DimName> Mul<&'b Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, 'b, N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<&'b Matrix<N, R2, C2, SB>> for &'a Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
impl<'a, 'b, N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<&'b Matrix<N, R2, C2, SB>> for &'a Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
source§impl<'b, N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<&'b Matrix<N, R2, C2, SB>> for Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
impl<'b, N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<&'b Matrix<N, R2, C2, SB>> for Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
source§impl<'a, 'b, N, D: DimName> Mul<&'b Point<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<'a, 'b, N, D: DimName> Mul<&'b Point<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<'b, N, D: DimName> Mul<&'b Point<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<'b, N, D: DimName> Mul<&'b Point<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<'a, 'b, N, D: DimName> Mul<&'b Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'a, 'b, N, D: DimName> Mul<&'b Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<'a, 'b, N: Real, D: DimName> Mul<&'b Rotation<N, D>> for &'a Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, 'b, N: Real, D: DimName> Mul<&'b Rotation<N, D>> for &'a Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'b, N, D: DimName> Mul<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'b, N, D: DimName> Mul<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<'b, N: Real, D: DimName> Mul<&'b Rotation<N, D>> for Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'b, N: Real, D: DimName> Mul<&'b Rotation<N, D>> for Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, 'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<&'b Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<'a, 'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<&'b Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<&'b Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<'b, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<&'b Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<'a, 'b, N: Real> Mul<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, 'b, N: Real> Mul<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> Mul<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> Mul<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, 'b, N: Real> Mul<&'b Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'a, 'b, N: Real> Mul<&'b Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'b, N: Real> Mul<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'b, N: Real> Mul<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'a, 'b, N: Real, D: DimName> Mul<&'b Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, 'b, N: Real, D: DimName> Mul<&'b Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'b, N: Real, D: DimName> Mul<&'b Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'b, N: Real, D: DimName> Mul<&'b Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<'a, 'b, N: Real, D: DimName> Mul<&'b Translation<N, D>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, 'b, N: Real, D: DimName> Mul<&'b Translation<N, D>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'b, N: Real, D: DimName> Mul<&'b Translation<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'b, N: Real, D: DimName> Mul<&'b Translation<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, 'b, N: Real> Mul<&'b Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, 'b, N: Real> Mul<&'b Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> Mul<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> Mul<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, 'b, N, D: DimName, S: Storage<N, D>> Mul<&'b Unit<Matrix<N, D, U1, S>>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<'a, 'b, N, D: DimName, S: Storage<N, D>> Mul<&'b Unit<Matrix<N, D, U1, S>>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<'b, N, D: DimName, S: Storage<N, D>> Mul<&'b Unit<Matrix<N, D, U1, S>>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<'b, N, D: DimName, S: Storage<N, D>> Mul<&'b Unit<Matrix<N, D, U1, S>>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<'a, 'b, N: Real> Mul<&'b Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<'a, 'b, N: Real> Mul<&'b Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
*
operator.source§impl<'b, N: Real> Mul<&'b Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<'b, N: Real> Mul<&'b Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
*
operator.source§impl<'a, N: Real, D: DimName> Mul<Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, N: Real, D: DimName> Mul<Isometry<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<N: Real, D: DimName> Mul<Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<N: Real, D: DimName> Mul<Isometry<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<Matrix<N, R2, C2, SB>> for &'a Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
impl<'a, N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<Matrix<N, R2, C2, SB>> for &'a Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
source§impl<N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<Matrix<N, R2, C2, SB>> for Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
impl<N, D1: DimName, R2: Dim, C2: Dim, SB: Storage<N, R2, C2>> Mul<Matrix<N, R2, C2, SB>> for Rotation<N, D1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D1, D1> + Allocator<N, R2, C2> + Allocator<N, D1, C2>,
DefaultAllocator: Allocator<N, D1, C2>,
ShapeConstraint: AreMultipliable<D1, D1, R2, C2>,
source§impl<'a, N, D: DimName> Mul<Point<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<'a, N, D: DimName> Mul<Point<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<N, D: DimName> Mul<Point<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<N, D: DimName> Mul<Point<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<'a, N, D: DimName> Mul<Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'a, N, D: DimName> Mul<Rotation<N, D>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Rotation<N, D>> for &'a Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<'a, N: Real, D: DimName> Mul<Rotation<N, D>> for &'a Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, N: Real, D: DimName> Mul<Rotation<N, D>> for &'a Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<N, D: DimName> Mul<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<N, D: DimName> Mul<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, D>,
source§impl<N: Real, D: DimName> Mul<Rotation<N, D>> for Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<N: Real, D: DimName> Mul<Rotation<N, D>> for Translation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<'a, N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<Rotation<N, D2>> for &'a Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
impl<N, R1: Dim, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<Rotation<N, D2>> for Matrix<N, R1, C1, SA>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, D2> + Allocator<N, R1, D2>,
DefaultAllocator: Allocator<N, R1, D2>,
ShapeConstraint: AreMultipliable<R1, C1, D2, D2>,
source§impl<'a, N: Real> Mul<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, N: Real> Mul<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> Mul<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> Mul<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, N: Real> Mul<Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'a, N: Real> Mul<Rotation<N, U3>> for &'a UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<N: Real> Mul<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<N: Real> Mul<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'a, N: Real, D: DimName> Mul<Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, N: Real, D: DimName> Mul<Similarity<N, D, Rotation<N, D>>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<N: Real, D: DimName> Mul<Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<N: Real, D: DimName> Mul<Similarity<N, D, Rotation<N, D>>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Transform<N, D, C>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Transform<N, D, C>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,
source§impl<'a, N: Real, D: DimName> Mul<Translation<N, D>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<'a, N: Real, D: DimName> Mul<Translation<N, D>> for &'a Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<N: Real, D: DimName> Mul<Translation<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
impl<N: Real, D: DimName> Mul<Translation<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
source§impl<'a, N: Real> Mul<Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, N: Real> Mul<Unit<Complex<N>>> for &'a Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> Mul<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> Mul<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, N, D: DimName, S: Storage<N, D>> Mul<Unit<Matrix<N, D, U1, S>>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<'a, N, D: DimName, S: Storage<N, D>> Mul<Unit<Matrix<N, D, U1, S>>> for &'a Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<N, D: DimName, S: Storage<N, D>> Mul<Unit<Matrix<N, D, U1, S>>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
impl<N, D: DimName, S: Storage<N, D>> Mul<Unit<Matrix<N, D, U1, S>>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
source§impl<'a, N: Real> Mul<Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<'a, N: Real> Mul<Unit<Quaternion<N>>> for &'a Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
*
operator.source§impl<N: Real> Mul<Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
impl<N: Real> Mul<Unit<Quaternion<N>>> for Rotation<N, U3>where
DefaultAllocator: Allocator<N, U3, U3> + Allocator<N, U4, U1>,
§type Output = Unit<Quaternion<N>>
type Output = Unit<Quaternion<N>>
*
operator.source§impl<'b, N, R1: DimName, C1: DimName> MulAssign<&'b Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
impl<'b, N, R1: DimName, C1: DimName> MulAssign<&'b Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
source§fn mul_assign(&mut self, right: &'b Rotation<N, C1>)
fn mul_assign(&mut self, right: &'b Rotation<N, C1>)
*=
operation. Read moresource§impl<'b, N, D: DimName> MulAssign<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<'b, N, D: DimName> MulAssign<&'b Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§fn mul_assign(&mut self, right: &'b Rotation<N, D>)
fn mul_assign(&mut self, right: &'b Rotation<N, D>)
*=
operation. Read moresource§impl<'b, N, D: DimNameAdd<U1>, C: TCategory> MulAssign<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
impl<'b, N, D: DimNameAdd<U1>, C: TCategory> MulAssign<&'b Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
source§fn mul_assign(&mut self, rhs: &'b Rotation<N, D>)
fn mul_assign(&mut self, rhs: &'b Rotation<N, D>)
*=
operation. Read moresource§impl<'b, N: Real> MulAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> MulAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> MulAssign<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<'b, N: Real> MulAssign<&'b Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<'b, N: Real> MulAssign<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> MulAssign<&'b Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§fn mul_assign(&mut self, rhs: &'b UnitComplex<N>)
fn mul_assign(&mut self, rhs: &'b UnitComplex<N>)
*=
operation. Read moresource§impl<N, R1: DimName, C1: DimName> MulAssign<Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
impl<N, R1: DimName, C1: DimName> MulAssign<Rotation<N, C1>> for MatrixMN<N, R1, C1>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, C1, C1>,
source§fn mul_assign(&mut self, right: Rotation<N, C1>)
fn mul_assign(&mut self, right: Rotation<N, C1>)
*=
operation. Read moresource§impl<N, D: DimName> MulAssign<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<N, D: DimName> MulAssign<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§fn mul_assign(&mut self, right: Rotation<N, D>)
fn mul_assign(&mut self, right: Rotation<N, D>)
*=
operation. Read moresource§impl<N, D: DimNameAdd<U1>, C: TCategory> MulAssign<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
impl<N, D: DimNameAdd<U1>, C: TCategory> MulAssign<Rotation<N, D>> for Transform<N, D, C>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, D>,
source§fn mul_assign(&mut self, rhs: Rotation<N, D>)
fn mul_assign(&mut self, rhs: Rotation<N, D>)
*=
operation. Read moresource§impl<N: Real> MulAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> MulAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> MulAssign<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
impl<N: Real> MulAssign<Rotation<N, U3>> for UnitQuaternion<N>where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
source§impl<N: Real> MulAssign<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> MulAssign<Unit<Complex<N>>> for Rotation<N, U2>where
DefaultAllocator: Allocator<N, U2, U2>,
source§fn mul_assign(&mut self, rhs: UnitComplex<N>)
fn mul_assign(&mut self, rhs: UnitComplex<N>)
*=
operation. Read moresource§impl<N, D: DimName> One for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
impl<N, D: DimName> One for Rotation<N, D>where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D>,
source§impl<N: Scalar + PartialEq, D: DimName> PartialEq<Rotation<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Scalar + PartialEq, D: DimName> PartialEq<Rotation<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
source§impl<N: Real, D: DimName> ProjectiveTransformation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> ProjectiveTransformation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
source§fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
source§impl<N, D: DimName> RelativeEq<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + RelativeEq,
DefaultAllocator: Allocator<N, D, D>,
N::Epsilon: Copy,
impl<N, D: DimName> RelativeEq<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + RelativeEq,
DefaultAllocator: Allocator<N, D, D>,
N::Epsilon: Copy,
source§fn default_max_relative() -> Self::Epsilon
fn default_max_relative() -> Self::Epsilon
source§impl<N: Real, D: DimName> Rotation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> Rotation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
Subgroups of the n-dimensional rotation group SO(n)
.
source§fn powf(&self, _: N) -> Option<Self>
fn powf(&self, _: N) -> Option<Self>
n
. Read moresource§fn rotation_between(_: &VectorN<N, D>, _: &VectorN<N, D>) -> Option<Self>
fn rotation_between(_: &VectorN<N, D>, _: &VectorN<N, D>) -> Option<Self>
a
and b
equal to zero, i.e.,
b.angle(a * delta_rotation(a, b)) = 0
. If a
and b
are collinear, the computed
rotation may not be unique. Returns None
if no such simple rotation exists in the
subgroup represented by Self
. Read moresource§impl<N: Real, D: DimName> Similarity<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> Similarity<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
§type Scaling = Id<Multiplicative>
type Scaling = Id<Multiplicative>
source§fn translation(&self) -> Id
fn translation(&self) -> Id
source§fn translate_point(&self, pt: &E) -> E
fn translate_point(&self, pt: &E) -> E
source§fn rotate_point(&self, pt: &E) -> E
fn rotate_point(&self, pt: &E) -> E
source§fn scale_point(&self, pt: &E) -> E
fn scale_point(&self, pt: &E) -> E
source§fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§fn inverse_translate_point(&self, pt: &E) -> E
fn inverse_translate_point(&self, pt: &E) -> E
source§fn inverse_rotate_point(&self, pt: &E) -> E
fn inverse_rotate_point(&self, pt: &E) -> E
source§fn inverse_scale_point(&self, pt: &E) -> E
fn inverse_scale_point(&self, pt: &E) -> E
source§fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§impl<N1, N2, D: DimName, R> SubsetOf<Isometry<N2, D, R>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
R: AlgaRotation<Point<N2, D>> + SupersetOf<Rotation<N1, D>>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D>,
impl<N1, N2, D: DimName, R> SubsetOf<Isometry<N2, D, R>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
R: AlgaRotation<Point<N2, D>> + SupersetOf<Rotation<N1, D>>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D>,
source§fn to_superset(&self) -> Isometry<N2, D, R>
fn to_superset(&self) -> Isometry<N2, D, R>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<N2, D, R>) -> bool
fn is_in_subset(iso: &Isometry<N2, D, R>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(iso: &Isometry<N2, D, R>) -> Self
unsafe fn from_superset_unchecked(iso: &Isometry<N2, D, R>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2, D> SubsetOf<Matrix<N2, <D as DimNameAdd<U1>>::Output, <D as DimNameAdd<U1>>::Output, <DefaultAllocator as Allocator<N2, <D as DimNameAdd<U1>>::Output, <D as DimNameAdd<U1>>::Output>>::Buffer>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
D: DimNameAdd<U1> + DimMin<D, Output = D>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D, D> + Allocator<N1, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<(usize, usize), D>,
impl<N1, N2, D> SubsetOf<Matrix<N2, <D as DimNameAdd<U1>>::Output, <D as DimNameAdd<U1>>::Output, <DefaultAllocator as Allocator<N2, <D as DimNameAdd<U1>>::Output, <D as DimNameAdd<U1>>::Output>>::Buffer>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
D: DimNameAdd<U1> + DimMin<D, Output = D>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D, D> + Allocator<N1, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<(usize, usize), D>,
source§fn to_superset(&self) -> MatrixN<N2, DimNameSum<D, U1>>
fn to_superset(&self) -> MatrixN<N2, DimNameSum<D, U1>>
self
to the equivalent element of its superset.source§fn is_in_subset(m: &MatrixN<N2, DimNameSum<D, U1>>) -> bool
fn is_in_subset(m: &MatrixN<N2, DimNameSum<D, U1>>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(m: &MatrixN<N2, DimNameSum<D, U1>>) -> Self
unsafe fn from_superset_unchecked(m: &MatrixN<N2, DimNameSum<D, U1>>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2, D: DimName> SubsetOf<Rotation<N2, D>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D, D>,
impl<N1, N2, D: DimName> SubsetOf<Rotation<N2, D>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D, D>,
source§fn to_superset(&self) -> Rotation<N2, D>
fn to_superset(&self) -> Rotation<N2, D>
self
to the equivalent element of its superset.source§fn is_in_subset(rot: &Rotation<N2, D>) -> bool
fn is_in_subset(rot: &Rotation<N2, D>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(rot: &Rotation<N2, D>) -> Self
unsafe fn from_superset_unchecked(rot: &Rotation<N2, D>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2> SubsetOf<Rotation<N2, U2>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
impl<N1, N2> SubsetOf<Rotation<N2, U2>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
source§fn to_superset(&self) -> Rotation2<N2>
fn to_superset(&self) -> Rotation2<N2>
self
to the equivalent element of its superset.source§fn is_in_subset(rot: &Rotation2<N2>) -> bool
fn is_in_subset(rot: &Rotation2<N2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(rot: &Rotation2<N2>) -> Self
unsafe fn from_superset_unchecked(rot: &Rotation2<N2>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2> SubsetOf<Rotation<N2, U3>> for UnitQuaternion<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
impl<N1, N2> SubsetOf<Rotation<N2, U3>> for UnitQuaternion<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
source§fn to_superset(&self) -> Rotation3<N2>
fn to_superset(&self) -> Rotation3<N2>
self
to the equivalent element of its superset.source§fn is_in_subset(rot: &Rotation3<N2>) -> bool
fn is_in_subset(rot: &Rotation3<N2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(rot: &Rotation3<N2>) -> Self
unsafe fn from_superset_unchecked(rot: &Rotation3<N2>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2, D: DimName, R> SubsetOf<Similarity<N2, D, R>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
R: AlgaRotation<Point<N2, D>> + SupersetOf<Rotation<N1, D>>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D>,
impl<N1, N2, D: DimName, R> SubsetOf<Similarity<N2, D, R>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
R: AlgaRotation<Point<N2, D>> + SupersetOf<Rotation<N1, D>>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D>,
source§fn to_superset(&self) -> Similarity<N2, D, R>
fn to_superset(&self) -> Similarity<N2, D, R>
self
to the equivalent element of its superset.source§fn is_in_subset(sim: &Similarity<N2, D, R>) -> bool
fn is_in_subset(sim: &Similarity<N2, D, R>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(sim: &Similarity<N2, D, R>) -> Self
unsafe fn from_superset_unchecked(sim: &Similarity<N2, D, R>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2, D, C> SubsetOf<Transform<N2, D, C>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
C: SuperTCategoryOf<TAffine>,
D: DimNameAdd<U1> + DimMin<D, Output = D>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D, D> + Allocator<N1, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<(usize, usize), D>,
impl<N1, N2, D, C> SubsetOf<Transform<N2, D, C>> for Rotation<N1, D>where
N1: Real,
N2: Real + SupersetOf<N1>,
C: SuperTCategoryOf<TAffine>,
D: DimNameAdd<U1> + DimMin<D, Output = D>,
DefaultAllocator: Allocator<N1, D, D> + Allocator<N2, D, D> + Allocator<N1, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<(usize, usize), D>,
source§fn to_superset(&self) -> Transform<N2, D, C>
fn to_superset(&self) -> Transform<N2, D, C>
self
to the equivalent element of its superset.source§fn is_in_subset(t: &Transform<N2, D, C>) -> bool
fn is_in_subset(t: &Transform<N2, D, C>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(t: &Transform<N2, D, C>) -> Self
unsafe fn from_superset_unchecked(t: &Transform<N2, D, C>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N: Real, D: DimName> Transformation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> Transformation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
source§impl<N, D: DimName> UlpsEq<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + UlpsEq,
DefaultAllocator: Allocator<N, D, D>,
N::Epsilon: Copy,
impl<N, D: DimName> UlpsEq<Rotation<N, D>> for Rotation<N, D>where
N: Scalar + UlpsEq,
DefaultAllocator: Allocator<N, D, D>,
N::Epsilon: Copy,
impl<N: Real, D: DimName> AbstractGroup<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> AbstractLoop<Multiplicative> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Scalar, D: DimName> Copy for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
<DefaultAllocator as Allocator<N, D, D>>::Buffer: Copy,
impl<N: Real, D: DimName> DirectIsometry<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Scalar + Eq, D: DimName> Eq for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D>,
impl<N: Real, D: DimName> Isometry<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> OrthogonalTransformation<Point<N, D>> for Rotation<N, D>where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
Auto Trait Implementations§
impl<N, D> !RefUnwindSafe for Rotation<N, D>
impl<N, D> !Send for Rotation<N, D>
impl<N, D> !Sync for Rotation<N, D>
impl<N, D> !Unpin for Rotation<N, D>
impl<N, D> !UnwindSafe for Rotation<N, D>
Blanket Implementations§
source§impl<T> Rand for Twhere
Standard: Distribution<T>,
impl<T> Rand for Twhere
Standard: Distribution<T>,
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.