AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::primal::Polygon< T, NDIMS > Class Template Reference

Represents a polygon defined by an array of points. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.7.0/src/axom/primal/geometry/Polygon.hpp>

Public Types

using PointType = Point< T, NDIMS >
 

Public Member Functions

 Polygon ()
 Default constructor for an empty polygon. More...
 
 Polygon (int numExpectedVerts)
 Constructor for an empty polygon that reserves space for the given number of vertices. More...
 
 Polygon (const axom::Array< PointType > &vertices)
 Constructor for a polygon with the given vertices. More...
 
int numVertices () const
 Return the number of vertices in the polygon. More...
 
void addVertex (const PointType &pt)
 Appends a vertex to the list of vertices. More...
 
void clear ()
 Clears the list of vertices. More...
 
PointTypeoperator[] (int idx)
 Retrieves the vertex at index idx. More...
 
const PointTypeoperator[] (int idx) const
 Retrieves the vertex at index idx. More...
 
PointType vertexMean () const
 Computes the average of the polygon's vertex positions. More...
 
std::ostream & print (std::ostream &os) const
 Simple formatted print of a polygon instance. More...
 
bool isValid () const
 Simple check for validity of a polygon. More...
 

Detailed Description

template<typename T, int NDIMS>
class axom::primal::Polygon< T, NDIMS >

Represents a polygon defined by an array of points.

Template Parameters
Tthe coordinate type, e.g., double, float, etc.
NDIMSthe number of dimensions
Note
The polygon vertices should be ordered in a counter clockwise orientation with respect to the polygon's desired normal vector

Member Typedef Documentation

◆ PointType

template<typename T, int NDIMS>
using axom::primal::Polygon< T, NDIMS >::PointType = Point<T, NDIMS>

Constructor & Destructor Documentation

◆ Polygon() [1/3]

template<typename T, int NDIMS>
axom::primal::Polygon< T, NDIMS >::Polygon ( )
inline

Default constructor for an empty polygon.

◆ Polygon() [2/3]

template<typename T, int NDIMS>
axom::primal::Polygon< T, NDIMS >::Polygon ( int  numExpectedVerts)
inlineexplicit

Constructor for an empty polygon that reserves space for the given number of vertices.

Parameters
[in]numExpectedVertsnumber of vertices for which to reserve space
Precondition
numExpectedVerts is not negative

References axom::Array< T, DIM, SPACE >::reserve(), and SLIC_ASSERT.

◆ Polygon() [3/3]

template<typename T, int NDIMS>
axom::primal::Polygon< T, NDIMS >::Polygon ( const axom::Array< PointType > &  vertices)
inline

Constructor for a polygon with the given vertices.

Member Function Documentation

◆ numVertices()

template<typename T, int NDIMS>
int axom::primal::Polygon< T, NDIMS >::numVertices ( ) const
inline

Return the number of vertices in the polygon.

References axom::Array< T, DIM, SPACE >::size().

◆ addVertex()

template<typename T, int NDIMS>
void axom::primal::Polygon< T, NDIMS >::addVertex ( const PointType pt)
inline

Appends a vertex to the list of vertices.

References axom::Array< T, DIM, SPACE >::push_back().

◆ clear()

template<typename T, int NDIMS>
void axom::primal::Polygon< T, NDIMS >::clear ( )
inline

Clears the list of vertices.

References axom::Array< T, DIM, SPACE >::clear().

◆ operator[]() [1/2]

template<typename T, int NDIMS>
PointType& axom::primal::Polygon< T, NDIMS >::operator[] ( int  idx)
inline

Retrieves the vertex at index idx.

◆ operator[]() [2/2]

template<typename T, int NDIMS>
const PointType& axom::primal::Polygon< T, NDIMS >::operator[] ( int  idx) const
inline

Retrieves the vertex at index idx.

◆ vertexMean()

template<typename T, int NDIMS>
PointType axom::primal::Polygon< T, NDIMS >::vertexMean ( ) const
inline

Computes the average of the polygon's vertex positions.

Returns
A point at the mean of the polygon's vertices
Precondition
polygon.isValid() is true

References axom::primal::Point< T, NDIMS >::array(), axom::primal::Polygon< T, NDIMS >::isValid(), axom::primal::Polygon< T, NDIMS >::numVertices(), and SLIC_ASSERT.

◆ print()

template<typename T, int NDIMS>
std::ostream& axom::primal::Polygon< T, NDIMS >::print ( std::ostream &  os) const
inline

Simple formatted print of a polygon instance.

Parameters
osThe output stream to write to
Returns
A reference to the modified ostream

References axom::primal::Polygon< T, NDIMS >::numVertices().

◆ isValid()

template<typename T, int NDIMS>
bool axom::primal::Polygon< T, NDIMS >::isValid ( ) const
inline

Simple check for validity of a polygon.

Initial check is that the polygon has three or more vertices

Returns
True, if the polygon is valid, False otherwise

References axom::Array< T, DIM, SPACE >::size().


The documentation for this class was generated from the following file: