X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fdata%2FTrack.java;fp=tim%2Fprune%2Fdata%2FTrack.java;h=4ae47ff03e78bc794bcb89cfd289e30006bfa5e9;hp=31c9b4edeeaf3cbb04af8468e8f85b8b33932b8d;hb=0a2480df5845e2d7190dfdec9b2653b1609e853d;hpb=2154b1969ac2995cca46546f217f53c066b0b749 diff --git a/tim/prune/data/Track.java b/tim/prune/data/Track.java index 31c9b4e..4ae47ff 100644 --- a/tim/prune/data/Track.java +++ b/tim/prune/data/Track.java @@ -178,21 +178,30 @@ public class Track /** * Delete the points marked for deletion + * @param inSplitSegments true to split segments at deleted points * @return number of points deleted */ - public int deleteMarkedPoints() + public int deleteMarkedPoints(boolean inSplitSegments) { int numCopied = 0; - // Copy selected points + // Copy selected points into a new point array DataPoint[] newPointArray = new DataPoint[_numPoints]; + boolean prevPointDeleted = false; for (int i=0; i<_numPoints; i++) { DataPoint point = _dataPoints[i]; // Don't delete photo points if (point.hasMedia() || !point.getDeleteFlag()) { + if (prevPointDeleted && inSplitSegments) { + point.setSegmentStart(true); + } newPointArray[numCopied] = point; numCopied++; + prevPointDeleted = false; + } + else { + prevPointDeleted = true; } } @@ -901,7 +910,7 @@ public class Track */ private static final double getMinXDist(double inX) { - // TODO: Can use some kind of floor here? + // TODO: Should be abs(mod(inX-0.5,1)-0.5) - means two adds, one mod, one abs instead of two adds, 3 abss and two compares return Math.min(Math.min(Math.abs(inX), Math.abs(inX-1.0)), Math.abs(inX+1.0)); }