[][src]Type Definition nalgebra::geometry::UnitComplex

type UnitComplex<N> = Unit<Complex<N>>;

A complex number with a norm equal to 1.

Methods

impl<N: Real> UnitComplex<N>[src]

pub fn angle(&self) -> N[src]

The rotation angle in ]-pi; pi] of this unit complex number.

Example

let rot = UnitComplex::new(1.78);
assert_eq!(rot.angle(), 1.78);

pub fn sin_angle(&self) -> N[src]

The sine of the rotation angle.

Example

let angle = 1.78f32;
let rot = UnitComplex::new(angle);
assert_eq!(rot.sin_angle(), angle.sin());

pub fn cos_angle(&self) -> N[src]

The cosine of the rotation angle.

Example

let angle = 1.78f32;
let rot = UnitComplex::new(angle);
assert_eq!(rot.cos_angle(),angle.cos());

pub fn scaled_axis(&self) -> Vector1<N>[src]

The rotation angle returned as a 1-dimensional vector.

This is generally used in the context of generic programming. Using the .angle() method instead is more common.

pub fn axis_angle(&self) -> Option<(Unit<Vector1<N>>, N)>[src]

The rotation axis and angle in ]0, pi] of this complex number.

This is generally used in the context of generic programming. Using the .angle() method instead is more common. Returns None if the angle is zero.

pub fn complex(&self) -> &Complex<N>[src]

The underlying complex number.

Same as self.as_ref().

Example

let angle = 1.78f32;
let rot = UnitComplex::new(angle);
assert_eq!(*rot.complex(), Complex::new(angle.cos(), angle.sin()));

pub fn conjugate(&self) -> Self[src]

Compute the conjugate of this unit complex number.

Example

let rot = UnitComplex::new(1.78);
let conj = rot.conjugate();
assert_eq!(rot.complex().im, -conj.complex().im);
assert_eq!(rot.complex().re, conj.complex().re);

pub fn inverse(&self) -> Self[src]

Inverts this complex number if it is not zero.

Example

let rot = UnitComplex::new(1.2);
let inv = rot.inverse();
assert_relative_eq!(rot * inv, UnitComplex::identity(), epsilon = 1.0e-6);
assert_relative_eq!(inv * rot, UnitComplex::identity(), epsilon = 1.0e-6);

pub fn angle_to(&self, other: &Self) -> N[src]

The rotation angle needed to make self and other coincide.

Example

let rot1 = UnitComplex::new(0.1);
let rot2 = UnitComplex::new(1.7);
assert_relative_eq!(rot1.angle_to(&rot2), 1.6);

pub fn rotation_to(&self, other: &Self) -> Self[src]

The unit complex number needed to make self and other coincide.

The result is such that: self.rotation_to(other) * self == other.

Example

let rot1 = UnitComplex::new(0.1);
let rot2 = UnitComplex::new(1.7);
let rot_to = rot1.rotation_to(&rot2);

assert_relative_eq!(rot_to * rot1, rot2);
assert_relative_eq!(rot_to.inverse() * rot2, rot1);

pub fn conjugate_mut(&mut self)[src]

Compute in-place the conjugate of this unit complex number.

Example

let angle = 1.7;
let rot = UnitComplex::new(angle);
let mut conj = UnitComplex::new(angle);
conj.conjugate_mut();
assert_eq!(rot.complex().im, -conj.complex().im);
assert_eq!(rot.complex().re, conj.complex().re);

pub fn inverse_mut(&mut self)[src]

Inverts in-place this unit complex number.

Example

let angle = 1.7;
let mut rot = UnitComplex::new(angle);
rot.inverse_mut();
assert_relative_eq!(rot * UnitComplex::new(angle), UnitComplex::identity());
assert_relative_eq!(UnitComplex::new(angle) * rot, UnitComplex::identity());

pub fn powf(&self, n: N) -> Self[src]

Raise this unit complex number to a given floating power.

