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:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user