GEOS 3.14.0dev
buffer/MaximalEdgeRing.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2006 Refractions Research Inc.
7 *
8 * This is free software; you can redistribute and/or modify it under
9 * the terms of the GNU Lesser General Public Licence as published
10 * by the Free Software Foundation.
11 * See the COPYING file for more information.
12 *
13 **********************************************************************
14 *
15 * Last port: operation/overlay/MaximalEdgeRing.java rev. 1.15 (JTS-1.10)
16 *
17 **********************************************************************/
18
19#pragma once
20
21#include <geos/export.h>
22
23#include <vector>
24
25#include <geos/geomgraph/EdgeRing.h> // for inheritance
26
27// Forward declarations
28namespace geos {
29namespace geom {
30class GeometryFactory;
31}
32namespace geomgraph {
33class DirectedEdge;
34}
35namespace operation {
36namespace buffer {
37class MinimalEdgeRing;
38}
39}
40}
41
42namespace geos {
43namespace operation { // geos::operation
44namespace buffer { // geos::operation::buffer
45
64class GEOS_DLL MaximalEdgeRing: public geomgraph::EdgeRing {
65
66public:
67
69 const geom::GeometryFactory* geometryFactory);
70 // throw(const TopologyException &)
71
72 ~MaximalEdgeRing() override = default;
73
75
76 void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er) override;
77
84 std::vector<MinimalEdgeRing*>* buildMinimalRings();
85
90 void buildMinimalRings(std::vector<MinimalEdgeRing*>& minEdgeRings);
91 void buildMinimalRings(std::vector<EdgeRing*>& minEdgeRings);
92
98};
99
100
101} // namespace geos::operation::buffer
102} // namespace geos::operation
103} // namespace geos
104
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:70
A directed EdgeEnd.
Definition geomgraph/DirectedEdge.h:42
Definition geomgraph/EdgeRing.h:57
A ring of DirectedEdges which may contain nodes of degree > 2.
Definition buffer/MaximalEdgeRing.h:64
void buildMinimalRings(std::vector< MinimalEdgeRing * > &minEdgeRings)
This function pushes pointers to newly allocated MinimalEdgeRing objects to the provided vector.
void linkDirectedEdgesForMinimalEdgeRings()
For all nodes in this EdgeRing, link the DirectedEdges at the node to form minimalEdgeRings.
std::vector< MinimalEdgeRing * > * buildMinimalRings()
This function returns a newly allocated vector of pointers to newly allocated MinimalEdgeRing objects...
Basic namespace for all GEOS functionalities.
Definition geos.h:39