39 #ifndef __OPENFLUID_LANDR_LANDRTOOLS_HPP__ 40 #define __OPENFLUID_LANDR_LANDRTOOLS_HPP__ 45 #include <geos/geom/CoordinateArraySequenceFactory.h> 51 namespace geos {
namespace geom {
70 NONE, INTERSECTS, CONTAINS, EQUALS, TOUCHES
79 static geos::geom::LineString* computeMergedLineStringFromGeometry(geos::geom::Geometry* Geom);
88 static std::vector<geos::geom::LineString*>* computeMergedLineStringsFromGeometry(geos::geom::Geometry* Geom);
115 static std::vector<geos::geom::LineString*>* computeNodedLines(geos::geom::Geometry* Geom1,
116 geos::geom::Geometry* Geom2,
117 double SnapTolerance = 0,
118 double PrecisionReducer=10000000);
128 static geos::geom::Geometry* computeSnapOverlayUnion(geos::geom::Geometry& Geom1,
129 geos::geom::Geometry& Geom2,
130 double SnapTolerance = 0);
139 static bool exists(geos::geom::LineString* Line,
140 std::list<geos::geom::LineString*> RefLines,
141 double Tolerance = 0);
149 static void polygonizeGeometry(std::vector<geos::geom::Geometry*>& Lines,
150 std::vector<geos::geom::Polygon*>& Polygons,
151 std::vector<const geos::geom::LineString*>& Dangles);
157 static void markVisitedNodesUsingDFS(geos::planargraph::Node* Node);
165 static std::vector<geos::geom::Polygon*> computeIntersectPolygons(geos::geom::Geometry* Geom1,
166 geos::geom::Geometry* Geom2);
176 static std::vector<geos::geom::LineString*> splitLineStringByPoint(geos::geom::LineString& Entity,
177 geos::geom::Point& Point,
178 double SnapTolerance);
188 static void splitLineStringByPoints(geos::geom::LineString& Entity,
189 std::vector<geos::geom::Point*>& Points,
190 double SnapTolerance,
191 std::vector<geos::geom::LineString*>& vLines,
192 unsigned int step=0);
200 static std::vector<geos::geom::LineString*>* cleanLineStrings(std::vector<geos::geom::LineString*> vLines,
201 double SnapTolerance);
208 static std::vector<geos::geom::Point*> computeNodesFromVectorOfLines(
209 std::vector<geos::geom::LineString*>& NodedLines);
216 static void markInvertedLineStringEntityUsingDFS(geos::planargraph::Node* Node,std::vector<int>& vectIdent);
221 static bool isExtentsIntersect(std::vector<OGREnvelope> vEnvelope);
Set of tools to manage LandR elements.
Definition: LandRTools.hpp:64
Relationship
Definition: LandRTools.hpp:68
#define OPENFLUID_API
Definition: dllexport.hpp:87
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:64
Definition: LandREntity.hpp:53
Definition: ApplicationException.hpp:47