/* * BoundaryPolygonSet.hpp * * Created on: Jul 29, 2010 * Author: heber */ #ifndef BOUNDARYPOLYGONSET_HPP_ #define BOUNDARYPOLYGONSET_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "BoundaryMaps.hpp" #include #include class BoundaryPointSet; class BoundaryLineSet; class BoundaryTriangleSet; class TesselPoint; class Vector; /** Set of BoundaryPointSet. * This is just meant as a container for a group of endpoints, extending the node, line, triangle concept. However, this has * only marginally something to do with the tesselation. Hence, there is no incorporation into the bookkeeping of the Tesselation * class (i.e. no allocation, no deletion). * \note we assume that the set of endpoints reside (more or less) on a plane. */ class BoundaryPolygonSet { public: BoundaryPolygonSet(); ~BoundaryPolygonSet(); Vector * GetNormalVector(const Vector &NormalVector) const; void GetCenter(Vector *center) const; bool ContainsBoundaryLine(const BoundaryLineSet * const line) const; bool ContainsBoundaryPoint(const BoundaryPointSet * const point) const; bool ContainsBoundaryPoint(const TesselPoint * const point) const; bool ContainsBoundaryTriangle(const BoundaryTriangleSet * const point) const; bool ContainsPresentTupel(const BoundaryPointSet * const * Points, const int dim) const; bool ContainsPresentTupel(const BoundaryPolygonSet * const P) const; bool ContainsPresentTupel(const PointSet &endpoints) const; TriangleSet * GetAllContainedTrianglesFromEndpoints() const; bool FillPolygonFromTrianglesOfLine(const BoundaryLineSet * const line); PointSet endpoints; int Nr; }; std::ostream & operator << (std::ostream &ost, const BoundaryPolygonSet &a); #endif /* BOUNDARYPOLYGONSET_HPP_ */