25#include <geos/export.h>
27#include <geos/operation/union/UnionStrategy.h>
28#include <geos/util/Progress.h>
55 ClassicUnionStrategy() {};
104class GEOS_DLL CascadedPolygonUnion {
106 std::vector<geom::Polygon*>* inputPolys;
116 static int const STRTREE_NODE_CAPACITY = 4;
132 static std::unique_ptr<geom::Geometry> restrictToPolygons(std::unique_ptr<geom::Geometry> g);
135 CascadedPolygonUnion();
143 static std::unique_ptr<geom::Geometry>
Union(std::vector<geom::Polygon*>* polys);
156 static std::unique_ptr<geom::Geometry>
159 std::vector<geom::Polygon*> polys;
160 for(T i = start; i != end; ++i) {
164 return Union(&polys, unionStrategy, progressFunction);
185 , geomFactory(nullptr)
186 , unionFunction(&defaultUnionFunction)
191 , geomFactory(nullptr)
192 , unionFunction(unionFun)
218 std::unique_ptr<geom::Geometry> binaryUnion(
219 const std::vector<const geom::Geometry*> & geoms,
222 std::function<
void()>* unitProgress);
235 std::unique_ptr<geom::Geometry> unionSafe(std::unique_ptr<geom::Geometry> &&, std::unique_ptr<geom::Geometry> &&);
246 std::unique_ptr<geom::Geometry> unionActual(std::unique_ptr<geom::Geometry> &&, std::unique_ptr<geom::Geometry> &&)
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:72
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:201
Definition MultiPolygon.h:57
Represents a linear polygon, which may include holes.
Definition Polygon.h:61
Provides an efficient method of unioning a collection of polygonal geometries.
Definition CascadedPolygonUnion.h:104
CascadedPolygonUnion(std::vector< geom::Polygon * > *polys)
Creates a new instance to union the given collection of Geometrys.
Definition CascadedPolygonUnion.h:183
static std::unique_ptr< geom::Geometry > Union(T start, T end, UnionStrategy *unionStrategy, geos::util::ProgressFunction *progressFunction)
Computes the union of a set of polygonal Geometrys.
Definition CascadedPolygonUnion.h:157
std::unique_ptr< geom::Geometry > Union(geos::util::ProgressFunction *progressFunction)
Computes the union of the input geometries.
static std::unique_ptr< geom::Geometry > Union(std::vector< geom::Polygon * > *polys)
Computes the union of a collection of polygonal Geometrys.
static std::unique_ptr< geom::Geometry > Union(const geom::MultiPolygon *polys, geos::util::ProgressFunction *progressFunction)
Computes the union of a collection of polygonal Geometrys.
Implementation of UnionStrategy that provides overlay using the first generation overlay routines.
Definition CascadedPolygonUnion.h:51
bool isFloatingPrecision() const override
std::unique_ptr< geom::Geometry > Union(const geom::Geometry *, const geom::Geometry *) override
Definition UnionStrategy.h:40
Classes to perform efficient unioning of collections of geometries.
Definition namespaces.h:286
Provides classes for implementing operations on geometries.
Definition CleanCoverage.h:34
std::function< void(double, const char *)> ProgressFunction
Definition Progress.h:29
Basic namespace for all GEOS functionalities.
Definition geos.h:38