computeRingBufferCurve method

void computeRingBufferCurve(
  1. List<Coordinate> inputPts,
  2. int side,
  3. OffsetSegmentGenerator segGen
)

Implementation

void computeRingBufferCurve(
    List<Coordinate> inputPts, int side, OffsetSegmentGenerator segGen) {
  // simplify input line to improve performance
  double distTol = simplifyTolerance(distance);
  // ensure that correct side is simplified
  if (side == Position.RIGHT) distTol = -distTol;
  List<Coordinate> simp =
      BufferInputLineSimplifier.simplify(inputPts, distTol);
//    List<Coordinate> simp = inputPts;

  int n = simp.length - 1;
  segGen.initSideSegments(simp[n - 1], simp[0], side);
  for (int i = 1; i <= n; i++) {
    bool addStartPoint = i != 1;
    segGen.addNextSegment(simp[i], addStartPoint);
  }
  segGen.closeRing();
}