This returns the unit complex number that identifies a rotation angle equal to self.angle() × n.

Example

let rot = UnitComplex::new(0.78);
let pow = rot.powf(2.0);
assert_eq!(pow.angle(), 2.0 * 0.78);

pub fn to_rotation_matrix(&self) -> Rotation2<N>[src]

Builds the rotation matrix corresponding to this unit complex number.

Example

let rot = UnitComplex::new(f32::consts::FRAC_PI_6);
let expected = Rotation2::new(f32::consts::FRAC_PI_6);
assert_eq!(rot.to_rotation_matrix(), expected);

pub fn to_homogeneous(&self) -> Matrix3<N>[src]

Converts this unit complex number into its equivalent homogeneous transformation matrix.

Example

let rot = UnitComplex::new(f32::consts::FRAC_PI_6);
let expected = Matrix3::new(0.8660254, -0.5,      0.0,
                            0.5,       0.8660254, 0.0,
                            0.0,       0.0,       1.0);
assert_eq!(rot.to_homogeneous(), expected);

impl<N: Real> UnitComplex<N>[src]

pub fn identity() -> Self[src]

The unit complex number multiplicative identity.

Example

let rot1 = UnitComplex::identity();
let rot2 = UnitComplex::new(1.7);

assert_eq!(rot1 * rot2, rot2);
assert_eq!(rot2 * rot1, rot2);

pub fn new(angle: N) -> Self[src]

Builds the unit complex number corresponding to the rotation with the given angle.

Example

let rot = UnitComplex::new(f32::consts::FRAC_PI_2);

assert_relative_eq!(rot * Point2::new(3.0, 4.0), Point2::new(-4.0, 3.0));

pub fn from_angle(angle: N) -> Self[src]

Builds the unit complex number corresponding to the rotation with the angle.

Same as Self::new(angle).

Example

let rot = UnitComplex::from_angle(f32::consts::FRAC_PI_2);

assert_relative_eq!(rot * Point2::new(3.0, 4.0), Point2::new(-4.0, 3.0));

pub fn from_cos_sin_unchecked(cos: N, sin: N) -> Self[src]

Builds the unit complex number from the sinus and cosinus of the rotation angle.

The input values are not checked to actually be cosines and sine of the same value. Is is generally preferable to use the ::new(angle) constructor instead.

Example

let angle = f32::consts::FRAC_PI_2;
let rot = UnitComplex::from_cos_sin_unchecked(angle.cos(), angle.sin());

assert_relative_eq!(rot * Point2::new(3.0, 4.0), Point2::new(-4.0, 3.0));

pub fn from_scaled_axis<SB: Storage<N, U1>>(
    axisangle: Vector<N, U1, SB>
) -> Self
[src]

Builds a unit complex rotation from an angle in radian wrapped in a 1-dimensional vector.

This is generally used in the context of generic programming. Using the ::new(angle) method instead is more common.

pub fn from_complex(q: Complex<N>) -> Self[src]

Creates a new unit complex number from a complex number.

The input complex number will be normalized.

pub fn from_complex_and_get(q: Complex<N>) -> (Self, N)[src]

Creates a new unit complex number from a complex number.

The input complex number will be normalized. Returns the norm of the complex number as well.

pub fn from_rotation_matrix(rotmat: &Rotation2<N>) -> Self[src]

Builds the unit complex number from the corresponding 2D rotation matrix.

Example

let rot = Rotation2::new(1.7);
let complex = UnitComplex::from_rotation_matrix(&rot);
assert_eq!(complex, UnitComplex::new(1.7));

pub fn rotation_between<SB, SC>(
    a: &Vector<N, U2, SB>,
    b: &Vector<N, U2, SC>
) -> Self where
    SB: Storage<N, U2>,
    SC: Storage<N, U2>, 
[src]

The unit complex needed to make a and b be collinear and point toward the same direction.

Example

let a = Vector2::new(1.0, 2.0);
let b = Vector2::new(2.0, 1.0);
let rot = UnitComplex::rotation_between(&a, &b);
assert_relative_eq!(rot * a, b);
assert_relative_eq!(rot.inverse() * b, a);

pub fn scaled_rotation_between<SB, SC>(
    a: &Vector<N, U2, SB>,
    b: &Vector<N, U2, SC>,
    s: N
) -> Self where
    SB: Storage<N, U2>,
    SC: Storage<N, U2>, 
[src]

The smallest rotation needed to make a and b collinear and point toward the same direction, raised to the power s.

Example

let a = Vector2::new(1.0, 2.0);
let b = Vector2::new(2.0, 1.0);
let rot2 = UnitComplex::scaled_rotation_between(&a, &b, 0.2);
let rot5 = UnitComplex::scaled_rotation_between(&a, &b, 0.5);
assert_relative_eq!(rot2 * rot2 * rot2 * rot2 * rot2 * a, b, epsilon = 1.0e-6);
assert_relative_eq!(rot5 * rot5 * a, b, epsilon = 1.0e-6);

pub fn rotation_between_axis<SB, SC>(
    a: &Unit<Vector<N, U2, SB>>,
    b: &Unit<Vector<N, U2, SC>>
) -> Self where
    SB: Storage<N, U2>,
    SC: Storage<N, U2>, 
[src]

The unit complex needed to make a and b be collinear and point toward the same direction.

Example

let a = Unit::new_normalize(Vector2::new(1.0, 2.0));
let b = Unit::new_normalize(Vector2::new(2.0, 1.0));
let rot = UnitComplex::rotation_between_axis(&a, &b);
assert_relative_eq!(rot * a, b);
assert_relative_eq!(rot.inverse() * b, a);

pub fn scaled_rotation_between_axis<SB, SC>(
    na: &Unit<Vector<N, U2, SB>>,
    nb: &Unit<Vector<N, U2, SC>>,
    s: N
) -> Self where
    SB: Storage<N, U2>,
    SC: Storage<N, U2>, 
[src]

The smallest rotation needed to make a and b collinear and point toward the same direction, raised to the power s.

Example

let a = Unit::new_normalize(Vector2::new(1.0, 2.0));
let b = Unit::new_normalize(Vector2::new(2.0, 1.0));
let rot2 = UnitComplex::scaled_rotation_between_axis(&a, &b, 0.2);
let rot5 = UnitComplex::scaled_rotation_between_axis(&a, &b, 0.5);
assert_relative_eq!(rot2 * rot2 * rot2 * rot2 * rot2 * a, b, epsilon = 1.0e-6);
assert_relative_eq!(rot5 * rot5 * a, b, epsilon = 1.0e-6);

impl<N: Real> UnitComplex<N>[src]

pub fn rotate<R2: Dim, C2: Dim, S2: StorageMut<N, R2, C2>>(
    &self,
    rhs: &mut Matrix<N, R2, C2, S2>
) where
    ShapeConstraint: DimEq<R2, U2>, 
[src]

Performs the multiplication rhs = self * rhs in-place.

pub fn rotate_rows<R2: Dim, C2: Dim, S2: StorageMut<N, R2, C2>>(
    &self,
    lhs: &mut Matrix<N, R2, C2, S2>
) where
    ShapeConstraint: DimEq<C2, U2>, 
[src]

Performs the multiplication lhs = lhs * self in-place.

Trait Implementations

impl<N: Real> Mul<Unit<Complex<N>>> for UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<'a, N: Real> Mul<Unit<Complex<N>>> for &'a UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<'b, N: Real> Mul<&'b Unit<Complex<N>>> for UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<'a, 'b, N: Real> Mul<&'b Unit<Complex<N>>> for &'a UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<N: Real> Mul<Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<'a, N: Real> Mul<Rotation<N, U2>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<'b, N: Real> Mul<&'b Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<'a, 'b, N: Real> Mul<&'b Rotation<N, U2>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the * operator.

