GEOS  3.8.0dev
Public Member Functions | List of all members
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>

Public Member Functions

 OffsetCurveBuilder (const geom::PrecisionModel *newPrecisionModel, const BufferParameters &nBufParams)
 
const BufferParametersgetBufferParameters () const
 Gets the buffer parameters being used to generate the curve. More...
 
void getLineCurve (const geom::CoordinateSequence *inputPts, double distance, std::vector< geom::CoordinateSequence * > &lineList)
 This method handles single points as well as lines. More...
 
void 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. More...
 
void 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. More...
 

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 a given geom::PrecisionModel.

Member Function Documentation

const BufferParameters& geos::operation::buffer::OffsetCurveBuilder::getBufferParameters ( ) const
inline

Gets the buffer parameters being used to generate the curve.

Returns
the buffer parameters being used
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
inputPtsinput points
distanceoffset distance
lineListthe 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
inputPtsinput points
sidea Position
distanceoffset distance
lineListthe 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
inputPtsinput points
distanceoffset distance
lineListthe std::vector to which newly created CoordinateSequences will be pushed_back. Caller will be responsible to delete them.
leftSideindicates that the left side buffer will be obtained/skipped
rightSideindicates 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: