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§
Sourcetype Patch: AffineSpace<S>
type Patch: AffineSpace<S>
Affine subspace
Provided Methods§
Sourcefn 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 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
Sourcefn homogeneous(
point_or_vector: Either<Self::Patch, <Self::Patch as AffineSpace<S>>::Translation>,
) -> Self
fn homogeneous( point_or_vector: Either<Self::Patch, <Self::Patch as AffineSpace<S>>::Translation>, ) -> Self
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.