# geos::operation::buffer::OffsetCurveBuilder Class Reference

Computes the raw offset curve for a single Geometry component (ring, line or point). More...

`#include <geos/opBuffer.h>`

List of all members.

## Public Member Functions

| OffsetCurveBuilder (const geom::PrecisionModel *newPrecisionModel, const BufferParameters &bufParams)
void | getLineCurve (const geom::CoordinateSequence *inputPts, double distance, std::vector< geom::CoordinateSequence * > &lineList)
void | getSingleSidedLineCurve (const geom::CoordinateSequence *inputPts, double distance, std::vector< geom::CoordinateSequence * > &lineList, bool leftSide, bool rightSide)
void | getRingCurve (const geom::CoordinateSequence *inputPts, int side, double distance, std::vector< geom::CoordinateSequence * > &lineList)

## Detailed Description

Computes the raw offset curve for a single Geometry component (ring, line or point).

A raw offset curve line is not noded - it may contain self-intersections (and usually will). The final buffer polygon is computed by forming a topological graph of all the noded raw curves and tracing outside contours. The points in the raw curve are rounded to the required precision model.

Last port: operation/buffer/OffsetCurveBuilder.java rev. 1.9

## Member Function Documentation

void geos::operation::buffer::OffsetCurveBuilder::getLineCurve | ( | const geom::CoordinateSequence * | inputPts,
|  | double | distance,
|  | std::vector< geom::CoordinateSequence * > & | lineList
| ) |  |

This method handles single points as well as lines. Lines are assumed to not be closed (the function will not fail for closed lines, but will generate superfluous line caps).

Parameters:

  lineList | the std::vector to which the newly created CoordinateSequences will be pushed_back. Caller is responsible to delete these new elements.

void geos::operation::buffer::OffsetCurveBuilder::getRingCurve | ( | const geom::CoordinateSequence * | inputPts,
|  | int | side,
|  | double | distance,
|  | std::vector< geom::CoordinateSequence * > & | lineList
| ) |  |

This method handles the degenerate cases of single points and lines, as well as rings.

Parameters:

  lineList | the std::vector to which CoordinateSequences will be pushed_back

void geos::operation::buffer::OffsetCurveBuilder::getSingleSidedLineCurve | ( | const geom::CoordinateSequence * | inputPts,
|  | double | distance,
|  | std::vector< geom::CoordinateSequence * > & | lineList,
|  | bool | leftSide,
|  | bool | rightSide
| ) |  |

This method handles single points as well as lines.

Lines are assumed to not be closed (the function will not fail for closed lines, but will generate superfluous line caps).

Parameters:

  lineList | the std::vector to which newly created CoordinateSequences will be pushed_back. Caller will be responsible to delete them.
  leftSide | indicates that the left side buffer will be obtained/skipped
  rightSide | indicates that the right side buffer will be obtained/skipped

NOTE: this is a GEOS extension

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

- OffsetCurveBuilder.h