22#ifndef GEOS_GEOMGRAPH_EDGERING_H
23#define GEOS_GEOMGRAPH_EDGERING_H
25#include <geos/export.h>
26#include <geos/geomgraph/Label.h>
28#include <geos/inline.h>
36#pragma warning(disable: 4251)
59class GEOS_DLL EdgeRing {
62 friend std::ostream& operator<< (std::ostream& os,
const EdgeRing& er);
86 void setShell(EdgeRing *newShell);
88 void addHole(EdgeRing *edgeRing);
106 virtual void setEdgeRing(
DirectedEdge *de, EdgeRing *er)=0;
113 int getMaxNodeDegree();
134 for (std::vector<EdgeRing*>::const_iterator
141 assert(hole->getShell()==
this);
149 DirectedEdge *startDe;
151 const geom::GeometryFactory *geometryFactory;
156 void mergeLabel(
const Label& deLabel);
172 void addPoints(
Edge *edge,
bool isForward,
bool isFirstEdge);
182 std::vector<DirectedEdge*> edges;
197 void computeMaxNodeDegree();
201std::ostream& operator<< (std::ostream& os,
const EdgeRing& er);
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:59
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:67
Models an OGC SFS LinearRing.
Definition LinearRing.h:57
Represents a linear polygon, which may include holes.
Definition Polygon.h:67
A directed EdgeEnd.
Definition geomgraph/DirectedEdge.h:44
Definition geomgraph/EdgeRing.h:59
bool containsPoint(const geom::Coordinate &p)
std::vector< DirectedEdge * > & getEdges()
geom::Polygon * toPolygon(const geom::GeometryFactory *geometryFactory)
void computePoints(DirectedEdge *newStart)
throw(const TopologyException &)
std::vector< EdgeRing * > holes
a list of EdgeRings which are holes in this EdgeRing
Definition geomgraph/EdgeRing.h:175
void mergeLabel(const Label &deLabel, int geomIndex)
Merge the RHS label from a DirectedEdge into the label for this EdgeRing.
Definition geomgraph/Edge.h:66
A Label indicates the topological relationship of a component of a topology graph to a given Geometry...
Definition Label.h:57
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Contains classes that implement topology graphs.
Definition IndexedNestedRingTester.h:34
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25