|
|
|
|
@ -28,10 +28,9 @@ public class BoatInRace extends Boat {
|
|
|
|
|
private StringProperty currentLegName;
|
|
|
|
|
private boolean started = false;
|
|
|
|
|
private StringProperty position;
|
|
|
|
|
|
|
|
|
|
private Queue<GPSCoordinate> track = new ConcurrentLinkedQueue<GPSCoordinate>();
|
|
|
|
|
private long nextValidTime = 0;
|
|
|
|
|
private final int TRACK_POINT_TIME_INTERVAL = 1000; // every 2 seconds
|
|
|
|
|
private final int TRACK_POINT_TIME_INTERVAL = 1000; // every 1 seconds
|
|
|
|
|
private final int TRACK_POINT_LIMIT = 10;
|
|
|
|
|
private boolean trackVisible = false;
|
|
|
|
|
|
|
|
|
|
@ -261,7 +260,7 @@ public class BoatInRace extends Boat {
|
|
|
|
|
|
|
|
|
|
public boolean addTrackPoint(GPSCoordinate coordinate) {
|
|
|
|
|
Boolean added = System.currentTimeMillis() >= nextValidTime;
|
|
|
|
|
if (added && this.started && !this.finished) {
|
|
|
|
|
if (added && this.started) {
|
|
|
|
|
nextValidTime = System.currentTimeMillis() + TRACK_POINT_TIME_INTERVAL;
|
|
|
|
|
track.add(coordinate);
|
|
|
|
|
if (track.size() > TRACK_POINT_LIMIT) {
|
|
|
|
|
@ -282,4 +281,11 @@ public class BoatInRace extends Boat {
|
|
|
|
|
public void setTrackVisible(boolean trackVisible) {
|
|
|
|
|
this.trackVisible = trackVisible;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Color getTrackPointColour(int queuePos) {
|
|
|
|
|
float alphaScale = 1f / (float) (TRACK_POINT_LIMIT);
|
|
|
|
|
float alpha = 1f - (float) (this.track.size() - queuePos) * alphaScale;
|
|
|
|
|
Color boatColour = this.colour;
|
|
|
|
|
return new Color(boatColour.getRed(), boatColour.getBlue(), boatColour.getGreen(), alpha);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|