1919#include < vector>
2020#include < memory>
2121#include < geos/export.h>
22+ #include < geos/util/Progress.h>
2223
2324
2425namespace geos {
@@ -87,15 +88,18 @@ class GEOS_DLL CoverageSimplifier {
8788 *
8889 * @param coverage a set of polygonal geometries forming a coverage
8990 * @param tolerance the simplification tolerance
91+ * @param progressFunction Progress function, or nullptr.
9092 * @return the simplified polygons
9193 */
9294 static std::vector<std::unique_ptr<Geometry>> simplify (
9395 std::vector<const Geometry*>& coverage,
94- double tolerance);
96+ double tolerance,
97+ geos::util::ProgressFunction* progressFunction);
9598
9699 static std::vector<std::unique_ptr<Geometry>> simplify (
97100 const std::vector<std::unique_ptr<Geometry>>& coverage,
98- double tolerance);
101+ double tolerance,
102+ geos::util::ProgressFunction* progressFunction);
99103
100104 /* *
101105 * Simplifies the inner boundaries of a set of polygonal geometries forming a coverage,
@@ -104,35 +108,40 @@ class GEOS_DLL CoverageSimplifier {
104108 *
105109 * @param coverage a set of polygonal geometries forming a coverage
106110 * @param tolerance the simplification tolerance
111+ * @param progressFunction Progress function, or nullptr.
107112 * @return the simplified polygons
108113 */
109114 static std::vector<std::unique_ptr<Geometry>> simplifyInner (
110115 std::vector<const Geometry*>& coverage,
111- double tolerance);
116+ double tolerance,
117+ geos::util::ProgressFunction* progressFunction);
112118
113119 static std::vector<std::unique_ptr<Geometry>> simplifyInner (
114120 const std::vector<std::unique_ptr<Geometry>>& coverage,
115- double tolerance);
121+ double tolerance,
122+ geos::util::ProgressFunction* progressFunction);
116123
117124 /* *
118125 * Computes the simplified coverage, preserving the coverage topology.
119126 *
120127 * @param tolerance the simplification tolerance
128+ * @param progressFunction Progress function, or nullptr.
121129 * @return the simplified polygons
122130 */
123131 std::vector<std::unique_ptr<Geometry>> simplify (
124- double tolerance);
132+ double tolerance, geos::util::ProgressFunction* progressFunction );
125133
126134 /* *
127135 * Computes the inner-boundary simplified coverage,
128136 * preserving the coverage topology,
129137 * and leaving outer boundary edges unchanged.
130138 *
131139 * @param tolerance the simplification tolerance
140+ * @param progressFunction Progress function, or nullptr.
132141 * @return the simplified polygons
133142 */
134143 std::vector<std::unique_ptr<Geometry>> simplifyInner (
135- double tolerance);
144+ double tolerance, geos::util::ProgressFunction* progressFunction );
136145
137146
138147private:
@@ -145,7 +154,8 @@ class GEOS_DLL CoverageSimplifier {
145154 void simplifyEdges (
146155 std::vector<CoverageEdge*> edges,
147156 const MultiLineString* constraints,
148- double tolerance);
157+ double tolerance,
158+ geos::util::ProgressFunction* progressFunction);
149159
150160 void setCoordinates (
151161 std::vector<CoverageEdge*>& edges,
0 commit comments