findFurthestPoint method

int findFurthestPoint(
  1. List<Coordinate> pts,
  2. int i,
  3. int j,
  4. List<double> maxDistance,
)

Implementation

int findFurthestPoint(
    List<Coordinate> pts, int i, int j, List<double> maxDistance) {
  LineSegment seg = LineSegment.empty();
  seg.p0 = pts[i];
  seg.p1 = pts[j];
  double maxDist = -1.0;
  int maxIndex = i;
  for (int k = i + 1; k < j; k++) {
    Coordinate midPt = pts[k];
    double distance = seg.distanceCoord(midPt);
    if (distance > maxDist) {
      maxDist = distance;
      maxIndex = k;
    }
  }
  maxDistance.add(maxDist);
  return maxIndex;
}