JTS Topology Suite version 1.13

## com.vividsolutions.jts.operation.buffer
Class BufferParameters

    java.lang.Object
      com.vividsolutions.jts.operation.buffer.BufferParameters

    public class BufferParameters

extends java.lang.Object

A value class containing the parameters which specify how a buffer should be constructed.

The parameters allow control over:

- Quadrant segments (accuracy of approximation for circular arcs)
- End Cap style
- Join style
- Mitre limit
- whether the buffer is single-sided

Author:
  Martin Davis

Field Summary
`static int` `CAP_FLAT` Specifies a flat line buffer end cap style.
`static int` `CAP_ROUND` Specifies a round line buffer end cap style.
`static int` `CAP_SQUARE` Specifies a square line buffer end cap style.
`static double` `DEFAULT_MITRE_LIMIT` The default mitre limit Allows fairly pointy mitres.
`static int` `DEFAULT_QUADRANT_SEGMENTS` The default number of facets into which to divide a fillet of 90 degrees.
`static int` `JOIN_BEVEL` Specifies a bevel join style.
`static int` `JOIN_MITRE` Specifies a mitre join style.
`static int` `JOIN_ROUND` Specifies a round join style.

Constructor Summary
`BufferParameters()` Creates a default set of parameters
`BufferParameters(int quadrantSegments)` Creates a set of parameters with the given quadrantSegments value.
`BufferParameters(int quadrantSegments, int endCapStyle)` Creates a set of parameters with the given quadrantSegments and endCapStyle values.
`BufferParameters(int quadrantSegments, int endCapStyle, int joinStyle, double mitreLimit)` Creates a set of parameters with the given parameter values.

Method Summary
`static double` `bufferDistanceError(int quadSegs)` Computes the maximum distance error due to a given level of approximation to a true arc.
`int` `getEndCapStyle()` Gets the end cap style.
`int` `getJoinStyle()` Gets the join style
`double` `getMitreLimit()` Gets the mitre ratio limit.
`int` `getQuadrantSegments()` Gets the number of quadrant segments which will be used
`boolean` `isSingleSided()` Tests whether the buffer is to be generated on a single side only.
`void` `setEndCapStyle(int endCapStyle)` Specifies the end cap style of the generated buffer.
`void` `setJoinStyle(int joinStyle)` Sets the join style for outside (reflex) corners between line segments.
`void` `setMitreLimit(double mitreLimit)` Sets the limit on the mitre ratio used for very sharp corners.
`void` `setQuadrantSegments(int quadSegs)` Sets the number of line segments used to approximate an angle fillet.
`void` `setSingleSided(boolean isSingleSided)` Sets whether the computed buffer should be single-sided.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### CAP_ROUND

    public static final int CAP_ROUND

  Specifies a round line buffer end cap style.

  See Also:
    Constant Field Values

### CAP_FLAT

    public static final int CAP_FLAT

  Specifies a flat line buffer end cap style.

  See Also:
    Constant Field Values

### CAP_SQUARE

    public static final int CAP_SQUARE

  Specifies a square line buffer end cap style.

  See Also:
    Constant Field Values

### JOIN_ROUND

    public static final int JOIN_ROUND

  Specifies a round join style.

  See Also:
    Constant Field Values

### JOIN_MITRE

    public static final int JOIN_MITRE

  Specifies a mitre join style.

  See Also:
    Constant Field Values

### JOIN_BEVEL

    public static final int JOIN_BEVEL

  Specifies a bevel join style.

  See Also:
    Constant Field Values

### 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. For a max error of < 0.1%, use QS = 18.

  See Also:
    Constant Field Values

### DEFAULT_MITRE_LIMIT

    public static final double DEFAULT_MITRE_LIMIT

  The default mitre limit Allows fairly pointy mitres.

  See Also:
    Constant Field Values

Constructor Detail

### BufferParameters

    public BufferParameters()

  Creates a default set of parameters

### BufferParameters

    public BufferParameters(int quadrantSegments)

  Creates a set of parameters with the given quadrantSegments value.

  Parameters:
    `quadrantSegments` - the number of quadrant segments to use

