# [−][src]Struct nalgebra::geometry::Translation

    #[repr(C)]
    pub struct Translation<N: Scalar, D: DimName> where
        DefaultAllocator: Allocator<N, D>,  {
        pub vector: VectorN<N, D>,
    }

A translation.

## Fields

`vector: VectorN<N, D>`

The translation coordinates, i.e., how much is added to a point's coordinates when it is translated.

## Methods

### `impl<N: Scalar, D: DimName> Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `pub fn from_vector(vector: VectorN<N, D>) -> Translation<N, D>`[src]

Deprecated:

Use `::from` instead.

Creates a new translation from the given vector.

#### `pub fn inverse(&self) -> Translation<N, D> where
N: ClosedNeg,` [src]

Inverts `self`.

# Example

    let t = Translation3::new(1.0, 2.0, 3.0);
    assert_eq!(t * t.inverse(), Translation3::identity());
    assert_eq!(t.inverse() * t, Translation3::identity());

    // Work in all dimensions.
    let t = Translation2::new(1.0, 2.0);
    assert_eq!(t * t.inverse(), Translation2::identity());
    assert_eq!(t.inverse() * t, Translation2::identity());

#### `pub fn to_homogeneous(&self) -> MatrixN<N, DimNameSum<D, U1>> where
N: Zero + One,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>>,` [src]

Converts this translation into its equivalent homogeneous transformation matrix.

# Example

    let t = Translation3::new(10.0, 20.0, 30.0);
    let expected = Matrix4::new(1.0, 0.0, 0.0, 10.0,
                                0.0, 1.0, 0.0, 20.0,
                                0.0, 0.0, 1.0, 30.0,
                                0.0, 0.0, 0.0, 1.0);
    assert_eq!(t.to_homogeneous(), expected);

    let t = Translation2::new(10.0, 20.0);
    let expected = Matrix3::new(1.0, 0.0, 10.0,
                                0.0, 1.0, 20.0,
                                0.0, 0.0, 1.0);
    assert_eq!(t.to_homogeneous(), expected);

#### `pub fn inverse_mut(&mut self) where
N: ClosedNeg,` [src]

Inverts `self` in-place.

# Example

    let t = Translation3::new(1.0, 2.0, 3.0);
    let mut inv_t = Translation3::new(1.0, 2.0, 3.0);
    inv_t.inverse_mut();
    assert_eq!(t * inv_t, Translation3::identity());
    assert_eq!(inv_t * t, Translation3::identity());

    // Work in all dimensions.
    let t = Translation2::new(1.0, 2.0);
    let mut inv_t = Translation2::new(1.0, 2.0);
    inv_t.inverse_mut();
    assert_eq!(t * inv_t, Translation2::identity());
    assert_eq!(inv_t * t, Translation2::identity());

### `impl<N: Scalar + ClosedAdd, D: DimName> Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `pub fn transform_point(&self, pt: &Point<N, D>) -> Point<N, D>`[src]

Translate the given point.

This is the same as the multiplication `self * pt`.

# Example

    let t = Translation3::new(1.0, 2.0, 3.0);
    let transformed_point = t.transform_point(&Point3::new(4.0, 5.0, 6.0));
    assert_eq!(transformed_point, Point3::new(5.0, 7.0, 9.0));

### `impl<N: Scalar + ClosedSub, D: DimName> Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `pub fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>`[src]

Translate the given point by the inverse of this translation.

# Example

    let t = Translation3::new(1.0, 2.0, 3.0);
    let transformed_point = t.inverse_transform_point(&Point3::new(4.0, 5.0, 6.0));
    assert_eq!(transformed_point, Point3::new(3.0, 3.0, 3.0));

### `impl<N: Scalar + Zero, D: DimName> Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `pub fn identity() -> Translation<N, D>`[src]

Creates a new identity translation.

# Example

    let t = Translation2::identity();
    let p = Point2::new(1.0, 2.0);
    assert_eq!(t * p, p);

    // Works in all dimensions.
    let t = Translation3::identity();
    let p = Point3::new(1.0, 2.0, 3.0);
    assert_eq!(t * p, p);

