16 #ifndef GEOS_PLANARGRAPH_EDGE_H
17 #define GEOS_PLANARGRAPH_EDGE_H
19 #include <geos/export.h>
21 #include <geos/planargraph/GraphComponent.h>
29 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
34 namespace planargraph {
35 class DirectedEdgeStar;
43 namespace planargraph {
54 class GEOS_DLL Edge:
public GraphComponent {
58 friend std::ostream&
operator<< (std::ostream& os,
const Node&);
61 typedef std::set<const Edge*> ConstSet;
64 typedef std::set<Edge*> NonConstSet;
67 typedef std::vector<Edge*> NonConstVect;
70 typedef std::vector<const Edge*> ConstVect;
75 std::vector<DirectedEdge*> dirEdge;
93 Edge(DirectedEdge* de0, DirectedEdge* de1)
97 setDirectedEdges(de0, de1);
107 void setDirectedEdges(DirectedEdge* de0, DirectedEdge* de1);
113 DirectedEdge* getDirEdge(
int i);
120 DirectedEdge* getDirEdge(Node* fromNode);
126 Node* getOppositeNode(Node* node);
130 std::ostream&
operator<<(std::ostream& os,
const Edge& n);
142 #endif // GEOS_PLANARGRAPH_EDGE_H