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)
63class GEOS_DLL EdgeEndStar {
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;
74 virtual ~EdgeEndStar() {}
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();
108 virtual EdgeEnd* getNextCW(EdgeEnd *ee);
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);
155EdgeEndStar::getDegree()
160inline EdgeEndStar::iterator
166inline EdgeEndStar::container&
167EdgeEndStar::getEdges()
172inline EdgeEndStar::reverse_iterator
178inline EdgeEndStar::iterator
184inline EdgeEndStar::reverse_iterator
190inline EdgeEndStar::iterator
191EdgeEndStar::find(
EdgeEnd *eSearch)
196std::ostream& operator<< (std::ostream&,
const EdgeEndStar&);
Definition BoundaryNodeRule.h:50
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
A EdgeEndStar is an ordered list of EdgeEnds around a node.
Definition EdgeEndStar.h:63
virtual geom::Coordinate & getCoordinate()
EdgeEndStar::container edgeMap
A map which maintains the edges in sorted order around the node.
Definition EdgeEndStar.h:129
virtual void insert(EdgeEnd *e)=0
Insert a EdgeEnd into this EdgeEndStar.
virtual void insertEdgeEnd(EdgeEnd *e)
Insert an EdgeEnd into the map.
Definition EdgeEndStar.h:134
Models the end of an edge incident on a node.
Definition EdgeEnd.h:56
Definition GeometryGraph.h:74
Contains classes and interfaces implementing fundamental computational geometry algorithms.
Definition Angle.h:33
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