# 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>`

List of all members.

## Public Member Functions

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

## Detailed Description

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

## 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::collectLineEdge | ( | geomgraph::DirectedEdge * | de,
|  | OverlayOp::OpCode | opCode,
|  | std::vector< geomgraph::Edge * > * | edges |
| ) |  |  |

Find and mark L edges which are "covered" by the result area (if any). L edges at nodes which also have A edges can be checked by checking their depth at that node. L edges at nodes which do not have A edges can be checked by doing a point-in-polygon test with the previously computed result areas.

void geos::operation::overlay::LineBuilder::collectBoundaryTouchEdge | ( | geomgraph::DirectedEdge * | de,
|  | OverlayOp::OpCode | opCode,
|  | std::vector< geomgraph::Edge * > * | edges |
| ) |  |  |

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.

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

- LineBuilder.h