impl<N: Real> Mul<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Point2<N>

The resulting type after applying the * operator.

impl<'a, N: Real> Mul<Point<N, U2>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Point2<N>

The resulting type after applying the * operator.

impl<'b, N: Real> Mul<&'b Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Point2<N>

The resulting type after applying the * operator.

impl<'a, 'b, N: Real> Mul<&'b Point<N, U2>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Point2<N>

The resulting type after applying the * operator.

impl<N: Real, S: Storage<N, U2>> Mul<Matrix<N, U2, U1, S>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Vector2<N>

The resulting type after applying the * operator.

impl<'a, N: Real, S: Storage<N, U2>> Mul<Matrix<N, U2, U1, S>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Vector2<N>

The resulting type after applying the * operator.

impl<'b, N: Real, S: Storage<N, U2>> Mul<&'b Matrix<N, U2, U1, S>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Vector2<N>

The resulting type after applying the * operator.

impl<'a, 'b, N: Real, S: Storage<N, U2>> Mul<&'b Matrix<N, U2, U1, S>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Vector2<N>

The resulting type after applying the * operator.

impl<N: Real, S: Storage<N, U2>> Mul<Unit<Matrix<N, U2, U1, S>>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Unit<Vector2<N>>

The resulting type after applying the * operator.

impl<'a, N: Real, S: Storage<N, U2>> Mul<Unit<Matrix<N, U2, U1, S>>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Unit<Vector2<N>>

The resulting type after applying the * operator.

impl<'b, N: Real, S: Storage<N, U2>> Mul<&'b Unit<Matrix<N, U2, U1, S>>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Unit<Vector2<N>>

The resulting type after applying the * operator.

impl<'a, 'b, N: Real, S: Storage<N, U2>> Mul<&'b Unit<Matrix<N, U2, U1, S>>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Unit<Vector2<N>>

The resulting type after applying the * operator.

impl<N: Real> Mul<Isometry<N, U2, Unit<Complex<N>>>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

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

The resulting type after applying the * operator.

impl<'a, N: Real> Mul<Isometry<N, U2, Unit<Complex<N>>>> 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.

impl<'b, N: Real> Mul<&'b Isometry<N, U2, Unit<Complex<N>>>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

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

The resulting type after applying the * operator.

impl<'a, 'b, N: Real> Mul<&'b Isometry<N, U2, Unit<Complex<N>>>> 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.

impl<N: Real> Mul<Similarity<N, U2, Unit<Complex<N>>>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Similarity<N, U2, UnitComplex<N>>

The resulting type after applying the * operator.

impl<'a, N: Real> Mul<Similarity<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Similarity<N, U2, UnitComplex<N>>

The resulting type after applying the * operator.

impl<'b, N: Real> Mul<&'b Similarity<N, U2, Unit<Complex<N>>>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Similarity<N, U2, UnitComplex<N>>

The resulting type after applying the * operator.

impl<'a, 'b, N: Real> Mul<&'b Similarity<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U1>, 
[src]

type Output = Similarity<N, U2, UnitComplex<N>>

The resulting type after applying the * operator.

impl<N: Real> 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.

impl<'a, N: Real> 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.

impl<'b, N: Real> 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.

impl<'a, 'b, N: Real> 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.

