22 #ifndef GEOS_GEOMGRAPH_EDGERING_H 23 #define GEOS_GEOMGRAPH_EDGERING_H 25 #include <geos/export.h> 26 #include <geos/geomgraph/Label.h> 27 #include <geos/geom/CoordinateArraySequence.h> 28 #include <geos/geom/LinearRing.h> 30 #include <geos/inline.h> 39 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 45 class GeometryFactory;
63 friend std::ostream& operator<< (std::ostream& os,
const EdgeRing& er);
111 std::vector<DirectedEdge*>& getEdges();
113 int getMaxNodeDegree();
124 testInvariant()
const 134 for(
const auto& hole : holes) {
136 assert(hole->getShell() ==
this);
139 #endif // ndef NDEBUG 151 void mergeLabel(
const Label& deLabel);
165 void mergeLabel(
const Label& deLabel,
int geomIndex);
167 void addPoints(
Edge* edge,
bool isForward,
bool isFirstEdge);
170 std::vector<std::unique_ptr<EdgeRing>>
holes;
177 std::vector<DirectedEdge*> edges;
179 std::unique_ptr<geom::CoordinateArraySequence> pts;
185 std::unique_ptr<geom::LinearRing> ring;
192 void computeMaxNodeDegree();
196 std::ostream& operator<< (std::ostream& os,
const EdgeRing& er);
205 #endif // ifndef GEOS_GEOMGRAPH_EDGERING_H Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
A directed EdgeEnd.
Definition: geomgraph/DirectedEdge.h:45
std::vector< std::unique_ptr< EdgeRing > > holes
a list of EdgeRings which are holes in this EdgeRing
Definition: geomgraph/EdgeRing.h:170
Definition: geomgraph/EdgeRing.h:60
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:68
A Label indicates the topological relationship of a component of a topology graph to a given Geometry...
Definition: Label.h:58
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition: LinearRing.h:54
Definition: geomgraph/Edge.h:66