buffer/MaximalEdgeRing.h
/**********************************************************************
*
* GEOS - Geometry Engine Open Source
* http://geos.osgeo.org
*
* Copyright (C) 2006 Refractions Research Inc.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Public Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
*
**********************************************************************
*
* Last port: operation/overlay/MaximalEdgeRing.java rev. 1.15 (JTS-1.10)
*
**********************************************************************/
#pragma once
#include <geos/export.h>
#include <vector>
#include <geos/geomgraph/EdgeRing.h> // for inheritance
// Forward declarations
namespace geos {
namespace geom {
class GeometryFactory;
}
namespace geomgraph {
class DirectedEdge;
}
namespace operation {
namespace buffer {
class MinimalEdgeRing;
}
}
}
namespace geos {
namespace operation { // geos::operation
namespace buffer { // geos::operation::buffer
class GEOS_DLL MaximalEdgeRing: public geomgraph::EdgeRing {
public:
MaximalEdgeRing(geomgraph::DirectedEdge* start,
const geom::GeometryFactory* geometryFactory);
// throw(const TopologyException &)
~MaximalEdgeRing() override = default;
geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge* de) override;
void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er) override;
std::vector<MinimalEdgeRing*>* buildMinimalRings();
void buildMinimalRings(std::vector<MinimalEdgeRing*>& minEdgeRings);
void buildMinimalRings(std::vector<EdgeRing*>& minEdgeRings);
void linkDirectedEdgesForMinimalEdgeRings();
};
} // namespace geos::operation::buffer
} // namespace geos::operation
} // namespace geos
geos::geom::GeometryFactory
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:70
geos::geomgraph::DirectedEdge
A directed EdgeEnd.
Definition geomgraph/DirectedEdge.h:42
geos::geomgraph::EdgeRing
Definition geomgraph/EdgeRing.h:57
geos::operation::buffer::MaximalEdgeRing::buildMinimalRings
void buildMinimalRings(std::vector< MinimalEdgeRing * > &minEdgeRings)
This function pushes pointers to newly allocated MinimalEdgeRing objects to the provided vector.
geos::operation::buffer::MaximalEdgeRing::linkDirectedEdgesForMinimalEdgeRings
void linkDirectedEdgesForMinimalEdgeRings()
For all nodes in this EdgeRing, link the DirectedEdges at the node to form minimalEdgeRings.
geos::operation::buffer::MaximalEdgeRing::buildMinimalRings
std::vector< MinimalEdgeRing * > * buildMinimalRings()
This function returns a newly allocated vector of pointers to newly allocated MinimalEdgeRing objects...
geos::operation::buffer::MinimalEdgeRing
A ring of Edges with the property that no node has degree greater than 2.
Definition MinimalEdgeRing.h:54
geos::geom
Definition Angle.h:26
geos::geomgraph
Contains classes that implement topology graphs.
Definition Depth.h:31
geos::operation::buffer
Provides classes for computing buffers of geometries.
Definition namespaces.h:182
geos::operation
Provides classes for implementing operations on geometries.
Definition CleanCoverage.h:34
geos
Basic namespace for all GEOS functionalities.
Definition geos.h:38