### `impl<N: Scalar> Translation<N, U1> where
DefaultAllocator: Allocator<N, U1>,` [src]

#### `pub fn new(x: N) -> Self`[src]

Initializes this translation from its components.

# Example

    let t = Translation1::new(1.0);
    assert!(t.vector.x == 1.0);

### `impl<N: Scalar> Translation<N, U2> where
DefaultAllocator: Allocator<N, U2>,` [src]

#### `pub fn new(x: N, y: N) -> Self`[src]

Initializes this translation from its components.

# Example

    let t = Translation2::new(1.0, 2.0);
    assert!(t.vector.x == 1.0 && t.vector.y == 2.0);

### `impl<N: Scalar> Translation<N, U3> where
DefaultAllocator: Allocator<N, U3>,` [src]

#### `pub fn new(x: N, y: N, z: N) -> Self`[src]

Initializes this translation from its components.

# Example

    let t = Translation3::new(1.0, 2.0, 3.0);
    assert!(t.vector.x == 1.0 && t.vector.y == 2.0 && t.vector.z == 3.0);

### `impl<N: Scalar> Translation<N, U4> where
DefaultAllocator: Allocator<N, U4>,` [src]

#### `pub fn new(x: N, y: N, z: N, w: N) -> Self`[src]

Initializes this translation from its components.

# Example

    let t = Translation4::new(1.0, 2.0, 3.0, 4.0);
    assert!(t.vector.x == 1.0 && t.vector.y == 2.0 && t.vector.z == 3.0 && t.vector.w == 4.0);

### `impl<N: Scalar> Translation<N, U5> where
DefaultAllocator: Allocator<N, U5>,` [src]

#### `pub fn new(x: N, y: N, z: N, w: N, a: N) -> Self`[src]

Initializes this translation from its components.

# Example

    let t = Translation5::new(1.0, 2.0, 3.0, 4.0, 5.0);
    assert!(t.vector.x == 1.0 && t.vector.y == 2.0 && t.vector.z == 3.0 && t.vector.w == 4.0 && t.vector.a == 5.0);

### `impl<N: Scalar> Translation<N, U6> where
DefaultAllocator: Allocator<N, U6>,` [src]

#### `pub fn new(x: N, y: N, z: N, w: N, a: N, b: N) -> Self`[src]

Initializes this translation from its components.

# Example

    let t = Translation6::new(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);
    assert!(t.vector.x == 1.0 && t.vector.y == 2.0 && t.vector.z == 3.0 && t.vector.w == 4.0 && t.vector.a == 5.0 && t.vector.b == 6.0);

## Trait Implementations

### `impl<N: Scalar + Eq, D: DimName> Eq for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

### `impl<N: Scalar, D: DimName> Clone for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
Owned<N, D>: Clone,` [src]

#### `fn clone(&self) -> Self`[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

### `impl<N: Scalar + PartialEq, D: DimName> PartialEq<Translation<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn eq(&self, right: &Translation<N, D>) -> bool`[src]

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

#### `#[must_use] fn ne(&self, other: &Rhs) -> bool` 1.0.0[src]

This method tests for `!=`.