### BufferParameters

    public BufferParameters(int quadrantSegments,
                            int endCapStyle)

  Creates a set of parameters with the given quadrantSegments and endCapStyle values.

  Parameters:
    `quadrantSegments` - the number of quadrant segments to use
    `endCapStyle` - the end cap style to use

### BufferParameters

    public BufferParameters(int quadrantSegments,
                            int endCapStyle,
                            int joinStyle,
                            double mitreLimit)

  Creates a set of parameters with the given parameter values.

  Parameters:
    `quadrantSegments` - the number of quadrant segments to use
    `endCapStyle` - the end cap style to use
    `joinStyle` - the join style to use
    `mitreLimit` - the mitre limit to use

Method Detail

### getQuadrantSegments

    public int getQuadrantSegments()

  Gets the number of quadrant segments which will be used

  Returns:
    the number of quadrant segments

### setQuadrantSegments

    public void setQuadrantSegments(int quadSegs)

  Sets the number of line segments used to approximate an angle fillet.
  - If `quadSegs` >= 1, joins are round, and `quadSegs` indicates the number of segments to use to approximate a quarter-circle.
  - If `quadSegs` = 0, joins are bevelled (flat)
  - If `quadSegs` < 0, joins are mitred, and the value of qs indicates the mitre ration limit as

         mitreLimit = |quadSegs|

  For round joins, `quadSegs` determines the maximum error in the approximation to the true buffer curve. The default value of 8 gives less than 2% max error in the buffer distance. For a max error of < 1%, use QS = 12. For a max error of < 0.1%, use QS = 18. The error is always less than the buffer distance (in other words, the computed buffer curve is always inside the true curve).

  Parameters:
    `quadSegs` - the number of segments in a fillet for a quadrant

### bufferDistanceError

    public static double bufferDistanceError(int quadSegs)

  Computes the maximum distance error due to a given level of approximation to a true arc.

  Parameters:
    `quadSegs` - the number of segments used to approximate a quarter-circle
  Returns:
    the error of approximation

### getEndCapStyle

    public int getEndCapStyle()

  Gets the end cap style.

  Returns:
    the end cap style

### setEndCapStyle

    public void setEndCapStyle(int endCapStyle)

  Specifies the end cap style of the generated buffer. The styles supported are `CAP_ROUND`, `CAP_FLAT`, and `CAP_SQUARE`. The default is CAP_ROUND.

  Parameters:
    `endCapStyle` - the end cap style to specify

### getJoinStyle

    public int getJoinStyle()

  Gets the join style

  Returns:
    the join style code

### setJoinStyle

    public void setJoinStyle(int joinStyle)

  Sets the join style for outside (reflex) corners between line segments. Allowable values are `JOIN_ROUND` (which is the default), `JOIN_MITRE` and {link JOIN_BEVEL}.

  Parameters:
    `joinStyle` - the code for the join style

### getMitreLimit

    public double getMitreLimit()

  Gets the mitre ratio limit.

  Returns:
    the limit value

### setMitreLimit

    public void setMitreLimit(double mitreLimit)

  Sets the limit on the mitre ratio used for very sharp corners. The mitre ratio is the ratio of the distance from the corner to the end of the mitred offset corner. When two line segments meet at a sharp angle, a miter join will extend far beyond the original geometry. (and in the extreme case will be infinitely far.) To prevent unreasonable geometry, the mitre limit allows controlling the maximum length of the join corner. Corners with a ratio which exceed the limit will be beveled.

  Parameters:
    `mitreLimit` - the mitre ratio limit

### setSingleSided

    public void setSingleSided(boolean isSingleSided)

  Sets whether the computed buffer should be single-sided. A single-sided buffer is constructed on only one side of each input line.

  The side used is determined by the sign of the buffer distance:

  - a positive distance indicates the left-hand side
  - a negative distance indicates the right-hand side
  The single-sided buffer of point geometries is the same as the regular buffer.

  The End Cap Style for single-sided buffers is always ignored, and forced to the equivalent of `CAP_FLAT`.

  Parameters:
    `isSingleSided` - true if a single-sided buffer should be constructed

### isSingleSided

    public boolean isSingleSided()

  Tests whether the buffer is to be generated on a single side only.

  Returns:
    true if the generated buffer is to be single-sided

JTS Topology Suite version 1.13