GEOS 3.11.1
|
#include <LineBuilder.h>
Public Member Functions | |
LineBuilder (const InputGeometry *inputGeom, OverlayGraph *p_graph, bool p_hasResultArea, int p_opCode, const geom::GeometryFactory *geomFact) | |
LineBuilder (const LineBuilder &)=delete | |
LineBuilder & | operator= (const LineBuilder &)=delete |
std::vector< std::unique_ptr< geom::LineString > > | getLines () |
void | setStrictMode (bool p_isStrictResultMode) |
Finds and builds overlay result lines from the overlay graph. Output linework has the following semantics:
Various strategies are possible for how to merge graph edges into lines. This implementation uses the approach of having output lines run contiguously from node to node. For rings a node point is chosen arbitrarily.
Another possible strategy would be to preserve input linework as far as possible (i.e. any sections of input lines which are not coincident with other linework would be preserved).
It would also be possible to output LinearRings, if the input is a LinearRing and is unchanged. This will require additional info from the input linework.