19#ifndef GEOS_OP_BUFFER_BUFFERSUBGRAPH_H
20#define GEOS_OP_BUFFER_BUFFERSUBGRAPH_H
22#include <geos/export.h>
24#include <geos/operation/buffer/RightmostEdgeFinder.h>
31#pragma warning(disable: 4251)
61class GEOS_DLL BufferSubgraph {
65 std::vector<geomgraph::DirectedEdge*> dirEdgeList;
67 std::vector<geomgraph::Node*> nodes;
87 void add(
geomgraph::Node* node, std::vector<geomgraph::Node*>* nodeStack);
89 void clearVisitedEdges();
104 bool contains(std::set<geomgraph::Node*>& nodes,
geomgraph::Node *node);
108 friend std::ostream& operator<< (std::ostream& os,
const BufferSubgraph& bs);
114 std::vector<geomgraph::DirectedEdge*>* getDirectedEdges();
116 std::vector<geomgraph::Node*>* getNodes();
133 void computeDepth(
int outsideDepth);
173std::ostream& operator<< (std::ostream& os,
const BufferSubgraph& bs);
179inline std::vector<geomgraph::Node*>*
180BufferSubgraph::getNodes() {
return &nodes; }
182inline std::vector<geomgraph::DirectedEdge*>*
183BufferSubgraph::getDirectedEdges() {
187bool BufferSubgraphGT(BufferSubgraph *first, BufferSubgraph *second);
Specifies and implements various fundamental Computational Geometric algorithms. The algorithms suppl...
Definition CGAlgorithms.h:47
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition Envelope.h:53
A directed EdgeEnd.
Definition geomgraph/DirectedEdge.h:44
Definition geomgraph/Node.h:62
A connected subset of the graph of DirectedEdge and geomgraph::Node.
Definition BufferSubgraph.h:61
geom::Envelope * getEnvelope()
Computes the envelope of the edges in the subgraph. The envelope is cached after being computed.
void findResultEdges()
Find all edges whose depths indicates that they are in the result area(s).
int compareTo(BufferSubgraph *)
BufferSubgraphs are compared on the x-value of their rightmost Coordinate.
void create(geomgraph::Node *node)
Creates the subgraph consisting of all edges reachable from this node.
geom::Coordinate * getRightmostCoordinate()
Gets the rightmost coordinate in the edges of the subgraph.
Definition BufferSubgraph.h:177
A RightmostEdgeFinder find the geomgraph::DirectedEdge in a list which has the highest coordinate,...
Definition RightmostEdgeFinder.h:47
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
Provides classes for computing buffers of geometries.
Definition opBuffer.h:23
Provides classes for implementing operations on geometries.
Definition IndexedNestedRingTester.h:40
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25