22 #ifndef GEOS_GEOMGRAPH_EDGEENDSTAR_H
23 #define GEOS_GEOMGRAPH_EDGEENDSTAR_H
25 #include <geos/export.h>
26 #include <geos/geomgraph/EdgeEnd.h>
27 #include <geos/geom/Location.h>
28 #include <geos/geom/Coordinate.h>
30 #include <geos/inline.h>
40 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
46 class BoundaryNodeRule;
68 typedef std::set<EdgeEnd*, EdgeEndLT> container;
70 typedef container::iterator iterator;
71 typedef container::const_iterator const_iterator;
72 typedef container::reverse_iterator reverse_iterator;
95 virtual std::size_t getDegree();
97 virtual iterator begin();
99 virtual iterator end();
101 virtual reverse_iterator rbegin();
103 virtual reverse_iterator rend();
105 virtual const_iterator
108 return edgeMap.begin();
111 virtual const_iterator
114 return edgeMap.end();
117 virtual container& getEdges();
119 virtual EdgeEnd* getNextCW(EdgeEnd* ee);
121 virtual void computeLabelling(std::vector<GeometryGraph*>* geomGraph);
124 virtual bool isAreaLabelsConsistent(
const GeometryGraph& geomGraph);
126 virtual void propagateSideLabels(
int geomIndex);
130 virtual iterator find(EdgeEnd* eSearch);
132 virtual std::string print()
const;
155 std::vector<GeometryGraph*>* geom);
161 std::array<geom::Location, 2> ptInAreaLocation;
165 virtual bool checkAreaLabelsConsistent(
int geomIndex);
170 EdgeEndStar::getDegree()
175 inline EdgeEndStar::iterator
181 inline EdgeEndStar::container&
182 EdgeEndStar::getEdges()
187 inline EdgeEndStar::reverse_iterator
193 inline EdgeEndStar::iterator
199 inline EdgeEndStar::reverse_iterator
200 EdgeEndStar::rbegin()
205 inline EdgeEndStar::iterator
206 EdgeEndStar::find(EdgeEnd* eSearch)
211 std::ostream& operator<< (std::ostream&,
const EdgeEndStar&);
224 #endif // ifndef GEOS_GEOMGRAPH_EDGEENDSTAR_H