20 #ifndef GEOS_OP_BUFFER_BUFFERSUBGRAPH_H
21 #define GEOS_OP_BUFFER_BUFFERSUBGRAPH_H
23 #include <geos/export.h>
25 #include <geos/operation/buffer/RightmostEdgeFinder.h>
32 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
66 std::vector<geomgraph::DirectedEdge*> dirEdgeList;
68 std::vector<geomgraph::Node*> nodes;
81 void addReachable(geomgraph::Node *startNode);
88 void add(geomgraph::Node* node, std::vector<geomgraph::Node*>* nodeStack);
90 void clearVisitedEdges();
101 void computeNodeDepth(geomgraph::Node *n);
105 bool contains(std::set<geomgraph::Node*>& nodes, geomgraph::Node *node);
109 friend std::ostream& operator<< (std::ostream& os,
const BufferSubgraph& bs);
115 std::vector<geomgraph::DirectedEdge*>* getDirectedEdges();
117 std::vector<geomgraph::Node*>* getNodes();
132 void create(geomgraph::Node *node);
134 void computeDepth(
int outsideDepth);
147 void findResultEdges();
174 std::ostream& operator<< (std::ostream& os,
const BufferSubgraph& bs);
180 inline std::vector<geomgraph::Node*>*
181 BufferSubgraph::getNodes() {
return &nodes; }
183 inline std::vector<geomgraph::DirectedEdge*>*
184 BufferSubgraph::getDirectedEdges() {
188 bool BufferSubgraphGT(BufferSubgraph *first, BufferSubgraph *second);
198 #endif // ndef GEOS_OP_BUFFER_BUFFERSUBGRAPH_H