17#include <geos/geom/Geometry.h>
18#include <geos/util/IllegalArgumentException.h>
19#include <geos/simplify/RingHull.h>
101 , geomFactory(geom->getFactory())
103 , vertexNumFraction(-1.0)
104 , areaDeltaRatio(-1.0)
106 if (!geom->isPolygonal()) {
124 static std::unique_ptr<Geometry>
hull(
127 double vertexNumFraction);
145 double areaDeltaRatio);
179 double vertexNumFraction;
180 double areaDeltaRatio;
183 std::vector<std::unique_ptr<RingHull>> ringStore;
192 std::unique_ptr<Geometry> computeMultiPolygonAll(
const MultiPolygon* multiPoly);
193 std::unique_ptr<Geometry> computeMultiPolygonEach(
const MultiPolygon* multiPoly);
194 std::unique_ptr<Polygon> computePolygon(
const Polygon* poly);
204 std::vector<RingHull*> initPolygon(
const Polygon* poly,
205 RingHullIndex& hullIndex);
207 double ringArea(
const Polygon* poly)
const;
209 RingHull* createRingHull(
213 RingHullIndex& hullIndex);
215 std::unique_ptr<Polygon> polygonHull(
217 std::vector<RingHull*>& ringHulls,
218 RingHullIndex& hullIndex)
const;
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:58
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:66
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:186
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition: LinearRing.h:55
Definition: MultiPolygon.h:59
Represents a linear polygon, which may include holes.
Definition: Polygon.h:61
Definition: PolygonHullSimplifier.h:86
static std::unique_ptr< Geometry > hull(const Geometry *geom, bool isOuter, double vertexNumFraction)
void setAreaDeltaRatio(double p_areaDeltaRatio)
std::unique_ptr< Geometry > getResult()
PolygonHullSimplifier(const Geometry *geom, bool bOuter)
Definition: PolygonHullSimplifier.h:99
void setVertexNumFraction(double p_vertexNumFraction)
static std::unique_ptr< Geometry > hullByAreaDelta(const Geometry *geom, bool isOuter, double areaDeltaRatio)
Indicates one or more illegal arguments.
Definition: IllegalArgumentException.h:33
Basic namespace for all GEOS functionalities.
Definition: geos.h:39