26 #ifndef GEOS_OPERATION_SHAREDPATHSOP_H
27 #define GEOS_OPERATION_SHAREDPATHSOP_H
29 #include <geos/export.h>
38 class GeometryFactory;
45 namespace sharedpaths {
64 class GEOS_DLL SharedPathsOp {
68 typedef std::vector<geom::LineString*> PathList;
88 static void sharedPathsOp(
const geom::Geometry& g1,
89 const geom::Geometry& g2,
90 PathList& sameDirection,
91 PathList& oppositeDirection);
101 SharedPathsOp(
const geom::Geometry& g1,
const geom::Geometry& g2);
115 void getSharedPaths(PathList& sameDirection, PathList& oppositeDirection);
118 static void clearEdges(PathList& from);
128 void findLinearIntersections(PathList& to);
134 bool isForward(
const geom::LineString& edge,
135 const geom::Geometry& geom);
140 isSameDirection(
const geom::LineString& edge)
142 return (isForward(edge, _g1) == isForward(edge, _g2));
146 void checkLinealInput(
const geom::Geometry& g);
148 const geom::Geometry& _g1;
149 const geom::Geometry& _g2;
150 const geom::GeometryFactory& _gf;
153 SharedPathsOp(
const SharedPathsOp& other) =
delete;
154 SharedPathsOp& operator=(
const SharedPathsOp& rhs) =
delete;