+package tim.prune.function.sew;
+
+import java.util.Comparator;
+
+/**
+ * Class to sort the candidates for segment splitting
+ */
+public class CandidateSorter implements Comparator<SplitPoint>
+{
+ /**
+ * Sort the objects by distance (greatest first)
+ */
+ public int compare(SplitPoint inFirst, SplitPoint inSecond)
+ {
+ if (inFirst == null) return 1;
+ if (inSecond == null) return -1;
+ // First, sort by distance
+ final double dist1 = inFirst.getDistanceToPrevPoint();
+ final double dist2 = inSecond.getDistanceToPrevPoint();
+ if (dist1 > dist2) {
+ return -1;
+ }
+ if (dist1 < dist2) {
+ return 1;
+ }
+ // If the distances are identical, then just sort by point index
+ return inFirst.getPointIndex() - inSecond.getPointIndex();
+ }
+}