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>
30 class GeometryFactory;
32 namespace triangulate {
45 typedef std::priority_queue<HullTri*, std::vector<HullTri*>, HullTri::HullTriCompare> HullTriQueue;
93 template<
typename TriType>
123 const Geometry* geom,
double maxLength);
125 static std::unique_ptr<Geometry> concaveHullByLength(
126 const Geometry* geom,
double maxLength,
bool isHolesAllowed);
140 const Geometry* geom,
double lengthRatio);
158 bool isHolesAllowed);
172 bool isHolesAllowed);
231 static constexpr
int PARAM_EDGE_LENGTH = 1;
232 static constexpr
int PARAM_ALPHA = 2;
236 double maxEdgeLengthRatio;
240 double maxSizeInHull;
244 static double computeTargetEdgeLength(
246 double edgeLengthFactor);
262 void addBorderTri(HullTri* tri, HullTriQueue& queue);
264 void setSize(HullTri* tri);
279 static std::vector<HullTri*> findCandidateHoles(
292 bool isInHull(
const HullTri* tri)
const;
294 bool isRemovableBorder(
const HullTri* tri)
const;
295 bool isRemovableHole(
const HullTri* tri)
const;
297 std::unique_ptr<Geometry> toGeometry(
Definition: ConcaveHull.h:85
std::unique_ptr< Geometry > getHull()
static std::unique_ptr< Geometry > concaveHullByLengthRatio(const Geometry *geom, double lengthRatio, bool isHolesAllowed)
static std::unique_ptr< Geometry > concaveHullByLengthRatio(const Geometry *geom, double lengthRatio)
void setHolesAllowed(bool holesAllowed)
void setAlpha(double newAlpha)
static double uniformEdgeLength(const Geometry *geom)
static std::unique_ptr< Geometry > alphaShape(const Geometry *geom, double alpha, bool isHolesAllowed)
void setMaximumEdgeLength(double edgeLength)
static std::unique_ptr< Geometry > concaveHullByLength(const Geometry *geom, double maxLength)
void setMaximumEdgeLengthRatio(double edgeLengthRatio)
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:197
Represents a planar triangle, and provides methods for calculating various properties of triangles.
Definition: Triangle.h:28
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
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25