Class OffsetCurveBuilder

java.lang.Object
org.locationtech.jts.operation.buffer.OffsetCurveBuilder

public class OffsetCurveBuilder extends 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 a given PrecisionModel.
Version:
1.7
  • Field Details

  • Constructor Details

  • Method Details

    • getBufferParameters

      public BufferParameters getBufferParameters()
      Gets the buffer parameters being used to generate the curve.
      Returns:
      the buffer parameters being used
    • getLineCurve

      public Coordinate[] getLineCurve(Coordinate[] inputPts, double distance)
      This method handles single points as well as LineStrings. LineStrings are assumed not to be closed (the function will not fail for closed lines, but will generate superfluous line caps).
      Parameters:
      inputPts - the vertices of the line to offset
      distance - the offset distance
      Returns:
      a Coordinate array representing the curve or null if the curve is empty
    • getRingCurve

      public Coordinate[] getRingCurve(Coordinate[] inputPts, int side, double distance)
      This method handles the degenerate cases of single points and lines, as well as rings.
      Returns:
      a Coordinate array representing the curve or null if the curve is empty
    • getOffsetCurve

      public Coordinate[] getOffsetCurve(Coordinate[] inputPts, double distance)
    • copyCoordinates

      private static Coordinate[] copyCoordinates(Coordinate[] pts)
    • getSegGen

      private OffsetSegmentGenerator getSegGen(double distance)
    • simplifyTolerance

      private double simplifyTolerance(double bufDistance)
      Computes the distance tolerance to use during input line simplification.
      Parameters:
      distance - the buffer distance
      Returns:
      the simplification tolerance
    • computePointCurve

      private void computePointCurve(Coordinate pt, OffsetSegmentGenerator segGen)
    • computeLineBufferCurve

      private void computeLineBufferCurve(Coordinate[] inputPts, OffsetSegmentGenerator segGen)
    • computeSingleSidedBufferCurve

      private void computeSingleSidedBufferCurve(Coordinate[] inputPts, boolean isRightSide, OffsetSegmentGenerator segGen)
    • computeOffsetCurve

      private void computeOffsetCurve(Coordinate[] inputPts, boolean isRightSide, OffsetSegmentGenerator segGen)
    • computeRingBufferCurve

      private void computeRingBufferCurve(Coordinate[] inputPts, int side, OffsetSegmentGenerator segGen)