19 #ifndef GEOS_OP_OVERLAY_LINEBUILDER_H
20 #define GEOS_OP_OVERLAY_LINEBUILDER_H
22 #include <geos/export.h>
24 #include <geos/operation/overlay/OverlayOp.h>
30 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
36 class GeometryFactory;
37 class CoordinateSequence;
63 class GEOS_DLL LineBuilder {
67 LineBuilder(OverlayOp* newOp,
68 const geom::GeometryFactory* newGeometryFactory,
69 algorithm::PointLocator* newPtLocator);
71 ~LineBuilder() =
default;
89 void collectLineEdge(geomgraph::DirectedEdge* de,
91 std::vector<geomgraph::Edge*>* edges);
95 const geom::GeometryFactory* geometryFactory;
96 algorithm::PointLocator* ptLocator;
97 std::vector<geomgraph::Edge*> lineEdgesList;
98 std::vector<geom::LineString*>* resultLineList;
99 void findCoveredLineEdges();
102 void labelIsolatedLines(std::vector<geomgraph::Edge*>* edgesList);
114 void collectBoundaryTouchEdge(geomgraph::DirectedEdge* de,
116 std::vector<geomgraph::Edge*>* edges);
121 void labelIsolatedLine(geomgraph::Edge* e,
int targetIndex);
129 void propagateZ(geom::CoordinateSequence* cs);
140 #endif // ndef GEOS_OP_OVERLAY_LINEBUILDER_H