1 package org.wamblee.gps.track;
5 import org.wamblee.gps.geometry.Point;
8 * Filtered track provides a filtered view on a track.
9 * Changes in the filter are also represented by the filtered track.
11 public class FilteredTrack implements Track {
13 private TrackFilter _filter;
14 private Track _originalTrack;
15 private Track _filteredTrack;
16 private int _lastVersion;
18 public FilteredTrack(TrackFilter aFilter, Track aTrack) {
20 _originalTrack = aTrack;
21 _filteredTrack = _filter.filter(_originalTrack);
22 _lastVersion = aFilter.version();
25 private Track getTrack() {
26 if ( _lastVersion != _filter.version()) {
27 _filteredTrack = _filter.filter(_originalTrack);
28 _lastVersion = _filter.version();
30 return _filteredTrack;
34 public List<TrackSegment> getSegments() {
35 return getTrack().getSegments();
39 public String getDescription() {
40 return getTrack().getDescription();
44 public double getMaxCoordinate(int aI) {
45 return getTrack().getMaxCoordinate(aI);
49 public double getMinCoordinate(int aI) {
50 return getTrack().getMinCoordinate(aI);
54 public Point getPoint(int aIndex) {
55 return getTrack().getPoint(aIndex);
60 return getTrack().size();