19#ifndef GEOS_OP_LINEMERGE_LINEMERGER_H
20#define GEOS_OP_LINEMERGE_LINEMERGER_H
22#include <geos/export.h>
23#include <geos/operation/linemerge/LineMergeGraph.h>
29#pragma warning(disable: 4251)
75class GEOS_DLL LineMerger {
81 std::vector<geom::LineString*> *mergedLineStrings;
83 std::vector<EdgeString*> edgeStrings;
89 void buildEdgeStringsForObviousStartNodes();
91 void buildEdgeStringsForIsolatedLoops();
93 void buildEdgeStringsForUnprocessedNodes();
95 void buildEdgeStringsForNonDegree2Nodes();
113 void add(std::vector<geom::Geometry*> *geometries);
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:67
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:167
Definition LineString.h:70
A sequence of LineMergeDirectedEdge forming one of the lines that will be output by the line-merging ...
Definition EdgeString.h:55
A planargraph::DirectedEdge of a LineMergeGraph.
Definition LineMergeDirectedEdge.h:47
A planar graph of edges that is analyzed to sew the edges together.
Definition LineMergeGraph.h:59
void add(std::vector< geom::Geometry * > *geometries)
Adds a collection of Geometries to be processed. May be called multiple times.
std::vector< geom::LineString * > * getMergedLineStrings()
Returns the LineStrings built by the merging process.
void add(const geom::Geometry *geometry)
Adds a Geometry to be processed. May be called multiple times.
A node in a PlanarGraph is a location where 0 or more Edge meet.
Definition planargraph/Node.h:45
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Line merging package.
Definition EdgeString.h:40
Provides classes for implementing operations on geometries.
Definition IndexedNestedRingTester.h:40
Contains classes to implement a planar graph data structure.
Definition LineMergeDirectedEdge.h:32
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25