GEOS 3.6.2
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 {
30 namespace geom {
31 class GeometryFactory;
32 }
33 namespace geomgraph {
34 class DirectedEdge;
35 //class EdgeRing;
36 }
37 namespace operation {
38 namespace overlay {
39 class 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
70 MaximalEdgeRing(geomgraph::DirectedEdge *start,
71 const geom::GeometryFactory *geometryFactory);
72 // throw(const TopologyException &)
73
74 virtual ~MaximalEdgeRing();
75
77
78 void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er);
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:67
A directed EdgeEnd.
Definition geomgraph/DirectedEdge.h:44
Definition geomgraph/EdgeRing.h:59
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.
A ring of Edges with the property that no node has degree greater than 2.
Definition MinimalEdgeRing.h:56
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Contains classes that implement topology graphs.
Definition IndexedNestedRingTester.h:34
Contains classes that perform a topological overlay to compute boolean spatial functions.
Definition BufferBuilder.h:62
Provides classes for implementing operations on geometries.
Definition IndexedNestedRingTester.h:40
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25