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

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

public class BufferOp
extends java.lang.Object

Computes the buffer of a geometry, for both positive and negative buffer distances.

In GIS, the positive buffer of a geometry is defined as the Minkowski sum or difference of the geometry with a circle of radius equal to the absolute value of the buffer distance. In the CAD/CAM world buffers are known as offset curves. In morphological analysis they are known as erosion and dilation

The buffer operation always returns a polygonal result. The negative or zero-distance 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 used to approximate curves.

The end cap style of a linear buffer may be specified. The following end cap styles are supported: <ul

- `CAP_ROUND` - the usual round end caps
- `CAP_BUTT` - end caps are truncated flat at the line ends
- `CAP_SQUARE` - end caps are squared off at the buffer distance beyond the line ends

  Version:
    1.7

  Field Summary
  `static int` `CAP_BUTT` Deprecated. use BufferParameters
  `static int` `CAP_FLAT` Deprecated. use BufferParameters
  `static int` `CAP_ROUND` Deprecated. use BufferParameters
  `static int` `CAP_SQUARE` Deprecated. use BufferParameters

  Constructor Summary
  `BufferOp(Geometry g)` Initializes a buffer computation for the given geometry
  `BufferOp(Geometry g, BufferParameters bufParams)` Initializes a buffer computation for the given geometry with the given set of parameters

  Method Summary
  `static Geometry` `bufferOp(Geometry g, double distance)` Computes the buffer of a geometry for a given buffer distance.
  `static Geometry` `bufferOp(Geometry g, double distance, BufferParameters params)` Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.
  `static Geometry` `bufferOp(Geometry g, double distance, int quadrantSegments)` Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.
  `static Geometry` `bufferOp(Geometry g, double distance, int quadrantSegments, int endCapStyle)` Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.
  `Geometry` `getResultGeometry(double distance)` Returns the buffer computed for a geometry for a given buffer distance.
  `void` `setEndCapStyle(int endCapStyle)` Specifies the end cap style of the generated buffer.
  `void` `setQuadrantSegments(int quadrantSegments)` Sets the number of segments used to approximate a angle fillet

  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

    Deprecated. use BufferParameters

    Specifies a round line buffer end cap style.

    See Also:
      Constant Field Values

  ### CAP_BUTT

      public static final int CAP_BUTT

    Deprecated. use BufferParameters

    Specifies a butt (or flat) line buffer end cap style.

    See Also:
      Constant Field Values

  ### CAP_FLAT

      public static final int CAP_FLAT

    Deprecated. use BufferParameters

    Specifies a butt (or flat) line buffer end cap style.

    See Also:
      Constant Field Values

  ### CAP_SQUARE

      public static final int CAP_SQUARE

    Deprecated. use BufferParameters

    Specifies a square line buffer end cap style.

    See Also:
      Constant Field Values

  Constructor Detail

  ### BufferOp

      public BufferOp(Geometry g)

    Initializes a buffer computation for the given geometry

  Parameters:
    `g` - the geometry to buffer

  ### BufferOp

      public BufferOp(Geometry g,
                      BufferParameters bufParams)

    Initializes a buffer computation for the given geometry with the given set of parameters

  Parameters:
    `g` - the geometry to buffer
    `bufParams` - the buffer parameters to use

  Method Detail

  ### bufferOp

      public static Geometry bufferOp(Geometry g,
                                      double distance)

    Computes the buffer of a geometry for a given buffer distance.

    Parameters:
      `g` - the geometry to buffer
      `distance` - the buffer distance
    Returns:
      the buffer of the input geometry

  ### bufferOp

      public static Geometry bufferOp(Geometry g,
                                      double distance,
                                      BufferParameters params)

    Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.

    Parameters:
      `g` - the geometry to buffer
      `distance` - the buffer distance
      `params` - the buffer parameters to use
    Returns:
      the buffer of the input geometry

  ### bufferOp

      public static Geometry bufferOp(Geometry g,
                                      double distance,
                                      int quadrantSegments)

    Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.

    Parameters:
      `g` - the geometry to buffer
      `distance` - the buffer distance
      `quadrantSegments` - the number of segments used to approximate a quarter circle
    Returns:
      the buffer of the input geometry

  ### bufferOp

      public static Geometry bufferOp(Geometry g,
                                      double distance,
                                      int quadrantSegments,
                                      int endCapStyle)

    Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.

    Parameters:
      `g` - the geometry to buffer
      `distance` - the buffer distance
      `quadrantSegments` - the number of segments used to approximate a quarter circle
      `endCapStyle` - the end cap style to use
    Returns:
      the buffer of the input geometry

  ### setEndCapStyle

      public void setEndCapStyle(int endCapStyle)

    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.

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

  ### setQuadrantSegments

      public void setQuadrantSegments(int quadrantSegments)

    Sets the number of segments used to approximate a angle fillet

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

  ### getResultGeometry

      public Geometry getResultGeometry(double distance)

    Returns the buffer computed for a geometry for a given buffer distance.

    Parameters:
      `distance` - the buffer distance
    Returns:
      the buffer of the input geometry