17 #include <geos/geom/Geometry.h>
18 #include <geos/util/IllegalArgumentException.h>
19 #include <geos/simplify/RingHull.h>
24 class GeometryFactory;
98 , geomFactory(geom->getFactory())
100 , vertexNumFraction(-1.0)
101 , areaDeltaRatio(-1.0)
103 if (!geom->isPolygonal()) {
121 static std::unique_ptr<Geometry>
hull(
124 double vertexNumFraction);
142 double areaDeltaRatio);
176 double vertexNumFraction;
177 double areaDeltaRatio;
180 std::vector<std::unique_ptr<RingHull>> ringStore;
189 std::unique_ptr<Geometry> computeMultiPolygonAll(
const MultiPolygon* multiPoly);
190 std::unique_ptr<Geometry> computeMultiPolygonEach(
const MultiPolygon* multiPoly);
191 std::unique_ptr<Polygon> computePolygon(
const Polygon* poly);
201 std::vector<RingHull*> initPolygon(
const Polygon* poly,
202 RingHullIndex& hullIndex);
204 double ringArea(
const Polygon* poly)
const;
206 RingHull* createRingHull(
210 RingHullIndex& hullIndex);
212 std::unique_ptr<Polygon> polygonHull(
214 std::vector<RingHull*>& ringHulls,
215 RingHullIndex& hullIndex)
const;
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
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
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition: LinearRing.h:54
Definition: MultiPolygon.h:58
Represents a linear polygon, which may include holes.
Definition: Polygon.h:61
Definition: PolygonHullSimplifier.h:77
static std::unique_ptr< Geometry > hullByAreaDelta(const Geometry *geom, bool isOuter, double areaDeltaRatio)
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:96
void setVertexNumFraction(double p_vertexNumFraction)
Indicates one or more illegal arguments.
Definition: IllegalArgumentException.h:33
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25