#include <ScanConversionPolygon.h>
Public Types | |
typedef T | Number |
The floating point number type. | |
typedef ads::FixedArray< 2, Number > | Point |
The representation of a point in 2 dimensions. | |
typedef int | SizeType |
The size type. | |
typedef Container::iterator | Iterator |
An iterator over points. | |
typedef Container::const_iterator | ConstIterator |
A const Iterator over points. | |
Public Member Functions | |
Constructors etc. | |
ScanConversionPolygon () | |
Default constructor. Uninitialized memory. | |
ScanConversionPolygon (SizeType size) | |
Constructor. Reserve room for size vertices. | |
ScanConversionPolygon (const ScanConversionPolygon &other) | |
Copy constructor. | |
ScanConversionPolygon & | operator= (const ScanConversionPolygon &other) |
Assignment operator. | |
~ScanConversionPolygon () | |
Trivial destructor. | |
Accesors. | |
SizeType | getVerticesSize () const |
Return the number of vertices. | |
const Point & | getVertex (const int n) const |
Return a const reference to the specified vertex. | |
Manipulators. | |
Iterator | getVerticesBeginning () |
Iterator | getVerticesEnd () |
void | clear () |
Clear the vertices. | |
void | insert (const Point &x) |
Add a vertex. | |
Mathematical functions. | |
void | orderVertices () |
Order the vertices in a positive orientation. | |
void | removeDuplicates () |
Remove adjacent duplicate vertices of an ordered polygon. | |
int | computeBottomAndTop (Number *bottom, Number *top) const |
Find the top and bottom of the polygon. Return bottom vertex index. | |
template<typename IndexOutputIterator> | |
void | scanConvert (IndexOutputIterator coords, const ads::FixedArray< 2, int > &extents) const |
Scan convert the ScanConversionPolygon in a 2-D grid. | |
template<typename IndexOutputIterator> | |
void | scanConvert (IndexOutputIterator coords, const ads::FixedArray< 3, int > &extents, const int zCoordinate) const |
Scan convert the ScanConversionPolygon in a 3-D grid. | |
void | clip (const Line_2< Number > &line) |
Clip the ScanConversionPolygon against the line. | |
bool | isValid () const |
Check if polygon is valid. | |
File I/O. | |
void | get (std::istream &in) |
Read the number of vertices and each vertex. | |
void | put (std::ostream &out) const |
Write each vertex. | |
void | mathematicaPrint (std::ostream &out) const |
Write a Line[] object that Mathematica can read. | |
Related Functions | |
(Note that these are not member functions.) | |
bool | operator== (const ScanConversionPolygon< T > &a, const ScanConversionPolygon< T > &b) |
Return true if the polygons have the same points in the same order. | |
bool | operator!= (const ScanConversionPolygon< T > &a, const ScanConversionPolygon< T > &b) |
Return true if they don't have the same points in the same order. | |
std::istream & | operator>> (std::istream &in, ScanConversionPolygon< T > &x) |
Read the number of vertices and each vertex. | |
std::ostream & | operator<< (std::ostream &out, const ScanConversionPolygon< T > &x) |
Write each vertex. |
T | is the number type. By default it is double. |
bool geom::ScanConversionPolygon< T >::isValid | ( | ) | const |
Check if polygon is valid.
Check that the ScanConversionPolygon has at least three vertices and that adjacent vertices are not equal.
void geom::ScanConversionPolygon< T >::scanConvert | ( | IndexOutputIterator | coords, | |
const ads::FixedArray< 3, int > & | extents, | |||
const int | zCoordinate | |||
) | const [inline] |
Scan convert the ScanConversionPolygon in a 3-D grid.
coords | is an output Iterator for the set of grid indices. | |
extents | are the extents of the grid. | |
zCoordinate | is the z-coordinate of the slice being scan-converted. |
void geom::ScanConversionPolygon< T >::scanConvert | ( | IndexOutputIterator | coords, | |
const ads::FixedArray< 2, int > & | extents | |||
) | const [inline] |
Scan convert the ScanConversionPolygon in a 2-D grid.
coords | is an output Iterator for the set of grid indices. | |
extents | are the extents of the grid. |