com.vividsolutions.jts.operation.buffer
Class OffsetCurveBuilder

java.lang.Object
  extended bycom.vividsolutions.jts.operation.buffer.OffsetCurveBuilder

public class OffsetCurveBuilder
extends java.lang.Object

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.

Version:
1.7

Field Summary
static int DEFAULT_QUADRANT_SEGMENTS
          The default number of facets into which to divide a fillet of 90 degrees.
 
Constructor Summary
OffsetCurveBuilder(PrecisionModel precisionModel)
           
OffsetCurveBuilder(PrecisionModel precisionModel, int quadrantSegments)
           
 
Method Summary
 java.util.List getLineCurve(Coordinate[] inputPts, double distance)
          This method handles single points as well as lines.
 java.util.List getRingCurve(Coordinate[] inputPts, int side, double distance)
          This method handles the degenerate cases of single points and lines, as well as rings.
 void setEndCapStyle(int endCapStyle)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_QUADRANT_SEGMENTS

public static final int DEFAULT_QUADRANT_SEGMENTS
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

See Also:
Constant Field Values
Constructor Detail

OffsetCurveBuilder

public OffsetCurveBuilder(PrecisionModel precisionModel)

OffsetCurveBuilder

public OffsetCurveBuilder(PrecisionModel precisionModel,
                          int quadrantSegments)
Method Detail

setEndCapStyle

public void setEndCapStyle(int endCapStyle)

getLineCurve

public java.util.List getLineCurve(Coordinate[] inputPts,
                                   double distance)
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).

Returns:
a List of Coordinate[]

getRingCurve

public java.util.List getRingCurve(Coordinate[] inputPts,
                                   int side,
                                   double distance)
This method handles the degenerate cases of single points and lines, as well as rings.

Returns:
a List of Coordinate[]