15 #ifndef GEOS_OP_INTERSECTION_RECTANGLEINTERSECTIONBUILDER_H
16 #define GEOS_OP_INTERSECTION_RECTANGLEINTERSECTIONBUILDER_H
18 #include <geos/export.h>
22 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
35 class GeometryFactory;
41 namespace intersection {
49 namespace intersection {
63 class GEOS_DLL RectangleIntersectionBuilder {
65 friend class RectangleIntersection;
69 ~RectangleIntersectionBuilder();
76 std::unique_ptr<geom::Geometry> build();
84 void reconnectPolygons(
const Rectangle& rect);
113 void release(RectangleIntersectionBuilder& parts);
116 void add(geom::Polygon* g);
117 void add(geom::LineString* g);
118 void add(geom::Point* g);
125 std::list<geom::Polygon*> polygons;
126 std::list<geom::LineString*> lines;
127 std::list<geom::Point*> points;
142 const Rectangle& rect,
143 std::vector<geom::Coordinate>* ring,
144 double x1,
double y1,
145 double x2,
double y2);
147 void close_ring(
const Rectangle& rect, std::vector<geom::Coordinate>* ring);
149 RectangleIntersectionBuilder(
const geom::GeometryFactory& f)
152 const geom::GeometryFactory& _gf;
160 #endif // GEOS_OP_INTERSECTION_RECTANGLEINTERSECTIONBUILDER_H