|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Exact Delaunay triangulation using the Bowyer-Watson incremental algorithm. More...
#include <geom_algorithms.H>
Classes | |
| struct | IndexedTriangle |
| Represents a triangle by the indices of its three vertices. More... | |
| struct | Result |
| The result of a Delaunay triangulation. More... | |
Public Member Functions | |
| Result | operator() (const DynList< Point > &point_set) const |
| Compute Delaunay triangulation of a point set. | |
| Result | operator() (const std::initializer_list< Point > il) const |
| Convenience overload using initializer-list input. | |
Static Public Member Functions | |
| static DynList< Triangle > | as_triangles (const Result &result) |
| Convert indexed triangulation to geometric triangles. | |
Static Private Member Functions | |
| static bool | lexicographic_less (const Point &p1, const Point &p2) |
| Lexicographical comparison for points. | |
| static bool | all_collinear (const Array< Point > &pts) |
| Check if all points in an array are collinear. | |
| static bool | point_in_circumcircle (const Array< Point > &pts, const size_t ia, const size_t ib, const size_t ic, const size_t ip) |
| Predicate to check if a point lies inside the circumcircle of a triangle. | |
| static Array< Point > | unique_points (const DynList< Point > &point_set) |
| Extracts unique points from a list and sorts them lexicographically. | |
Exact Delaunay triangulation using the Bowyer-Watson incremental algorithm.
This class computes the Delaunay triangulation of a set of 2D points. The Delaunay triangulation for a set P of points in a plane is a triangulation DT(P) such that no point in P is inside the circumcircle of any triangle in DT(P).
Definition at line 2100 of file geom_algorithms.H.
|
inlinestaticprivate |
Check if all points in an array are collinear.
Definition at line 2140 of file geom_algorithms.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::COLLINEAR, and Aleph::orientation().
Referenced by operator()().
|
inlinestatic |
Convert indexed triangulation to geometric triangles.
| result | Triangulation result. |
Definition at line 2264 of file geom_algorithms.H.
References Aleph::blossom_maximum_cardinality_matching(), k, out, Aleph::DelaunayTriangulationBowyerWatson::Result::sites, and Aleph::DelaunayTriangulationBowyerWatson::Result::triangles.
Referenced by TEST_F().
|
inlinestaticprivate |
Lexicographical comparison for points.
Definition at line 2128 of file geom_algorithms.H.
References Aleph::Point::get_x(), and Aleph::Point::get_y().
Referenced by unique_points().
|
inline |
Compute Delaunay triangulation of a point set.
| point_set | Input points. |
Definition at line 2223 of file geom_algorithms.H.
References all_collinear(), Aleph::blossom_maximum_cardinality_matching(), point_in_circumcircle(), Aleph::DelaunayTriangulationBowyerWatson::Result::sites, and unique_points().
|
inline |
Convenience overload using initializer-list input.
| il | Input points. |
Definition at line 2250 of file geom_algorithms.H.
References Aleph::DynList< T >::append(), and Aleph::blossom_maximum_cardinality_matching().
|
inlinestaticprivate |
Predicate to check if a point lies inside the circumcircle of a triangle.
Definition at line 2155 of file geom_algorithms.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::CCW, Aleph::CW, Aleph::in_circle_determinant(), and Aleph::orientation().
Referenced by operator()().
|
inlinestaticprivate |
Extracts unique points from a list and sorts them lexicographically.
Definition at line 2196 of file geom_algorithms.H.
References Aleph::all(), Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::HTList::Iterator::has_curr(), lexicographic_less(), Aleph::quicksort_op(), and Aleph::Array< T >::reserve().
Referenced by operator()().