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

pub trait InnerSpace: VectorSpace + MetricSpace<Metric = Self::Scalar> {
    fn dot(self, other: Self) -> Self::Scalar;

    fn is_perpendicular(self, other: Self) -> bool
    where
        Self::Scalar: UlpsEq<Self::Scalar>
, { ... }
fn magnitude2(self) -> Self::Scalar { ... }
fn angle(self, other: Self) -> Rad<Self::Scalar>
    where
        Self::Scalar: BaseFloat
, { ... }
fn project_on(self, other: Self) -> Self { ... }
fn magnitude(self) -> Self::Scalar
    where
        Self::Scalar: Float
, { ... }
fn normalize(self) -> Self
    where
        Self::Scalar: Float
, { ... }
fn normalize_to(self, magnitude: Self::Scalar) -> Self
    where
        Self::Scalar: Float
, { ... } }
Expand description

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

Vector dot (or inner) product.

Provided methods

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

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.

Returns the angle between two vectors in radians.

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

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

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

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

Implementations on Foreign Types

Implementors