GEOS 3.11.1
overlay/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//class EdgeRing;
35}
36namespace operation {
37namespace overlay {
38class MinimalEdgeRing;
39}
40}
41}
42
43namespace geos {
44namespace operation { // geos::operation
45namespace overlay { // geos::operation::overlay
46
65class GEOS_DLL MaximalEdgeRing: public geomgraph::EdgeRing {
66
67public:
68
70 const geom::GeometryFactory* geometryFactory);
71 // throw(const TopologyException &)
72
73 ~MaximalEdgeRing() override = default;
74
76
77 void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er) override;
78
85 std::vector<MinimalEdgeRing*>* buildMinimalRings();
86
91 void buildMinimalRings(std::vector<MinimalEdgeRing*>& minEdgeRings);
92 void buildMinimalRings(std::vector<EdgeRing*>& minEdgeRings);
93
99};
100
101
102} // namespace geos::operation::overlay
103} // namespace geos::operation
104} // namespace geos
105
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:66
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: overlay/MaximalEdgeRing.h:65
std::vector< MinimalEdgeRing * > * buildMinimalRings()
This function returns a newly allocated vector of pointers to newly allocated MinimalEdgeRing objects...
void linkDirectedEdgesForMinimalEdgeRings()
For all nodes in this EdgeRing, link the DirectedEdges at the node to form minimalEdgeRings.
void buildMinimalRings(std::vector< MinimalEdgeRing * > &minEdgeRings)
This function pushes pointers to newly allocated MinimalEdgeRing objects to the provided vector.
Basic namespace for all GEOS functionalities.
Definition: geos.h:39