impl<N: Real> Div<Unit<Complex<N>>> for UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<'a, N: Real> Div<Unit<Complex<N>>> for &'a UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<'b, N: Real> Div<&'b Unit<Complex<N>>> for UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<'a, 'b, N: Real> Div<&'b Unit<Complex<N>>> for &'a UnitComplex<N>[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<N: Real> Div<Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<'a, N: Real> Div<Rotation<N, U2>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<'b, N: Real> Div<&'b Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<'a, 'b, N: Real> Div<&'b Rotation<N, U2>> for &'a UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

type Output = UnitComplex<N>

The resulting type after applying the / operator.

impl<N: Real> MulAssign<Unit<Complex<N>>> for UnitComplex<N>[src]

impl<'b, N: Real> MulAssign<&'b Unit<Complex<N>>> for UnitComplex<N>[src]

impl<N: Real> MulAssign<Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

impl<'b, N: Real> MulAssign<&'b Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

impl<N: Real> DivAssign<Unit<Complex<N>>> for UnitComplex<N>[src]

impl<'b, N: Real> DivAssign<&'b Unit<Complex<N>>> for UnitComplex<N>[src]

impl<N: Real> DivAssign<Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

impl<'b, N: Real> DivAssign<&'b Rotation<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2, U2>, 
[src]

impl<N: Real + Display> Display for UnitComplex<N>[src]

impl<N: Real> AbsDiffEq<Unit<Complex<N>>> for UnitComplex<N>[src]

type Epsilon = N

Used for specifying relative comparisons.

impl<N: Real> RelativeEq<Unit<Complex<N>>> for UnitComplex<N>[src]

impl<N: Real> UlpsEq<Unit<Complex<N>>> for UnitComplex<N>[src]

impl<N: Real> One for UnitComplex<N>[src]

impl<N: Real> AbstractMagma<Multiplicative> for UnitComplex<N>[src]

impl<N: Real> AbstractQuasigroup<Multiplicative> for UnitComplex<N>[src]

impl<N: Real> AbstractSemigroup<Multiplicative> for UnitComplex<N>[src]

impl<N: Real> AbstractLoop<Multiplicative> for UnitComplex<N>[src]

impl<N: Real> AbstractMonoid<Multiplicative> for UnitComplex<N>[src]

impl<N: Real> AbstractGroup<Multiplicative> for UnitComplex<N>[src]

impl<N: Real> Identity<Multiplicative> for UnitComplex<N>[src]

impl<N: Real> Inverse<Multiplicative> for UnitComplex<N>[src]

impl<N1, N2> SubsetOf<Unit<Complex<N2>>> for UnitComplex<N1> where
    N1: Real,
    N2: Real + SupersetOf<N1>, 
[src]

impl<N1, N2> SubsetOf<Rotation<N2, U2>> for UnitComplex<N1> where
    N1: Real,
    N2: Real + SupersetOf<N1>, 
[src]

impl<N1, N2, R> SubsetOf<Isometry<N2, U2, R>> for UnitComplex<N1> where
    N1: Real,
    N2: Real + SupersetOf<N1>,
    R: AlgaRotation<Point2<N2>> + SupersetOf<UnitComplex<N1>>, 
[src]

impl<N1, N2, R> SubsetOf<Similarity<N2, U2, R>> for UnitComplex<N1> where
    N1: Real,
    N2: Real + SupersetOf<N1>,
    R: AlgaRotation<Point2<N2>> + SupersetOf<UnitComplex<N1>>, 
[src]

impl<N1, N2, C> SubsetOf<Transform<N2, U2, C>> for UnitComplex<N1> where
    N1: Real,
    N2: Real + SupersetOf<N1>,
    C: SuperTCategoryOf<TAffine>, 
[src]

impl<N1: Real, N2: Real + SupersetOf<N1>> SubsetOf<Matrix<N2, U3, U3, <DefaultAllocator as Allocator<N2, U3, U3>>::Buffer>> for UnitComplex<N1>[src]

impl<N: Real> Transformation<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]

impl<N: Real> ProjectiveTransformation<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]

impl<N: Real> AffineTransformation<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]

type Rotation = Self

Type of the first rotation to be applied.

type NonUniformScaling = Id

Type of the non-uniform scaling to be applied.

type Translation = Id

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

impl<N: Real> Similarity<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]

type Scaling = Id

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

impl<N: Real> Isometry<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]

impl<N: Real> DirectIsometry<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]

impl<N: Real> OrthogonalTransformation<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]

impl<N: Real> Rotation<Point<N, U2>> for UnitComplex<N> where
    DefaultAllocator: Allocator<N, U2>, 
[src]