GEOS 3.9.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#ifndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H
20#define GEOS_OP_OVERLAY_MAXIMALEDGERING_H
21
22#include <geos/export.h>
23
24#include <vector>
25
26#include <geos/geomgraph/EdgeRing.h> // for inheritance
27
28// Forward declarations
29namespace geos {
30namespace geom {
31class GeometryFactory;
32}
33namespace geomgraph {
34class DirectedEdge;
35//class EdgeRing;
36}
37namespace operation {
38namespace overlay {
39class MinimalEdgeRing;
40}
41}
42}
43
44namespace geos {
45namespace operation { // geos::operation
46namespace overlay { // geos::operation::overlay
47
66class GEOS_DLL MaximalEdgeRing: public geomgraph::EdgeRing {
67
68public:
69
71 const geom::GeometryFactory* geometryFactory);
72 // throw(const TopologyException &)
73
74 ~MaximalEdgeRing() override = default;
75
77
78 void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er) override;
79
86 std::vector<MinimalEdgeRing*>* buildMinimalRings();
87
92 void buildMinimalRings(std::vector<MinimalEdgeRing*>& minEdgeRings);
93 void buildMinimalRings(std::vector<EdgeRing*>& minEdgeRings);
94
100};
101
102
103} // namespace geos::operation::overlay
104} // namespace geos::operation
105} // namespace geos
106
107#endif // ndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:68
A directed EdgeEnd.
Definition geomgraph/DirectedEdge.h:45
Definition geomgraph/EdgeRing.h:60
A ring of DirectedEdges which may contain nodes of degree > 2.
Definition overlay/MaximalEdgeRing.h:66
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 IndexedNestedRingTester.h:26