### `impl<N: Scalar + Zero + One, D: DimName> From<Translation<N, D>> for MatrixN<N, DimNameSum<D, U1>> where
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, D> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>>,` [src]

#### `fn from(t: Translation<N, D>) -> Self`[src]

Performs the conversion.

### `impl<N: Scalar, D: DimName> From<Matrix<N, D, U1, <DefaultAllocator as Allocator<N, D, U1>>::Buffer>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn from(vector: VectorN<N, D>) -> Self`[src]

Performs the conversion.

### `impl<N: Scalar, D: DimName> Copy for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
Owned<N, D>: Copy,` [src]

### `impl<N: Scalar> DerefMut for Translation<N, U1> where
DefaultAllocator: Allocator<N, U1>,` [src]

#### `fn deref_mut(&mut self) -> &mut Self::Target`[src]

Mutably dereferences the value.

### `impl<N: Scalar> DerefMut for Translation<N, U2> where
DefaultAllocator: Allocator<N, U2>,` [src]

#### `fn deref_mut(&mut self) -> &mut Self::Target`[src]

Mutably dereferences the value.

### `impl<N: Scalar> DerefMut for Translation<N, U3> where
DefaultAllocator: Allocator<N, U3>,` [src]

#### `fn deref_mut(&mut self) -> &mut Self::Target`[src]

Mutably dereferences the value.

### `impl<N: Scalar> DerefMut for Translation<N, U4> where
DefaultAllocator: Allocator<N, U4>,` [src]

#### `fn deref_mut(&mut self) -> &mut Self::Target`[src]

Mutably dereferences the value.

### `impl<N: Scalar> DerefMut for Translation<N, U5> where
DefaultAllocator: Allocator<N, U5>,` [src]

#### `fn deref_mut(&mut self) -> &mut Self::Target`[src]

Mutably dereferences the value.

### `impl<N: Scalar> DerefMut for Translation<N, U6> where
DefaultAllocator: Allocator<N, U6>,` [src]

#### `fn deref_mut(&mut self) -> &mut Self::Target`[src]

Mutably dereferences the value.

### `impl<N: Scalar + Hash, D: DimName + Hash> Hash for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
Owned<N, D>: Hash,` [src]

#### `fn hash<H: Hasher>(&self, state: &mut H)`[src]

Feeds this value into the given [`Hasher`]. Read more

#### `fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,` 1.3.0[src]

Feeds a slice of this type into the given [`Hasher`]. Read more

### `impl<N: RealField> Mul<Translation<N, U2>> for UnitComplex<N> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: Translation<N, U2>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField> Mul<Translation<N, U2>> for &'a UnitComplex<N> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: Translation<N, U2>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField> Mul<&'b Translation<N, U2>> for UnitComplex<N> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &'b Translation<N, U2>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField> Mul<&'b Translation<N, U2>> for &'a UnitComplex<N> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &'b Translation<N, U2>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField> Mul<Unit<Complex<N>>> for Translation<N, U2> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: UnitComplex<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField> Mul<Unit<Complex<N>>> for &'a Translation<N, U2> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: UnitComplex<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField> Mul<&'b Unit<Complex<N>>> for Translation<N, U2> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b UnitComplex<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField> Mul<&'b Unit<Complex<N>>> for &'a Translation<N, U2> where
DefaultAllocator: Allocator<N, U2, U1>,` [src]

#### `type Output = Isometry<N, U2, UnitComplex<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b UnitComplex<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N, D: DimName> Mul<&'b Translation<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N, D: DimName> Mul<Translation<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N, D: DimName> Mul<&'b Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N, D: DimName> Mul<Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N, D: DimName> Mul<&'b Point<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Point<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Point<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N, D: DimName> Mul<Point<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Point<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Point<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N, D: DimName> Mul<&'b Point<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Point<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Point<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N, D: DimName> Mul<Point<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Point<N, D>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Point<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField, D: DimName, R> Mul<Translation<N, D>> for Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField, D: DimName, R> Mul<Translation<N, D>> for &'a Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField, D: DimName, R> Mul<&'b Translation<N, D>> for Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField, D: DimName, R> Mul<&'b Translation<N, D>> for &'a Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField, D: DimName, R> Mul<Isometry<N, D, R>> for Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Isometry<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField, D: DimName, R> Mul<Isometry<N, D, R>> for &'a Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Isometry<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField, D: DimName, R> Mul<&'b Isometry<N, D, R>> for Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Isometry<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField, D: DimName, R> Mul<&'b Isometry<N, D, R>> for &'a Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Isometry<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Isometry<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField, D: DimName> Mul<Translation<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField, D: DimName> Mul<Translation<N, D>> for &'a Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField, D: DimName> Mul<&'b Translation<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField, D: DimName> Mul<&'b Translation<N, D>> for &'a Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField> Mul<Translation<N, U3>> for UnitQuaternion<N> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, U3>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField> Mul<Translation<N, U3>> for &'a UnitQuaternion<N> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, U3>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField> Mul<&'b Translation<N, U3>> for UnitQuaternion<N> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, U3>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField> Mul<&'b Translation<N, U3>> for &'a UnitQuaternion<N> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, U3>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField, D: DimName> Mul<Rotation<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Rotation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField, D: DimName> Mul<Rotation<N, D>> for &'a Translation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Rotation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField, D: DimName> Mul<&'b Rotation<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Rotation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField, D: DimName> Mul<&'b Rotation<N, D>> for &'a Translation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1>,` [src]

#### `type Output = Isometry<N, D, Rotation<N, D>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Rotation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField> Mul<Unit<Quaternion<N>>> for Translation<N, U3> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: UnitQuaternion<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField> Mul<Unit<Quaternion<N>>> for &'a Translation<N, U3> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: UnitQuaternion<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField> Mul<&'b Unit<Quaternion<N>>> for Translation<N, U3> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b UnitQuaternion<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField> Mul<&'b Unit<Quaternion<N>>> for &'a Translation<N, U3> where
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,` [src]

#### `type Output = Isometry<N, U3, UnitQuaternion<N>>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b UnitQuaternion<N>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField, D: DimName, R> Mul<Translation<N, D>> for Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField, D: DimName, R> Mul<Translation<N, D>> for &'a Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField, D: DimName, R> Mul<&'b Translation<N, D>> for Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField, D: DimName, R> Mul<&'b Translation<N, D>> for &'a Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N: RealField, D: DimName, R> Mul<Similarity<N, D, R>> for Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Similarity<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N: RealField, D: DimName, R> Mul<Similarity<N, D, R>> for &'a Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: Similarity<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N: RealField, D: DimName, R> Mul<&'b Similarity<N, D, R>> for Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Similarity<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N: RealField, D: DimName, R> Mul<&'b Similarity<N, D, R>> for &'a Translation<N, D> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Output = Similarity<N, D, R>`

The resulting type after applying the `*` operator.

#### `fn mul(self, right: &'b Similarity<N, D, R>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Translation<N, D>> for &'a Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Translation<N, D>> for &'a Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Transform<N, D, C>> for Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: Transform<N, D, C>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<Transform<N, D, C>> for &'a Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: Transform<N, D, C>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Transform<N, D, C>> for Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &'b Transform<N, D, C>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Mul<&'b Transform<N, D, C>> for &'a Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &'b Transform<N, D, C>) -> Self::Output`[src]

Performs the `*` operation.

### `impl<'a, 'b, N, D: DimName> Div<&'b Translation<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `/` operator.

