Merge branch 'master' into storyD-3D

# Conflicts:
#	.gitignore
#	racevisionGame/src/main/java/mock/model/RaceServer.java
#	racevisionGame/src/main/java/mock/model/collider/Collider.java
#	racevisionGame/src/main/java/mock/xml/RaceXMLCreator.java
#	racevisionGame/src/main/java/shared/model/Boat.java
#	racevisionGame/src/main/java/shared/model/Mark.java
#	racevisionGame/src/main/java/visualiser/Controllers/HostController.java
#	racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java
#	racevisionGame/src/main/java/visualiser/Controllers/MainController.java
#	racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java
#	racevisionGame/src/main/java/visualiser/Controllers/TitleController.java
#	racevisionGame/src/main/java/visualiser/layout/Plane3D.java
#	racevisionGame/src/main/java/visualiser/layout/SeaSurface.java
#	racevisionGame/src/main/java/visualiser/layout/View3D.java
#	racevisionGame/src/main/java/visualiser/utils/PerlinNoiseGenerator.java
#	racevisionGame/src/main/resources/visualiser/scenes/title.fxml
This commit is contained in:
Joseph Gardner
2017-09-14 16:34:28 +12:00
107 changed files with 3366 additions and 2018 deletions
@@ -15,7 +15,7 @@ import java.util.Map;
* Class that processes user selected annotation visibility options to
* display the requested information on the
* {@link ResizableRaceCanvas}. These are displayed
* via the {@link visualiser.Controllers.RaceController}. <br>
* via the {@link visualiser.Controllers.RaceViewController}. <br>
* Annotation options for a {@link VisualiserBoat} include: its name,
* abbreviation, speed, the time since it passed the last
* {@link shared.model.Mark}, estimated time to the next marker,
@@ -18,7 +18,7 @@ import java.util.List;
/**
* This JavaFX Canvas is used to update and display details for a
* {@link RaceMap} via the
* {@link visualiser.Controllers.RaceController}.<br>
* {@link visualiser.Controllers.RaceViewController}.<br>
* It fills it's parent and cannot be downsized. <br>
* Details displayed include:
* {@link VisualiserBoat}s (and their
@@ -325,18 +325,6 @@ public class ResizableRaceCanvas extends ResizableCanvas {
}
/*
//If the race hasn't started, we set the time since last mark to the current time, to ensure we don't start counting until the race actually starts.
if ((boat.getStatus() != BoatStatusEnum.RACING) && (boat.getStatus() == BoatStatusEnum.FINISHED)) {
boat.setTimeAtLastMark(visualiserRace.getVisualiserRaceState().getRaceClock().getCurrentTime());
}
*/
}
/**
@@ -504,6 +492,52 @@ public class ResizableRaceCanvas extends ResizableCanvas {
}
private void drawRoundingLines() {
//ugly hack
//rounding lines
//Boat is within an acceptable distance from the mark.
VisualiserBoat boat = null;
for (VisualiserBoat visualiserBoat : new ArrayList<>(raceState.getBoats())) {
if (visualiserBoat.isClientBoat()) {
boat = visualiserBoat;
}
}
if (boat == null) {
return;
}
Leg currentLeg = boat.getCurrentLeg();
MarkRoundingData roundingData = raceState.getMarkRoundingSequence().getRoundingData(currentLeg);
//To screen coords.
GraphCoordinate legEnd = map.convertGPS(roundingData.getMarkToRound().getPosition());
GraphCoordinate round1 = map.convertGPS(roundingData.getRoundCheck1());
GraphCoordinate round2 = map.convertGPS(roundingData.getRoundCheck2());
gc.strokeLine(
legEnd.getX(),
legEnd.getY(),
round1.getX(),
round1.getY() );
gc.strokeLine(
legEnd.getX(),
legEnd.getY(),
round2.getX(),
round2.getY() );
drawCircle(round1, 12, Color.ORANGE);
drawCircle(round2, 12, Color.GREEN);
}
/**
* Draws all of the {@link Mark}s on the canvas.
@@ -513,6 +547,7 @@ public class ResizableRaceCanvas extends ResizableCanvas {
for (Mark mark : new ArrayList<>(raceState.getMarks())) {
drawMark(mark);
}
}
@@ -621,6 +656,9 @@ public class ResizableRaceCanvas extends ResizableCanvas {
//Marks.
drawMarks();
//TEMP
drawRoundingLines();
}
/**
@@ -655,7 +693,7 @@ public class ResizableRaceCanvas extends ResizableCanvas {
//finds the direction of the current leg as a bearing
startDirectionLinePoint = legStartPoint;
GPSCoordinate tempEndDirectionLinePoint = legs.get(index).getEndCompoundMark().getAverageGPSCoordinate();
GPSCoordinate tempEndDirectionLinePoint = legs.get(index).getEndCompoundMark().getMark1Position();
bearingOfDirectionLine = GPSCoordinate.calculateBearing(startDirectionLinePoint, tempEndDirectionLinePoint);
@@ -826,4 +864,4 @@ public class ResizableRaceCanvas extends ResizableCanvas {
}
}
@@ -21,7 +21,7 @@ import java.util.Map;
* placing position as they complete each {@link shared.model.Leg} by
* passing a course {@link shared.model.Mark}. <br>
* This sparkline is displayed using the
* {@link visualiser.Controllers.RaceController}.
* {@link visualiser.Controllers.RaceViewController}.
*/
public class Sparkline {
@@ -8,8 +8,8 @@ import shared.model.GPSCoordinate;
* {@link VisualiserBoat Boat} has travelled in a race. <br>
* TrackPoints are displayed on a
* {@link ResizableRaceCanvas}, via the
* {@link visualiser.Controllers.RaceController}. <br>
* Track points can be made visible or hidden via the RaceController's
* {@link visualiser.Controllers.RaceViewController}. <br>
* Track points can be made visible or hidden via the RaceViewController's
* {@link Annotations}.
*/
public class TrackPoint {
@@ -17,7 +17,7 @@ import java.util.List;
* This class is used to represent and store information about a boat which may
* travel around in a race. It is displayed on the
* {@link ResizableRaceCanvas ResizableRaceCanvas} via the
* {@link visualiser.Controllers.RaceController RaceController}.
* {@link visualiser.Controllers.RaceViewController RaceViewController}.
*/
public class VisualiserBoat extends Boat {
@@ -66,7 +66,7 @@ public class VisualiserRaceEvent {
this.serverConnection = new ServerConnection(socket, visualiserRaceState, raceCommands, requestType);
this.serverConnectionThread = new Thread(serverConnection, "StartController.enterLobby()->serverConnection thread " + serverConnection);
this.serverConnectionThread = new Thread(serverConnection, "RaceStartController.enterLobby()->serverConnection thread " + serverConnection);
this.serverConnectionThread.start();
@@ -112,8 +112,8 @@ public class VisualiserRaceEvent {
* Terminates the server connection and race service.
*/
public void terminate() {
this.serverConnectionThread.interrupt();
this.visualiserRaceServiceThread.interrupt();
this.serverConnectionThread.interrupt();
serverConnection.terminate();
}
}