Trait alga::linear::EuclideanSpace

source ·
pub trait EuclideanSpace: AffineSpace<Translation = Self::Coordinates> + ClosedMul<Self::RealField> + ClosedDiv<Self::RealField> + Neg<Output = Self> {
    type Coordinates: FiniteDimInnerSpace<RealField = Self::RealField, ComplexField = Self::RealField> + Add<Self::Coordinates, Output = Self::Coordinates> + AddAssign<Self::Coordinates> + Sub<Self::Coordinates, Output = Self::Coordinates> + SubAssign<Self::Coordinates> + Mul<Self::RealField, Output = Self::Coordinates> + MulAssign<Self::RealField> + Div<Self::RealField, Output = Self::Coordinates> + DivAssign<Self::RealField> + Neg<Output = Self::Coordinates>;
    type RealField: RealField;

    // Required method
    fn origin() -> Self;

    // Provided methods
    fn scale_by(&self, s: Self::RealField) -> Self { ... }
    fn coordinates(&self) -> Self::Coordinates { ... }
    fn from_coordinates(coords: Self::Coordinates) -> Self { ... }
    fn distance_squared(&self, b: &Self) -> Self::RealField { ... }
    fn distance(&self, b: &Self) -> Self::RealField { ... }
}
Expand description

The finite-dimensional affine space based on the field of reals.

Required Associated Types§

source

type Coordinates: FiniteDimInnerSpace<RealField = Self::RealField, ComplexField = Self::RealField> + Add<Self::Coordinates, Output = Self::Coordinates> + AddAssign<Self::Coordinates> + Sub<Self::Coordinates, Output = Self::Coordinates> + SubAssign<Self::Coordinates> + Mul<Self::RealField, Output = Self::Coordinates> + MulAssign<Self::RealField> + Div<Self::RealField, Output = Self::Coordinates> + DivAssign<Self::RealField> + Neg<Output = Self::Coordinates>

The underlying finite vector space.

source

type RealField: RealField

The underlying reals.

Required Methods§

source

fn origin() -> Self

The preferred origin of this euclidean space.

Theoretically, an euclidean space has no clearly defined origin. Though it is almost always useful to have some reference point to express all the others as translations of it.

Provided Methods§

source

fn scale_by(&self, s: Self::RealField) -> Self

Multiplies the distance of this point to Self::origin() by s.

Same as self * s.

source

fn coordinates(&self) -> Self::Coordinates

The coordinates of this point, i.e., the translation from the origin.

source

fn from_coordinates(coords: Self::Coordinates) -> Self

Builds a point from its coordinates relative to the origin.

source

fn distance_squared(&self, b: &Self) -> Self::RealField

The distance between two points.

source

fn distance(&self, b: &Self) -> Self::RealField

The distance between two points.

Object Safety§

This trait is not object safe.

Implementors§