Trait three_d::core::math::Rotation[][src]

pub trait Rotation: Copy + One + AbsDiffEq<Self, Epsilon = <Self::Space as EuclideanSpace>::Scalar, Epsilon = <Self::Space as EuclideanSpace>::Scalar, Epsilon = <Self::Space as EuclideanSpace>::Scalar> + RelativeEq<Self> + UlpsEq<Self> + Product<Self> where
    <Self::Space as EuclideanSpace>::Scalar: BaseFloat
{ type Space: EuclideanSpace; fn look_at(
        dir: <Self::Space as EuclideanSpace>::Diff,
        up: <Self::Space as EuclideanSpace>::Diff
    ) -> Self;
fn between_vectors(
        a: <Self::Space as EuclideanSpace>::Diff,
        b: <Self::Space as EuclideanSpace>::Diff
    ) -> Self;
fn rotate_vector(
        &self,
        vec: <Self::Space as EuclideanSpace>::Diff
    ) -> <Self::Space as EuclideanSpace>::Diff;
fn invert(&self) -> Self; fn rotate_point(&self, point: Self::Space) -> Self::Space { ... } }
Expand description

A trait for a generic rotation. A rotation is a transformation that creates a circular motion, and preserves at least one point in the space.

Associated Types

Required methods

Create a rotation to a given direction with an ‘up’ vector.

Create a shortest rotation to transform vector ‘a’ into ‘b’. Both given vectors are assumed to have unit length.

Rotate a vector using this rotation.

Create a new rotation which “un-does” this rotation. That is, r * r.invert() is the identity.

Provided methods

Rotate a point using this rotation, by converting it to its representation as a vector.

Implementations on Foreign Types

Evaluate the conjugation of vec by self.

Note that self should be a unit quaternion (i.e. normalized) to represent a 3D rotation.

Implementors