GEOS: Edge.h Source File

GEOS 3.3.8

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

planargraph/Edge.h
1 /**********************************************************************
2 * $Id: Edge.h 3255 2011-03-01 17:56:10Z mloskot $
3 *
4 * GEOS - Geometry Engine Open Source
5 * http://geos.refractions.net
6 *
7 * Copyright (C) 2001-2002 Vivid Solutions Inc.
8 * Copyright (C) 2005-2006 Refractions Research Inc.
9 *
10 * This is free software; you can redistribute and/or modify it under
11 * the terms of the GNU Lesser General Public Licence as published
12 * by the Free Software Foundation.
13 * See the COPYING file for more information.
14 *
15 **********************************************************************/
16
17 #ifndef GEOS_PLANARGRAPH_EDGE_H
18 #define GEOS_PLANARGRAPH_EDGE_H
19
20 #include <geos/export.h>
21
22 #include <geos/planargraph/GraphComponent.h> // for inheritance
23
24 #include <vector> // for typedefs
25 #include <set> // for typedefs
26 #include <iosfwd> // ostream
27
28 #ifdef _MSC_VER
29 #pragma warning(push)
30 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
31 #endif
32
33 // Forward declarations
34 namespace geos {
35 namespace planargraph {
36 class DirectedEdgeStar;
37 class DirectedEdge;
38 class Edge;
39 class Node;
40 }
41 }
42
43 namespace geos {
44 namespace planargraph { // geos.planargraph
45
55 class GEOS_DLL Edge: public GraphComponent {
56
57 public:
58
59 friend std::ostream& operator<< (std::ostream& os, const Node&);
60
62 typedef std::set<const Edge *> ConstSet;
63
65 typedef std::set<Edge *> NonConstSet;
66
68 typedef std::vector<Edge *> NonConstVect;
69
71 typedef std::vector<const Edge *> ConstVect;
72
73 protected:
74
76 std::vector<DirectedEdge*> dirEdge;
77
84 public:
85
93 Edge(): dirEdge() {}
94
101 Edge(DirectedEdge *de0, DirectedEdge *de1)
102 :
103 dirEdge()
104 {
105 setDirectedEdges(de0, de1);
106 }
107
115 void setDirectedEdges(DirectedEdge *de0, DirectedEdge *de1);
116
121 DirectedEdge* getDirEdge(int i);
122
128 DirectedEdge* getDirEdge(Node *fromNode);
129
134 Node* getOppositeNode(Node *node);
135 };
136
138 std::ostream& operator<<(std::ostream& os, const Edge& n);
139
141 //typedef Edge planarEdge;
142
143 } // namespace geos::planargraph
144 } // namespace geos
145
146 #ifdef _MSC_VER
147 #pragma warning(pop)
148 #endif
149
150 #endif // GEOS_PLANARGRAPH_EDGE_H
151
152 /**********************************************************************
153 * $Log$
154 * Revision 1.1 2006/03/21 21:42:54 strk
155 * planargraph.h header split, planargraph:: classes renamed to match JTS symbols
156 *
157 **********************************************************************/
158