From 75c15d492e8c7ca247eb10c212d72df2c2fcb37a Mon Sep 17 00:00:00 2001 From: fjc40 Date: Fri, 15 Sep 2017 11:24:55 +1200 Subject: [PATCH 01/55] There was a null pointer exception when finishing the race, as the finish leg doesn't have compound marks. --- .../visualiser/Controllers/RaceViewController.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index c2153c1f..e04c5290 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -429,12 +429,14 @@ public class RaceViewController extends Controller { @Override public void handle(long now) { CompoundMark target = boat.getCurrentLeg().getEndCompoundMark(); - Bearing headingToMark = GPSCoordinate.calculateBearing(boat.getPosition(), target.getAverageGPSCoordinate()); + if (target != null) { + Bearing headingToMark = GPSCoordinate.calculateBearing(boat.getPosition(), target.getAverageGPSCoordinate()); - nextMarkArrow.setX(view3D.getPivot().getX()); - nextMarkArrow.setY(view3D.getPivot().getY()); - nextMarkArrow.setZ(view3D.getPivot().getZ() + 15); - nextMarkArrow.setHeading(headingToMark.degrees()); + nextMarkArrow.setX(view3D.getPivot().getX()); + nextMarkArrow.setY(view3D.getPivot().getY()); + nextMarkArrow.setZ(view3D.getPivot().getZ() + 15); + nextMarkArrow.setHeading(headingToMark.degrees()); + } } }; arrowToNextMark.start(); From 731be68831b3c147244af9a7ac3cf247b44b4dea Mon Sep 17 00:00:00 2001 From: hba56 Date: Mon, 18 Sep 2017 10:22:01 +1200 Subject: [PATCH 02/55] test for a minimap --- .../Controllers/RaceViewController.java | 31 +++++++-- .../visualiser/scenes/newRaceView.fxml | 67 ++++++++++++++++++- 2 files changed, 93 insertions(+), 5 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index c2153c1f..fd5fa10b 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -34,10 +34,7 @@ import visualiser.gameController.ControllerClient; import visualiser.gameController.Keys.ControlKey; import visualiser.gameController.Keys.KeyFactory; import visualiser.layout.*; -import visualiser.model.Sparkline; -import visualiser.model.VisualiserBoat; -import visualiser.model.VisualiserRaceEvent; -import visualiser.model.VisualiserRaceState; +import visualiser.model.*; import visualiser.utils.GPSConverter; import java.io.IOException; @@ -65,6 +62,7 @@ public class RaceViewController extends Controller { private String keyToPress; private View3D view3D; private ObservableList viewSubjects; + private ResizableRaceCanvas raceCanvas; /** * Arrow pointing to next mark in third person @@ -78,6 +76,7 @@ public class RaceViewController extends Controller { // note: it says it's not used but it is! do not remove :) private @FXML ArrowController arrowController; private @FXML GridPane canvasBase; + private @FXML GridPane canvasBase1; private @FXML SplitPane racePane; private @FXML StackPane arrowPane; private @FXML Label timer; @@ -111,6 +110,7 @@ public class RaceViewController extends Controller { tutorialCheck(); initKeypressHandler(); initialiseRaceVisuals(); + initialiseRaceCanvas(); } /** @@ -608,6 +608,8 @@ public class RaceViewController extends Controller { e.printStackTrace(); } } else { + raceCanvas.drawRace(); + boatInfoTable.sort(); } @@ -735,4 +737,25 @@ public class RaceViewController extends Controller { } } + /** + * Initialises the map + */ + private void initialiseRaceCanvas() { + + //Create canvas. + raceCanvas = new ResizableRaceCanvas(raceState); + + //Set properties. + raceCanvas.setMouseTransparent(true); + raceCanvas.widthProperty().bind(canvasBase1.widthProperty()); + raceCanvas.heightProperty().bind(canvasBase1.heightProperty()); + + //Draw it and show it. + raceCanvas.draw(); + raceCanvas.setVisible(true); + + //Add to scene. + canvasBase1.getChildren().add(0, raceCanvas); + } + } diff --git a/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml b/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml index 76195416..0ace7376 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml @@ -1,5 +1,11 @@ + + + + + + @@ -22,7 +28,7 @@ - + @@ -103,6 +109,65 @@