-/**
- * Represents a GPS track.
- */
-public class Track implements Serializable {
-
- private List<TrackPoint> _points;
-
- /**
- * Constructs an empty track.
- *
- */
- public Track() {
- _points = new ArrayList<TrackPoint>();
- }
-
- /**
- * Adds a point to a track.
- * @param aPoint Point.
- */
- public void addPoint(TrackPoint aPoint) {
- _points.add(aPoint);
- }
-
- /**
- * @return Number of points in the track.
- */
- public int size() {
- return _points.size();
- }
-
- public double getMinCoordinate(int i) {
- if ( size() == 0 ) {
- throw new IllegalArgumentException("empty track");
- }
- double min = getPoint(0).getCoordinates().getX(i);
- for (int j = 1; j < size(); j++) {
- min = Math.min(min, getPoint(j).getCoordinates().getX(i));
- }
- return min;
- }
-
- public double getMaxCoordinate(int i) {
- if ( size() == 0 ) {
- throw new IllegalArgumentException("empty track");
- }
- double max = getPoint(0).getCoordinates().getX(i);
- for (int j = 1; j < size(); j++) {
- max = Math.max(max, getPoint(j).getCoordinates().getX(i));
- }
- return max;
- }
-
- /**
- * Gets the point at the given inded.
- * @param aIndex 0 <= aIndex < size()
- * @return Point.
- */
- public Point getPoint(int aIndex) {
- return _points.get(aIndex);
- }