|
|
|
|
@ -3,7 +3,6 @@ package visualiser.Controllers;
|
|
|
|
|
import com.interactivemesh.jfx.importer.stl.StlMeshImporter;
|
|
|
|
|
import javafx.animation.AnimationTimer;
|
|
|
|
|
import javafx.application.Platform;
|
|
|
|
|
import javafx.beans.value.ChangeListener;
|
|
|
|
|
import javafx.collections.FXCollections;
|
|
|
|
|
import javafx.collections.ListChangeListener;
|
|
|
|
|
import javafx.collections.ObservableList;
|
|
|
|
|
@ -13,7 +12,6 @@ import javafx.scene.AmbientLight;
|
|
|
|
|
import javafx.scene.PointLight;
|
|
|
|
|
import javafx.scene.chart.LineChart;
|
|
|
|
|
import javafx.scene.control.*;
|
|
|
|
|
import javafx.scene.effect.Light;
|
|
|
|
|
import javafx.scene.input.KeyCode;
|
|
|
|
|
import javafx.scene.input.KeyEvent;
|
|
|
|
|
import javafx.scene.layout.AnchorPane;
|
|
|
|
|
@ -22,7 +20,8 @@ import javafx.scene.layout.StackPane;
|
|
|
|
|
import javafx.scene.paint.Color;
|
|
|
|
|
import javafx.scene.paint.Material;
|
|
|
|
|
import javafx.scene.paint.PhongMaterial;
|
|
|
|
|
import javafx.scene.shape.*;
|
|
|
|
|
import javafx.scene.shape.MeshView;
|
|
|
|
|
import javafx.scene.shape.Shape3D;
|
|
|
|
|
import javafx.scene.transform.Translate;
|
|
|
|
|
import javafx.util.Callback;
|
|
|
|
|
import network.Messages.Enums.RaceStatusEnum;
|
|
|
|
|
@ -33,11 +32,8 @@ import visualiser.app.App;
|
|
|
|
|
import visualiser.enums.TutorialState;
|
|
|
|
|
import visualiser.gameController.ControllerClient;
|
|
|
|
|
import visualiser.gameController.Keys.ControlKey;
|
|
|
|
|
import visualiser.layout.*;
|
|
|
|
|
import visualiser.model.*;
|
|
|
|
|
import visualiser.gameController.Keys.KeyFactory;
|
|
|
|
|
import visualiser.layout.Subject3D;
|
|
|
|
|
import visualiser.layout.View3D;
|
|
|
|
|
import visualiser.layout.*;
|
|
|
|
|
import visualiser.model.Sparkline;
|
|
|
|
|
import visualiser.model.VisualiserBoat;
|
|
|
|
|
import visualiser.model.VisualiserRaceEvent;
|
|
|
|
|
@ -82,7 +78,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 AnchorPane newRacePane;
|
|
|
|
|
private @FXML SplitPane racePane;
|
|
|
|
|
private @FXML StackPane arrowPane;
|
|
|
|
|
private @FXML Label timer;
|
|
|
|
|
private @FXML Label FPS;
|
|
|
|
|
@ -96,6 +92,7 @@ public class RaceViewController extends Controller {
|
|
|
|
|
private @FXML LineChart<Number, Number> sparklineChart;
|
|
|
|
|
private @FXML Label tutorialText;
|
|
|
|
|
private @FXML AnchorPane infoWrapper;
|
|
|
|
|
private @FXML AnchorPane lineChartWrapper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Displays a specified race.
|
|
|
|
|
@ -143,7 +140,7 @@ public class RaceViewController extends Controller {
|
|
|
|
|
private AnimationTimer arrowToNextMark;
|
|
|
|
|
|
|
|
|
|
private void initKeypressHandler() {
|
|
|
|
|
newRacePane.addEventFilter(KeyEvent.KEY_PRESSED, event -> {
|
|
|
|
|
racePane.addEventFilter(KeyEvent.KEY_PRESSED, event -> {
|
|
|
|
|
String codeString = event.getCode().toString();
|
|
|
|
|
|
|
|
|
|
// tab key
|
|
|
|
|
@ -353,7 +350,7 @@ public class RaceViewController extends Controller {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Bind zooming to keypress (Z/X default)
|
|
|
|
|
newRacePane.addEventFilter(KeyEvent.KEY_PRESSED, e -> {
|
|
|
|
|
racePane.addEventFilter(KeyEvent.KEY_PRESSED, e -> {
|
|
|
|
|
ControlKey key = keyFactory.getKey(e.getCode().toString());
|
|
|
|
|
if(key != null) {
|
|
|
|
|
switch (key.toString()) {
|
|
|
|
|
|