39 #ifndef __OPENFLUID_LANDR_POLYGONENTITY_HPP__ 40 #define __OPENFLUID_LANDR_POLYGONENTITY_HPP__ 51 namespace geos {
namespace geom {
59 class LineStringGraph;
60 class LineStringEntity;
74 const geos::geom::Polygon* mp_Polygon;
115 PolygonEntity(
const geos::geom::Geometry* NewPolygon,
unsigned int OfldId);
128 const geos::geom::Polygon* polygon()
const;
147 std::vector<geos::geom::LineString*> computeLineIntersectionsWith(
PolygonEntity& Other);
155 PolygonEdge* findEdgeLineIntersectingWith(geos::geom::LineString& Segment);
160 const NeighboursMap_t* neighboursAndEdges();
165 std::vector<int> getOrderedNeighbourOfldIds();
172 std::multimap<double,PolygonEntity*> getOrderedNeighboursByLengthBoundary();
186 std::vector<PolygonEdge*> getCommonEdgesWith(
PolygonEntity& Other);
200 geos::geom::Geometry* getBufferedBoundary(
double BufferDistance);
206 void computeNeighbours();
220 double BufferDistance,
221 double ContactLength=0);
237 double BufferDistance,
238 double ContactLength=0);
243 LineStringNeighboursMap_t* lineStringNeighbours();
251 geos::geom::LineString* mergeEdges(
PolygonEdge* Edge,
275 std::pair< LandREntity*, double> computeNeighbourByLineTopology(
VectorDataset LineTopology);
A LandREntity representing a geos::geom::Polygon.
Definition: PolygonEntity.hpp:67
LineStringNeighboursMap_t * mp_LineStringNeighboursMap
A Map of neighbours of LineStringEntity type and the related PolygonEdge that is between this Polygon...
Definition: PolygonEntity.hpp:101
std::map< PolygonEntity *, std::vector< PolygonEdge * > > NeighboursMap_t
A map of the PolygonEntity neighbours and their shared PolygonEdge to this PolygonEntity.
Definition: PolygonEntity.hpp:84
Interface for a landscape representation element.
Definition: LandREntity.hpp:69
A part of a PolygonEntity exterior ring, that may be share between to adjacent PolygonEntity.
Definition: PolygonEdge.hpp:74
Relationship
Definition: LandRTools.hpp:68
#define OPENFLUID_API
Definition: dllexport.hpp:87
A LandRGraph composed of LineStringEntities.
Definition: LineStringGraph.hpp:120
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:64
std::map< LineStringEntity *, PolygonEdge * > LineStringNeighboursMap_t
A map of the LineStringEntity neighbours and the PolygonEdge in contact with this PolygonEntity...
Definition: PolygonEntity.hpp:89
NeighboursMap_t * mp_NeighboursMap
A Map of neighbours of PolygonEntity type and the related vector of PolygonEdge that are between this...
Definition: PolygonEntity.hpp:95
std::vector< PolygonEdge * > m_PolyEdges
A vector of the PolygonEdge of this PolygonEntity.
Definition: PolygonEntity.hpp:106
Definition: LandREntity.hpp:53
Definition: ApplicationException.hpp:47