PlukerRotation

Struct PlukerRotation 

Source
pub struct PlukerRotation(/* private fields */);
Expand description

A Plücker rotation representing a 3D rotation from reference to local frame.

Implementations§

Source§

impl PlukerRotation

Source

pub fn from_axis_angle(axis: UnitVec3, angle: Real) -> Self

Create a Plücker rotation from an axis and angle that rotates from reference to local frame.

§Coordinate Frame Convention

This creates a rotation that transforms vectors from the parent/reference frame to the child/local frame, following Featherstone’s spatial algebra conventions.

Source

pub fn from_quat(quat: UnitQuat) -> Self

Create a Plücker rotation from a unit quaternion.

The quaternion should represent the rotation from reference to local frame to be consistent with spatial algebra conventions.

Source

pub fn into_quat(self) -> UnitQuat

Convert the Plücker rotation to a unit quaternion.

Source

pub fn into_matrix(self) -> Mat3

Convert the Plücker rotation to a 3x3 matrix.

Source

pub fn identity() -> Self

Create a identity PlukerRotation.

Source

pub fn transpose(&self) -> Self

Transpose of the rotation is identical to the inverse.

Returns the transpose of the rotation matrix, which is equivalent to the inverse for orthogonal rotation matrices.

Source

pub fn matrix(&self) -> Mat3

Convert the rotation to a 3x3 matrix.

Returns the underlying rotation matrix representation.

Source

pub fn inverse_transform_vector(&self, v: Vec3) -> Vec3

Transform a vector from local frame to reference frame.

This is the inverse operation of multiplying a vector by the rotation.

Source

pub fn inverse_transform_unitvec(&self, v: UnitVec3) -> UnitVec3

Transform a unit vector from local frame to reference frame.

This is the inverse operation of multiplying a unit vector by the rotation.

Source

pub fn axis_angle(&self) -> Option<(UnitVec3, Real)>

Get the axis and angle of the rotation.

Source

pub fn from_matrix_unchecked(matrix: Mat3) -> Self

Create a Plücker rotation from a 3x3 matrix without validation.

§Safety

The input matrix must be a valid rotation matrix (orthogonal with determinant 1). This function does not perform validation, so invalid input may cause undefined behavior.

Source

pub fn as_slice(&self) -> &[Real]

Get the rotation matrix as a slice.

Returns the 3x3 rotation matrix as a contiguous slice of 9 elements in column-major order.

Trait Implementations§

Source§

impl Clone for PlukerRotation

Source§

fn clone(&self) -> PlukerRotation

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PlukerRotation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Mul<Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>> for PlukerRotation

Source§

type Output = Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Vec3) -> Vec3

Performs the * operation. Read more
Source§

impl Mul<Matrix<f32, Const<3>, Const<3>, ArrayStorage<f32, 3, 3>>> for PlukerRotation

Source§

type Output = Matrix<f32, Const<3>, Const<3>, ArrayStorage<f32, 3, 3>>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Mat3) -> Mat3

Performs the * operation. Read more
Source§

impl Mul for PlukerRotation

Source§

type Output = PlukerRotation

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Self) -> Self

Performs the * operation. Read more
Source§

impl PartialEq for PlukerRotation

Source§

fn eq(&self, other: &PlukerRotation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for PlukerRotation

Source§

impl StructuralPartialEq for PlukerRotation

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,