17 #include <geos/geom/Point.h> 18 #include <geos/geom/Polygon.h> 19 #include <geos/geom/LineString.h> 20 #include <geos/geom/Geometry.h> 22 #include <geos/export.h> 31 class CoordinateSequence;
33 class GeometryFactory;
61 static constexpr
double SAFE_ENV_BUFFER_FACTOR = 0.1;
62 static constexpr
int SAFE_ENV_GRID_FACTOR = 3;
75 static bool resultEnvelope(
int opCode,
const InputGeometry* inputGeom,
const PrecisionModel* pm,
Envelope& rsltEnvelope);
79 static bool isEmpty(
const Geometry* geom);
108 static bool clippingEnvelope(
int opCode,
const InputGeometry* inputGeom,
const PrecisionModel* pm,
Envelope& rsltEnvelope);
132 static std::unique_ptr<Geometry> createEmptyResult(
int dim,
const GeometryFactory* geomFact);
147 static int resultDimension(
int opCode,
int dim0,
int dim1);
152 static std::unique_ptr<Geometry> createResultGeometry(
153 std::vector<std::unique_ptr<Polygon>>& resultPolyList,
154 std::vector<std::unique_ptr<LineString>>& resultLineList,
155 std::vector<std::unique_ptr<Point>>& resultPointList,
168 static void moveGeometry(std::vector<std::unique_ptr<T>>& inGeoms, std::vector<std::unique_ptr<Geometry>>& outGeoms)
170 static_assert(std::is_base_of<Geometry, T>::value,
"");
171 for (
auto& geom: inGeoms) {
173 outGeoms.emplace_back(outGeom);
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:58
Definition: OverlayUtil.h:57
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
Definition: OverlayGraph.h:54
Specifies the precision model of the Coordinate in a Geometry.
Definition: PrecisionModel.h:87
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:188
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:68
Basic namespace for all GEOS functionalities.
Definition: Angle.h:26