Merge remote-tracking branch 'remotes/origin/sprint4_master' into story36

# Conflicts:
#	visualiser/src/main/java/seng302/Controllers/RaceController.java
#	visualiser/src/main/java/seng302/Model/ResizableRaceCanvas.java
#story[878]
This commit is contained in:
hba56
2017-05-23 13:19:11 +12:00
14 changed files with 363 additions and 295 deletions
@@ -1,6 +1,8 @@
package seng302.Model;
import javafx.scene.Node;
import javafx.scene.layout.Pane;
import javafx.collections.ObservableList;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
@@ -35,6 +37,7 @@ public class ResizableRaceCanvas extends ResizableCanvas {
private final List<Marker> markers;
private final RaceDataSource raceData;
private Map<Integer, Color> boatColours = new HashMap<>();
private Node arrow;
private RaceClock raceClock;
@@ -147,6 +150,13 @@ public class ResizableRaceCanvas extends ResizableCanvas {
gc.restore();
}
private void displayFancyArrow(GraphCoordinate coordinate, double angle) {
angle = angle % 360;
if (arrow != null && arrow.getRotate() != angle) {
arrow.setRotate(angle);
}
}
/**
* Rotates things on the canvas Note: this must be called in between gc.save() and gc.restore() else they will rotate everything
*
@@ -247,9 +257,9 @@ public class ResizableRaceCanvas extends ResizableCanvas {
//display wind direction arrow - specify origin point and angle - angle now set to random angle
if (raceData instanceof StreamedCourse) {
displayArrow(new GraphCoordinate((int) getWidth() - 40, 40), ((StreamedCourse) raceData).getWindDirection());
displayFancyArrow(new GraphCoordinate((int) getWidth() - 40, 40), ((StreamedCourse) raceData).getWindDirection());
} else {
displayArrow(new GraphCoordinate((int) getWidth() - 40, 40), 150);
displayFancyArrow(new GraphCoordinate((int) getWidth() - 40, 40), 150);
}
}
@@ -355,6 +365,10 @@ public class ResizableRaceCanvas extends ResizableCanvas {
));
}
public void setArrow(Node arrow) {
this.arrow = arrow;
}
public void setRaceClock(RaceClock raceClock) {
this.raceClock = raceClock;
}