15 #ifndef GEOS_PRECISION_COMMONBITSOP_H
16 #define GEOS_PRECISION_COMMONBITSOP_H
18 #include <geos/export.h>
19 #include <geos/precision/CommonBitsRemover.h>
26 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
50 class GEOS_DLL CommonBitsOp {
54 bool returnToOriginalPrecision;
56 std::unique_ptr<CommonBitsRemover> cbr;
66 std::unique_ptr<geom::Geometry> removeCommonBits(
const geom::Geometry* geom0);
71 void removeCommonBits(
72 const geom::Geometry* geom0,
73 const geom::Geometry* geom1,
74 std::unique_ptr<geom::Geometry>& rgeom0,
75 std::unique_ptr<geom::Geometry>& rgeom1);
91 CommonBitsOp(
bool nReturnToOriginalPrecision);
101 std::unique_ptr<geom::Geometry> intersection(
102 const geom::Geometry* geom0,
103 const geom::Geometry* geom1);
113 std::unique_ptr<geom::Geometry> Union(
114 const geom::Geometry* geom0,
115 const geom::Geometry* geom1);
125 std::unique_ptr<geom::Geometry> difference(
126 const geom::Geometry* geom0,
127 const geom::Geometry* geom1);
137 std::unique_ptr<geom::Geometry> symDifference(
138 const geom::Geometry* geom0,
139 const geom::Geometry* geom1);
148 std::unique_ptr<geom::Geometry> buffer(
149 const geom::Geometry* geom0,
163 std::unique_ptr<geom::Geometry> computeResultPrecision(
164 std::unique_ptr<geom::Geometry> result);
174 #endif // GEOS_PRECISION_COMMONBITSOP_H