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