Struct heron::rapier_plugin::rapier2d::prelude::nalgebra::geometry::Transform [−][src]
#[repr(C)]pub struct Transform<T, C, const D: usize> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>, { /* fields omitted */ }
Expand description
A transformation matrix in homogeneous coordinates.
It is stored as a matrix with dimensions (D + 1, D + 1)
, e.g., it stores a 4x4 matrix for a
3D transformation.
Implementations
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
pub fn from_matrix_unchecked(
matrix: Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> Transform<T, C, D>
pub fn from_matrix_unchecked(
matrix: Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> Transform<T, C, D>
Creates a new transformation from the given homogeneous matrix. The transformation category
of Self
is not checked to be verified by the given matrix.
pub fn into_inner(
self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn into_inner(
self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
Retrieves the underlying matrix.
Examples
let m = Matrix3::new(1.0, 2.0, 0.0,
3.0, 4.0, 0.0,
0.0, 0.0, 1.0);
let t = Transform2::from_matrix_unchecked(m);
assert_eq!(t.into_inner(), m);
pub fn unwrap(
self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
👎 Deprecated: use .into_inner()
instead
pub fn unwrap(
self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
use .into_inner()
instead
Retrieves the underlying matrix.
Deprecated: Use Transform::into_inner
instead.
pub fn matrix(
&self
) -> &Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn matrix(
&self
) -> &Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
A reference to the underlying matrix.
Examples
let m = Matrix3::new(1.0, 2.0, 0.0,
3.0, 4.0, 0.0,
0.0, 0.0, 1.0);
let t = Transform2::from_matrix_unchecked(m);
assert_eq!(*t.matrix(), m);
pub fn matrix_mut_unchecked(
&mut self
) -> &mut Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn matrix_mut_unchecked(
&mut self
) -> &mut Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
A mutable reference to the underlying matrix.
It is _unchecked
because direct modifications of this matrix may break invariants
identified by this transformation category.
Examples
let m = Matrix3::new(1.0, 2.0, 0.0,
3.0, 4.0, 0.0,
0.0, 0.0, 1.0);
let mut t = Transform2::from_matrix_unchecked(m);
t.matrix_mut_unchecked().m12 = 42.0;
t.matrix_mut_unchecked().m23 = 90.0;
let expected = Matrix3::new(1.0, 42.0, 0.0,
3.0, 4.0, 90.0,
0.0, 0.0, 1.0);
assert_eq!(*t.matrix(), expected);
Sets the category of this transform.
This can be done only if the new category is more general than the current one, e.g., a
transform with category TProjective
cannot be converted to a transform with category
TAffine
because not all projective transformations are affine (the other way-round is
valid though).
👎 Deprecated: This method is redundant with automatic Copy
and the .clone()
method and will be removed in a future release.
This method is redundant with automatic Copy
and the .clone()
method and will be removed in a future release.
Clones this transform into one that owns its data.
pub fn to_homogeneous(
&self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn to_homogeneous(
&self
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
Converts this transform into its equivalent homogeneous transformation matrix.
Examples
let m = Matrix3::new(1.0, 2.0, 0.0,
3.0, 4.0, 0.0,
0.0, 0.0, 1.0);
let t = Transform2::from_matrix_unchecked(m);
assert_eq!(t.into_inner(), m);
Attempts to invert this transformation. You may use .inverse
instead of this
transformation has a subcategory of TProjective
(i.e. if it is a Projective{2,3}
or Affine{2,3}
).
Examples
let m = Matrix3::new(2.0, 2.0, -0.3,
3.0, 4.0, 0.1,
0.0, 0.0, 1.0);
let t = Transform2::from_matrix_unchecked(m);
let inv_t = t.try_inverse().unwrap();
assert_relative_eq!(t * inv_t, Transform2::identity());
assert_relative_eq!(inv_t * t, Transform2::identity());
// Non-invertible case.
let m = Matrix3::new(0.0, 2.0, 1.0,
3.0, 0.0, 5.0,
0.0, 0.0, 0.0);
let t = Transform2::from_matrix_unchecked(m);
assert!(t.try_inverse().is_none());
Inverts this transformation. Use .try_inverse
if this transform has the TGeneral
category (i.e., a Transform{2,3}
may not be invertible).
Examples
let m = Matrix3::new(2.0, 2.0, -0.3,
3.0, 4.0, 0.1,
0.0, 0.0, 1.0);
let proj = Projective2::from_matrix_unchecked(m);
let inv_t = proj.inverse();
assert_relative_eq!(proj * inv_t, Projective2::identity());
assert_relative_eq!(inv_t * proj, Projective2::identity());
Attempts to invert this transformation in-place. You may use .inverse_mut
instead of this
transformation has a subcategory of TProjective
.
Examples
let m = Matrix3::new(2.0, 2.0, -0.3,
3.0, 4.0, 0.1,
0.0, 0.0, 1.0);
let t = Transform2::from_matrix_unchecked(m);
let mut inv_t = t;
assert!(inv_t.try_inverse_mut());
assert_relative_eq!(t * inv_t, Transform2::identity());
assert_relative_eq!(inv_t * t, Transform2::identity());
// Non-invertible case.
let m = Matrix3::new(0.0, 2.0, 1.0,
3.0, 0.0, 5.0,
0.0, 0.0, 0.0);
let mut t = Transform2::from_matrix_unchecked(m);
assert!(!t.try_inverse_mut());
Inverts this transformation in-place. Use .try_inverse_mut
if this transform has the
TGeneral
category (it may not be invertible).
Examples
let m = Matrix3::new(2.0, 2.0, -0.3,
3.0, 4.0, 0.1,
0.0, 0.0, 1.0);
let proj = Projective2::from_matrix_unchecked(m);
let mut inv_t = proj;
inv_t.inverse_mut();
assert_relative_eq!(proj * inv_t, Projective2::identity());
assert_relative_eq!(inv_t * proj, Projective2::identity());
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, Const<1_usize>>,
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, Const<1_usize>>,
Transform the given point by this transformation.
This is the same as the multiplication self * pt
.
pub fn transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
Transform the given vector by this transformation, ignoring the translational component of the transformation.
This is the same as the multiplication self * v
.
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory + SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, Const<1_usize>>,
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory + SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, Const<1_usize>>,
Transform the given point by the inverse of this transformation. This may be cheaper than inverting the transformation and transforming the point.
pub fn inverse_transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
pub fn inverse_transform_vector(
&self,
v: &Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
) -> Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
Transform the given vector by the inverse of this transformation. This may be cheaper than inverting the transformation and transforming the vector.
impl<T, const D: usize> Transform<T, TGeneral, D> where
T: RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, const D: usize> Transform<T, TGeneral, D> where
T: RealField,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
pub fn matrix_mut(
&mut self
) -> &mut Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn matrix_mut(
&mut self
) -> &mut Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
A mutable reference to underlying matrix. Use .matrix_mut_unchecked
instead if this
transformation category is not TGeneral
.
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Creates a new identity transform.
Example
let pt = Point2::new(1.0, 2.0);
let t = Projective2::identity();
assert_eq!(t * pt, pt);
let aff = Affine2::identity();
assert_eq!(aff * pt, pt);
let aff = Transform2::identity();
assert_eq!(aff * pt, pt);
// Also works in 3D.
let pt = Point3::new(1.0, 2.0, 3.0);
let t = Projective3::identity();
assert_eq!(t * pt, pt);
let aff = Affine3::identity();
assert_eq!(aff * pt, pt);
let aff = Transform3::identity();
assert_eq!(aff * pt, pt);
Trait Implementations
impl<T, C, const D: usize> AbsDiffEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> AbsDiffEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Epsilon = <T as AbsDiffEq<T>>::Epsilon
type Epsilon = <T as AbsDiffEq<T>>::Epsilon
Used for specifying relative comparisons.
The default tolerance to use when testing values that are close together. Read more
A test for equality that uses the absolute difference to compute the approximate equality of two numbers. Read more
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
The inverse of [AbsDiffEq::abs_diff_eq
].
impl<T, C, const D: usize> Clone for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Clone for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Div<&'b Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Div<&'b Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Div<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Div<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
impl<'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
impl<'a, 'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
impl<'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Div<&'b Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, CA, CB, const D: usize> Div<&'b Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, CA, CB, const D: usize> Div<&'b Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, CA, CB, const D: usize> Div<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, CA, CB, const D: usize> Div<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Div<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Div<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Translation<T, D>
) -> <Transform<T, C, D> as Div<&'b Translation<T, D>>>::Output
pub fn div(
self,
rhs: &'b Translation<T, D>
) -> <Transform<T, C, D> as Div<&'b Translation<T, D>>>::Output
Performs the /
operation. Read more
impl<'a, 'b, T, C, const D: usize> Div<&'b Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Div<&'b Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Translation<T, D>
) -> <&'a Transform<T, C, D> as Div<&'b Translation<T, D>>>::Output
pub fn div(
self,
rhs: &'b Translation<T, D>
) -> <&'a Transform<T, C, D> as Div<&'b Translation<T, D>>>::Output
Performs the /
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Div<&'b Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'a, T, C, const D: usize> Div<Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Div<Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Div<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Div<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
impl<'a, T, C, const D: usize> Div<Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Div<Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Div<Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Div<Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
impl<T, C, const D: usize> Div<Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Div<Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
impl<T, C, const D: usize> Div<Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Div<Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, CA, CB, const D: usize> Div<Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, CA, CB, const D: usize> Div<Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, CA, CB, const D: usize> Div<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, CA, CB, const D: usize> Div<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Div<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Div<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Translation<T, D>
) -> <Transform<T, C, D> as Div<Translation<T, D>>>::Output
pub fn div(
self,
rhs: Translation<T, D>
) -> <Transform<T, C, D> as Div<Translation<T, D>>>::Output
Performs the /
operation. Read more
impl<'a, T, C, const D: usize> Div<Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Div<Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Translation<T, D>
) -> <&'a Transform<T, C, D> as Div<Translation<T, D>>>::Output
pub fn div(
self,
rhs: Translation<T, D>
) -> <&'a Transform<T, C, D> as Div<Translation<T, D>>>::Output
Performs the /
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the /
operator.
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
pub fn div(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Div<Unit<Quaternion<T>>>>::Output
Performs the /
operation. Read more
impl<'b, T, C, const D: usize> DivAssign<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> DivAssign<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the /=
operation. Read more
impl<'b, T, CA, CB, const D: usize> DivAssign<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: SuperTCategoryOf<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, CA, CB, const D: usize> DivAssign<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: SuperTCategoryOf<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the /=
operation. Read more
impl<'b, T, C, const D: usize> DivAssign<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> DivAssign<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
impl<T, C, const D: usize> DivAssign<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> DivAssign<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the /=
operation. Read more
impl<T, CA, CB, const D: usize> DivAssign<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: SuperTCategoryOf<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, CA, CB, const D: usize> DivAssign<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: SuperTCategoryOf<CB>,
CB: SubTCategoryOf<TProjective>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the /=
operation. Read more
impl<T, C, const D: usize> DivAssign<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> DivAssign<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
impl<T, C, const D: usize> From<Transform<T, C, D>> for Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> From<Transform<T, C, D>> for Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
pub fn from(
t: Transform<T, C, D>
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn from(
t: Transform<T, C, D>
) -> Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
Performs the conversion.
impl<T, C, const D: usize> Hash for Transform<T, C, D> where
T: RealField + Hash,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer: Hash,
impl<T, C, const D: usize> Hash for Transform<T, C, D> where
T: RealField + Hash,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer: Hash,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<'a, 'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<'a, 'b, T, C, const D: usize> Mul<&'b OPoint<T, Const<D>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b OPoint<T, Const<D>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b OPoint<T, Const<D>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Transform<T, C, D> as Mul<&'b Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <&'a Transform<T, C, D> as Mul<&'b Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
impl<'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Transform<T, C, D> as Mul<&'b Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: &'b Similarity<T, R, D>
) -> <Transform<T, C, D> as Mul<&'b Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for &'a Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> Mul<&'b Transform<T, C, D>> for Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, CA, CB, const D: usize> Mul<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Translation<T, D>
) -> <Transform<T, C, D> as Mul<&'b Translation<T, D>>>::Output
pub fn mul(
self,
rhs: &'b Translation<T, D>
) -> <Transform<T, C, D> as Mul<&'b Translation<T, D>>>::Output
Performs the *
operation. Read more
impl<'a, 'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, 'b, T, C, const D: usize> Mul<&'b Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Translation<T, D>
) -> <&'a Transform<T, C, D> as Mul<&'b Translation<T, D>>>::Output
pub fn mul(
self,
rhs: &'b Translation<T, D>
) -> <&'a Transform<T, C, D> as Mul<&'b Translation<T, D>>>::Output
Performs the *
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: &'b Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Mul<&'b Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Isometry<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
type Output = Matrix<T, Const<D>, Const<1_usize>, ArrayStorage<T, D, 1_usize>>
The resulting type after applying the *
operator.
impl<T, C, const D: usize> Mul<OPoint<T, Const<D>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<OPoint<T, Const<D>>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<OPoint<T, Const<D>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<OPoint<T, Const<D>>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Rotation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Similarity<T, R, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <&'a Transform<T, C, D> as Mul<Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <&'a Transform<T, C, D> as Mul<Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
impl<T, C, R, const D: usize> Mul<Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Transform<T, C, D> as Mul<Similarity<T, R, D>>>::Output
pub fn mul(
self,
rhs: Similarity<T, R, D>
) -> <Transform<T, C, D> as Mul<Similarity<T, R, D>>>::Output
Performs the *
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Transform<T, C, D>> for Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Rotation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Isometry<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Transform<T, C, D>> for &'a Translation<T, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> Mul<Transform<T, C, D>> for Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, R, const D: usize> Mul<Transform<T, C, D>> for &'a Similarity<T, R, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
impl<'a, T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for &'a Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, CA, CB, const D: usize> Mul<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategoryMul<CB>,
CB: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'a, T, C, const D: usize> Mul<Translation<T, D>> for &'a Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Translation<T, D>
) -> <&'a Transform<T, C, D> as Mul<Translation<T, D>>>::Output
pub fn mul(
self,
rhs: Translation<T, D>
) -> <&'a Transform<T, C, D> as Mul<Translation<T, D>>>::Output
Performs the *
operation. Read more
impl<T, C, const D: usize> Mul<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> Mul<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategoryMul<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, D>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Translation<T, D>
) -> <Transform<T, C, D> as Mul<Translation<T, D>>>::Output
pub fn mul(
self,
rhs: Translation<T, D>
) -> <Transform<T, C, D> as Mul<Translation<T, D>>>::Output
Performs the *
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <&'a Transform<T, C, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
type Output = Transform<T, <C as TCategoryMul<TAffine>>::Representative, 3_usize>
The resulting type after applying the *
operator.
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
pub fn mul(
self,
rhs: Unit<Quaternion<T>>
) -> <Transform<T, C, 3_usize> as Mul<Unit<Quaternion<T>>>>::Output
Performs the *
operation. Read more
impl<'b, T, C, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> MulAssign<&'b Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<'b, T, C, const D: usize> MulAssign<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> MulAssign<&'b Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<'b, T, C, R, const D: usize> MulAssign<&'b Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, R, const D: usize> MulAssign<&'b Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<'b, T, CA, CB, const D: usize> MulAssign<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategory,
CB: SubTCategoryOf<CA>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, CA, CB, const D: usize> MulAssign<&'b Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategory,
CB: SubTCategoryOf<CA>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<'b, T, C, const D: usize> MulAssign<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<'b, T, C, const D: usize> MulAssign<&'b Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
Performs the *=
operation. Read more
Performs the *=
operation. Read more
impl<T, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> MulAssign<Isometry<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<T, C, const D: usize> MulAssign<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> MulAssign<Rotation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<T, C, R, const D: usize> MulAssign<Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, R, const D: usize> MulAssign<Similarity<T, R, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
R: SubsetOf<Matrix<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<T, CA, CB, const D: usize> MulAssign<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategory,
CB: SubTCategoryOf<CA>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, CA, CB, const D: usize> MulAssign<Transform<T, CB, D>> for Transform<T, CA, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
CA: TCategory,
CB: SubTCategoryOf<CA>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
impl<T, C, const D: usize> MulAssign<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> MulAssign<Translation<T, D>> for Transform<T, C, D> where
T: Scalar + Zero + One + ClosedAdd<T> + ClosedMul<T> + RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Performs the *=
operation. Read more
Performs the *=
operation. Read more
Performs the *=
operation. Read more
impl<T, C, const D: usize> One for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> One for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> PartialEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> PartialEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> RelativeEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> RelativeEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
pub fn default_max_relative(
) -> <Transform<T, C, D> as AbsDiffEq<Transform<T, C, D>>>::Epsilon
pub fn default_max_relative(
) -> <Transform<T, C, D> as AbsDiffEq<Transform<T, C, D>>>::Epsilon
The default relative tolerance for testing values that are far-apart. Read more
A test for equality that uses a relative comparison if the values are far apart.
fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
The inverse of [RelativeEq::relative_eq
].
impl<T, C, const D: usize> SimdValue for Transform<T, C, D> where
T: RealField,
C: TCategory,
<T as SimdValue>::Element: Scalar,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<<T as SimdValue>::Element, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> SimdValue for Transform<T, C, D> where
T: RealField,
C: TCategory,
<T as SimdValue>::Element: Scalar,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<<T as SimdValue>::Element, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
The type of the elements of each lane of this SIMD value.
Type of the result of comparing two SIMD values like self
.
Initializes an SIMD value with each lanes set to val
.
Extracts the i-th lane of self
. Read more
Extracts the i-th lane of self
without bound-checking.
Replaces the i-th lane of self
by val
. Read more
Replaces the i-th lane of self
by val
without bound-checking.
Merges self
and other
depending on the lanes of cond
. Read more
Applies a function to each lane of self
. Read more
impl<T1, T2, C, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> for Transform<T1, C, D> where
T1: RealField + SubsetOf<T2>,
T2: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<T1 as AbsDiffEq<T1>>::Epsilon: Copy,
<T2 as AbsDiffEq<T2>>::Epsilon: Copy,
impl<T1, T2, C, const D: usize> SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> for Transform<T1, C, D> where
T1: RealField + SubsetOf<T2>,
T2: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<T1 as AbsDiffEq<T1>>::Epsilon: Copy,
<T2 as AbsDiffEq<T2>>::Epsilon: Copy,
pub fn to_superset(
&self
) -> Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
pub fn to_superset(
&self
) -> Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
The inclusion map: converts self
to the equivalent element of its superset.
pub fn is_in_subset(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> bool
pub fn is_in_subset(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> bool
Checks if element
is actually part of the subset Self
(and can be converted to it).
pub fn from_superset_unchecked(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> Transform<T1, C, D>
pub fn from_superset_unchecked(
m: &Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>
) -> Transform<T1, C, D>
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, C> SubsetOf<Transform<T2, C, 2_usize>> for Unit<Complex<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
impl<T1, T2, C> SubsetOf<Transform<T2, C, 2_usize>> for Unit<Complex<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, C> SubsetOf<Transform<T2, C, 3_usize>> for Unit<DualQuaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
impl<T1, T2, C> SubsetOf<Transform<T2, C, 3_usize>> for Unit<DualQuaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, C> SubsetOf<Transform<T2, C, 3_usize>> for Unit<Quaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
impl<T1, T2, C> SubsetOf<Transform<T2, C, 3_usize>> for Unit<Quaternion<T1>> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, R, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Similarity<T1, R, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
impl<T1, T2, R, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Similarity<T1, R, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Translation<T1, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T1, T2, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Translation<T1, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Rotation<T1, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
impl<T1, T2, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Rotation<T1, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, R, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Isometry<T1, R, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
impl<T1, T2, R, C, const D: usize> SubsetOf<Transform<T2, C, D>> for Isometry<T1, R, D> where
T1: RealField,
T2: RealField + SupersetOf<T1>,
C: SuperTCategoryOf<TAffine>,
R: AbstractRotation<T1, D> + SubsetOf<Matrix<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>> + SubsetOf<Matrix<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <DefaultAllocator as Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer>>,
Const<D>: DimNameAdd<Const<1_usize>>,
Const<D>: DimMin<Const<D>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<Const<D> as DimMin<Const<D>>>::Output == Const<D>,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T1, T2, C1, C2, const D: usize> SubsetOf<Transform<T2, C2, D>> for Transform<T1, C1, D> where
T1: RealField + SubsetOf<T2>,
T2: RealField,
C1: TCategory,
C2: SuperTCategoryOf<C1>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<T1 as AbsDiffEq<T1>>::Epsilon: Copy,
<T2 as AbsDiffEq<T2>>::Epsilon: Copy,
impl<T1, T2, C1, C2, const D: usize> SubsetOf<Transform<T2, C2, D>> for Transform<T1, C1, D> where
T1: RealField + SubsetOf<T2>,
T2: RealField,
C1: TCategory,
C2: SuperTCategoryOf<C1>,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T1, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
DefaultAllocator: Allocator<T2, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<T1 as AbsDiffEq<T1>>::Epsilon: Copy,
<T2 as AbsDiffEq<T2>>::Epsilon: Copy,
The inclusion map: converts self
to the equivalent element of its superset.
Checks if element
is actually part of the subset Self
(and can be converted to it).
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
fn from_superset(element: &T) -> Option<Self>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
impl<T, C, const D: usize> UlpsEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
impl<T, C, const D: usize> UlpsEq<Transform<T, C, D>> for Transform<T, C, D> where
T: RealField,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
<T as AbsDiffEq<T>>::Epsilon: Clone,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
The default ULPs to tolerate when testing values that are far-apart. Read more
A test for equality that uses units in the last place (ULP) if the values are far apart.
impl<T, C, const D: usize> Copy for Transform<T, C, D> where
T: RealField + Copy,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
<DefaultAllocator as Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>>::Buffer: Copy,
impl<T, C, const D: usize> Eq for Transform<T, C, D> where
T: RealField + Eq,
C: TCategory,
Const<D>: DimNameAdd<Const<1_usize>>,
DefaultAllocator: Allocator<T, <Const<D> as DimNameAdd<Const<1_usize>>>::Output, <Const<D> as DimNameAdd<Const<1_usize>>>::Output>,
Auto Trait Implementations
impl<T, C, const D: usize> !RefUnwindSafe for Transform<T, C, D>
impl<T, C, const D: usize> !UnwindSafe for Transform<T, C, D>
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more