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);
61 GeometryNoder(GeometryNoder
const&) =
delete;
62 GeometryNoder& operator=(GeometryNoder
const&) =
delete;
66 const geom::Geometry* argGeom1;
67 const geom::Geometry* argGeom2;
68 const bool argGeomHasCurves;
69 bool onlyFirstGeomEdges;
71 std::unique_ptr<Noder> noder;
72 std::unique_ptr<algorithm::CircularArcIntersector> m_cai;
73 std::unique_ptr<ArcIntersectionAdder> m_aia;
75 static void extractPathStrings(
const geom::Geometry& g,
76 std::vector<std::unique_ptr<PathString>>& to);
80 std::unique_ptr<geom::Geometry> toGeometry(std::vector<std::unique_ptr<PathString>>& noded)
const;
Basic namespace for all GEOS functionalities.
Definition geos.h:38