|
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 2113 of file geom_algorithms.H.
|
inlinestaticprivate |
Check if all points in an array are collinear.
Definition at line 2153 of file geom_algorithms.H.
References Aleph::COLLINEAR, Aleph::divide_and_conquer_partition_dp(), and Aleph::orientation().
Referenced by operator()().
|
inlinestatic |
Convert indexed triangulation to geometric triangles.
| result | Triangulation result. |
Definition at line 2279 of file geom_algorithms.H.
References Aleph::divide_and_conquer_partition_dp(), k, Aleph::DelaunayTriangulationBowyerWatson::Result::sites, and Aleph::DelaunayTriangulationBowyerWatson::Result::triangles.
Referenced by TEST_F().
|
inlinestaticprivate |
Lexicographical comparison for points.
Definition at line 2141 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 2234 of file geom_algorithms.H.
References all_collinear(), Aleph::divide_and_conquer_partition_dp(), point_in_circumcircle(), Aleph::DelaunayTriangulationBowyerWatson::Result::sites, and unique_points().
|
inline |
Convenience overload using initializer-list input.
| il | Input points. |
Definition at line 2265 of file geom_algorithms.H.
References Aleph::DynList< T >::append(), and Aleph::divide_and_conquer_partition_dp().
|
inlinestaticprivate |
Predicate to check if a point lies inside the circumcircle of a triangle.
Definition at line 2168 of file geom_algorithms.H.
References Aleph::CCW, Aleph::CW, Aleph::divide_and_conquer_partition_dp(), Aleph::in_circle_determinant(), and Aleph::orientation().
Referenced by operator()().
|
inlinestaticprivate |
Extracts unique points from a list and sorts them lexicographically.
Definition at line 2207 of file geom_algorithms.H.
References Aleph::all(), Aleph::Array< T >::append(), Aleph::divide_and_conquer_partition_dp(), Aleph::HTList::Iterator::has_curr(), lexicographic_less(), Aleph::quicksort_op(), and Aleph::Array< T >::reserve().
Referenced by operator()().