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, int quadrantSegments=DEFAULT_QUADRANT_SEGMENTS)
void setEndCapStyle (int newEndCapStyle)
void getLineCurve (const geom::CoordinateSequence *inputPts, double distance, std::vector< geom::CoordinateSequence * > &lineList)
void getRingCurve (const geom::CoordinateSequence *inputPts, int side, double distance, std::vector< geom::CoordinateSequence * > &lineList)

Static Public Attributes

static const int DEFAULT_QUADRANT_SEGMENTS = 8
 The default number of facets into which to divide a fillet of 90 degrees.


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 CoordinateSequences will be pushed_back

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


Member Data Documentation

const int geos::operation::buffer::OffsetCurveBuilder::DEFAULT_QUADRANT_SEGMENTS = 8 [static]

The default number of facets into which to divide a fillet of 90 degrees.

A value of 8 gives less than 2% max error in the buffer distance. For a max error of < 1%, use QS = 12


The documentation for this class was generated from the following file:
Generated on Fri Mar 27 04:53:50 2009 for GEOS by  doxygen 1.5.4