[][src]Trait theon::space::EuclideanSpace

pub trait EuclideanSpace: AffineSpace<Translation = Self::CoordinateSpace> + FiniteDimensional {
    type CoordinateSpace: Basis + InnerSpace + FiniteDimensional<N = Self::N>;
    fn origin() -> Self;

    fn from_coordinates(coordinates: Self::CoordinateSpace) -> Self { ... }
fn into_coordinates(self) -> Self::CoordinateSpace { ... }
fn from_x(x: Scalar<Self>) -> Self
    where
        Self: FiniteDimensional<N = U1>
, { ... }
fn from_xy(x: Scalar<Self>, y: Scalar<Self>) -> Self
    where
        Self: FiniteDimensional<N = U2>
, { ... }
fn from_xyz(x: Scalar<Self>, y: Scalar<Self>, z: Scalar<Self>) -> Self
    where
        Self: FiniteDimensional<N = U3>
, { ... }
fn into_x(self) -> Scalar<Self>
    where
        Self: FiniteDimensional<N = U1>
, { ... }
fn into_xy(self) -> (Scalar<Self>, Scalar<Self>)
    where
        Self: FiniteDimensional<N = U2>
, { ... }
fn into_xyz(self) -> (Scalar<Self>, Scalar<Self>, Scalar<Self>)
    where
        Self: FiniteDimensional<N = U3>
, { ... }
fn from_homogeneous(vector: Self::ProjectiveSpace) -> Option<Self>
    where
        Self: Homogeneous,
        Self::ProjectiveSpace: Pop<Output = Self::CoordinateSpace> + VectorSpace<Scalar = Scalar<Self>>
, { ... }
fn into_homogeneous(self) -> Self::ProjectiveSpace
    where
        Self: Homogeneous,
        Self::CoordinateSpace: Push<Output = Self::ProjectiveSpace>,
        Self::ProjectiveSpace: VectorSpace<Scalar = Scalar<Self>>
, { ... }
fn centroid<I>(points: I) -> Option<Self>
    where
        I: IntoIterator<Item = Self>
, { ... } }

Associated Types

type CoordinateSpace: Basis + InnerSpace + FiniteDimensional<N = Self::N>

Loading content...

Required methods

fn origin() -> Self

Loading content...

Provided methods

fn from_coordinates(coordinates: Self::CoordinateSpace) -> Self

fn into_coordinates(self) -> Self::CoordinateSpace

fn from_x(x: Scalar<Self>) -> Self where
    Self: FiniteDimensional<N = U1>, 

fn from_xy(x: Scalar<Self>, y: Scalar<Self>) -> Self where
    Self: FiniteDimensional<N = U2>, 

fn from_xyz(x: Scalar<Self>, y: Scalar<Self>, z: Scalar<Self>) -> Self where
    Self: FiniteDimensional<N = U3>, 

fn into_x(self) -> Scalar<Self> where
    Self: FiniteDimensional<N = U1>, 

fn into_xy(self) -> (Scalar<Self>, Scalar<Self>) where
    Self: FiniteDimensional<N = U2>, 

fn into_xyz(self) -> (Scalar<Self>, Scalar<Self>, Scalar<Self>) where
    Self: FiniteDimensional<N = U3>, 

fn from_homogeneous(vector: Self::ProjectiveSpace) -> Option<Self> where
    Self: Homogeneous,
    Self::ProjectiveSpace: Pop<Output = Self::CoordinateSpace> + VectorSpace<Scalar = Scalar<Self>>, 

fn into_homogeneous(self) -> Self::ProjectiveSpace where
    Self: Homogeneous,
    Self::CoordinateSpace: Push<Output = Self::ProjectiveSpace>,
    Self::ProjectiveSpace: VectorSpace<Scalar = Scalar<Self>>, 

fn centroid<I>(points: I) -> Option<Self> where
    I: IntoIterator<Item = Self>, 

Loading content...

Implementations on Foreign Types

impl<T> EuclideanSpace for Point2<T> where
    T: BaseFloat + Real, 
[src]

type CoordinateSpace = Vector2<T>

impl<T> EuclideanSpace for Point3<T> where
    T: BaseFloat + Real, 
[src]

type CoordinateSpace = Vector3<T>

impl<T, D> EuclideanSpace for Point<T, D> where
    T: AddAssign + MulAssign + Real + Scalar + SubAssign,
    D: DimName,
    D::Value: NonZero,
    DefaultAllocator: Allocator<T, D>,
    <DefaultAllocator as Allocator<T, D>>::Buffer: Copy,
    VectorN<T, D>: FiniteDimensional<N = Self::N>, 
[src]

type CoordinateSpace = VectorN<T, D>

Loading content...

Implementors

Loading content...