21#include <geos/export.h>
22#include <geos/noding/SegmentString.h>
29class CircularArcIntersector;
35class ArcIntersectionAdder;
43class GEOS_DLL GeometryNoder {
46 static std::unique_ptr<geom::Geometry> node(
const geom::Geometry& geom);
48 static std::unique_ptr<geom::Geometry> node(
const geom::Geometry& geom1,
const geom::Geometry& geom2);
50 GeometryNoder(
const geom::Geometry& g);
52 GeometryNoder(
const geom::Geometry& g1,
const geom::Geometry& g2);
56 std::unique_ptr<geom::Geometry> getNoded();
58 void setOnlyFirstGeomEdges(
bool onlyFirstGeomEdges);
60 void setPreserveCompoundCurves(
bool preserve);
63 GeometryNoder(GeometryNoder
const&) =
delete;
64 GeometryNoder& operator=(GeometryNoder
const&) =
delete;
68 bool isInResult(
const PathString& ps)
const;
70 const geom::Geometry* argGeom1;
71 const geom::Geometry* argGeom2;
72 const bool argGeomHasCurves;
73 bool argGeomHasCompoundCurves;
74 bool onlyFirstGeomEdges;
75 bool preserveCompoundCurves;
77 std::unique_ptr<Noder> noder;
78 std::unique_ptr<algorithm::CircularArcIntersector> m_cai;
79 std::unique_ptr<ArcIntersectionAdder> m_aia;
81 void extractPathStrings(
const geom::Geometry& g, std::vector<std::unique_ptr<PathString>>& to);
85 std::unique_ptr<geom::Geometry> toGeometry(std::vector<std::unique_ptr<PathString>>& noded)
const;
Basic namespace for all GEOS functionalities.
Definition geos.h:38