pub struct Versor<S>(/* private fields */)
where
    S: Zero + One;Expand description
Unit quaternion representing an orientation in $\mathbb{R}^3$
Implementations§
Source§impl<S: Real> Versor<S>
 
impl<S: Real> Versor<S>
Sourcepub fn normalize(quaternion: Quaternion<S>) -> Selfwhere
    S: Debug,
 
pub fn normalize(quaternion: Quaternion<S>) -> Selfwhere
    S: Debug,
Normalizes the given quaternion.
Panics if the zero quaternion is given.
Sourcepub fn noisy(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Debug,
 
pub fn noisy(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Debug,
Panic if the given quaternion is not a unit quaternion.
This method checks whether quaternion == quaternion.normalized().
Sourcepub fn noisy_approx(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Real + RelativeEq<Epsilon = S>,
 
pub fn noisy_approx(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Real + RelativeEq<Epsilon = S>,
Panic if the given quaternion is not a unit quaternion.
Checks if the magnitude is approximately one.
Sourcepub fn unchecked(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Debug,
 
pub fn unchecked(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Debug,
It is a debug panic if the given quaternion is not a unit quaternion.
This method checks whether quaternion == quaternion.normalized().
Sourcepub fn unchecked_approx(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Real + RelativeEq<Epsilon = S>,
 
pub fn unchecked_approx(unit_quaternion: Quaternion<S>) -> Selfwhere
    S: Real + RelativeEq<Epsilon = S>,
It is a debug panic if the given quaternion is not a unit quaternion.
Checks if the magnitude is approximately one.
Sourcepub fn from_scaled_axis(scaled_axis: &Vector3<S>) -> Self
 
pub fn from_scaled_axis(scaled_axis: &Vector3<S>) -> Self
Constructs the rotation using the direction and magnitude of the given vector
Trait Implementations§
Source§impl<S: Real> Deref for Versor<S>
 
impl<S: Real> Deref for Versor<S>
Source§type Target = Quaternion<S>
 
type Target = Quaternion<S>
The resulting type after dereferencing.
Source§fn deref(&self) -> &Quaternion<S>
 
fn deref(&self) -> &Quaternion<S>
Dereferences the value.
impl<S> Copy for Versor<S>
impl<S> Eq for Versor<S>
impl<S> StructuralPartialEq for Versor<S>
Auto Trait Implementations§
impl<S> Freeze for Versor<S>where
    S: Freeze,
impl<S> RefUnwindSafe for Versor<S>where
    S: RefUnwindSafe,
impl<S> Send for Versor<S>where
    S: Send,
impl<S> Sync for Versor<S>where
    S: Sync,
impl<S> Unpin for Versor<S>where
    S: Unpin,
impl<S> UnwindSafe for Versor<S>where
    S: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CheckedAs for T
 
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
    T: CheckedCast<Dst>,
 
fn checked_as<Dst>(self) -> Option<Dst>where
    T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
    Src: CheckedCast<Dst>,
 
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
    Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
 
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
    Dst: LosslessTryFrom<Src>,
 
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
    Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
 
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
    Dst: LossyFrom<Src>,
 
impl<Src, Dst> LossyInto<Dst> for Srcwhere
    Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
 
fn lossy_into(self) -> Dst
Performs the conversion.
Source§impl<T> OverflowingAs for T
 
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
    T: OverflowingCast<Dst>,
 
fn overflowing_as<Dst>(self) -> (Dst, bool)where
    T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
    Src: OverflowingCast<Dst>,
 
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
    Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
 
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
 
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
    T: SaturatingCast<Dst>,
 
fn saturating_as<Dst>(self) -> Dstwhere
    T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
    Src: SaturatingCast<Dst>,
 
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
    Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
 
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> UnwrappedAs for T
 
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
    T: UnwrappedCast<Dst>,
 
fn unwrapped_as<Dst>(self) -> Dstwhere
    T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
    Src: UnwrappedCast<Dst>,
 
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
    Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
 
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
 
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
    T: WrappingCast<Dst>,
 
fn wrapping_as<Dst>(self) -> Dstwhere
    T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
    Src: WrappingCast<Dst>,
 
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
    Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
 
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.