17#include <geos/algorithm/hull/HullTri.h>
18#include <geos/triangulate/tri/TriList.h>
19#include <geos/triangulate/quadedge/TriangleVisitor.h>
41class HullTriangulation
43 using Geometry = geos::geom::Geometry;
44 using GeometryFactory = geos::geom::GeometryFactory;
45 using Coordinate = geos::geom::Coordinate;
46 template<
typename TriType>
47 using TriList = geos::triangulate::tri::TriList<TriType>;
48 using QuadEdge = geos::triangulate::quadedge::QuadEdge;
49 using QuadEdgeSubdivision = geos::triangulate::quadedge::QuadEdgeSubdivision;
50 using TriangleVisitor = geos::triangulate::quadedge::TriangleVisitor;
55 QuadEdgeSubdivision& subdiv,
56 TriList<HullTri>& triList);
68 static geom::CoordinateSequence traceBoundary(
69 TriList<HullTri>& triList);
71 static HullTri* findBorderTri(
72 TriList<HullTri>& triList);
78 HullTriangulation() {};
80 static void createDelaunayTriangulation(
82 TriList<HullTri>& triList);
92 static std::unique_ptr<Geometry> traceBoundaryPolygon(
93 TriList<HullTri>& triList,
94 const GeometryFactory* factory);
96 static HullTri* nextBorderTri(HullTri* triStart);
106 static std::unique_ptr<Geometry> geomunion(
107 TriList<HullTri>& triList,
108 const GeometryFactory* factory);
111 class HullTriVisitor :
public TriangleVisitor
116 TriList<HullTri>& triList;
120 HullTriVisitor(TriList<HullTri>& p_triList)
124 void visit(std::array<QuadEdge*, 3>& triEdges)
override;
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:217
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:70
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:196
A class that contains the QuadEdges representing a planar subdivision that models a triangulation.
Definition QuadEdgeSubdivision.h:78
A class that represents the edge data structure which implements the quadedge algebra.
Definition QuadEdge.h:53
Contains classes and interfaces implementing fundamental computational geometry algorithms.
Definition Angle.h:32
Classes to implement a topological subdivision of quadeges, to support creating triangulations and Vo...
Definition ConcaveHull.h:33
Classes to compute Delaunay triangulations.
Definition ConcaveHull.h:32
Basic namespace for all GEOS functionalities.
Definition geos.h:38