[][src]Trait nannou::prelude::Rotation

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

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.

Required methods

fn look_at(
    dir: <P as EuclideanSpace>::Diff,
    up: <P as EuclideanSpace>::Diff
) -> Self

Create a rotation to a given direction with an 'up' vector.

fn between_vectors(
    a: <P as EuclideanSpace>::Diff,
    b: <P as EuclideanSpace>::Diff
) -> Self

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

fn rotate_vector(
    &self,
    vec: <P as EuclideanSpace>::Diff
) -> <P as EuclideanSpace>::Diff

Rotate a vector using this rotation.

fn invert(&self) -> Self

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

Loading content...

Provided methods

fn rotate_point(&self, point: P) -> P

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

Loading content...

Implementors

impl<S> Rotation<Point2<S>> for Basis2<S> where
    S: BaseFloat
[src]

impl<S> Rotation<Point3<S>> for Quaternion<S> where
    S: BaseFloat
[src]

impl<S> Rotation<Point3<S>> for Basis3<S> where
    S: BaseFloat
[src]

Loading content...