71 static constexpr int NUM_SNAP_TRIES = 5;
76 static constexpr double SNAP_TOL_FACTOR = 1e12;
78 static std::unique_ptr<Geometry> overlaySnapping(
79 const Geometry* geom0,
const Geometry* geom1,
int opCode,
double snapTol);
81 static std::unique_ptr<Geometry> overlaySnapBoth(
82 const Geometry* geom0,
const Geometry* geom1,
int opCode,
double snapTol);
84 static std::unique_ptr<Geometry> overlaySnapTol(
85 const Geometry* geom0,
const Geometry* geom1,
int opCode,
double snapTol);
87 static double snapTolerance(
const Geometry*
geom);
96 static double ordinateMagnitude(
const Geometry*
geom);
105 static std::unique_ptr<Geometry>
106 overlaySR(
const Geometry* geom0,
const Geometry* geom1,
int opCode);
119 static std::unique_ptr<Geometry>
120 snapSelf(
const Geometry*
geom,
double snapTol);
129 return OverlayNGRobust::Overlay(g0, g1, OverlayNG::UNION);
132 bool isFloatingPrecision()
const override
139 static std::unique_ptr<Geometry> Intersection(
140 const Geometry* g0,
const Geometry* g1);
142 static std::unique_ptr<Geometry> Union(
143 const Geometry* g0,
const Geometry* g1);
145 static std::unique_ptr<Geometry> Difference(
146 const Geometry* g0,
const Geometry* g1);
148 static std::unique_ptr<Geometry> SymDifference(
149 const Geometry* g0,
const Geometry* g1);
151 static std::unique_ptr<Geometry> Union(
154 static std::unique_ptr<Geometry> Overlay(
155 const Geometry* geom0,
const Geometry* geom1,
int opCode);
157 static std::unique_ptr<Geometry> overlaySnapTries(
158 const Geometry* geom0,
const Geometry* geom1,
int opCode);