GEOS
3.9.0dev

Computes the buffer of a geometry, for both positive and negative buffer distances. More...
#include <BufferOp.h>
Public Types  
enum  { CAP_ROUND = BufferParameters::CAP_ROUND, CAP_BUTT = BufferParameters::CAP_FLAT, CAP_SQUARE = BufferParameters::CAP_SQUARE } 
Public Member Functions  
BufferOp (const geom::Geometry *g)  
Initializes a buffer computation for the given geometry. More...  
BufferOp (const geom::Geometry *g, const BufferParameters ¶ms)  
Initializes a buffer computation for the given geometry with the given set of parameters. More...  
void  setEndCapStyle (int nEndCapStyle) 
Specifies the end cap style of the generated buffer. More...  
void  setQuadrantSegments (int nQuadrantSegments) 
Sets the number of segments used to approximate a angle fillet. More...  
void  setSingleSided (bool isSingleSided) 
Sets whether the computed buffer should be singlesided. More...  
geom::Geometry *  getResultGeometry (double nDistance) 
Returns the buffer computed for a geometry for a given buffer distance. More...  
Static Public Member Functions  
static geom::Geometry *  bufferOp (const geom::Geometry *g, double distance, int quadrantSegments=BufferParameters::DEFAULT_QUADRANT_SEGMENTS, int endCapStyle=BufferParameters::CAP_ROUND) 
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation. More...  
Computes the buffer of a geometry, for both positive and negative buffer distances.
In GIS, the positive (or negative) buffer of a geometry is defined as the Minkowski sum (or difference) of the geometry with a circle with radius equal to the absolute value of the buffer distance. In the CAD/CAM world buffers are known as offset curves. In morphological analysis the operation of positive and negative buffering is referred to as erosion and dilation.
The buffer operation always returns a polygonal result. The negative or zerodistance buffer of lines and points is always an empty Polygon.
Since true buffer curves may contain circular arcs, computed buffer polygons can only be approximations to the true geometry. The user can control the accuracy of the curve approximation by specifying the number of linear segments with which to approximate a curve.
The end cap style of a linear buffer may be specified. The following end cap styles are supported:
anonymous enum 

inline 
Initializes a buffer computation for the given geometry.
g  the geometry to buffer 

inline 
Initializes a buffer computation for the given geometry with the given set of parameters.
g  the geometry to buffer 
params  the buffer parameters to use. This class will copy it to private memory. 

static 
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation.
g  the geometry to buffer 
distance  the buffer distance 
quadrantSegments  the number of segments used to approximate a quarter circle 
endCapStyle  line buffer end cap style (default: BufferParameters::CAP_ROUND) 
geom::Geometry* geos::operation::buffer::BufferOp::getResultGeometry  (  double  nDistance  ) 
Returns the buffer computed for a geometry for a given buffer distance.
nDistance  the buffer distance 

inline 
Specifies the end cap style of the generated buffer.
The styles supported are CAP_ROUND, CAP_BUTT, and CAP_SQUARE. The default is CAP_ROUND.
nEndCapStyle  the end cap style to specify 
References geos::operation::buffer::BufferParameters::setEndCapStyle().

inline 
Sets the number of segments used to approximate a angle fillet.
nQuadrantSegments  the number of segments in a fillet for a quadrant 
References geos::operation::buffer::BufferParameters::setQuadrantSegments().

inline 
Sets whether the computed buffer should be singlesided.
A singlesided buffer is constructed on only one side of each input line.
The side used is determined by the sign of the buffer distance:
The singlesided buffer of point geometries is the same as the regular buffer.
The End Cap Style for singlesided buffers is always ignored, and forced to the equivalent of CAP_FLAT
.
isSingleSided  true if a singlesided buffer should be constructed 
References geos::operation::buffer::BufferParameters::setSingleSided().