From 101dadc003d3820830161ee49410707e6e67a619 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Thu, 6 Apr 2017 17:11:24 +1200 Subject: [PATCH 1/7] Gave BoatInRace a track property that stores the coordinates of the track. Added a method in ResizableRaceCanvas that draws the points on the track every time the canvas updates. [Story 25] --- src/main/java/seng302/Model/BoatInRace.java | 22 +++++++++++++++++++ .../seng302/Model/ResizableRaceCanvas.java | 12 ++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index d3086741..87d8165d 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -9,6 +9,8 @@ import seng302.Constants; import seng302.GPSCoordinate; import java.awt.geom.Point2D; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; /** * Boat in the Race extends Boat. @@ -26,6 +28,10 @@ public class BoatInRace extends Boat { private StringProperty currentLegName; private boolean started = false; private StringProperty position; + private Queue track = new ConcurrentLinkedQueue(); + private long nextValidTime = 0; + private final int TRACK_POINT_TIME_INTERVAL = 1000; // every 2 seconds + private final int TRACK_POINT_LIMIT = 10; /** * Constructor method. @@ -250,4 +256,20 @@ public class BoatInRace extends Boat { public void setPosition(int position) { this.position.set(Integer.toString(position + 1)); } + + public boolean addTrackPoint(GPSCoordinate coordinate) { + Boolean added = System.currentTimeMillis() >= nextValidTime; + if (added && this.started && !this.finished) { + nextValidTime = System.currentTimeMillis() + TRACK_POINT_TIME_INTERVAL; + track.add(coordinate); + if (track.size() > TRACK_POINT_LIMIT) { + track.remove(); + } + } + return added; + } + + public Queue getTrack() { + return track; + } } diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index 00a0d8e1..1608b0f1 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -281,6 +281,7 @@ public class ResizableRaceCanvas extends Canvas { } else { displayBoat(boat, 0); } + addTrackPoint(boat); if (raceAnno) displayText(boat.getAbbrev(), boat.getVelocity(), this.map.convertGPS(boat.getCurrentPosition())); @@ -288,6 +289,17 @@ public class ResizableRaceCanvas extends Canvas { } } + private void addTrackPoint(BoatInRace boat) { + if (boat.addTrackPoint(boat.getCurrentPosition())) { + GraphCoordinate coordinate = this.map.convertGPS(boat.getCurrentPosition()); + } + for (GPSCoordinate coordinate : boat.getTrack()) { + GraphCoordinate scaledCoordinate = this.map.convertGPS(coordinate); + gc.setFill(boat.getColour()); + gc.fillOval(scaledCoordinate.getX(), scaledCoordinate.getY(), 5, 5); + } + } + public void setRaceBoundaries(ArrayList boundaries) { this.raceBoundaries = new ArrayList<>(); for (GPSCoordinate bound : boundaries) { From 4eef872a604a13bdbb6a9becfbf3b01509332ead Mon Sep 17 00:00:00 2001 From: cbt24 Date: Fri, 7 Apr 2017 12:26:43 +1200 Subject: [PATCH 2/7] Decoupled drawing and adding track points, added combobox selector for visible boats. --- src/main/java/seng302/Controllers/RaceController.java | 11 +++++++++++ src/main/java/seng302/Model/BoatInRace.java | 10 ++++++++++ src/main/java/seng302/Model/Race.java | 1 + src/main/java/seng302/Model/ResizableRaceCanvas.java | 7 ++----- src/main/resources/scenes/racepane.fxml | 5 +++-- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index 7fb037d2..464a007b 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -4,6 +4,7 @@ package seng302.Controllers; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; +import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.*; @@ -40,6 +41,8 @@ public class RaceController extends Controller { Label timer; @FXML Label FPS; + @FXML + ComboBox visibleTrackSelect; @FXML TableView boatInfoTable; @@ -165,6 +168,7 @@ public class RaceController extends Controller { startScreen.setVisible(false); ongoingRacePane.setVisible(true); + visibleTrackSelect.setItems(FXCollections.observableArrayList(startingBoats)); initializeFPS(); initializeAnnotations(); @@ -191,6 +195,13 @@ public class RaceController extends Controller { FPS.setText((fps)); } + /** + * + */ + public void toggleTrackVisibility() { + visibleTrackSelect.getSelectionModel().getSelectedItem().setTrackVisible(true); + } + /** * Set up FPS display at bottom of screen */ diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index 87d8165d..dd4f8133 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -28,10 +28,12 @@ public class BoatInRace extends Boat { private StringProperty currentLegName; private boolean started = false; private StringProperty position; + private Queue track = new ConcurrentLinkedQueue(); private long nextValidTime = 0; private final int TRACK_POINT_TIME_INTERVAL = 1000; // every 2 seconds private final int TRACK_POINT_LIMIT = 10; + private boolean trackVisible = false; /** * Constructor method. @@ -272,4 +274,12 @@ public class BoatInRace extends Boat { public Queue getTrack() { return track; } + + public boolean isTrackVisible() { + return trackVisible; + } + + public void setTrackVisible(boolean trackVisible) { + this.trackVisible = trackVisible; + } } diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index 2c181089..c29dccfc 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -203,6 +203,7 @@ public abstract class Race implements Runnable { for (BoatInRace boat : startingBoats) { if (boat != null && !boat.isFinished()) { + boat.addTrackPoint(boat.getCurrentPosition()); updatePosition(boat, Math.round(1000 / lastFPS) > 20 ? 15 : Math.round(1000 / lastFPS)); checkPosition(boat, totalTimeElapsed); } diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index 1608b0f1..5da4bdc4 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -281,7 +281,7 @@ public class ResizableRaceCanvas extends Canvas { } else { displayBoat(boat, 0); } - addTrackPoint(boat); + drawTrackPoint(boat); if (raceAnno) displayText(boat.getAbbrev(), boat.getVelocity(), this.map.convertGPS(boat.getCurrentPosition())); @@ -289,10 +289,7 @@ public class ResizableRaceCanvas extends Canvas { } } - private void addTrackPoint(BoatInRace boat) { - if (boat.addTrackPoint(boat.getCurrentPosition())) { - GraphCoordinate coordinate = this.map.convertGPS(boat.getCurrentPosition()); - } + private void drawTrackPoint(BoatInRace boat) { for (GPSCoordinate coordinate : boat.getTrack()) { GraphCoordinate scaledCoordinate = this.map.convertGPS(coordinate); gc.setFill(boat.getColour()); diff --git a/src/main/resources/scenes/racepane.fxml b/src/main/resources/scenes/racepane.fxml index f7e5c19f..9a0ebddb 100644 --- a/src/main/resources/scenes/racepane.fxml +++ b/src/main/resources/scenes/racepane.fxml @@ -71,12 +71,13 @@ - + - + + From 63591ad1ece845c3190f2f12124a979ff8a3eed1 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Fri, 7 Apr 2017 13:06:52 +1200 Subject: [PATCH 3/7] Added fixed opacity points of fading and modified race time to keep updating when the race is finished. Pair [jjg64, cbt24] Story [758] --- src/main/java/seng302/Model/BoatInRace.java | 12 +++++++++--- src/main/java/seng302/Model/Race.java | 14 ++++++++------ .../java/seng302/Model/ResizableRaceCanvas.java | 5 ++++- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index dd4f8133..248cd1ba 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -28,10 +28,9 @@ public class BoatInRace extends Boat { private StringProperty currentLegName; private boolean started = false; private StringProperty position; - private Queue track = new ConcurrentLinkedQueue(); 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); + } } diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index c29dccfc..42a928ef 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -209,15 +209,17 @@ public abstract class Race implements Runnable { } } - if (controller != null) controller.updateMap(startingBoats); +// if (controller != null) controller.updateMap(startingBoats); if (timerEnabled) updateTime(calcTimer()); - } else { - //Exit animation timer - updateTime(calcTimer()); - updateFPS(0); //race ended so fps = 0 - stop(); //exit animation timer } + controller.updateMap(startingBoats); +// } else { +// //Exit animation timer +// updateTime(calcTimer()); +// updateFPS(0); //race ended so fps = 0 +// stop(); //exit animation timer +// } fps++; if ((System.currentTimeMillis() - timeCurrent) > 1000) { updateFPS(fps); diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index 5da4bdc4..2d3b7b03 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -290,10 +290,13 @@ public class ResizableRaceCanvas extends Canvas { } private void drawTrackPoint(BoatInRace boat) { + int queuePos = 0; for (GPSCoordinate coordinate : boat.getTrack()) { GraphCoordinate scaledCoordinate = this.map.convertGPS(coordinate); - gc.setFill(boat.getColour()); + Color colour = boat.getTrackPointColour(queuePos); + gc.setFill(colour); gc.fillOval(scaledCoordinate.getX(), scaledCoordinate.getY(), 5, 5); + queuePos++; } } From 375202e7a021b1b6ca0faa27cbd8d9639c4d48ac Mon Sep 17 00:00:00 2001 From: cbt24 Date: Fri, 7 Apr 2017 14:20:20 +1200 Subject: [PATCH 4/7] Fades boat opacity every frame during and after race. - Added TrackPoint with time added and expiry to calculate opacity each frame - Modified drawTrackPoint to compute colour from TrackPoint alpha - Removed getTrackPoint from BoatInRace #pait[jjg64, cbt24] --- .../seng302/Controllers/RaceController.java | 11 -------- src/main/java/seng302/Model/BoatInRace.java | 17 ++++-------- .../seng302/Model/ResizableRaceCanvas.java | 13 +++++----- src/main/java/seng302/Model/TrackPoint.java | 26 +++++++++++++++++++ src/main/resources/scenes/racepane.fxml | 1 - 5 files changed, 37 insertions(+), 31 deletions(-) create mode 100644 src/main/java/seng302/Model/TrackPoint.java diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index 464a007b..768bef51 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -41,8 +41,6 @@ public class RaceController extends Controller { Label timer; @FXML Label FPS; - @FXML - ComboBox visibleTrackSelect; @FXML TableView boatInfoTable; @@ -168,8 +166,6 @@ public class RaceController extends Controller { startScreen.setVisible(false); ongoingRacePane.setVisible(true); - visibleTrackSelect.setItems(FXCollections.observableArrayList(startingBoats)); - initializeFPS(); initializeAnnotations(); @@ -195,13 +191,6 @@ public class RaceController extends Controller { FPS.setText((fps)); } - /** - * - */ - public void toggleTrackVisibility() { - visibleTrackSelect.getSelectionModel().getSelectedItem().setTrackVisible(true); - } - /** * Set up FPS display at bottom of screen */ diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index 248cd1ba..efb83767 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -1,6 +1,5 @@ package seng302.Model; -import javafx.beans.property.IntegerProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.scene.paint.Color; @@ -28,11 +27,12 @@ public class BoatInRace extends Boat { private StringProperty currentLegName; private boolean started = false; private StringProperty position; - private Queue track = new ConcurrentLinkedQueue(); + + private Queue track = new ConcurrentLinkedQueue(); private long nextValidTime = 0; private final int TRACK_POINT_TIME_INTERVAL = 1000; // every 1 seconds private final int TRACK_POINT_LIMIT = 10; - private boolean trackVisible = false; + private boolean trackVisible = true; /** * Constructor method. @@ -262,7 +262,7 @@ public class BoatInRace extends Boat { Boolean added = System.currentTimeMillis() >= nextValidTime; if (added && this.started) { nextValidTime = System.currentTimeMillis() + TRACK_POINT_TIME_INTERVAL; - track.add(coordinate); + track.add(new TrackPoint(coordinate, System.currentTimeMillis(), TRACK_POINT_LIMIT*TRACK_POINT_TIME_INTERVAL)); if (track.size() > TRACK_POINT_LIMIT) { track.remove(); } @@ -270,7 +270,7 @@ public class BoatInRace extends Boat { return added; } - public Queue getTrack() { + public Queue getTrack() { return track; } @@ -281,11 +281,4 @@ 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); - } } diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index 2d3b7b03..0b4d23d5 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -281,22 +281,21 @@ public class ResizableRaceCanvas extends Canvas { } else { displayBoat(boat, 0); } - drawTrackPoint(boat); if (raceAnno) displayText(boat.getAbbrev(), boat.getVelocity(), this.map.convertGPS(boat.getCurrentPosition())); + + if(boat.isTrackVisible()) drawTrackPoint(boat); } } } private void drawTrackPoint(BoatInRace boat) { - int queuePos = 0; - for (GPSCoordinate coordinate : boat.getTrack()) { - GraphCoordinate scaledCoordinate = this.map.convertGPS(coordinate); - Color colour = boat.getTrackPointColour(queuePos); - gc.setFill(colour); + for (TrackPoint point : boat.getTrack()) { + GraphCoordinate scaledCoordinate = this.map.convertGPS(point.getCoordinate()); + Color boatColour = boat.getColour(); + gc.setFill(new Color(boatColour.getRed(), boatColour.getGreen(), boatColour.getBlue(), point.getAlpha())); gc.fillOval(scaledCoordinate.getX(), scaledCoordinate.getY(), 5, 5); - queuePos++; } } diff --git a/src/main/java/seng302/Model/TrackPoint.java b/src/main/java/seng302/Model/TrackPoint.java new file mode 100644 index 00000000..0f0d0830 --- /dev/null +++ b/src/main/java/seng302/Model/TrackPoint.java @@ -0,0 +1,26 @@ +package seng302.Model; + +import seng302.GPSCoordinate; + +/** + * Created by cbt24 on 7/04/17. + */ +public class TrackPoint { + private GPSCoordinate coordinate; + private long timeAdded; + private long expiry; + + public TrackPoint(GPSCoordinate coordinate, long timeAdded, long expiry) { + this.coordinate = coordinate; + this.timeAdded = timeAdded; + this.expiry = expiry; + } + + public GPSCoordinate getCoordinate() { + return coordinate; + } + + public double getAlpha() { + return Double.max(0,1.0 - (double)(System.currentTimeMillis() - timeAdded)/expiry); + } +} diff --git a/src/main/resources/scenes/racepane.fxml b/src/main/resources/scenes/racepane.fxml index 9a0ebddb..8b65d5d7 100644 --- a/src/main/resources/scenes/racepane.fxml +++ b/src/main/resources/scenes/racepane.fxml @@ -77,7 +77,6 @@ - From 680c6fb9917cca4770132b53d59287e3d89d6181 Mon Sep 17 00:00:00 2001 From: cbt24 Date: Fri, 7 Apr 2017 15:18:57 +1200 Subject: [PATCH 5/7] Increased minimum opacity so actual track from start is visible. - No longer removes points from track #story[25] --- src/main/java/seng302/Model/BoatInRace.java | 5 +---- src/main/java/seng302/Model/TrackPoint.java | 4 +++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index efb83767..9317ae70 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -28,7 +28,7 @@ public class BoatInRace extends Boat { private boolean started = false; private StringProperty position; - private Queue track = new ConcurrentLinkedQueue(); + private Queue track = new ConcurrentLinkedQueue<>(); private long nextValidTime = 0; private final int TRACK_POINT_TIME_INTERVAL = 1000; // every 1 seconds private final int TRACK_POINT_LIMIT = 10; @@ -263,9 +263,6 @@ public class BoatInRace extends Boat { if (added && this.started) { nextValidTime = System.currentTimeMillis() + TRACK_POINT_TIME_INTERVAL; track.add(new TrackPoint(coordinate, System.currentTimeMillis(), TRACK_POINT_LIMIT*TRACK_POINT_TIME_INTERVAL)); - if (track.size() > TRACK_POINT_LIMIT) { - track.remove(); - } } return added; } diff --git a/src/main/java/seng302/Model/TrackPoint.java b/src/main/java/seng302/Model/TrackPoint.java index 0f0d0830..27ee25e2 100644 --- a/src/main/java/seng302/Model/TrackPoint.java +++ b/src/main/java/seng302/Model/TrackPoint.java @@ -9,11 +9,13 @@ public class TrackPoint { private GPSCoordinate coordinate; private long timeAdded; private long expiry; + private double minAlpha; public TrackPoint(GPSCoordinate coordinate, long timeAdded, long expiry) { this.coordinate = coordinate; this.timeAdded = timeAdded; this.expiry = expiry; + this.minAlpha = 0.1; } public GPSCoordinate getCoordinate() { @@ -21,6 +23,6 @@ public class TrackPoint { } public double getAlpha() { - return Double.max(0,1.0 - (double)(System.currentTimeMillis() - timeAdded)/expiry); + return Double.max(minAlpha,1.0 - (double)(System.currentTimeMillis() - timeAdded)/expiry); } } From 56d51ceaa988c253c97bb30805cb043649029747 Mon Sep 17 00:00:00 2001 From: Joseph Date: Tue, 18 Apr 2017 09:07:02 +1200 Subject: [PATCH 6/7] Track point is now removed after its expiry and fades after the boat has stopped Story [758] --- src/main/java/seng302/Model/BoatInRace.java | 8 ++++++-- src/main/java/seng302/Model/TrackPoint.java | 9 ++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index 9317ae70..4d86b201 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -260,9 +260,13 @@ public class BoatInRace extends Boat { public boolean addTrackPoint(GPSCoordinate coordinate) { Boolean added = System.currentTimeMillis() >= nextValidTime; + long currentTime = System.currentTimeMillis(); if (added && this.started) { - nextValidTime = System.currentTimeMillis() + TRACK_POINT_TIME_INTERVAL; - track.add(new TrackPoint(coordinate, System.currentTimeMillis(), TRACK_POINT_LIMIT*TRACK_POINT_TIME_INTERVAL)); + nextValidTime = currentTime + TRACK_POINT_TIME_INTERVAL; + track.add(new TrackPoint(coordinate, currentTime, TRACK_POINT_LIMIT * TRACK_POINT_TIME_INTERVAL)); + } + if (track.size() > 0 && track.element().getTimeAdded() + TRACK_POINT_LIMIT * TRACK_POINT_TIME_INTERVAL <= currentTime) { + track.remove(); } return added; } diff --git a/src/main/java/seng302/Model/TrackPoint.java b/src/main/java/seng302/Model/TrackPoint.java index 27ee25e2..fe898417 100644 --- a/src/main/java/seng302/Model/TrackPoint.java +++ b/src/main/java/seng302/Model/TrackPoint.java @@ -23,6 +23,13 @@ public class TrackPoint { } public double getAlpha() { - return Double.max(minAlpha,1.0 - (double)(System.currentTimeMillis() - timeAdded)/expiry); + if (System.currentTimeMillis() >= timeAdded + expiry) { + return 0; + } + return Double.max(minAlpha,1.0 - (double)(System.currentTimeMillis() - timeAdded) / expiry); + } + + public long getTimeAdded() { + return timeAdded; } } From 2945c8446e164c0e54abe821a4b6f42a9096a129 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Wed, 19 Apr 2017 11:59:09 +1200 Subject: [PATCH 7/7] Points now last whole race with a lower opacity #Story[25] --- src/main/java/seng302/Model/BoatInRace.java | 3 --- src/main/java/seng302/Model/TrackPoint.java | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index 4d86b201..65a998c6 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -265,9 +265,6 @@ public class BoatInRace extends Boat { nextValidTime = currentTime + TRACK_POINT_TIME_INTERVAL; track.add(new TrackPoint(coordinate, currentTime, TRACK_POINT_LIMIT * TRACK_POINT_TIME_INTERVAL)); } - if (track.size() > 0 && track.element().getTimeAdded() + TRACK_POINT_LIMIT * TRACK_POINT_TIME_INTERVAL <= currentTime) { - track.remove(); - } return added; } diff --git a/src/main/java/seng302/Model/TrackPoint.java b/src/main/java/seng302/Model/TrackPoint.java index fe898417..6a28bd22 100644 --- a/src/main/java/seng302/Model/TrackPoint.java +++ b/src/main/java/seng302/Model/TrackPoint.java @@ -23,9 +23,6 @@ public class TrackPoint { } public double getAlpha() { - if (System.currentTimeMillis() >= timeAdded + expiry) { - return 0; - } return Double.max(minAlpha,1.0 - (double)(System.currentTimeMillis() - timeAdded) / expiry); }