com.vividsolutions.jts.operation.buffer
Class BufferInputLineSimplifier

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

public class BufferInputLineSimplifier
extends java.lang.Object

Simplifies a buffer input line to remove concavities with shallow depth.

The most important benefit of doing this is to reduce the number of points and the complexity of shape which will be buffered. It also reduces the risk of gores created by the quantized fillet arcs (although this issue should be eliminated in any case by the offset curve generation logic).

A key aspect of the simplification is that it affects inside (concave or inward) corners only. Convex (outward) corners are preserved, since they are required to ensure that the eventual buffer curve lies at the correct distance from the input geometry.

Another important heuristic used is that the end segments of the input are never simplified. This ensures that the client buffer code is able to generate end caps consistently.

Author:
Martin Davis

Constructor Summary
BufferInputLineSimplifier(Coordinate[] inputLine)
           
 
Method Summary
static Coordinate[] simplify(Coordinate[] inputLine, double distanceTol)
           
 Coordinate[] simplify(double distanceTol)
          Simplify the input geometry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BufferInputLineSimplifier

public BufferInputLineSimplifier(Coordinate[] inputLine)
Method Detail

simplify

public static Coordinate[] simplify(Coordinate[] inputLine,
                                    double distanceTol)

simplify

public Coordinate[] simplify(double distanceTol)
Simplify the input geometry. If the distance tolerance is positive, concavities on the LEFT side of the line are simplified. If the supplied distance tolerance is negative, concavities on the RIGHT side of the line are simplified.

Parameters:
distanceTol - simplification distance tolerance to use
Returns: