public class BufferInputLineSimplifier extends Object
The major benefit of doing this is to reduce the number of points and the complexity of shape which will be buffered. This improve performance and robustness. It also reduces the risk of gores created by the quantized fillet arcs (although this issue should be eliminated 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 generated buffer curve lies at the correct distance from the input geometry.
Another important heuristic used is that the end segments of linear inputs are never simplified. This ensures that the client buffer code is able to generate end caps faithfully. Ring inputs can have end segments removed by simplification.
No attempt is made to avoid self-intersections in the output. This is acceptable for use for generating a buffer offset curve, since the buffer algorithm is insensitive to invalid polygonal geometry. However, this means that this algorithm cannot be used as a general-purpose polygon simplification technique.
Constructor and Description |
---|
BufferInputLineSimplifier(Coordinate[] inputLine) |
Modifier and Type | Method and Description |
---|---|
static Coordinate[] |
simplify(Coordinate[] inputLine,
double distanceTol)
Simplify the input coordinate list.
|
Coordinate[] |
simplify(double distanceTol)
Simplify the input coordinate list.
|
public BufferInputLineSimplifier(Coordinate[] inputLine)
public static Coordinate[] simplify(Coordinate[] inputLine, double distanceTol)
inputLine
- the coordinate list to simplifydistanceTol
- simplification distance tolerance to usepublic Coordinate[] simplify(double distanceTol)
distanceTol
- simplification distance tolerance to useCopyright © 2024. All rights reserved.