Trait nannou::math::InnerSpace[][src]

pub trait InnerSpace: VectorSpace + MetricSpace<Metric = Self::Scalar> + UlpsEq<Self, Epsilon = Self::Scalar> where
    Self::Scalar: BaseFloat
{ pub fn dot(self, other: Self) -> Self::Scalar; pub fn is_perpendicular(self, other: Self) -> bool { ... }
pub fn magnitude2(self) -> Self::Scalar { ... }
pub fn magnitude(self) -> Self::Scalar { ... }
pub fn angle(self, other: Self) -> Rad<Self::Scalar> { ... }
pub fn normalize(self) -> Self { ... }
pub fn normalize_to(self, magnitude: Self::Scalar) -> Self { ... }
pub fn project_on(self, other: Self) -> Self { ... } }

Vectors that also have a dot (or inner) product.

The dot product allows for the definition of other useful operations, like finding the magnitude of a vector or normalizing it.

Examples include vectors and quaternions.

Required methods

pub fn dot(self, other: Self) -> Self::Scalar[src]

Vector dot (or inner) product.

Loading content...

Provided methods

pub fn is_perpendicular(self, other: Self) -> bool[src]

Returns true if the vector is perpendicular (at right angles) to the other vector.

pub fn magnitude2(self) -> Self::Scalar[src]

Returns the squared magnitude.

This does not perform an expensive square root operation like in InnerSpace::magnitude method, and so can be used to compare magnitudes more efficiently.

pub fn magnitude(self) -> Self::Scalar[src]

The distance from the tail to the tip of the vector.

pub fn angle(self, other: Self) -> Rad<Self::Scalar>[src]

Returns the angle between two vectors in radians.

pub fn normalize(self) -> Self[src]

Returns a vector with the same direction, but with a magnitude of 1.

pub fn normalize_to(self, magnitude: Self::Scalar) -> Self[src]

Returns a vector with the same direction and a given magnitude.

pub fn project_on(self, other: Self) -> Self[src]

Returns the vector projection of the current inner space projected onto the supplied argument.

Loading content...

Implementations on Foreign Types

impl<S> InnerSpace for Vector4<S> where
    S: BaseFloat
[src]

impl<S> InnerSpace for Vector1<S> where
    S: BaseFloat
[src]

impl<S> InnerSpace for Vector3<S> where
    S: BaseFloat
[src]

impl<S> InnerSpace for Vector2<S> where
    S: BaseFloat
[src]

Loading content...

Implementors

impl<S> InnerSpace for nannou::geom::vector::Vector2<S> where
    S: BaseFloat
[src]

impl<S> InnerSpace for nannou::geom::vector::Vector3<S> where
    S: BaseFloat
[src]

impl<S> InnerSpace for nannou::geom::vector::Vector4<S> where
    S: BaseFloat
[src]

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

Loading content...