GEOS  3.9.1dev
Public Member Functions | Private Member Functions | Private Attributes | List of all members
geos::operation::overlay::LineBuilder Class Reference

Forms JTS LineStrings out of a the graph of geomgraph::DirectedEdge created by an OverlayOp. More...

#include <LineBuilder.h>

Collaboration diagram for geos::operation::overlay::LineBuilder:
[legend]

Public Member Functions

 LineBuilder (OverlayOp *newOp, const geom::GeometryFactory *newGeometryFactory, algorithm::PointLocator *newPtLocator)
 
 ~LineBuilder ()=default
 
std::vector< geom::LineString * > * build (OverlayOp::OpCode opCode)
 
void collectLineEdge (geomgraph::DirectedEdge *de, OverlayOp::OpCode opCode, std::vector< geomgraph::Edge * > *edges)
 

Private Member Functions

void findCoveredLineEdges ()
 
void collectLines (OverlayOp::OpCode opCode)
 
void buildLines (OverlayOp::OpCode opCode)
 
void labelIsolatedLines (std::vector< geomgraph::Edge * > *edgesList)
 
void collectBoundaryTouchEdge (geomgraph::DirectedEdge *de, OverlayOp::OpCode opCode, std::vector< geomgraph::Edge * > *edges)
 
void labelIsolatedLine (geomgraph::Edge *e, int targetIndex)
 
void propagateZ (geom::CoordinateSequence *cs)
 

Private Attributes

OverlayOpop
 
const geom::GeometryFactorygeometryFactory
 
algorithm::PointLocatorptLocator
 
std::vector< geomgraph::Edge * > lineEdgesList
 
std::vector< geom::LineString * > * resultLineList
 

Detailed Description

Forms JTS LineStrings out of a the graph of geomgraph::DirectedEdge created by an OverlayOp.

Definition at line 63 of file LineBuilder.h.

Constructor & Destructor Documentation

geos::operation::overlay::LineBuilder::LineBuilder ( OverlayOp newOp,
const geom::GeometryFactory newGeometryFactory,
algorithm::PointLocator newPtLocator 
)
geos::operation::overlay::LineBuilder::~LineBuilder ( )
default

Member Function Documentation

std::vector<geom::LineString*>* geos::operation::overlay::LineBuilder::build ( OverlayOp::OpCode  opCode)
Returns
a list of the LineStrings in the result of the specified overlay operation
void geos::operation::overlay::LineBuilder::buildLines ( OverlayOp::OpCode  opCode)
private
void geos::operation::overlay::LineBuilder::collectBoundaryTouchEdge ( geomgraph::DirectedEdge de,
OverlayOp::OpCode  opCode,
std::vector< geomgraph::Edge * > *  edges 
)
private

Collect edges from Area inputs which should be in the result but which have not been included in a result area. This happens ONLY:

  • during an intersection when the boundaries of two areas touch in a line segment
  • OR as a result of a dimensional collapse.
void geos::operation::overlay::LineBuilder::collectLineEdge ( geomgraph::DirectedEdge de,
OverlayOp::OpCode  opCode,
std::vector< geomgraph::Edge * > *  edges 
)

Collect line edges which are in the result.

Line edges are in the result if they are not part of an area boundary, if they are in the result of the overlay operation, and if they are not covered by a result area.

Parameters
dethe directed edge to test.
opCodethe overlap operation
edgesthe list of included line edges.
void geos::operation::overlay::LineBuilder::collectLines ( OverlayOp::OpCode  opCode)
private
void geos::operation::overlay::LineBuilder::findCoveredLineEdges ( )
private
void geos::operation::overlay::LineBuilder::labelIsolatedLine ( geomgraph::Edge e,
int  targetIndex 
)
private

Label an isolated node with its relationship to the target geometry.

void geos::operation::overlay::LineBuilder::labelIsolatedLines ( std::vector< geomgraph::Edge * > *  edgesList)
private
void geos::operation::overlay::LineBuilder::propagateZ ( geom::CoordinateSequence cs)
private

Member Data Documentation

const geom::GeometryFactory* geos::operation::overlay::LineBuilder::geometryFactory
private

Definition at line 95 of file LineBuilder.h.

std::vector<geomgraph::Edge*> geos::operation::overlay::LineBuilder::lineEdgesList
private

Definition at line 97 of file LineBuilder.h.

OverlayOp* geos::operation::overlay::LineBuilder::op
private

Definition at line 94 of file LineBuilder.h.

algorithm::PointLocator* geos::operation::overlay::LineBuilder::ptLocator
private

Definition at line 96 of file LineBuilder.h.

std::vector<geom::LineString*>* geos::operation::overlay::LineBuilder::resultLineList
private

Definition at line 98 of file LineBuilder.h.


The documentation for this class was generated from the following file: