A class for a polyhedron in 3-D designed for scan conversion. More...
#include <ScanConversionPolyhedron.h>
Public Types | |
typedef T | Number |
The floating point number type. | |
typedef ads::FixedArray < 3, Number > | Point |
The representation of a point in 3 dimensions. | |
typedef SegmentMath< 3, Number > | Segment |
A line segment that supports mathematical operations. | |
Public Member Functions | |
Constructors etc. | |
ScanConversionPolyhedron () | |
Default constructor. Uninitialized memory. | |
ScanConversionPolyhedron (const ScanConversionPolyhedron &other) | |
Copy constructor. | |
ScanConversionPolyhedron & | operator= (const ScanConversionPolyhedron &other) |
Assignment operator. | |
ScanConversionPolyhedron & | operator= (const IndexedEdgePolyhedron< Number > &x) |
Assignment operator from an IndexedEdgePolyhedron. | |
~ScanConversionPolyhedron () | |
Trivial destructor. | |
Mathematical functions. | |
void | computeBBox (BBox< 3, Number > *bb) const |
Make a BBox containing the polyhedron. | |
void | convertLocationsToIndices (const RegularGrid< 3, Number > &grid) |
Convert the Cartesian coordinates of this polyhedron to index coordinates. | |
template<typename IndexOutputIterator > | |
void | scanConvert (IndexOutputIterator coordinates, const RegularGrid< 3, Number > &grid) const |
Scan convert the polyhedron. | |
Accesors. | |
const std::vector< Segment > & | getEdges () const |
Return a const reference to the edges. | |
Manipulators. | |
void | clear () |
Clear the edges. | |
void | insertEdge (const Point &p, const Point &q) |
Add an edge to the polyhedron. | |
Related Functions | |
(Note that these are not member functions.) | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &out, const ScanConversionPolyhedron< T > &polyhedron) |
Write the edges. | |
template<typename T > | |
void | mathematicaPrint (std::ostream &out, const ScanConversionPolyhedron< T > &polyhedron) |
Write the edges in Mathematica readable format. | |
template<typename T > | |
std::istream & | operator>> (std::istream &in, ScanConversionPolyhedron< T > &polyhedron) |
Read as a list of edges. | |
template<typename T > | |
bool | operator== (const ScanConversionPolyhedron< T > &a, const ScanConversionPolyhedron< T > &b) |
Return true if the polyhedra are equal. | |
template<typename T > | |
bool | operator!= (const ScanConversionPolyhedron< T > &a, const ScanConversionPolyhedron< T > &b) |
Return true if the polyhedra are not equal. |
A class for a polyhedron in 3-D designed for scan conversion.
T | is the number type. By default it is double. |
As the name suggests, this class is designed for 3-D polyhedron scan conversion. The Polyhedron is represented as a set of edges. The edges support mathematical operations that enable efficient slicing to obtain polygons. This, in turn, enables efficient scan conversion.
void ScanConversionPolyhedron< T >::scanConvert | ( | IndexOutputIterator | coordinates, | |
const RegularGrid< 3, Number > & | grid | |||
) | const [inline] |
Scan convert the polyhedron.
coordinates | is an output iterator for the set of coordinates inside. | |
grid | describes the grid on which to perform the scan conversion. |
void mathematicaPrint | ( | std::ostream & | out, | |
const ScanConversionPolyhedron< T > & | polyhedron | |||
) | [related] |
Write the edges in Mathematica readable format.
bool operator!= | ( | const ScanConversionPolyhedron< T > & | a, | |
const ScanConversionPolyhedron< T > & | b | |||
) | [related] |
Return true if the polyhedra are not equal.
std::ostream & operator<< | ( | std::ostream & | out, | |
const ScanConversionPolyhedron< T > & | polyhedron | |||
) | [related] |
Write the edges.
bool operator== | ( | const ScanConversionPolyhedron< T > & | a, | |
const ScanConversionPolyhedron< T > & | b | |||
) | [related] |
Return true if the polyhedra are equal.
References ScanConversionPolyhedron< T >::getEdges().
std::istream & operator>> | ( | std::istream & | in, | |
ScanConversionPolyhedron< T > & | polyhedron | |||
) | [related] |
Read as a list of edges.