17 #include <geos/geom/Triangle.h> 18 #include <geos/triangulate/tri/Tri.h> 19 #include <geos/triangulate/tri/TriList.h> 20 #include <geos/triangulate/quadedge/TriangleVisitor.h> 21 #include <geos/algorithm/hull/HullTri.h> 32 namespace triangulate {
55 typedef std::priority_queue<HullTri*, std::vector<HullTri*>, HullTri::HullTriCompare> HullTriQueue;
113 static double uniformEdgeLength(
const Geometry* geom);
123 static std::unique_ptr<Geometry> concaveHullByLength(
124 const Geometry* geom,
double maxLength);
126 static std::unique_ptr<Geometry> concaveHullByLength(
127 const Geometry* geom,
double maxLength,
bool isHolesAllowed);
140 static std::unique_ptr<Geometry> concaveHullByLengthRatio(
141 const Geometry* geom,
double lengthRatio);
156 static std::unique_ptr<Geometry> concaveHullByLengthRatio(
159 bool isHolesAllowed);
170 static std::unique_ptr<Geometry> alphaShape(
173 bool isHolesAllowed);
190 void setMaximumEdgeLength(
double edgeLength);
203 void setMaximumEdgeLengthRatio(
double edgeLengthRatio);
210 void setHolesAllowed(
bool holesAllowed);
219 void setAlpha(
double newAlpha);
226 std::unique_ptr<Geometry> getHull();
232 static constexpr
int PARAM_EDGE_LENGTH = 1;
233 static constexpr
int PARAM_ALPHA = 2;
237 double maxEdgeLengthRatio;
241 double maxSizeInHull;
245 static double computeTargetEdgeLength(
247 double edgeLengthFactor);
263 void addBorderTri(HullTri* tri, HullTriQueue& queue);
265 void setSize(HullTri* tri);
280 static std::vector<HullTri*> findCandidateHoles(
293 bool isInHull(
const HullTri* tri)
const;
295 bool isRemovableBorder(
const HullTri* tri)
const;
296 bool isRemovableHole(
const HullTri* tri)
const;
298 std::unique_ptr<Geometry> toGeometry(
An interface for algorithms which process the triangles in a QuadEdgeSubdivision. ...
Definition: TriangleVisitor.h:33
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
Definition: ConcaveHull.h:95
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:70
A class that contains the QuadEdges representing a planar subdivision that models a triangulation...
Definition: QuadEdgeSubdivision.h:78
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
A class that represents the edge data structure which implements the quadedge algebra.
Definition: QuadEdge.h:53
Represents a planar triangle, and provides methods for calculating various properties of triangles...
Definition: Triangle.h:28