logo
pub struct NGon<G, const N: usize>(pub [G; N]);
Expand description

Monomorphic $n$-gon.

NGon represents a polygonal structure as an array. Each array element represents vertex data in order with adjacent elements being connected by an implicit undirected edge. For example, an NGon with three vertices (NGon<_, 3>) would represent a trigon (triangle). Generally these elements are labeled $A$, $B$, $C$, etc. Note that the constant parameter N represents the number of the NGon’s vertices and not the number of its edges (arity).

NGons with less than three vertices are a degenerate case. An NGon with two vertices (NGon<_, 2>) is considered a monogon and is used to represent edges. Such an NGon is not considered a digon, as it represents a single undirected edge rather than two distinct (but collapsed) edges. Note that the polygonal types BoundedPolygon and UnboundedPolygon never represent edges. See the Edge type definition.

NGons with one or zero vertices are unsupported and lack various trait implementations.

See the module documentation for more information.

Tuple Fields

0: [G; N]

Implementations

Trait Implementations

Converts this type into a mutable reference of the (usually inferred) input type.

Converts this type into a shared reference of the (usually inferred) input type.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Converts to this type from the input type.

Converts to this type from the input type.

Converts to this type from the input type.

Converts to this type from the input type.

The returned type after indexing.

Performs the indexing (container[index]) operation. Read more

Performs the mutable indexing (container[index]) operation. Read more

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Determines if the polygon is convex. Read more

Embeds an $n$-gon from $\Reals^2$ into $\Reals^3$. Read more

Embeds an $n$-gon from $\Reals^2$ into $\Reals^3$. Read more

Projects an $n$-gon into a plane. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

Performance hack: Clone doesn’t get inlined for Copy types in debug mode, so make it inline anyway.

Tests if Self the same as the type T Read more

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more

Checks if self is actually part of its subset T (and can be converted to it).

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

The inclusion map: converts self to the equivalent element of its superset.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.