|
GEOS 3.11.2
|
Computes the raw offset curve for a single Geometry component (ring, line or point). More...
#include <OffsetCurveBuilder.h>
Public Member Functions | |
| OffsetCurveBuilder (const geom::PrecisionModel *newPrecisionModel, const BufferParameters &nBufParams) | |
| const BufferParameters & | getBufferParameters () const |
| Gets the buffer parameters being used to generate the curve. More... | |
| bool | isLineOffsetEmpty (double distance) |
| 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... | |
| void | getOffsetCurve (const geom::CoordinateSequence *inputPts, double p_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).
| inputPts | input points |
| distance | offset distance |
| 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.
| inputPts | input points |
| side | a Position |
| distance | offset distance |
| 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).
| inputPts | input points |
| distance | offset distance |
| 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 |
| bool geos::operation::buffer::OffsetCurveBuilder::isLineOffsetEmpty | ( | double | distance | ) |
Tests whether the offset curve for line or point geometries at the given offset distance is empty (does not exist). This is the case if:
| distance | the offset curve distance |