#### `fn div(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'a, N, D: DimName> Div<Translation<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `/` operator.

#### `fn div(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'b, N, D: DimName> Div<&'b Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `/` operator.

#### `fn div(self, right: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<N, D: DimName> Div<Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,` [src]

#### `type Output = Translation<N, D>`

The resulting type after applying the `/` operator.

#### `fn div(self, right: Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Translation<N, D>> for &'a Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Translation<N, D>> for &'a Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: &'b Translation<N, D>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Transform<N, D, C>> for Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: Transform<N, D, C>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'a, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<Transform<N, D, C>> for &'a Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: Transform<N, D, C>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Transform<N, D, C>> for Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: &'b Transform<N, D, C>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategoryMul<TAffine>> Div<&'b Transform<N, D, C>> for &'a Translation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, DimNameSum<D, U1>>,` [src]

#### `type Output = Transform<N, D, C::Representative>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: &'b Transform<N, D, C>) -> Self::Output`[src]

Performs the `/` operation.

### `impl<'b, N, D: DimName> MulAssign<&'b Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,` [src]

#### `fn mul_assign(&mut self, right: &'b Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<N, D: DimName> MulAssign<Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,` [src]

#### `fn mul_assign(&mut self, right: Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<N: RealField, D: DimName, R> MulAssign<Translation<N, D>> for Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn mul_assign(&mut self, rhs: Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<'b, N: RealField, D: DimName, R> MulAssign<&'b Translation<N, D>> for Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn mul_assign(&mut self, rhs: &'b Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<N: RealField, D: DimName, R> MulAssign<Translation<N, D>> for Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn mul_assign(&mut self, rhs: Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<'b, N: RealField, D: DimName, R> MulAssign<&'b Translation<N, D>> for Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn mul_assign(&mut self, rhs: &'b Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<N, D: DimNameAdd<U1>, C: TCategory> MulAssign<Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1>,` [src]

#### `fn mul_assign(&mut self, rhs: Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<'b, N, D: DimNameAdd<U1>, C: TCategory> MulAssign<&'b Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1>,` [src]

#### `fn mul_assign(&mut self, rhs: &'b Translation<N, D>)`[src]

Performs the `*=` operation.

### `impl<'b, N, D: DimName> DivAssign<&'b Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,` [src]

#### `fn div_assign(&mut self, right: &'b Translation<N, D>)`[src]

Performs the `/=` operation.

### `impl<N, D: DimName> DivAssign<Translation<N, D>> for Translation<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,` [src]

#### `fn div_assign(&mut self, right: Translation<N, D>)`[src]

Performs the `/=` operation.

### `impl<N, D: DimNameAdd<U1>, C: TCategory> DivAssign<Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1>,` [src]

#### `fn div_assign(&mut self, rhs: Translation<N, D>)`[src]

Performs the `/=` operation.

### `impl<'b, N, D: DimNameAdd<U1>, C: TCategory> DivAssign<&'b Translation<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + RealField,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1>,` [src]

#### `fn div_assign(&mut self, rhs: &'b Translation<N, D>)`[src]

Performs the `/=` operation.

### `impl<N: Scalar> Deref for Translation<N, U1> where
DefaultAllocator: Allocator<N, U1>,` [src]

#### `type Target = X<N>`

The resulting type after dereferencing.

#### `fn deref(&self) -> &Self::Target`[src]

Dereferences the value.

### `impl<N: Scalar> Deref for Translation<N, U2> where
DefaultAllocator: Allocator<N, U2>,` [src]

#### `type Target = XY<N>`

The resulting type after dereferencing.

#### `fn deref(&self) -> &Self::Target`[src]

Dereferences the value.

### `impl<N: Scalar> Deref for Translation<N, U3> where
DefaultAllocator: Allocator<N, U3>,` [src]

#### `type Target = XYZ<N>`

The resulting type after dereferencing.

#### `fn deref(&self) -> &Self::Target`[src]

Dereferences the value.

### `impl<N: Scalar> Deref for Translation<N, U4> where
DefaultAllocator: Allocator<N, U4>,` [src]

#### `type Target = XYZW<N>`

The resulting type after dereferencing.

#### `fn deref(&self) -> &Self::Target`[src]

Dereferences the value.

### `impl<N: Scalar> Deref for Translation<N, U5> where
DefaultAllocator: Allocator<N, U5>,` [src]

#### `type Target = XYZWA<N>`

The resulting type after dereferencing.

#### `fn deref(&self) -> &Self::Target`[src]

Dereferences the value.

### `impl<N: Scalar> Deref for Translation<N, U6> where
DefaultAllocator: Allocator<N, U6>,` [src]

#### `type Target = XYZWAB<N>`

The resulting type after dereferencing.

#### `fn deref(&self) -> &Self::Target`[src]

Dereferences the value.

### `impl<N: Debug + Scalar, D: Debug + DimName> Debug for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn fmt(&self, f: &mut Formatter) -> Result`[src]

Formats the value using the given formatter. Read more

### `impl<N: RealField + Display, D: DimName> Display for Translation<N, D> where
DefaultAllocator: Allocator<N, D> + Allocator<usize, D>,` [src]

#### `fn fmt(&self, f: &mut Formatter) -> Result`[src]

Formats the value using the given formatter. Read more

### `impl<N: Scalar + AbsDiffEq, D: DimName> AbsDiffEq<Translation<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
N::Epsilon: Copy,` [src]

#### `type Epsilon = N::Epsilon`

Used for specifying relative comparisons.

#### `fn default_epsilon() -> Self::Epsilon`[src]

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

#### `fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool`[src]

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`[src]

The inverse of `ApproxEq::abs_diff_eq`.

### `impl<N: Scalar + RelativeEq, D: DimName> RelativeEq<Translation<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
N::Epsilon: Copy,` [src]

#### `fn default_max_relative() -> Self::Epsilon`[src]

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

#### `fn relative_eq(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool`[src]

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`[src]

The inverse of `ApproxEq::relative_eq`.

### `impl<N: Scalar + UlpsEq, D: DimName> UlpsEq<Translation<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
N::Epsilon: Copy,` [src]

#### `fn default_max_ulps() -> u32`[src]

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

#### `fn ulps_eq(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool`[src]

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

#### `fn ulps_ne(&self, other: &Rhs, epsilon: Self::Epsilon, max_ulps: u32) -> bool`[src]

The inverse of `ApproxEq::ulps_eq`.

### `impl<N: Scalar + Zero + ClosedAdd, D: DimName> One for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn one() -> Self`[src]

Returns the multiplicative identity element of `Self`, `1`. Read more

#### `fn set_one(&mut self)`[src]

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

#### `fn is_one(&self) -> bool where
Self: PartialEq<Self>,` [src]

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

### `impl<N: Scalar, D: DimName> Distribution<Translation<N, D>> for Standard where
DefaultAllocator: Allocator<N, D>,
Standard: Distribution<N>,` [src]

#### `fn sample<'a, G: Rng + ?Sized>(&self, rng: &'a mut G) -> Translation<N, D>`[src]

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

#### `fn sample_iter<R>(&'a self, rng: &'a mut R) -> DistIter<'a, Self, R, T> where
R: Rng,` [src]

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

### `impl<N: RealField, D: DimName> AbstractMagma<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn operate(&self, rhs: &Self) -> Self`[src]

Performs an operation.

#### `fn op(&self, O, lhs: &Self) -> Self`[src]

Performs specific operation.

### `impl<N: RealField, D: DimName> AbstractQuasigroup<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> bool where
Self: RelativeEq<Self>,` [src]

Returns `true` if latin squareness holds for the given arguments. Approximate equality is used for verifications. Read more

#### `fn prop_inv_is_latin_square(args: (Self, Self)) -> bool where
Self: Eq,` [src]

Returns `true` if latin squareness holds for the given arguments. Read more

### `impl<N: RealField, D: DimName> AbstractSemigroup<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn prop_is_associative_approx(args: (Self, Self, Self)) -> bool where
Self: RelativeEq<Self>,` [src]

Returns `true` if associativity holds for the given arguments. Approximate equality is used for verifications. Read more

#### `fn prop_is_associative(args: (Self, Self, Self)) -> bool where
Self: Eq,` [src]

Returns `true` if associativity holds for the given arguments.

### `impl<N: RealField, D: DimName> AbstractLoop<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

### `impl<N: RealField, D: DimName> AbstractMonoid<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> bool where
Self: RelativeEq<Self>,` [src]

Checks whether operating with the identity element is a no-op for the given argument. Approximate equality is used for verifications. Read more

#### `fn prop_operating_identity_element_is_noop(args: (Self,)) -> bool where
Self: Eq,` [src]

Checks whether operating with the identity element is a no-op for the given argument. Read more

### `impl<N: RealField, D: DimName> AbstractGroup<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

### `impl<N: RealField, D: DimName> Identity<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn identity() -> Self`[src]

The identity element.

#### `fn id(O) -> Self`[src]

Specific identity.

### `impl<N: RealField, D: DimName> TwoSidedInverse<Multiplicative> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn two_sided_inverse(&self) -> Self`[src]

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

#### `fn two_sided_inverse_mut(&mut self)`[src]

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

### `impl<N1, N2, D: DimName> SubsetOf<Translation<N2, D>> for Translation<N1, D> where
N1: Scalar,
N2: Scalar + SupersetOf<N1>,
DefaultAllocator: Allocator<N1, D> + Allocator<N2, D>,` [src]

#### `fn to_superset(&self) -> Translation<N2, D>`[src]

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

#### `fn is_in_subset(rot: &Translation<N2, D>) -> bool`[src]

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

#### `unsafe fn from_superset_unchecked(rot: &Translation<N2, D>) -> Self`[src]

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

#### `fn from_superset(element: &T) -> Option<Self>`[src]

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

### `impl<N1, N2, D: DimName, R> SubsetOf<Isometry<N2, D, R>> for Translation<N1, D> where
N1: RealField,
N2: RealField + SupersetOf<N1>,
R: Rotation<Point<N2, D>>,
DefaultAllocator: Allocator<N1, D> + Allocator<N2, D>,` [src]

#### `fn to_superset(&self) -> Isometry<N2, D, R>`[src]

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

#### `fn is_in_subset(iso: &Isometry<N2, D, R>) -> bool`[src]

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

#### `unsafe fn from_superset_unchecked(iso: &Isometry<N2, D, R>) -> Self`[src]

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

#### `fn from_superset(element: &T) -> Option<Self>`[src]

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

### `impl<N1, N2, D: DimName, R> SubsetOf<Similarity<N2, D, R>> for Translation<N1, D> where
N1: RealField,
N2: RealField + SupersetOf<N1>,
R: Rotation<Point<N2, D>>,
DefaultAllocator: Allocator<N1, D> + Allocator<N2, D>,` [src]

#### `fn to_superset(&self) -> Similarity<N2, D, R>`[src]

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

#### `fn is_in_subset(sim: &Similarity<N2, D, R>) -> bool`[src]

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

#### `unsafe fn from_superset_unchecked(sim: &Similarity<N2, D, R>) -> Self`[src]

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

#### `fn from_superset(element: &T) -> Option<Self>`[src]

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

### `impl<N1, N2, D, C> SubsetOf<Transform<N2, D, C>> for Translation<N1, D> where
N1: RealField,
N2: RealField + SupersetOf<N1>,
C: SuperTCategoryOf<TAffine>,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N1, D> + Allocator<N2, D> + Allocator<N1, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>, DimNameSum<D, U1>>,` [src]

#### `fn to_superset(&self) -> Transform<N2, D, C>`[src]

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

#### `fn is_in_subset(t: &Transform<N2, D, C>) -> bool`[src]

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

#### `unsafe fn from_superset_unchecked(t: &Transform<N2, D, C>) -> Self`[src]

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

#### `fn from_superset(element: &T) -> Option<Self>`[src]

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

### `impl<N1, N2, D> SubsetOf<Matrix<N2, <D as DimNameAdd<U1>>::Output, <D as DimNameAdd<U1>>::Output, <DefaultAllocator as Allocator<N2, <D as DimNameAdd<U1>>::Output, <D as DimNameAdd<U1>>::Output>>::Buffer>> for Translation<N1, D> where
N1: RealField,
N2: RealField + SupersetOf<N1>,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N1, D> + Allocator<N2, D> + Allocator<N1, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>, DimNameSum<D, U1>>,` [src]

#### `fn to_superset(&self) -> MatrixN<N2, DimNameSum<D, U1>>`[src]

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

#### `fn is_in_subset(m: &MatrixN<N2, DimNameSum<D, U1>>) -> bool`[src]

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

#### `unsafe fn from_superset_unchecked(m: &MatrixN<N2, DimNameSum<D, U1>>) -> Self`[src]

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

#### `fn from_superset(element: &T) -> Option<Self>`[src]

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

### `impl<N: RealField, D: DimName> ProjectiveTransformation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>`[src]

Applies this group's two_sided_inverse action on a point from the euclidean space.

#### `fn inverse_transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>`[src]

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

### `impl<N: RealField, D: DimName> Transformation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `fn transform_point(&self, pt: &Point<N, D>) -> Point<N, D>`[src]

Applies this group's action on a point from the euclidean space.

#### `fn transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>`[src]

Applies this group's action on a vector from the euclidean space. Read more

### `impl<N: RealField, D: DimName> DirectIsometry<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

### `impl<N: RealField, D: DimName> Similarity<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Scaling = Id`

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

#### `fn translation(&self) -> Self`[src]

The pure translational component of this similarity transformation.

#### `fn rotation(&self) -> Id`[src]

The pure rotational component of this similarity transformation.

#### `fn scaling(&self) -> Id`[src]

The pure scaling component of this similarity transformation.

#### `fn translate_point(&self, pt: &E) -> E`[src]

Applies this transformation's pure translational part to a point.

#### `fn rotate_point(&self, pt: &E) -> E`[src]

Applies this transformation's pure rotational part to a point.

#### `fn scale_point(&self, pt: &E) -> E`[src]

Applies this transformation's pure scaling part to a point.

#### `fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation's pure rotational part to a vector.

#### `fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation's pure scaling part to a vector.

#### `fn inverse_translate_point(&self, pt: &E) -> E`[src]

Applies this transformation inverse's pure translational part to a point.

#### `fn inverse_rotate_point(&self, pt: &E) -> E`[src]

Applies this transformation inverse's pure rotational part to a point.

#### `fn inverse_scale_point(&self, pt: &E) -> E`[src]

Applies this transformation inverse's pure scaling part to a point.

#### `fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation inverse's pure rotational part to a vector.

#### `fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation inverse's pure scaling part to a vector.

### `impl<N: RealField, D: DimName> Translation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

Subgroups of the n-dimensional translation group `T(n)`.

#### `fn to_vector(&self) -> VectorN<N, D>`[src]

Converts this translation to a vector.

#### `fn from_vector(v: VectorN<N, D>) -> Option<Self>`[src]

Attempts to convert a vector to this translation. Returns `None` if the translation represented by `v` is not part of the translation subgroup represented by `Self`. Read more

#### `fn powf(&self, n: N) -> Option<Self>`[src]

Raises the translation to a power. The result must be equivalent to `self.to_superset() * n`. Returns `None` if the result is not representable by `Self`. Read more

#### `fn translation_between(a: &Point<N, D>, b: &Point<N, D>) -> Option<Self>`[src]

The translation needed to make `a` coincide with `b`, i.e., `b = a * translation_to(a, b)`.

### `impl<N: RealField, D: DimName> AffineTransformation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

#### `type Rotation = Id`

Type of the first rotation to be applied.

#### `type NonUniformScaling = Id`

Type of the non-uniform scaling to be applied.

#### `type Translation = Self`

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

#### `fn decompose(&self) -> (Self, Id, Id, Id)`[src]

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

#### `fn append_translation(&self, t: &Self::Translation) -> Self`[src]

Appends a translation to this similarity.

#### `fn prepend_translation(&self, t: &Self::Translation) -> Self`[src]

Prepends a translation to this similarity.

#### `fn append_rotation(&self, _: &Self::Rotation) -> Self`[src]

Appends a rotation to this similarity.

#### `fn prepend_rotation(&self, _: &Self::Rotation) -> Self`[src]

Prepends a rotation to this similarity.

#### `fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self`[src]

Appends a scaling factor to this similarity.

#### `fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self`[src]

Prepends a scaling factor to this similarity.

#### `fn append_rotation_wrt_point(&self, r: &Self::Rotation, p: &E) -> Option<Self>`[src]

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

### `impl<N: RealField, D: DimName> Isometry<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,` [src]

## Auto Trait Implementations

### `impl<N, D> !Send for Translation<N, D>`

### `impl<N, D> !Unpin for Translation<N, D>`

### `impl<N, D> !Sync for Translation<N, D>`

### `impl<N, D> !UnwindSafe for Translation<N, D>`

### `impl<N, D> !RefUnwindSafe for Translation<N, D>`

## Blanket Implementations

### `impl<T> ToOwned for T where
T: Clone,` [src]

#### `type Owned = T`

The resulting type after obtaining ownership.

#### `fn to_owned(&self) -> T`[src]

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

#### `fn clone_into(&self, target: &mut T)`[src]

🔬 This is a nightly-only experimental API. (`toowned_clone_into`)

recently added

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

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `fn into(self) -> U`[src]

Performs the conversion.

### `impl<T> From<T> for T`[src]

#### `fn from(t: T) -> T`[src]

Performs the conversion.

### `impl<T> ToString for T where
T: Display + ?Sized,` [src]

#### `default fn to_string(&self) -> String`[src]

Converts the given value to a `String`. Read more

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`[src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

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

The type returned in the event of a conversion error.

#### `fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`[src]

Performs the conversion.

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `fn borrow_mut(&mut self) -> &mut T`[src]

Mutably borrows from an owned value. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `fn borrow(&self) -> &T`[src]

Immutably borrows from an owned value. Read more

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `fn type_id(&self) -> TypeId`[src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Same<T> for T`[src]

#### `type Output = T`

Should always be `Self`

### `impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,` [src]

#### `fn to_subset(&self) -> Option<SS>`[src]

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

#### `fn is_in_subset(&self) -> bool`[src]

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

#### `unsafe fn to_subset_unchecked(&self) -> SS`[src]

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

#### `fn from_subset(element: &SS) -> SP`[src]

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

### `impl<T, Right> ClosedMul<Right> for T where
T: Mul<Right, Output = T> + MulAssign<Right>,` [src]

### `impl<T, Right> ClosedDiv<Right> for T where
T: Div<Right, Output = T> + DivAssign<Right>,` [src]

### `impl<T> MultiplicativeMagma for T where
T: AbstractMagma<Multiplicative>,` [src]

### `impl<T> MultiplicativeQuasigroup for T where
T: AbstractQuasigroup<Multiplicative> + ClosedDiv<T> + MultiplicativeMagma,` [src]

### `impl<T> MultiplicativeLoop for T where
T: AbstractLoop<Multiplicative> + MultiplicativeQuasigroup + One,` [src]

### `impl<T> MultiplicativeSemigroup for T where
T: AbstractSemigroup<Multiplicative> + ClosedMul<T> + MultiplicativeMagma,` [src]

### `impl<T> MultiplicativeMonoid for T where
T: AbstractMonoid<Multiplicative> + MultiplicativeSemigroup + One,` [src]

### `impl<T> MultiplicativeGroup for T where
T: AbstractGroup<Multiplicative> + MultiplicativeLoop + MultiplicativeMonoid,` [src]

### `impl<R, E> ProjectiveTransformation<E> for R where
E: EuclideanSpace<RealField = R>,
R: RealField,
<E as EuclideanSpace>::Coordinates: ClosedMul<R>,
<E as EuclideanSpace>::Coordinates: ClosedDiv<R>,
<E as EuclideanSpace>::Coordinates: ClosedNeg,` [src]

#### `fn inverse_transform_point(&self, pt: &E) -> E`[src]

Applies this group's two_sided_inverse action on a point from the euclidean space.

#### `fn inverse_transform_vector(
&self,
v: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

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

### `impl<R, E> Transformation<E> for R where
E: EuclideanSpace<RealField = R>,
R: RealField,
<E as EuclideanSpace>::Coordinates: ClosedMul<R>,
<E as EuclideanSpace>::Coordinates: ClosedDiv<R>,
<E as EuclideanSpace>::Coordinates: ClosedNeg,` [src]

#### `fn transform_point(&self, pt: &E) -> E`[src]

Applies this group's action on a point from the euclidean space.

#### `fn transform_vector(
&self,
v: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this group's action on a vector from the euclidean space. Read more

### `impl<R, E> Similarity<E> for R where
E: EuclideanSpace<RealField = R>,
R: RealField + SubsetOf<R>,
<E as EuclideanSpace>::Coordinates: ClosedMul<R>,
<E as EuclideanSpace>::Coordinates: ClosedDiv<R>,
<E as EuclideanSpace>::Coordinates: ClosedNeg,` [src]

#### `type Scaling = R`

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

#### `fn translation(&self) -> <R as AffineTransformation<E>>::Translation`[src]

The pure translational component of this similarity transformation.

#### `fn rotation(&self) -> <R as AffineTransformation<E>>::Rotation`[src]

The pure rotational component of this similarity transformation.

#### `fn scaling(&self) -> <R as Similarity<E>>::Scaling`[src]

The pure scaling component of this similarity transformation.

#### `fn translate_point(&self, pt: &E) -> E`[src]

Applies this transformation's pure translational part to a point.

#### `fn rotate_point(&self, pt: &E) -> E`[src]

Applies this transformation's pure rotational part to a point.

#### `fn scale_point(&self, pt: &E) -> E`[src]

Applies this transformation's pure scaling part to a point.

#### `fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation's pure rotational part to a vector.

#### `fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation's pure scaling part to a vector.

#### `fn inverse_translate_point(&self, pt: &E) -> E`[src]

Applies this transformation inverse's pure translational part to a point.

#### `fn inverse_rotate_point(&self, pt: &E) -> E`[src]

Applies this transformation inverse's pure rotational part to a point.

#### `fn inverse_scale_point(&self, pt: &E) -> E`[src]

Applies this transformation inverse's pure scaling part to a point.

#### `fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation inverse's pure rotational part to a vector.

#### `fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates`[src]

Applies this transformation inverse's pure scaling part to a vector.

### `impl<R, E> AffineTransformation<E> for R where
E: EuclideanSpace<RealField = R>,
R: RealField,
<E as EuclideanSpace>::Coordinates: ClosedMul<R>,
<E as EuclideanSpace>::Coordinates: ClosedDiv<R>,
<E as EuclideanSpace>::Coordinates: ClosedNeg,` [src]

#### `type Rotation = Id<Multiplicative>`

Type of the first rotation to be applied.

#### `type NonUniformScaling = R`

Type of the non-uniform scaling to be applied.

#### `type Translation = Id<Multiplicative>`

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

#### `fn decompose(
&self
) -> (Id<Multiplicative>, Id<Multiplicative>, R, Id<Multiplicative>)`[src]

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

#### `fn append_translation(&self, &<R as AffineTransformation<E>>::Translation) -> R`[src]

Appends a translation to this similarity.

#### `fn prepend_translation(&self, &<R as AffineTransformation<E>>::Translation) -> R`[src]

Prepends a translation to this similarity.

#### `fn append_rotation(&self, &<R as AffineTransformation<E>>::Rotation) -> R`[src]

Appends a rotation to this similarity.

#### `fn prepend_rotation(&self, &<R as AffineTransformation<E>>::Rotation) -> R`[src]

Prepends a rotation to this similarity.

#### `fn append_scaling(
&self,
s: &<R as AffineTransformation<E>>::NonUniformScaling
) -> R`[src]

Appends a scaling factor to this similarity.

#### `fn prepend_scaling(
&self,
s: &<R as AffineTransformation<E>>::NonUniformScaling
) -> R`[src]

Prepends a scaling factor to this similarity.

#### `fn append_rotation_wrt_point(&self, r: &Self::Rotation, p: &E) -> Option<Self>`[src]

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

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)