|
GEOS
3.5.0
|
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 BufferParameters & | getBufferParameters () const |
| 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) |
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.
|
inline |
Gets the buffer parameters being used to generate the curve.
| 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).
| 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.
| 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).
| 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
1.8.11