ProjectiveSpace

Trait ProjectiveSpace 

Source
pub trait ProjectiveSpace<S: Field>: AffineSpace<S> {
    type Patch: AffineSpace<S>;

    // Provided methods
    fn homography(
        affinity: Affinity<S, Self::Patch, Self::Patch, <<Self::Patch as AffineSpace<S>>::Translation as Module<S>>::LinearEndo>,
    ) -> Projectivity<S, Self, Self, <Self::Translation as Module<S>>::LinearEndo>
       where <Self::Translation as Module<S>>::LinearEndo: From<<<Self::Patch as AffineSpace<S>>::Translation as Module<S>>::LinearEndo> { ... }
    fn homogeneous(
        point_or_vector: Either<Self::Patch, <Self::Patch as AffineSpace<S>>::Translation>,
    ) -> Self
       where Self: From<(Self::Patch, S)> { ... }
}
Expand description

Projective completion (homogeneous coordinates)

Required Associated Types§

Source

type Patch: AffineSpace<S>

Affine subspace

Provided Methods§

Source

fn homography( affinity: Affinity<S, Self::Patch, Self::Patch, <<Self::Patch as AffineSpace<S>>::Translation as Module<S>>::LinearEndo>, ) -> Projectivity<S, Self, Self, <Self::Translation as Module<S>>::LinearEndo>
where <Self::Translation as Module<S>>::LinearEndo: From<<<Self::Patch as AffineSpace<S>>::Translation as Module<S>>::LinearEndo>,

Construct an augmented matrix for the affinity

Source

fn homogeneous( point_or_vector: Either<Self::Patch, <Self::Patch as AffineSpace<S>>::Translation>, ) -> Self
where Self: From<(Self::Patch, S)>,

Return the projective completion (homogeneous coordinates) of the affine point or vector

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<S, U> ProjectiveSpace<S> for Position3<S, U>
where S: Field,

Source§

impl<S, U> ProjectiveSpace<S> for Position4<S, U>
where S: Field,

Source§

impl<S: Field> ProjectiveSpace<S> for Point3<S>

Source§

impl<S: Field> ProjectiveSpace<S> for Point4<S>