39 #ifndef __OPENFLUID_LANDR_POLYGONENTITY_HPP__
40 #define __OPENFLUID_LANDR_POLYGONENTITY_HPP__
48 namespace geos {
namespace geom {
53 namespace openfluid {
namespace landr {
56 class LineStringGraph;
57 class LineStringEntity;
71 const geos::geom::Polygon* mp_Polygon;
112 PolygonEntity(
const geos::geom::Geometry* NewPolygon,
unsigned int OfldId);
125 const geos::geom::Polygon* polygon()
const;
144 std::vector<geos::geom::LineString*> computeLineIntersectionsWith(
PolygonEntity& Other);
152 PolygonEdge* findEdgeLineIntersectingWith(geos::geom::LineString& Segment);
162 std::vector<int> getOrderedNeighbourOfldIds();
169 std::multimap<double,PolygonEntity*> getOrderedNeighboursByLengthBoundary();
183 std::vector<PolygonEdge*> getCommonEdgesWith(
PolygonEntity& Other);
197 geos::geom::Geometry* getBufferedBoundary(
double BufferDistance);
203 void computeNeighbours();
217 double BufferDistance,
218 double ContactLength=0);
234 double BufferDistance,
235 double ContactLength=0);
248 geos::geom::LineString* mergeEdges(
PolygonEdge* Edge,
272 std::pair< LandREntity*, double> computeNeighbourByLineTopology(
VectorDataset LineTopology);
std::vector< PolygonEdge * > m_PolyEdges
A vector of the PolygonEdge of this PolygonEntity.
Definition: PolygonEntity.hpp:103
A part of a PolygonEntity exterior ring, that may be share between to adjacent PolygonEntity.
Definition: PolygonEdge.hpp:69
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:64
NeighboursMap_t * mp_NeighboursMap
A Map of neighbours of PolygonEntity type and the related vector of PolygonEdge that are between this...
Definition: PolygonEntity.hpp:92
LineStringNeighboursMap_t * mp_LineStringNeighboursMap
A Map of neighbours of LineStringEntity type and the related PolygonEdge that is between this Polygon...
Definition: PolygonEntity.hpp:98
std::map< PolygonEntity *, std::vector< PolygonEdge * > > NeighboursMap_t
A map of the PolygonEntity neighbours and their shared PolygonEdge to this PolygonEntity.
Definition: PolygonEntity.hpp:81
Interface for a landscape representation element.
Definition: LandREntity.hpp:63
A LandRGraph composed of LineStringEntities.
Definition: LineStringGraph.hpp:109
Relationship
Definition: LandRTools.hpp:65
A LandREntity representing a geos::geom::Polygon.
Definition: PolygonEntity.hpp:64
#define OPENFLUID_API
Definition: dllexport.hpp:87
std::map< LineStringEntity *, PolygonEdge * > LineStringNeighboursMap_t
A map of the LineStringEntity neighbours and the PolygonEdge in contact with this PolygonEntity...
Definition: PolygonEntity.hpp:86