Trait ProjectiveSpace

Source
pub trait ProjectiveSpace<S, V>: VectorSpace<S>
where V: VectorSpace<S> + Display, S: Field + Display,
{ // Required methods fn homography<A>( affinity: Affinity<S, A, A, <A::Vector as Module<S>>::LinearEndo>, ) -> Projectivity<S, V, V, Self, Self, Self::LinearEndo> where A: AffineSpace<S, Vector = V>; fn homogeneous<A>(point_or_vector: Either<A::Point, A::Vector>) -> Self where A: AffineSpace<S, Vector = V>, V: GroupAction<A::Point>; }
Expand description

Projective completion (homogeneous coordinates)

Required Methods§

Source

fn homography<A>( affinity: Affinity<S, A, A, <A::Vector as Module<S>>::LinearEndo>, ) -> Projectivity<S, V, V, Self, Self, Self::LinearEndo>
where A: AffineSpace<S, Vector = V>,

Construct an augmented matrix for the affinity

Source

fn homogeneous<A>(point_or_vector: Either<A::Point, A::Vector>) -> Self
where A: AffineSpace<S, Vector = V>, V: GroupAction<A::Point>,

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> ProjectiveSpace<S, Vec2<S>> for Vector3<S>
where S: Field + Display,

Source§

impl<S> ProjectiveSpace<S, Vec3<S>> for Vector4<S>
where S: Field + Display,

Source§

impl<S, U> ProjectiveSpace<S, Displacement2<S, U>> for Displacement3<S, U>
where S: Field + Display,

Source§

impl<S, U> ProjectiveSpace<S, Displacement3<S, U>> for Displacement4<S, U>
where S: Field + Display,