Type Definition nalgebra::geometry::UnitComplex
source · Expand description
A complex number with a norm equal to 1.
Implementations§
source§impl<N: Real> UnitComplex<N>
impl<N: Real> UnitComplex<N>
sourcepub fn scaled_axis(&self) -> Vector1<N>
pub fn scaled_axis(&self) -> Vector1<N>
The rotation angle returned as a 1-dimensional vector.
sourcepub fn axis_angle(&self) -> Option<(Unit<Vector1<N>>, N)>
pub fn axis_angle(&self) -> Option<(Unit<Vector1<N>>, N)>
The rotation axis and angle in ]0, pi] of this complex number.
Returns None
if the angle is zero.
sourcepub fn angle_to(&self, other: &Self) -> N
pub fn angle_to(&self, other: &Self) -> N
The rotation angle needed to make self
and other
coincide.
sourcepub fn rotation_to(&self, other: &Self) -> Self
pub fn rotation_to(&self, other: &Self) -> Self
The unit complex number needed to make self
and other
coincide.
The result is such that: self.rotation_to(other) * self == other
.
sourcepub fn conjugate_mut(&mut self)
pub fn conjugate_mut(&mut self)
Compute in-place the conjugate of this unit complex number.
sourcepub fn inverse_mut(&mut self)
pub fn inverse_mut(&mut self)
Inverts in-place this unit complex number.
sourcepub fn powf(&self, n: N) -> Self
pub fn powf(&self, n: N) -> Self
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
.
sourcepub fn to_rotation_matrix(&self) -> Rotation2<N>
pub fn to_rotation_matrix(&self) -> Rotation2<N>
Builds the rotation matrix corresponding to this unit complex number.
sourcepub fn to_homogeneous(&self) -> Matrix3<N>
pub fn to_homogeneous(&self) -> Matrix3<N>
Converts this unit complex number into its equivalent homogeneous transformation matrix.
source§impl<N: Real> UnitComplex<N>
impl<N: Real> UnitComplex<N>
sourcepub fn new(angle: N) -> Self
pub fn new(angle: N) -> Self
Builds the unit complex number corresponding to the rotation with the angle.
sourcepub fn from_angle(angle: N) -> Self
pub fn from_angle(angle: N) -> Self
Builds the unit complex number corresponding to the rotation with the angle.
Same as Self::new(angle)
.
sourcepub fn from_cos_sin_unchecked(cos: N, sin: N) -> Self
pub fn from_cos_sin_unchecked(cos: N, sin: N) -> Self
Builds the unit complex number from the sinus and cosinus of the rotation angle.
The input values are not checked.
sourcepub fn from_scaled_axis<SB: Storage<N, U1, U1>>(
axisangle: Vector<N, U1, SB>
) -> Self
pub fn from_scaled_axis<SB: Storage<N, U1, U1>>(
axisangle: Vector<N, U1, SB>
) -> Self
Builds a unit complex rotation from an angle in radian wrapped in a 1-dimensional vector.
Equivalent to Self::new(axisangle[0])
.
sourcepub fn from_complex(q: Complex<N>) -> Self
pub fn from_complex(q: Complex<N>) -> Self
Creates a new unit complex number from a complex number.
The input complex number will be normalized.
sourcepub fn from_complex_and_get(q: Complex<N>) -> (Self, N)
pub fn from_complex_and_get(q: Complex<N>) -> (Self, N)
Creates a new unit complex number from a complex number.
The input complex number will be normalized. Returns the complex number norm as well.
sourcepub fn from_rotation_matrix(rotmat: &Rotation<N, U2>) -> Selfwhere
DefaultAllocator: Allocator<N, U2, U2>,
pub fn from_rotation_matrix(rotmat: &Rotation<N, U2>) -> Selfwhere
DefaultAllocator: Allocator<N, U2, U2>,
Builds the unit complex number from the corresponding 2D rotation matrix.
sourcepub fn rotation_between<SB, SC>(
a: &Vector<N, U2, SB>,
b: &Vector<N, U2, SC>
) -> Selfwhere
SB: Storage<N, U2, U1>,
SC: Storage<N, U2, U1>,
pub fn rotation_between<SB, SC>(
a: &Vector<N, U2, SB>,
b: &Vector<N, U2, SC>
) -> Selfwhere
SB: Storage<N, U2, U1>,
SC: Storage<N, U2, U1>,
The unit complex needed to make a
and b
be collinear and point toward the same
direction.
sourcepub fn scaled_rotation_between<SB, SC>(
a: &Vector<N, U2, SB>,
b: &Vector<N, U2, SC>,
s: N
) -> Selfwhere
SB: Storage<N, U2, U1>,
SC: Storage<N, U2, U1>,
pub fn scaled_rotation_between<SB, SC>(
a: &Vector<N, U2, SB>,
b: &Vector<N, U2, SC>,
s: N
) -> Selfwhere
SB: Storage<N, U2, U1>,
SC: Storage<N, U2, U1>,
The smallest rotation needed to make a
and b
collinear and point toward the same
direction, raised to the power s
.
source§impl<N: Real> UnitComplex<N>
impl<N: Real> UnitComplex<N>
sourcepub fn rotate<R2: Dim, C2: Dim, S2: StorageMut<N, R2, C2>>(
&self,
rhs: &mut Matrix<N, R2, C2, S2>
)where
ShapeConstraint: DimEq<R2, U2>,
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>,
Performs the multiplication rhs = self * rhs
in-place.
sourcepub 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>,
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>,
Performs the multiplication lhs = lhs * self
in-place.
Trait Implementations§
source§impl<N: Real> AbsDiffEq<Unit<Complex<N>>> for UnitComplex<N>
impl<N: Real> AbsDiffEq<Unit<Complex<N>>> for UnitComplex<N>
source§fn default_epsilon() -> Self::Epsilon
fn default_epsilon() -> Self::Epsilon
source§impl<N: Real> AbstractMagma<Multiplicative> for UnitComplex<N>
impl<N: Real> AbstractMagma<Multiplicative> for UnitComplex<N>
source§impl<N: Real> AbstractMonoid<Multiplicative> for UnitComplex<N>
impl<N: Real> AbstractMonoid<Multiplicative> for UnitComplex<N>
source§fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> boolwhere
Self: RelativeEq<Self>,
fn prop_operating_identity_element_is_noop_approx(args: (Self,)) -> boolwhere
Self: RelativeEq<Self>,
source§impl<N: Real> AbstractQuasigroup<Multiplicative> for UnitComplex<N>
impl<N: Real> AbstractQuasigroup<Multiplicative> for UnitComplex<N>
source§fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
fn prop_inv_is_latin_square_approx(args: (Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
true
if latin squareness holds for the given arguments. Approximate
equality is used for verifications. Read moresource§impl<N: Real> AbstractSemigroup<Multiplicative> for UnitComplex<N>
impl<N: Real> AbstractSemigroup<Multiplicative> for UnitComplex<N>
source§fn prop_is_associative_approx(args: (Self, Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
fn prop_is_associative_approx(args: (Self, Self, Self)) -> boolwhere
Self: RelativeEq<Self>,
true
if associativity holds for the given arguments. Approximate equality is used
for verifications. Read moresource§impl<N: Real> AffineTransformation<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
impl<N: Real> AffineTransformation<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
§type NonUniformScaling = Id<Multiplicative>
type NonUniformScaling = Id<Multiplicative>
§type Translation = Id<Multiplicative>
type Translation = Id<Multiplicative>
source§fn decompose(&self) -> (Id, Self, Id, Self)
fn decompose(&self) -> (Id, Self, Id, Self)
source§fn append_translation(&self, _: &Self::Translation) -> Self
fn append_translation(&self, _: &Self::Translation) -> Self
source§fn prepend_translation(&self, _: &Self::Translation) -> Self
fn prepend_translation(&self, _: &Self::Translation) -> Self
source§fn append_rotation(&self, r: &Self::Rotation) -> Self
fn append_rotation(&self, r: &Self::Rotation) -> Self
source§fn prepend_rotation(&self, r: &Self::Rotation) -> Self
fn prepend_rotation(&self, r: &Self::Rotation) -> Self
source§fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
source§fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
source§impl<'a, 'b, N: Real> Div<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, 'b, N: Real> Div<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> Div<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> Div<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, 'b, N: Real> Div<&'b Unit<Complex<N>>> for &'a UnitComplex<N>
impl<'a, 'b, N: Real> Div<&'b Unit<Complex<N>>> for &'a UnitComplex<N>
source§fn div(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
fn div(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
/
operation. Read moresource§impl<'b, N: Real> Div<&'b Unit<Complex<N>>> for UnitComplex<N>
impl<'b, N: Real> Div<&'b Unit<Complex<N>>> for UnitComplex<N>
source§fn div(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
fn div(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
/
operation. Read moresource§impl<'a, N: Real> Div<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, N: Real> Div<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> Div<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> Div<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, N: Real> Div<Unit<Complex<N>>> for &'a UnitComplex<N>
impl<'a, N: Real> Div<Unit<Complex<N>>> for &'a UnitComplex<N>
source§fn div(self, rhs: UnitComplex<N>) -> UnitComplex<N>
fn div(self, rhs: UnitComplex<N>) -> UnitComplex<N>
/
operation. Read moresource§impl<N: Real> Div<Unit<Complex<N>>> for UnitComplex<N>
impl<N: Real> Div<Unit<Complex<N>>> for UnitComplex<N>
source§fn div(self, rhs: UnitComplex<N>) -> UnitComplex<N>
fn div(self, rhs: UnitComplex<N>) -> UnitComplex<N>
/
operation. Read moresource§impl<'b, N: Real> DivAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> DivAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> DivAssign<&'b Unit<Complex<N>>> for UnitComplex<N>
impl<'b, N: Real> DivAssign<&'b Unit<Complex<N>>> for UnitComplex<N>
source§fn div_assign(&mut self, rhs: &'b UnitComplex<N>)
fn div_assign(&mut self, rhs: &'b UnitComplex<N>)
/=
operation. Read moresource§impl<N: Real> DivAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> DivAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> DivAssign<Unit<Complex<N>>> for UnitComplex<N>
impl<N: Real> DivAssign<Unit<Complex<N>>> for UnitComplex<N>
source§fn div_assign(&mut self, rhs: UnitComplex<N>)
fn div_assign(&mut self, rhs: UnitComplex<N>)
/=
operation. Read moresource§impl<N: Real> Identity<Multiplicative> for UnitComplex<N>
impl<N: Real> Identity<Multiplicative> for UnitComplex<N>
source§impl<N: Real> Inverse<Multiplicative> for UnitComplex<N>
impl<N: Real> Inverse<Multiplicative> for UnitComplex<N>
source§impl<'a, 'b, N: Real> Mul<&'b Isometry<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, 'b, N: Real> Mul<&'b Isometry<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'b, N: Real> Mul<&'b Isometry<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'b, N: Real> Mul<&'b Isometry<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§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>,
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>,
source§impl<'b, N: Real, S: Storage<N, U2>> Mul<&'b Matrix<N, U2, U1, S>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'b, N: Real, S: Storage<N, U2>> Mul<&'b Matrix<N, U2, U1, S>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'a, 'b, N: Real> Mul<&'b Point<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, 'b, N: Real> Mul<&'b Point<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'b, N: Real> Mul<&'b Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'b, N: Real> Mul<&'b Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'a, 'b, N: Real> Mul<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, 'b, N: Real> Mul<&'b Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> Mul<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> Mul<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, 'b, N: Real> Mul<&'b Similarity<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, 'b, N: Real> Mul<&'b Similarity<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§fn mul(self, rhs: &'b Similarity<N, U2, UnitComplex<N>>) -> Self::Output
fn mul(self, rhs: &'b Similarity<N, U2, UnitComplex<N>>) -> Self::Output
*
operation. Read moresource§impl<'b, N: Real> Mul<&'b Similarity<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'b, N: Real> Mul<&'b Similarity<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§fn mul(self, rhs: &'b Similarity<N, U2, UnitComplex<N>>) -> Self::Output
fn mul(self, rhs: &'b Similarity<N, U2, UnitComplex<N>>) -> Self::Output
*
operation. Read moresource§impl<'a, 'b, N: Real> Mul<&'b Translation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, 'b, N: Real> Mul<&'b Translation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'b, N: Real> Mul<&'b Translation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'b, N: Real> Mul<&'b Translation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'a, 'b, N: Real> Mul<&'b Unit<Complex<N>>> for &'a UnitComplex<N>
impl<'a, 'b, N: Real> Mul<&'b Unit<Complex<N>>> for &'a UnitComplex<N>
source§fn mul(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
fn mul(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
*
operation. Read moresource§impl<'b, N: Real> Mul<&'b Unit<Complex<N>>> for UnitComplex<N>
impl<'b, N: Real> Mul<&'b Unit<Complex<N>>> for UnitComplex<N>
source§fn mul(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
fn mul(self, rhs: &'b UnitComplex<N>) -> UnitComplex<N>
*
operation. Read moresource§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>,
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>,
source§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>,
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>,
source§impl<'a, N: Real> Mul<Isometry<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, N: Real> Mul<Isometry<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<N: Real> Mul<Isometry<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<N: Real> Mul<Isometry<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'a, N: Real, S: Storage<N, U2>> Mul<Matrix<N, U2, U1, S>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, N: Real, S: Storage<N, U2>> Mul<Matrix<N, U2, U1, S>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<N: Real, S: Storage<N, U2>> Mul<Matrix<N, U2, U1, S>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<N: Real, S: Storage<N, U2>> Mul<Matrix<N, U2, U1, S>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'a, N: Real> Mul<Point<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, N: Real> Mul<Point<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<N: Real> Mul<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<N: Real> Mul<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'a, N: Real> Mul<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'a, N: Real> Mul<Rotation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> Mul<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> Mul<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'a, N: Real> Mul<Similarity<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, N: Real> Mul<Similarity<N, U2, Unit<Complex<N>>>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§fn mul(self, rhs: Similarity<N, U2, UnitComplex<N>>) -> Self::Output
fn mul(self, rhs: Similarity<N, U2, UnitComplex<N>>) -> Self::Output
*
operation. Read moresource§impl<N: Real> Mul<Similarity<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<N: Real> Mul<Similarity<N, U2, Unit<Complex<N>>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§fn mul(self, rhs: Similarity<N, U2, UnitComplex<N>>) -> Self::Output
fn mul(self, rhs: Similarity<N, U2, UnitComplex<N>>) -> Self::Output
*
operation. Read moresource§impl<'a, N: Real> Mul<Translation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<'a, N: Real> Mul<Translation<N, U2>> for &'a UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<N: Real> Mul<Translation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<N: Real> Mul<Translation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'a, N: Real> Mul<Unit<Complex<N>>> for &'a UnitComplex<N>
impl<'a, N: Real> Mul<Unit<Complex<N>>> for &'a UnitComplex<N>
source§fn mul(self, rhs: UnitComplex<N>) -> UnitComplex<N>
fn mul(self, rhs: UnitComplex<N>) -> UnitComplex<N>
*
operation. Read moresource§impl<N: Real> Mul<Unit<Complex<N>>> for UnitComplex<N>
impl<N: Real> Mul<Unit<Complex<N>>> for UnitComplex<N>
source§fn mul(self, rhs: UnitComplex<N>) -> UnitComplex<N>
fn mul(self, rhs: UnitComplex<N>) -> UnitComplex<N>
*
operation. Read moresource§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>,
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>,
source§impl<N: Real, S: Storage<N, U2>> Mul<Unit<Matrix<N, U2, U1, S>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
impl<N: Real, S: Storage<N, U2>> Mul<Unit<Matrix<N, U2, U1, S>>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U1>,
source§impl<'b, N: Real> MulAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<'b, N: Real> MulAssign<&'b Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<'b, N: Real> MulAssign<&'b Unit<Complex<N>>> for UnitComplex<N>
impl<'b, N: Real> MulAssign<&'b Unit<Complex<N>>> for UnitComplex<N>
source§fn mul_assign(&mut self, rhs: &'b UnitComplex<N>)
fn mul_assign(&mut self, rhs: &'b UnitComplex<N>)
*=
operation. Read moresource§impl<N: Real> MulAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
impl<N: Real> MulAssign<Rotation<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2, U2>,
source§impl<N: Real> MulAssign<Unit<Complex<N>>> for UnitComplex<N>
impl<N: Real> MulAssign<Unit<Complex<N>>> for UnitComplex<N>
source§fn mul_assign(&mut self, rhs: UnitComplex<N>)
fn mul_assign(&mut self, rhs: UnitComplex<N>)
*=
operation. Read moresource§impl<N: Real> One for UnitComplex<N>
impl<N: Real> One for UnitComplex<N>
source§impl<N: Real> ProjectiveTransformation<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
impl<N: Real> ProjectiveTransformation<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
source§impl<N: Real> RelativeEq<Unit<Complex<N>>> for UnitComplex<N>
impl<N: Real> RelativeEq<Unit<Complex<N>>> for UnitComplex<N>
source§fn default_max_relative() -> Self::Epsilon
fn default_max_relative() -> Self::Epsilon
source§impl<N: Real> Rotation<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
impl<N: Real> Rotation<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
source§fn powf(&self, n: N) -> Option<Self>
fn powf(&self, n: N) -> Option<Self>
n
. Read moresource§fn rotation_between(a: &Vector2<N>, b: &Vector2<N>) -> Option<Self>
fn rotation_between(a: &Vector2<N>, b: &Vector2<N>) -> Option<Self>
a
and b
equal to zero, i.e.,
b.angle(a * delta_rotation(a, b)) = 0
. If a
and b
are collinear, the computed
rotation may not be unique. Returns None
if no such simple rotation exists in the
subgroup represented by Self
. Read moresource§impl<N: Real> Similarity<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
impl<N: Real> Similarity<Point<N, U2>> for UnitComplex<N>where
DefaultAllocator: Allocator<N, U2>,
§type Scaling = Id<Multiplicative>
type Scaling = Id<Multiplicative>
source§fn translation(&self) -> Id
fn translation(&self) -> Id
source§fn translate_point(&self, pt: &E) -> E
fn translate_point(&self, pt: &E) -> E
source§fn rotate_point(&self, pt: &E) -> E
fn rotate_point(&self, pt: &E) -> E
source§fn scale_point(&self, pt: &E) -> E
fn scale_point(&self, pt: &E) -> E
source§fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§fn inverse_translate_point(&self, pt: &E) -> E
fn inverse_translate_point(&self, pt: &E) -> E
source§fn inverse_rotate_point(&self, pt: &E) -> E
fn inverse_rotate_point(&self, pt: &E) -> E
source§fn inverse_scale_point(&self, pt: &E) -> E
fn inverse_scale_point(&self, pt: &E) -> E
source§fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
source§impl<N1, N2, R> SubsetOf<Isometry<N2, U2, R>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
R: AlgaRotation<Point2<N2>> + SupersetOf<UnitComplex<N1>>,
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>>,
source§fn to_superset(&self) -> Isometry<N2, U2, R>
fn to_superset(&self) -> Isometry<N2, U2, R>
self
to the equivalent element of its superset.source§fn is_in_subset(iso: &Isometry<N2, U2, R>) -> bool
fn is_in_subset(iso: &Isometry<N2, U2, R>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(iso: &Isometry<N2, U2, R>) -> Self
unsafe fn from_superset_unchecked(iso: &Isometry<N2, U2, R>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1: Real, N2: Real + SupersetOf<N1>> SubsetOf<Matrix<N2, U3, U3, <DefaultAllocator as Allocator<N2, U3, U3>>::Buffer>> for UnitComplex<N1>
impl<N1: Real, N2: Real + SupersetOf<N1>> SubsetOf<Matrix<N2, U3, U3, <DefaultAllocator as Allocator<N2, U3, U3>>::Buffer>> for UnitComplex<N1>
source§fn to_superset(&self) -> Matrix3<N2>
fn to_superset(&self) -> Matrix3<N2>
self
to the equivalent element of its superset.source§fn is_in_subset(m: &Matrix3<N2>) -> bool
fn is_in_subset(m: &Matrix3<N2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(m: &Matrix3<N2>) -> Self
unsafe fn from_superset_unchecked(m: &Matrix3<N2>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2> SubsetOf<Rotation<N2, U2>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
impl<N1, N2> SubsetOf<Rotation<N2, U2>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
source§fn to_superset(&self) -> Rotation2<N2>
fn to_superset(&self) -> Rotation2<N2>
self
to the equivalent element of its superset.source§fn is_in_subset(rot: &Rotation2<N2>) -> bool
fn is_in_subset(rot: &Rotation2<N2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(rot: &Rotation2<N2>) -> Self
unsafe fn from_superset_unchecked(rot: &Rotation2<N2>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2, R> SubsetOf<Similarity<N2, U2, R>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
R: AlgaRotation<Point2<N2>> + SupersetOf<UnitComplex<N1>>,
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>>,
source§fn to_superset(&self) -> Similarity<N2, U2, R>
fn to_superset(&self) -> Similarity<N2, U2, R>
self
to the equivalent element of its superset.source§fn is_in_subset(sim: &Similarity<N2, U2, R>) -> bool
fn is_in_subset(sim: &Similarity<N2, U2, R>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(sim: &Similarity<N2, U2, R>) -> Self
unsafe fn from_superset_unchecked(sim: &Similarity<N2, U2, R>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2, C> SubsetOf<Transform<N2, U2, C>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
C: SuperTCategoryOf<TAffine>,
impl<N1, N2, C> SubsetOf<Transform<N2, U2, C>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
C: SuperTCategoryOf<TAffine>,
source§fn to_superset(&self) -> Transform<N2, U2, C>
fn to_superset(&self) -> Transform<N2, U2, C>
self
to the equivalent element of its superset.source§fn is_in_subset(t: &Transform<N2, U2, C>) -> bool
fn is_in_subset(t: &Transform<N2, U2, C>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(t: &Transform<N2, U2, C>) -> Self
unsafe fn from_superset_unchecked(t: &Transform<N2, U2, C>) -> Self
self.to_superset
but without any property checks. Always succeeds.source§impl<N1, N2> SubsetOf<Unit<Complex<N2>>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
impl<N1, N2> SubsetOf<Unit<Complex<N2>>> for UnitComplex<N1>where
N1: Real,
N2: Real + SupersetOf<N1>,
source§fn to_superset(&self) -> UnitComplex<N2>
fn to_superset(&self) -> UnitComplex<N2>
self
to the equivalent element of its superset.source§fn is_in_subset(uq: &UnitComplex<N2>) -> bool
fn is_in_subset(uq: &UnitComplex<N2>) -> bool
element
is actually part of the subset Self
(and can be converted to it).source§unsafe fn from_superset_unchecked(uq: &UnitComplex<N2>) -> Self
unsafe fn from_superset_unchecked(uq: &UnitComplex<N2>) -> Self
self.to_superset
but without any property checks. Always succeeds.