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

pub trait EuclideanSpace: AffineSpace<Translation = Self::CoordinateSpace> + AsPosition<Position = Self> + 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(projective: Projective<Self>) -> Option<Self>    where        Self::CoordinateSpace: Homogeneous,        Projective<Self>: Truncate<Self::CoordinateSpace> + VectorSpace<Scalar = Scalar<Self>>,
{ ... }
fn into_homogeneous(self) -> Projective<Self>    where        Self::CoordinateSpace: Homogeneous + Extend<Projective<Self>>,        Projective<Self>: VectorSpace<Scalar = Scalar<Self>>,
{ ... }
fn centroid<I>(points: I) -> Option<Self>    where        I: IntoIterator<Item = Self>,
{ ... }
}