39 #ifndef POLYGONENTITY_HPP_
40 #define 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;
110 PolygonEntity(
const geos::geom::Geometry* NewPolygon,
unsigned int OfldId);
123 const geos::geom::Polygon* getPolygon()
const;
141 std::vector<geos::geom::LineString*> getLineIntersectionsWith(
PolygonEntity& Other);
149 PolygonEdge* findEdgeLineIntersectingWith(geos::geom::LineString& Segment);
159 std::vector<int> getOrderedNeighbourOfldIds();
165 std::multimap<double,PolygonEntity*> getOrderedNeighboursByLengthBoundary();
179 std::vector<PolygonEdge*> getCommonEdgesWith(
PolygonEntity& Other);
193 geos::geom::Geometry* getBufferedBoundary(
double BufferDistance);
199 void computeNeighbours();
211 double BufferDistance,
212 double ContactLength=0);
226 double BufferDistance,
227 double ContactLength=0);
241 geos::geom::LineString* mergeEdges(
PolygonEdge* Edge,
NeighboursMap_t * mp_NeighboursMap
A Map of neighbours of PolygonEntity type and the related vector of PolygonEdge that are between this...
Definition: PolygonEntity.hpp:91
Relationship
Definition: LandRTools.hpp:65
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:65
A LandRGraph composed of LineStringEntities.
Definition: LineStringGraph.hpp:107
std::vector< PolygonEdge * > m_PolyEdges
A vector of the PolygonEdge of this PolygonEntity.
Definition: PolygonEntity.hpp:101
Interface for a landscape representation element.
Definition: LandREntity.hpp:63
LineStringNeighboursMap_t * mp_LineStringNeighboursMap
A Map of neighbours of LineStringEntity type and the related PolygonEdge that is between this Polygon...
Definition: PolygonEntity.hpp:96
A LandREntity representing a geos::geom::Polygon.
Definition: PolygonEntity.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:86
A part of a PolygonEntity exterior ring, that may be share between to adjacent PolygonEntity.
Definition: PolygonEdge.hpp:69
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
#define DLLEXPORT
Definition: dllexport.hpp:51