pub struct Rot<const N: usize, S: Field>(/* private fields */)
where
(): RotDim<N>;Implementations§
Source§impl<const N: usize, S: Field> Rot<N, S>
impl<const N: usize, S: Field> Rot<N, S>
pub const IDENT: Self
pub fn angle_axis( angle: S, axis: impl Maybe<<<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Axis>, ) -> Self
pub fn from_to(from: impl Maybe<Nrml<N, S>>, to: impl Maybe<Nrml<N, S>>) -> Self
Sourcepub unsafe fn from_w_bi_unchecked(
w: S,
bi: <<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Bivector,
) -> Self
pub unsafe fn from_w_bi_unchecked( w: S, bi: <<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Bivector, ) -> Self
§Safety
Safe when w*w + bi.dot(bi) =~ 1.
That is, the created rotor is properly unitized.
pub fn from_torq( torq: <<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Bivector, ) -> Self
pub fn angle(self) -> S
pub fn axis( self, ) -> Option<<<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Axis>
pub fn axis_or_zero( self, ) -> <<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Bivector
pub fn w(self) -> S
pub fn bi(self) -> <<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Bivector
pub fn to_torq( self, ) -> <<() as RotDim<N>>::Inner<S> as RotInner<N, S>>::Bivector
pub fn part(self, t: S) -> Self
pub fn inv(self) -> Self
pub fn mat(self) -> Mat<N, N, S>
Trait Implementations§
impl<const N: usize, S: Copy + Field> Copy for Rot<N, S>
Auto Trait Implementations§
impl<const N: usize, S> !Freeze for Rot<N, S>
impl<const N: usize, S> !RefUnwindSafe for Rot<N, S>
impl<const N: usize, S> !Send for Rot<N, S>
impl<const N: usize, S> !Sync for Rot<N, S>
impl<const N: usize, S> !Unpin for Rot<N, S>
impl<const N: usize, S> !UnsafeUnpin for Rot<N, S>
impl<const N: usize, S> !UnwindSafe for Rot<N, S>
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