40 #ifndef __OPENFLUID_LANDR_POLYGONENTITY_HPP__ 41 #define __OPENFLUID_LANDR_POLYGONENTITY_HPP__ 52 namespace geos {
namespace geom {
62 class LineStringGraph;
63 class LineStringEntity;
77 const geos::geom::Polygon* mp_Polygon;
118 PolygonEntity(
const geos::geom::Geometry* NewPolygon,
unsigned int OfldId);
131 const geos::geom::Polygon* polygon()
const;
150 std::vector<geos::geom::LineString*> computeLineIntersectionsWith(
PolygonEntity& Other);
158 PolygonEdge* findEdgeLineIntersectingWith(geos::geom::LineString& Segment);
163 const NeighboursMap_t* neighboursAndEdges();
168 std::vector<int> getOrderedNeighbourOfldIds();
175 std::multimap<double,PolygonEntity*> getOrderedNeighboursByLengthBoundary();
189 std::vector<PolygonEdge*> getCommonEdgesWith(
PolygonEntity& Other);
203 geos::geom::Geometry* getBufferedBoundary(
double BufferDistance);
209 void computeNeighbours();
223 double BufferDistance,
224 double ContactLength=0);
240 double BufferDistance,
241 double ContactLength=0);
246 LineStringNeighboursMap_t* lineStringNeighbours();
254 geos::geom::LineString* mergeEdges(
PolygonEdge* Edge,
278 std::pair< LandREntity*, double> computeNeighbourByLineTopology(
VectorDataset LineTopology);
A part of a PolygonEntity exterior ring, that may be share between to adjacent PolygonEntity.
Definition: PolygonEdge.hpp:74
std::vector< PolygonEdge * > m_PolyEdges
A vector of the PolygonEdge of this PolygonEntity.
Definition: PolygonEntity.hpp:109
Interface for a landscape representation element.
Definition: LandREntity.hpp:69
NeighboursMap_t * mp_NeighboursMap
A Map of neighbours of PolygonEntity type and the related vector of PolygonEdge that are between this...
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:87
Definition: ApplicationException.hpp:47
Relationship
Definition: LandRTools.hpp:70
A LandRGraph composed of LineStringEntities.
Definition: LineStringGraph.hpp:120
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:64
A LandREntity representing a geos::geom::Polygon.
Definition: PolygonEntity.hpp:70
#define OPENFLUID_API
Definition: dllexport.hpp:86
Definition: LandREntity.hpp:53
LineStringNeighboursMap_t * mp_LineStringNeighboursMap
A Map of neighbours of LineStringEntity type and the related PolygonEdge that is between this Polygon...
Definition: PolygonEntity.hpp:104
std::map< LineStringEntity *, PolygonEdge * > LineStringNeighboursMap_t
A map of the LineStringEntity neighbours and the PolygonEdge in contact with this PolygonEntity...
Definition: PolygonEntity.hpp:92