package tim.prune.function.compress; import java.awt.Component; import java.awt.event.ActionListener; import tim.prune.data.DataPoint; import tim.prune.data.Track; /** * Algorithm for detecting duplicate points to compress */ public class DuplicatePointAlgorithm extends CompressionAlgorithm { /** Number of points before this one to consider as duplicates */ private static final int NUM_POINTS_TO_BACKTRACK = 20; /** * Constructor * @param inTrack track object * @param inDetails track details object * @param inListener listener to attach to activation control */ public DuplicatePointAlgorithm(Track inTrack, TrackDetails inDetails, ActionListener inListener) { super(inTrack, inDetails, inListener); } /** * Perform the compression and work out which points should be deleted * @param inFlags deletion flags from previous algorithms * @return number of points deleted */ protected int compress(boolean[] inFlags) { int numPoints = _track.getNumPoints(); int numDeleted = 0; // Loop over all points looking for duplicates for (int i=1; i