39 #ifndef LANDRTOOLS_HPP_
40 #define LANDRTOOLS_HPP_
46 #include <geos/geom/CoordinateArraySequenceFactory.h>
48 namespace geos {
namespace geom {
54 namespace openfluid {
namespace landr {
67 NONE, INTERSECTS, CONTAINS, EQUALS, TOUCHES
76 static geos::geom::LineString* getMergedLineStringFromGeometry(geos::geom::Geometry* Geom);
84 static std::vector<geos::geom::LineString*>* getMergedLineStringsFromGeometry(geos::geom::Geometry* Geom);
110 static std::vector<geos::geom::LineString*>* getNodedLines(geos::geom::Geometry* Geom1,
111 geos::geom::Geometry* Geom2,
112 double SnapTolerance = 0,
113 double PrecisionReducer=10000000);
123 static geos::geom::Geometry* computeSnapOverlayUnion(geos::geom::Geometry& Geom1,
124 geos::geom::Geometry& Geom2,
125 double SnapTolerance = 0);
134 static bool exists(geos::geom::LineString* Line,
135 std::list<geos::geom::LineString*> RefLines,
136 double Tolerance = 0);
144 static void polygonizeGeometry(std::vector<geos::geom::Geometry*>& Lines,
145 std::vector<geos::geom::Polygon*>& Polygons,
146 std::vector<const geos::geom::LineString*>& Dangles);
152 static void markVisitedNodesUsingDFS(geos::planargraph::Node* Node);
160 static std::vector<geos::geom::Polygon*> computeIntersectPolygons(geos::geom::Geometry* Geom1,
161 geos::geom::Geometry* Geom2);
172 static std::vector<geos::geom::LineString*> splitLineStringByPoint(geos::geom::LineString& Entity,
173 geos::geom::Point& Point,
174 double SnapTolerance);
185 static void splitLineStringByPoints(geos::geom::LineString& Entity,
186 std::vector<geos::geom::Point*>& Points,
187 double SnapTolerance,
188 std::vector<geos::geom::LineString*>& vLines,
189 unsigned int step=0);
197 static std::vector<geos::geom::LineString*>* cleanLineStrings(std::vector<geos::geom::LineString*> vLines,
198 double SnapTolerance);
205 static std::vector<geos::geom::Point*> getNodesFromVectorOfLines(std::vector<geos::geom::LineString*>& NodedLines);
212 static void markInvertedLineStringEntityUsingDFS(geos::planargraph::Node* Node,std::vector<int>& vectIdent);
Relationship
Definition: LandRTools.hpp:65
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:65
Set of tools to manage LandR elements.
Definition: LandRTools.hpp:61
#define DLLEXPORT
Definition: dllexport.hpp:51