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/Coordinate.h>
29 #include <geos/inline.h>
38 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
44 class BoundaryNodeRule;
66 typedef std::set<EdgeEnd *, EdgeEndLT> container;
68 typedef container::iterator iterator;
69 typedef container::const_iterator const_iterator;
70 typedef container::reverse_iterator reverse_iterator;
79 virtual void insert(
EdgeEnd *e)=0;
92 virtual std::size_t getDegree();
94 virtual iterator begin();
96 virtual iterator end();
98 virtual reverse_iterator rbegin();
100 virtual reverse_iterator rend();
102 virtual const_iterator begin()
const {
return edgeMap.begin(); }
104 virtual const_iterator end()
const {
return edgeMap.end(); }
106 virtual container &getEdges();
110 virtual void computeLabelling(std::vector<GeometryGraph*> *geomGraph);
113 virtual bool isAreaLabelsConsistent(
const GeometryGraph& geomGraph);
115 virtual void propagateSideLabels(
int geomIndex);
119 virtual iterator find(
EdgeEnd *eSearch);
121 virtual std::string print()
const;
138 virtual int getLocation(
int geomIndex,
140 std::vector<GeometryGraph*> *geom);
146 int ptInAreaLocation[2];
150 virtual bool checkAreaLabelsConsistent(
int geomIndex);
155 EdgeEndStar::getDegree()
160 inline EdgeEndStar::iterator
166 inline EdgeEndStar::container&
167 EdgeEndStar::getEdges()
172 inline EdgeEndStar::reverse_iterator
178 inline EdgeEndStar::iterator
184 inline EdgeEndStar::reverse_iterator
185 EdgeEndStar::rbegin()
190 inline EdgeEndStar::iterator
191 EdgeEndStar::find(EdgeEnd *eSearch)
196 std::ostream& operator<< (std::ostream&,
const EdgeEndStar&);
209 #endif // ifndef GEOS_GEOMGRAPH_EDGEENDSTAR_H