[][src]Trait plexus::primitive::Polygonal

pub trait Polygonal: Topological {
    fn is_convex(&self) -> bool
    where
        Self::Vertex: AsPosition,
        Position<Self::Vertex>: EuclideanSpace + FiniteDimensional<N = U2>
, { ... } }

Primitive polygonal structure.

Polygonal types form cycle graphs and extend Topological types with the additional constraint that all vertices have a degree and valence of two. This requires at least three edges and forbids degenerate structures like monogons.

These types are topological and do not necessarily represent geometric concepts like polygons in the most strict sense. Polygons are only defined in $\Reals^2$ and cannot have converged or collinear vertices, but Polygonal types support this kind of data. However, Polygonal types are often used as a geometric approximation of polygons. Moreover, Polygonal types often contain non-geometric data, especially index data.

Provided methods

fn is_convex(&self) -> bool where
    Self::Vertex: AsPosition,
    Position<Self::Vertex>: EuclideanSpace + FiniteDimensional<N = U2>, 

Determines if a polygonal structure is convex.

This function rejects degenerate polygons, such as polygons with collinear or converged vertices.

Loading content...

Implementors

impl<T> Polygonal for BoundedPolygon<T>[src]

impl<T> Polygonal for NGon<[T; 3]>[src]

impl<T> Polygonal for NGon<[T; 4]>[src]

impl<T> Polygonal for NGon<[T; 5]>[src]

impl<T> Polygonal for NGon<[T; 6]>[src]

impl<T> Polygonal for NGon<[T; 7]>[src]

impl<T> Polygonal for NGon<[T; 8]>[src]

impl<T> Polygonal for NGon<[T; 9]>[src]

impl<T> Polygonal for NGon<[T; 10]>[src]

impl<T> Polygonal for NGon<[T; 11]>[src]

impl<T> Polygonal for NGon<[T; 12]>[src]

impl<T> Polygonal for UnboundedPolygon<T>[src]

Loading content...