39 #ifndef __OPENFLUID_LANDR_LANDRTOOLS_HPP__
40 #define __OPENFLUID_LANDR_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* computeMergedLineStringFromGeometry(geos::geom::Geometry* Geom);
85 static std::vector<geos::geom::LineString*>* computeMergedLineStringsFromGeometry(geos::geom::Geometry* Geom);
112 static std::vector<geos::geom::LineString*>* computeNodedLines(geos::geom::Geometry* Geom1,
113 geos::geom::Geometry* Geom2,
114 double SnapTolerance = 0,
115 double PrecisionReducer=10000000);
125 static geos::geom::Geometry* computeSnapOverlayUnion(geos::geom::Geometry& Geom1,
126 geos::geom::Geometry& Geom2,
127 double SnapTolerance = 0);
136 static bool exists(geos::geom::LineString* Line,
137 std::list<geos::geom::LineString*> RefLines,
138 double Tolerance = 0);
146 static void polygonizeGeometry(std::vector<geos::geom::Geometry*>& Lines,
147 std::vector<geos::geom::Polygon*>& Polygons,
148 std::vector<const geos::geom::LineString*>& Dangles);
154 static void markVisitedNodesUsingDFS(geos::planargraph::Node* Node);
162 static std::vector<geos::geom::Polygon*> computeIntersectPolygons(geos::geom::Geometry* Geom1,
163 geos::geom::Geometry* Geom2);
173 static std::vector<geos::geom::LineString*> splitLineStringByPoint(geos::geom::LineString& Entity,
174 geos::geom::Point& Point,
175 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*> computeNodesFromVectorOfLines(
206 std::vector<geos::geom::LineString*>& NodedLines);
213 static void markInvertedLineStringEntityUsingDFS(geos::planargraph::Node* Node,std::vector<int>& vectIdent);
218 static bool isExtentsIntersect(std::vector<OGREnvelope> vEnvelope);
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:64
Relationship
Definition: LandRTools.hpp:65
#define OPENFLUID_API
Definition: dllexport.hpp:87
Set of tools to manage LandR elements.
Definition: LandRTools.hpp:61