Type Definition nalgebra::geometry::UnitDualQuaternion [−][src]
type UnitDualQuaternion<N> = Unit<DualQuaternion<N>>;
A unit quaternions. May be used to represent a rotation followed by a translation.
Implementations
impl<N: SimdRealField> UnitDualQuaternion<N> where
N::Element: SimdRealField,
[src]
N::Element: SimdRealField,
pub fn dual_quaternion(&self) -> &DualQuaternion<N>
[src]
The underlying dual quaternion.
Same as self.as_ref()
.
Example
let id = UnitDualQuaternion::identity(); assert_eq!(*id.dual_quaternion(), DualQuaternion::from_real_and_dual( Quaternion::new(1.0, 0.0, 0.0, 0.0), Quaternion::new(0.0, 0.0, 0.0, 0.0) ));
#[must_use = "Did you mean to use conjugate_mut()?"]pub fn conjugate(&self) -> Self
[src]
Compute the conjugate of this unit quaternion.
Example
let qr = Quaternion::new(1.0, 2.0, 3.0, 4.0); let qd = Quaternion::new(5.0, 6.0, 7.0, 8.0); let unit = UnitDualQuaternion::new_normalize( DualQuaternion::from_real_and_dual(qr, qd) ); let conj = unit.conjugate(); assert_eq!(conj.real, unit.real.conjugate()); assert_eq!(conj.dual, unit.dual.conjugate());
pub fn conjugate_mut(&mut self)
[src]
Compute the conjugate of this unit quaternion in-place.
Example
let qr = Quaternion::new(1.0, 2.0, 3.0, 4.0); let qd = Quaternion::new(5.0, 6.0, 7.0, 8.0); let unit = UnitDualQuaternion::new_normalize( DualQuaternion::from_real_and_dual(qr, qd) ); let mut conj = unit.clone(); conj.conjugate_mut(); assert_eq!(conj.as_ref().real, unit.as_ref().real.conjugate()); assert_eq!(conj.as_ref().dual, unit.as_ref().dual.conjugate());
#[must_use = "Did you mean to use inverse_mut()?"]pub fn inverse(&self) -> Self
[src]
Inverts this dual quaternion if it is not zero.
Example
let qr = Quaternion::new(1.0, 2.0, 3.0, 4.0); let qd = Quaternion::new(5.0, 6.0, 7.0, 8.0); let unit = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual(qr, qd)); let inv = unit.inverse(); assert_relative_eq!(unit * inv, UnitDualQuaternion::identity(), epsilon = 1.0e-6); assert_relative_eq!(inv * unit, UnitDualQuaternion::identity(), epsilon = 1.0e-6);
#[must_use = "Did you mean to use inverse_mut()?"]pub fn inverse_mut(&mut self)
[src]
Inverts this dual quaternion in place if it is not zero.
Example
let qr = Quaternion::new(1.0, 2.0, 3.0, 4.0); let qd = Quaternion::new(5.0, 6.0, 7.0, 8.0); let unit = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual(qr, qd)); let mut inv = unit.clone(); inv.inverse_mut(); assert_relative_eq!(unit * inv, UnitDualQuaternion::identity(), epsilon = 1.0e-6); assert_relative_eq!(inv * unit, UnitDualQuaternion::identity(), epsilon = 1.0e-6);
pub fn isometry_to(&self, other: &Self) -> Self
[src]
The unit dual quaternion needed to make self
and other
coincide.
The result is such that: self.isometry_to(other) * self == other
.
Example
let qr = Quaternion::new(1.0, 2.0, 3.0, 4.0); let qd = Quaternion::new(5.0, 6.0, 7.0, 8.0); let dq1 = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual(qr, qd)); let dq2 = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual(qd, qr)); let dq_to = dq1.isometry_to(&dq2); assert_relative_eq!(dq_to * dq1, dq2, epsilon = 1.0e-6);
pub fn lerp(&self, other: &Self, t: N) -> DualQuaternion<N>
[src]
Linear interpolation between two unit dual quaternions.
The result is not normalized.
Example
let dq1 = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual( Quaternion::new(0.5, 0.0, 0.5, 0.0), Quaternion::new(0.0, 0.5, 0.0, 0.5) )); let dq2 = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual( Quaternion::new(0.5, 0.0, 0.0, 0.5), Quaternion::new(0.5, 0.0, 0.5, 0.0) )); assert_relative_eq!( UnitDualQuaternion::new_normalize(dq1.lerp(&dq2, 0.5)), UnitDualQuaternion::new_normalize( DualQuaternion::from_real_and_dual( Quaternion::new(0.5, 0.0, 0.25, 0.25), Quaternion::new(0.25, 0.25, 0.25, 0.25) ) ), epsilon = 1.0e-6 );
pub fn nlerp(&self, other: &Self, t: N) -> Self
[src]
Normalized linear interpolation between two unit quaternions.
This is the same as self.lerp
except that the result is normalized.
Example
let dq1 = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual( Quaternion::new(0.5, 0.0, 0.5, 0.0), Quaternion::new(0.0, 0.5, 0.0, 0.5) )); let dq2 = UnitDualQuaternion::new_normalize(DualQuaternion::from_real_and_dual( Quaternion::new(0.5, 0.0, 0.0, 0.5), Quaternion::new(0.5, 0.0, 0.5, 0.0) )); assert_relative_eq!(dq1.nlerp(&dq2, 0.2), UnitDualQuaternion::new_normalize( DualQuaternion::from_real_and_dual( Quaternion::new(0.5, 0.0, 0.4, 0.1), Quaternion::new(0.1, 0.4, 0.1, 0.4) ) ), epsilon = 1.0e-6);
pub fn sclerp(&self, other: &Self, t: N) -> Self where
N: RealField,
[src]
N: RealField,
Screw linear interpolation between two unit quaternions. This creates a smooth arc from one dual-quaternion to another.
Panics if the angle between both quaternion is 180 degrees (in which case the interpolation
is not well-defined). Use .try_sclerp
instead to avoid the panic.
Example
let dq1 = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0), ); let dq2 = UnitDualQuaternion::from_parts( Vector3::new(0.0, 0.0, 3.0).into(), UnitQuaternion::from_euler_angles(-std::f32::consts::PI, 0.0, 0.0), ); let dq = dq1.sclerp(&dq2, 1.0 / 3.0); assert_relative_eq!( dq.rotation().euler_angles().0, std::f32::consts::FRAC_PI_2, epsilon = 1.0e-6 ); assert_relative_eq!(dq.translation().vector.y, 3.0, epsilon = 1.0e-6);
pub fn try_sclerp(&self, other: &Self, t: N, epsilon: N) -> Option<Self> where
N: RealField,
[src]
N: RealField,
Computes the screw-linear interpolation between two unit quaternions or returns None
if both quaternions are approximately 180 degrees apart (in which case the interpolation is
not well-defined).
Arguments
self
: the first quaternion to interpolate from.other
: the second quaternion to interpolate toward.t
: the interpolation parameter. Should be between 0 and 1.epsilon
: the value below which the sinus of the angle separating both quaternion must be to returnNone
.
pub fn rotation(&self) -> UnitQuaternion<N>
[src]
Return the rotation part of this unit dual quaternion.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0) ); assert_relative_eq!( dq.rotation().angle(), std::f32::consts::FRAC_PI_4, epsilon = 1.0e-6 );
pub fn translation(&self) -> Translation3<N>
[src]
Return the translation part of this unit dual quaternion.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_4, 0.0, 0.0) ); assert_relative_eq!( dq.translation().vector, Vector3::new(0.0, 3.0, 0.0), epsilon = 1.0e-6 );
pub fn to_isometry(&self) -> Isometry3<N>
[src]
Builds an isometry from this unit dual quaternion.
let rotation = UnitQuaternion::from_euler_angles(std::f32::consts::PI, 0.0, 0.0); let translation = Vector3::new(1.0, 3.0, 2.5); let dq = UnitDualQuaternion::from_parts( translation.into(), rotation ); let iso = dq.to_isometry(); assert_relative_eq!(iso.rotation.angle(), std::f32::consts::PI, epsilon = 1.0e-6); assert_relative_eq!(iso.translation.vector, translation, epsilon = 1.0e-6);
pub fn transform_point(&self, pt: &Point3<N>) -> Point3<N>
[src]
Rotate and translate a point by this unit dual quaternion interpreted as an isometry.
This is the same as the multiplication self * pt
.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_2, 0.0, 0.0) ); let point = Point3::new(1.0, 2.0, 3.0); assert_relative_eq!( dq.transform_point(&point), Point3::new(1.0, 0.0, 2.0), epsilon = 1.0e-6 );
pub fn transform_vector(&self, v: &Vector3<N>) -> Vector3<N>
[src]
Rotate a vector by this unit dual quaternion, ignoring the translational component.
This is the same as the multiplication self * v
.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_2, 0.0, 0.0) ); let vector = Vector3::new(1.0, 2.0, 3.0); assert_relative_eq!( dq.transform_vector(&vector), Vector3::new(1.0, -3.0, 2.0), epsilon = 1.0e-6 );
pub fn inverse_transform_point(&self, pt: &Point3<N>) -> Point3<N>
[src]
Rotate and translate a point by the inverse of this unit quaternion.
This may be cheaper than inverting the unit dual quaternion and transforming the point.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_2, 0.0, 0.0) ); let point = Point3::new(1.0, 2.0, 3.0); assert_relative_eq!( dq.inverse_transform_point(&point), Point3::new(1.0, 3.0, 1.0), epsilon = 1.0e-6 );
pub fn inverse_transform_vector(&self, v: &Vector3<N>) -> Vector3<N>
[src]
Rotate a vector by the inverse of this unit quaternion, ignoring the translational component.
This may be cheaper than inverting the unit dual quaternion and transforming the vector.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_2, 0.0, 0.0) ); let vector = Vector3::new(1.0, 2.0, 3.0); assert_relative_eq!( dq.inverse_transform_vector(&vector), Vector3::new(1.0, 3.0, -2.0), epsilon = 1.0e-6 );
pub fn inverse_transform_unit_vector(
&self,
v: &Unit<Vector3<N>>
) -> Unit<Vector3<N>>
[src]
&self,
v: &Unit<Vector3<N>>
) -> Unit<Vector3<N>>
Rotate a unit vector by the inverse of this unit quaternion, ignoring the translational component. This may be cheaper than inverting the unit dual quaternion and transforming the vector.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_2, 0.0, 0.0) ); let vector = Unit::new_unchecked(Vector3::new(0.0, 1.0, 0.0)); assert_relative_eq!( dq.inverse_transform_unit_vector(&vector), Unit::new_unchecked(Vector3::new(0.0, 0.0, -1.0)), epsilon = 1.0e-6 );
impl<N: SimdRealField + RealField> UnitDualQuaternion<N> where
N::Element: SimdRealField,
[src]
N::Element: SimdRealField,
pub fn to_homogeneous(&self) -> Matrix4<N>
[src]
Converts this unit dual quaternion interpreted as an isometry into its equivalent homogeneous transformation matrix.
let dq = UnitDualQuaternion::from_parts( Vector3::new(1.0, 3.0, 2.0).into(), UnitQuaternion::from_axis_angle(&Vector3::z_axis(), std::f32::consts::FRAC_PI_6) ); let expected = Matrix4::new(0.8660254, -0.5, 0.0, 1.0, 0.5, 0.8660254, 0.0, 3.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 1.0); assert_relative_eq!(dq.to_homogeneous(), expected, epsilon = 1.0e-6);
impl<N: SimdRealField> UnitDualQuaternion<N>
[src]
pub fn identity() -> Self
[src]
The unit dual quaternion multiplicative identity, which also represents the identity transformation as an isometry.
let ident = UnitDualQuaternion::identity(); let point = Point3::new(1.0, -4.3, 3.33); assert_eq!(ident * point, point); assert_eq!(ident, ident.inverse());
pub fn cast<To: Scalar>(self) -> UnitDualQuaternion<To> where
UnitDualQuaternion<To>: SupersetOf<Self>,
[src]
UnitDualQuaternion<To>: SupersetOf<Self>,
Cast the components of self
to another type.
Example
let q = UnitDualQuaternion::<f64>::identity(); let q2 = q.cast::<f32>(); assert_eq!(q2, UnitDualQuaternion::<f32>::identity());
impl<N: SimdRealField> UnitDualQuaternion<N> where
N::Element: SimdRealField,
[src]
N::Element: SimdRealField,
pub fn from_parts(
translation: Translation3<N>,
rotation: UnitQuaternion<N>
) -> Self
[src]
translation: Translation3<N>,
rotation: UnitQuaternion<N>
) -> Self
Return a dual quaternion representing the translation and orientation given by the provided rotation quaternion and translation vector.
let dq = UnitDualQuaternion::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_2, 0.0, 0.0) ); let point = Point3::new(1.0, 2.0, 3.0); assert_relative_eq!(dq * point, Point3::new(1.0, 0.0, 2.0), epsilon = 1.0e-6);
pub fn from_isometry(isometry: &Isometry3<N>) -> Self
[src]
Return a unit dual quaternion representing the translation and orientation given by the provided isometry.
let iso = Isometry3::from_parts( Vector3::new(0.0, 3.0, 0.0).into(), UnitQuaternion::from_euler_angles(std::f32::consts::FRAC_PI_2, 0.0, 0.0) ); let dq = UnitDualQuaternion::from_isometry(&iso); let point = Point3::new(1.0, 2.0, 3.0); assert_relative_eq!(dq * point, iso * point, epsilon = 1.0e-6);
pub fn from_rotation(rotation: UnitQuaternion<N>) -> Self
[src]
Creates a dual quaternion from a unit quaternion rotation.
Example
let q = Quaternion::new(1.0, 2.0, 3.0, 4.0); let rot = UnitQuaternion::new_normalize(q); let dq = UnitDualQuaternion::from_rotation(rot); assert_relative_eq!(dq.as_ref().real.norm(), 1.0, epsilon = 1.0e-6); assert_eq!(dq.as_ref().dual.norm(), 0.0);
Trait Implementations
impl<N: RealField + AbsDiffEq<Epsilon = N>> AbsDiffEq<Unit<DualQuaternion<N>>> for UnitDualQuaternion<N>
[src]
type Epsilon = N
Used for specifying relative comparisons.
fn default_epsilon() -> Self::Epsilon
[src]
fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool
[src]
pub fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
[src]
impl<N: RealField> Default for UnitDualQuaternion<N>
[src]
impl<N: RealField + Display> Display for UnitDualQuaternion<N>
[src]
impl<'a, 'b, N: SimdRealField> Div<&'b Isometry<N, U3, Unit<Quaternion<N>>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b Isometry3<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Div<&'b Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b Isometry3<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Div<&'b Translation<N, U3>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b Translation3<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Div<&'b Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b Translation3<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Div<&'b Unit<DualQuaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b UnitDualQuaternion<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Div<&'b Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b UnitDualQuaternion<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Div<&'b Unit<Quaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b UnitQuaternion<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Div<&'b Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: &'b UnitQuaternion<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Div<Isometry<N, U3, Unit<Quaternion<N>>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: Isometry3<N>) -> Self::Output
[src]
impl<N: SimdRealField> Div<Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: Isometry3<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Div<Translation<N, U3>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: Translation3<N>) -> Self::Output
[src]
impl<N: SimdRealField> Div<Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: Translation3<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Div<Unit<DualQuaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: UnitDualQuaternion<N>) -> Self::Output
[src]
impl<N: SimdRealField> Div<Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: UnitDualQuaternion<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Div<Unit<Quaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: UnitQuaternion<N>) -> Self::Output
[src]
impl<N: SimdRealField> Div<Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the /
operator.
fn div(self, rhs: UnitQuaternion<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> DivAssign<&'b Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
fn div_assign(&mut self, rhs: &'b Isometry3<N>)
[src]
impl<'b, N: SimdRealField> DivAssign<&'b Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn div_assign(&mut self, rhs: &'b Translation3<N>)
[src]
impl<'b, N: SimdRealField> DivAssign<&'b Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn div_assign(&mut self, rhs: &'b UnitDualQuaternion<N>)
[src]
impl<'b, N: SimdRealField> DivAssign<&'b Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn div_assign(&mut self, rhs: &'b UnitQuaternion<N>)
[src]
impl<N: SimdRealField> DivAssign<Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
fn div_assign(&mut self, rhs: Isometry3<N>)
[src]
impl<N: SimdRealField> DivAssign<Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn div_assign(&mut self, rhs: Translation3<N>)
[src]
impl<N: SimdRealField> DivAssign<Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn div_assign(&mut self, rhs: UnitDualQuaternion<N>)
[src]
impl<N: SimdRealField> DivAssign<Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn div_assign(&mut self, rhs: UnitQuaternion<N>)
[src]
impl<N: Scalar + ClosedNeg + Eq + SimdRealField> Eq for UnitDualQuaternion<N>
[src]
impl<N: SimdRealField> From<Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
[src]
N::Element: SimdRealField,
impl<'a, 'b, N: SimdRealField> Mul<&'b DualQuaternion<N>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = DualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b DualQuaternion<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Mul<&'b DualQuaternion<N>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = DualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b DualQuaternion<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Mul<&'b Isometry<N, U3, Unit<Quaternion<N>>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Isometry3<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Mul<&'b Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Isometry3<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField, SB: Storage<N, U3>> Mul<&'b Matrix<N, U3, U1, SB>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Vector3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Vector<N, U3, SB>) -> Self::Output
[src]
impl<'b, N: SimdRealField, SB: Storage<N, U3>> Mul<&'b Matrix<N, U3, U1, SB>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Vector3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Vector<N, U3, SB>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Mul<&'b Point<N, U3>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Point3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Point3<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Mul<&'b Point<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Point3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Point3<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Mul<&'b Translation<N, U3>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Translation3<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Mul<&'b Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Translation3<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Mul<&'b Unit<DualQuaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b UnitDualQuaternion<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Mul<&'b Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b UnitDualQuaternion<N>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField, SB: Storage<N, U3>> Mul<&'b Unit<Matrix<N, U3, U1, SB>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Unit<Vector3<N>>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Unit<Vector<N, U3, SB>>) -> Self::Output
[src]
impl<'b, N: SimdRealField, SB: Storage<N, U3>> Mul<&'b Unit<Matrix<N, U3, U1, SB>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Unit<Vector3<N>>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Unit<Vector<N, U3, SB>>) -> Self::Output
[src]
impl<'a, 'b, N: SimdRealField> Mul<&'b Unit<Quaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b UnitQuaternion<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> Mul<&'b Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b UnitQuaternion<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Mul<DualQuaternion<N>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = DualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: DualQuaternion<N>) -> Self::Output
[src]
impl<N: SimdRealField> Mul<DualQuaternion<N>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = DualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: DualQuaternion<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Mul<Isometry<N, U3, Unit<Quaternion<N>>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Isometry3<N>) -> Self::Output
[src]
impl<N: SimdRealField> Mul<Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Isometry3<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField, SB: Storage<N, U3>> Mul<Matrix<N, U3, U1, SB>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Vector3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Vector<N, U3, SB>) -> Self::Output
[src]
impl<N: SimdRealField, SB: Storage<N, U3>> Mul<Matrix<N, U3, U1, SB>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Vector3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Vector<N, U3, SB>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Mul<Point<N, U3>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Point3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Point3<N>) -> Self::Output
[src]
impl<N: SimdRealField> Mul<Point<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Point3<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Point3<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Mul<Translation<N, U3>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Translation3<N>) -> Self::Output
[src]
impl<N: SimdRealField> Mul<Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U3>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: Translation3<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Mul<Unit<DualQuaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: UnitDualQuaternion<N>) -> Self::Output
[src]
impl<N: SimdRealField> Mul<Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: UnitDualQuaternion<N>) -> Self::Output
[src]
impl<'a, N: SimdRealField, SB: Storage<N, U3>> Mul<Unit<Matrix<N, U3, U1, SB>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Unit<Vector3<N>>
The resulting type after applying the *
operator.
fn mul(self, rhs: Unit<Vector<N, U3, SB>>) -> Self::Output
[src]
impl<N: SimdRealField, SB: Storage<N, U3>> Mul<Unit<Matrix<N, U3, U1, SB>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
type Output = Unit<Vector3<N>>
The resulting type after applying the *
operator.
fn mul(self, rhs: Unit<Vector<N, U3, SB>>) -> Self::Output
[src]
impl<'a, N: SimdRealField> Mul<Unit<Quaternion<N>>> for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: UnitQuaternion<N>) -> Self::Output
[src]
impl<N: SimdRealField> Mul<Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
type Output = UnitDualQuaternion<N>
The resulting type after applying the *
operator.
fn mul(self, rhs: UnitQuaternion<N>) -> Self::Output
[src]
impl<'b, N: SimdRealField> MulAssign<&'b Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
fn mul_assign(&mut self, rhs: &'b Isometry3<N>)
[src]
impl<'b, N: SimdRealField> MulAssign<&'b Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn mul_assign(&mut self, rhs: &'b Translation3<N>)
[src]
impl<'b, N: SimdRealField> MulAssign<&'b Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn mul_assign(&mut self, rhs: &'b UnitDualQuaternion<N>)
[src]
impl<'b, N: SimdRealField> MulAssign<&'b Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn mul_assign(&mut self, rhs: &'b UnitQuaternion<N>)
[src]
impl<N: SimdRealField> MulAssign<Isometry<N, U3, Unit<Quaternion<N>>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1> + Allocator<N, U3, U1>,
fn mul_assign(&mut self, rhs: Isometry3<N>)
[src]
impl<N: SimdRealField> MulAssign<Translation<N, U3>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn mul_assign(&mut self, rhs: Translation3<N>)
[src]
impl<N: SimdRealField> MulAssign<Unit<DualQuaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn mul_assign(&mut self, rhs: UnitDualQuaternion<N>)
[src]
impl<N: SimdRealField> MulAssign<Unit<Quaternion<N>>> for UnitDualQuaternion<N> where
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
[src]
N::Element: SimdRealField,
DefaultAllocator: Allocator<N, U4, U1>,
fn mul_assign(&mut self, rhs: UnitQuaternion<N>)
[src]
impl<N: SimdRealField> Neg for UnitDualQuaternion<N> where
N::Element: SimdRealField,
[src]
N::Element: SimdRealField,
type Output = UnitDualQuaternion<N>
The resulting type after applying the -
operator.
fn neg(self) -> Self::Output
[src]
impl<'a, N: SimdRealField> Neg for &'a UnitDualQuaternion<N> where
N::Element: SimdRealField,
[src]
N::Element: SimdRealField,
type Output = UnitDualQuaternion<N>
The resulting type after applying the -
operator.
fn neg(self) -> Self::Output
[src]
impl<N: SimdRealField> One for UnitDualQuaternion<N> where
N::Element: SimdRealField,
[src]
N::Element: SimdRealField,
fn one() -> Self
[src]
pub fn set_one(&mut self)
[src]
pub fn is_one(&self) -> bool where
Self: PartialEq<Self>,
[src]
Self: PartialEq<Self>,
impl<N: Scalar + ClosedNeg + PartialEq + SimdRealField> PartialEq<Unit<DualQuaternion<N>>> for UnitDualQuaternion<N>
[src]
impl<N: RealField + RelativeEq<Epsilon = N>> RelativeEq<Unit<DualQuaternion<N>>> for UnitDualQuaternion<N>
[src]
fn default_max_relative() -> Self::Epsilon
[src]
fn relative_eq(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
[src]
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
pub fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
[src]
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
impl<N1, N2> SubsetOf<Isometry<N2, U3, Unit<Quaternion<N2>>>> for UnitDualQuaternion<N1> where
N1: RealField,
N2: RealField + SupersetOf<N1>,
[src]
N1: RealField,
N2: RealField + SupersetOf<N1>,
fn to_superset(&self) -> Isometry3<N2>
[src]
fn is_in_subset(iso: &Isometry3<N2>) -> bool
[src]
fn from_superset_unchecked(iso: &Isometry3<N2>) -> Self
[src]
pub fn from_superset(element: &T) -> Option<Self>
[src]
impl<N1: RealField, N2: RealField + SupersetOf<N1>> SubsetOf<Matrix<N2, U4, U4, <DefaultAllocator as Allocator<N2, U4, U4>>::Buffer>> for UnitDualQuaternion<N1>
[src]
fn to_superset(&self) -> Matrix4<N2>
[src]
fn is_in_subset(m: &Matrix4<N2>) -> bool
[src]
fn from_superset_unchecked(m: &Matrix4<N2>) -> Self
[src]
pub fn from_superset(element: &T) -> Option<Self>
[src]
impl<N1, N2> SubsetOf<Similarity<N2, U3, Unit<Quaternion<N2>>>> for UnitDualQuaternion<N1> where
N1: RealField,
N2: RealField + SupersetOf<N1>,
[src]
N1: RealField,
N2: RealField + SupersetOf<N1>,
fn to_superset(&self) -> Similarity3<N2>
[src]
fn is_in_subset(sim: &Similarity3<N2>) -> bool
[src]
fn from_superset_unchecked(sim: &Similarity3<N2>) -> Self
[src]
pub fn from_superset(element: &T) -> Option<Self>
[src]
impl<N1, N2, C> SubsetOf<Transform<N2, U3, C>> for UnitDualQuaternion<N1> where
N1: RealField,
N2: RealField + SupersetOf<N1>,
C: SuperTCategoryOf<TAffine>,
[src]
N1: RealField,
N2: RealField + SupersetOf<N1>,
C: SuperTCategoryOf<TAffine>,
fn to_superset(&self) -> Transform<N2, U3, C>
[src]
fn is_in_subset(t: &Transform<N2, U3, C>) -> bool
[src]
fn from_superset_unchecked(t: &Transform<N2, U3, C>) -> Self
[src]
pub fn from_superset(element: &T) -> Option<Self>
[src]
impl<N1, N2> SubsetOf<Unit<DualQuaternion<N2>>> for UnitDualQuaternion<N1> where
N1: SimdRealField,
N2: SimdRealField + SupersetOf<N1>,
[src]
N1: SimdRealField,
N2: SimdRealField + SupersetOf<N1>,