Merge branch 'master' into story1301-start
@@ -68,11 +68,11 @@ public class RaceClock {
|
|||||||
/**
|
/**
|
||||||
* Format string used for duration before it has started.
|
* Format string used for duration before it has started.
|
||||||
*/
|
*/
|
||||||
private String durationBeforeStartFormat = "Starting in: %02d:%02d:%02d";
|
private String durationBeforeStartFormat = "%02d:%02d:%02d";
|
||||||
/**
|
/**
|
||||||
* Format string used for duration once the race has started.
|
* Format string used for duration once the race has started.
|
||||||
*/
|
*/
|
||||||
private String durationAfterStartFormat = "Time: %02d:%02d:%02d";
|
private String durationAfterStartFormat = "%02d:%02d:%02d";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -67,9 +67,9 @@ public class NextMarkController {
|
|||||||
|
|
||||||
Shape3D arrow = Assets3D.loadX3d(arrowPath);
|
Shape3D arrow = Assets3D.loadX3d(arrowPath);
|
||||||
|
|
||||||
arrow.setScaleX(25);
|
arrow.setScaleX(15);
|
||||||
arrow.setScaleY(25);
|
arrow.setScaleY(25);
|
||||||
arrow.setScaleZ(100);
|
arrow.setScaleZ(50);
|
||||||
arrow.setRotationAxis(new Point3D(1,0,0));
|
arrow.setRotationAxis(new Point3D(1,0,0));
|
||||||
|
|
||||||
arrowStackPane3d.getChildren().add(arrow);
|
arrowStackPane3d.getChildren().add(arrow);
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package visualiser.Controllers;
|
package visualiser.Controllers;
|
||||||
|
|
||||||
import com.interactivemesh.jfx.importer.stl.StlMeshImporter;
|
import com.interactivemesh.jfx.importer.stl.StlMeshImporter;
|
||||||
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
|
|
||||||
import eu.hansolo.medusa.*;
|
import eu.hansolo.medusa.*;
|
||||||
import eu.hansolo.medusa.events.UpdateEvent;
|
|
||||||
import javafx.animation.AnimationTimer;
|
import javafx.animation.AnimationTimer;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
@@ -95,6 +93,7 @@ public class RaceViewController extends Controller {
|
|||||||
private @FXML NextMarkController nextMarkController;
|
private @FXML NextMarkController nextMarkController;
|
||||||
private @FXML GridPane canvasBase;
|
private @FXML GridPane canvasBase;
|
||||||
private @FXML GridPane canvasBase1;
|
private @FXML GridPane canvasBase1;
|
||||||
|
private @FXML GridPane canvasBase2;
|
||||||
private @FXML SplitPane racePane;
|
private @FXML SplitPane racePane;
|
||||||
private @FXML StackPane arrowPane;
|
private @FXML StackPane arrowPane;
|
||||||
private @FXML Pane nextMarkPane;
|
private @FXML Pane nextMarkPane;
|
||||||
@@ -136,9 +135,9 @@ public class RaceViewController extends Controller {
|
|||||||
deathPane.setVisible(false);
|
deathPane.setVisible(false);
|
||||||
tutorialCheck();
|
tutorialCheck();
|
||||||
initKeypressHandler();
|
initKeypressHandler();
|
||||||
initialiseRaceVisuals();
|
|
||||||
initialiseRaceCanvas();
|
|
||||||
healthLoop();
|
healthLoop();
|
||||||
|
initialiseRaceVisuals();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -292,7 +291,7 @@ public class RaceViewController extends Controller {
|
|||||||
//Create a gauge with a frame and background that utilizes a Medusa gauge
|
//Create a gauge with a frame and background that utilizes a Medusa gauge
|
||||||
fGauge = FGaugeBuilder
|
fGauge = FGaugeBuilder
|
||||||
.create()
|
.create()
|
||||||
.prefSize(200, 200)
|
.prefSize(190, 190)
|
||||||
.gauge(gauge)
|
.gauge(gauge)
|
||||||
.gaugeDesign(GaugeDesign.METAL)
|
.gaugeDesign(GaugeDesign.METAL)
|
||||||
.gaugeBackground(GaugeDesign.GaugeBackground.CARBON)
|
.gaugeBackground(GaugeDesign.GaugeBackground.CARBON)
|
||||||
@@ -313,12 +312,11 @@ public class RaceViewController extends Controller {
|
|||||||
initialiseHealthPane();
|
initialiseHealthPane();
|
||||||
initialiseRaceClock();
|
initialiseRaceClock();
|
||||||
initialiseSpeedometer();
|
initialiseSpeedometer();
|
||||||
|
initialiseRaceCanvas();
|
||||||
raceTimer(); // start the timer
|
raceTimer(); // start the timer
|
||||||
nextMarkPane.toFront();
|
//nextMarkPane.toFront();
|
||||||
speedometerLoop();
|
speedometerLoop();
|
||||||
new Sparkline(this.raceState, this.sparklineChart);
|
new Sparkline(this.raceState, this.sparklineChart);
|
||||||
timeZone.setText(this.raceState.getRaceClock().getTimeZone());
|
|
||||||
arrowController.setWindProperty(this.raceState.windProperty());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1080,22 +1078,23 @@ public class RaceViewController extends Controller {
|
|||||||
|
|
||||||
private void bigMap(){
|
private void bigMap(){
|
||||||
if (mapToggle){
|
if (mapToggle){
|
||||||
raceCanvas.widthProperty().bind(canvasBase.widthProperty());
|
raceCanvas.widthProperty().bind(canvasBase2.widthProperty());
|
||||||
raceCanvas.heightProperty().bind(canvasBase.heightProperty());
|
raceCanvas.heightProperty().bind(canvasBase2.heightProperty());
|
||||||
|
|
||||||
raceCanvas.setFullScreen(true);
|
raceCanvas.setFullScreen(true);
|
||||||
raceCanvas.setOpacity(0.6);
|
raceCanvas.setOpacity(0.6);
|
||||||
|
|
||||||
canvasBase1.getChildren().remove(raceCanvas);
|
canvasBase1.getChildren().remove(raceCanvas);
|
||||||
canvasBase.getChildren().add(1, raceCanvas);
|
canvasBase2.getChildren().add(0, raceCanvas);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
raceCanvas.widthProperty().bind(canvasBase1.widthProperty());
|
raceCanvas.widthProperty().bind(canvasBase1.widthProperty());
|
||||||
raceCanvas.heightProperty().bind(canvasBase1.heightProperty());
|
raceCanvas.heightProperty().bind(canvasBase1.heightProperty());
|
||||||
|
|
||||||
raceCanvas.setFullScreen(false);
|
raceCanvas.setFullScreen(false);
|
||||||
|
raceCanvas.setOpacity(1);
|
||||||
|
|
||||||
canvasBase.getChildren().remove(raceCanvas);
|
canvasBase2.getChildren().remove(raceCanvas);
|
||||||
canvasBase1.getChildren().add(0, raceCanvas);
|
canvasBase1.getChildren().add(0, raceCanvas);
|
||||||
}
|
}
|
||||||
mapToggle = !mapToggle;
|
mapToggle = !mapToggle;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class WindCompass extends View3D {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public WindCompass(View3D view3D, Property<Wind> wind){
|
public WindCompass(View3D view3D, Property<Wind> wind){
|
||||||
super();
|
super(false);
|
||||||
this.wind = wind;
|
this.wind = wind;
|
||||||
this.view3D = view3D;
|
this.view3D = view3D;
|
||||||
this.followView3D.start();
|
this.followView3D.start();
|
||||||
|
|||||||
@@ -647,7 +647,7 @@ public class ResizableRaceCanvas extends ResizableCanvas {
|
|||||||
|
|
||||||
//rounding lines
|
//rounding lines
|
||||||
if (isFullScreen){
|
if (isFullScreen){
|
||||||
drawRoundingLines();
|
// drawRoundingLines();
|
||||||
drawRaceLine();
|
drawRaceLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -794,19 +794,12 @@ public class ResizableRaceCanvas extends ResizableCanvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Color getLineColor(Leg leg) {
|
private Color getLineColor(Leg leg) {
|
||||||
for (VisualiserBoat boat : raceState.getBoats()) {
|
if(ThisBoat.getInstance().getLegNumber() == leg.getLegNumber()){
|
||||||
if (boat.isClientBoat()) {
|
|
||||||
if (boat.getCurrentLeg() == leg) {
|
|
||||||
return Color.ORANGE;
|
return Color.ORANGE;
|
||||||
} else {
|
|
||||||
return Color.MEDIUMAQUAMARINE;
|
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
return Color.MEDIUMAQUAMARINE;
|
return Color.MEDIUMAQUAMARINE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Color.MEDIUMAQUAMARINE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void drawArrowHead(GPSCoordinate start, GPSCoordinate end){
|
private void drawArrowHead(GPSCoordinate start, GPSCoordinate end){
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,14 @@ public class ThisBoat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getLegNumber(){
|
||||||
|
if(this.boat != null){
|
||||||
|
return this.boat.getCurrentLeg().getLegNumber();
|
||||||
|
}else{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void setBoat(VisualiserBoat boat) {
|
public void setBoat(VisualiserBoat boat) {
|
||||||
this.boat = boat;
|
this.boat = boat;
|
||||||
}
|
}
|
||||||
|
|||||||
|
After Width: | Height: | Size: 910 KiB |
|
After Width: | Height: | Size: 549 KiB |
|
After Width: | Height: | Size: 911 KiB |
|
After Width: | Height: | Size: 682 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
@@ -1,49 +1,64 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
|
||||||
<?import javafx.geometry.Insets?>
|
<?import javafx.geometry.Insets?>
|
||||||
<?import javafx.scene.control.Label?>
|
<?import javafx.scene.control.Label?>
|
||||||
<?import javafx.scene.image.Image?>
|
<?import javafx.scene.image.Image?>
|
||||||
<?import javafx.scene.image.ImageView?>
|
<?import javafx.scene.image.ImageView?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
|
<?import javafx.scene.layout.GridPane?>
|
||||||
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
|
<?import javafx.scene.layout.StackPane?>
|
||||||
<?import javafx.scene.shape.Circle?>
|
<?import javafx.scene.shape.Circle?>
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
<GridPane fx:id="arrowGridPane" maxHeight="-Infinity" maxWidth="-Infinity" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.ArrowController">
|
|
||||||
|
<GridPane fx:id="arrowGridPane" maxHeight="-Infinity" maxWidth="-Infinity" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.ArrowController">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="20.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="60.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Pane fx:id="compass" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="125.0" prefWidth="125.0">
|
<GridPane GridPane.rowIndex="1">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints minHeight="50.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<StackPane fx:id="arrowStackPane" prefHeight="125.0" prefWidth="125.0">
|
<StackPane fx:id="arrowStackPane" prefHeight="50.0" prefWidth="50.0">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fx:id="arrowImage" fitHeight="75.0" fitWidth="75.0">
|
<ImageView fx:id="arrowImage" fitHeight="30.0" fitWidth="30.0" StackPane.alignment="CENTER">
|
||||||
<image>
|
<image>
|
||||||
<Image url="@../images/arrow.png" />
|
<Image url="@../images/arrow.png" />
|
||||||
</image>
|
</image>
|
||||||
</ImageView>
|
</ImageView>
|
||||||
|
<Circle fx:id="circle" fill="#1f93ff00" radius="30.0" stroke="BLACK" strokeType="INSIDE" strokeWidth="3.0" StackPane.alignment="TOP_LEFT" />
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
<Circle fx:id="circle" fill="#1f93ff00" layoutX="63.0" layoutY="63.0" radius="60.0" stroke="BLACK" strokeType="INSIDE" strokeWidth="3.0" />
|
<Label fx:id="northLabel" text="N" GridPane.halignment="CENTER" GridPane.valignment="TOP">
|
||||||
<Label fx:id="northLabel" layoutX="55.0" layoutY="1.0" text="N">
|
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Bold" size="18.0" />
|
<Font name="System Bold" size="10.0" />
|
||||||
</font>
|
</font>
|
||||||
|
<padding>
|
||||||
|
<Insets top="5.0" />
|
||||||
|
</padding>
|
||||||
</Label>
|
</Label>
|
||||||
<Label fx:id="windLabel" layoutX="42.0" layoutY="95.0" text="Wind">
|
<Label fx:id="windLabel" text="Wind" GridPane.halignment="CENTER" GridPane.valignment="BOTTOM">
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Bold" size="16.0" />
|
<Font name="System Bold" size="9.0" />
|
||||||
</font>
|
</font>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" />
|
||||||
|
</padding>
|
||||||
</Label>
|
</Label>
|
||||||
</children>
|
</children>
|
||||||
</Pane>
|
</GridPane>
|
||||||
<Label fx:id="speedLabel" text="SPEED" GridPane.halignment="CENTER" GridPane.hgrow="NEVER" GridPane.rowIndex="1">
|
<Label fx:id="speedLabel" text="SPEED" GridPane.halignment="CENTER" GridPane.hgrow="NEVER" GridPane.valignment="TOP">
|
||||||
<font>
|
<font>
|
||||||
<Font name="System Bold" size="16.0" />
|
<Font name="System Bold" size="10.0" />
|
||||||
</font>
|
</font>
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets />
|
<Insets />
|
||||||
|
|||||||
@@ -1,16 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import javafx.geometry.*?>
|
||||||
|
<?import javafx.scene.chart.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
<?import javafx.scene.image.*?>
|
<?import javafx.scene.image.*?>
|
||||||
<?import java.lang.*?>
|
|
||||||
<?import javafx.geometry.*?>
|
|
||||||
<?import javafx.scene.chart.*?>
|
|
||||||
<?import javafx.scene.control.*?>
|
|
||||||
<?import javafx.scene.layout.*?>
|
|
||||||
<?import javafx.scene.text.*?>
|
|
||||||
<?import java.lang.*?>
|
|
||||||
<?import javafx.geometry.*?>
|
|
||||||
<?import javafx.scene.chart.*?>
|
|
||||||
<?import javafx.scene.control.*?>
|
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
<?import javafx.scene.text.*?>
|
<?import javafx.scene.text.*?>
|
||||||
<?import javafx.geometry.Insets?>
|
<?import javafx.geometry.Insets?>
|
||||||
@@ -27,13 +21,14 @@
|
|||||||
<?import javafx.scene.control.TableView?>
|
<?import javafx.scene.control.TableView?>
|
||||||
<?import javafx.scene.control.TitledPane?>
|
<?import javafx.scene.control.TitledPane?>
|
||||||
<?import javafx.scene.control.ToggleGroup?>
|
<?import javafx.scene.control.ToggleGroup?>
|
||||||
|
<?import javafx.scene.image.Image?>
|
||||||
|
<?import javafx.scene.image.ImageView?>
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
<?import javafx.scene.layout.GridPane?>
|
<?import javafx.scene.layout.GridPane?>
|
||||||
<?import javafx.scene.layout.Pane?>
|
<?import javafx.scene.layout.Pane?>
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
<?import javafx.scene.layout.StackPane?>
|
<?import javafx.scene.layout.StackPane?>
|
||||||
<?import javafx.scene.layout.VBox?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
<SplitPane fx:id="racePane" prefHeight="431.0" prefWidth="610.0" visible="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.RaceViewController">
|
<SplitPane fx:id="racePane" prefHeight="431.0" prefWidth="610.0" visible="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.RaceViewController">
|
||||||
@@ -49,13 +44,6 @@
|
|||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
|
||||||
<StackPane fx:id="nextMarkPane" alignment="TOP_CENTER" mouseTransparent="true" prefHeight="150.0" prefWidth="150.0" snapToPixel="false">
|
|
||||||
<children>
|
|
||||||
<fx:include fx:id="nextMark" source="nextMark.fxml" />
|
|
||||||
</children>
|
|
||||||
</StackPane>
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<Pane prefHeight="200.0" prefWidth="400.0" visible="false">
|
<Pane prefHeight="200.0" prefWidth="400.0" visible="false">
|
||||||
<children>
|
<children>
|
||||||
@@ -100,6 +88,21 @@
|
|||||||
</Accordion>
|
</Accordion>
|
||||||
</children>
|
</children>
|
||||||
</Pane>
|
</Pane>
|
||||||
|
<ImageView fitHeight="250.0" fitWidth="272.0" mouseTransparent="true" pickOnBounds="true" preserveRatio="true" AnchorPane.bottomAnchor="0.0" AnchorPane.rightAnchor="1.0">
|
||||||
|
<image>
|
||||||
|
<Image url="@../../images/raceViewUI_LowerRight.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
<ImageView fitHeight="250.0" fitWidth="272.0" layoutX="10.0" layoutY="10.0" mouseTransparent="true" pickOnBounds="true" preserveRatio="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0">
|
||||||
|
<image>
|
||||||
|
<Image url="@../../images/raceViewUI_LowerLeft.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
<Label fx:id="FPS" mouseTransparent="true" text="FPS: 0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<font>
|
||||||
|
<Font name="System Bold" size="15.0" />
|
||||||
|
</font>
|
||||||
|
</Label>
|
||||||
<GridPane fx:id="playerHealthContainer" prefHeight="75.0" prefWidth="75.0" AnchorPane.leftAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<GridPane fx:id="playerHealthContainer" prefHeight="75.0" prefWidth="75.0" AnchorPane.leftAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
@@ -111,44 +114,16 @@
|
|||||||
<Insets left="10.0" top="10.0" />
|
<Insets left="10.0" top="10.0" />
|
||||||
</padding>
|
</padding>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<VBox alignment="CENTER" prefHeight="54.0" prefWidth="608.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<Label fx:id="tutorialText" alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" style="-fx-border-color: orange; -fx-border-radius: 5px; -fx-background-color: #ffffcc; -fx-text-fill: #3399ff; -fx-border-width: 3; -fx-border-insets: -3;" text="This is the tutorial text" visible="false" AnchorPane.leftAnchor="150.0" AnchorPane.rightAnchor="150.0" AnchorPane.topAnchor="150.0" />
|
||||||
<children>
|
<StackPane fx:id="speedPane" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="14.0" AnchorPane.rightAnchor="2.0">
|
||||||
|
|
||||||
<Label fx:id="timer" alignment="CENTER" maxHeight="20.0" text="0:0">
|
|
||||||
<font>
|
|
||||||
<Font name="System Bold" size="15.0" />
|
|
||||||
</font>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="timeZone" text="Label">
|
|
||||||
<font>
|
|
||||||
<Font name="System Bold" size="15.0" />
|
|
||||||
</font>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
<Label fx:id="FPS" text="FPS: 0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0">
|
|
||||||
<font>
|
|
||||||
<Font name="System Bold" size="15.0" />
|
|
||||||
</font>
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="200.0" />
|
|
||||||
</padding>
|
|
||||||
</Label>
|
|
||||||
<StackPane fx:id="arrowPane" alignment="TOP_RIGHT" mouseTransparent="true" prefHeight="150.0" prefWidth="150.0" snapToPixel="false" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
|
||||||
<children>
|
|
||||||
<fx:include fx:id="arrow" source="arrow.fxml" />
|
|
||||||
</children>
|
|
||||||
</StackPane>
|
|
||||||
<Label fx:id="tutorialText" alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" style="-fx-border-color: orange; -fx-border-radius: 5px; -fx-background-color: #ffffcc; -fx-text-fill: #3399ff; -fx-border-width: 3; -fx-border-insets: -3;" text="This is the tutorial text" visible="false" AnchorPane.leftAnchor="150.0" AnchorPane.rightAnchor="150.0" AnchorPane.topAnchor="100.0" />
|
|
||||||
<StackPane fx:id="speedPane" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.rightAnchor="20.0">
|
|
||||||
<padding>
|
<padding>
|
||||||
<Insets right="20.0" />
|
<Insets right="20.0" />
|
||||||
</padding></StackPane>
|
</padding></StackPane>
|
||||||
<AnchorPane maxHeight="200.0" maxWidth="200.0" mouseTransparent="true" opacity="0.6" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0">
|
<AnchorPane maxHeight="145.0" maxWidth="145.0" minHeight="145.0" minWidth="145.0" mouseTransparent="true" prefHeight="145.0" prefWidth="145.0" AnchorPane.bottomAnchor="30.0" AnchorPane.leftAnchor="30.0">
|
||||||
<children>
|
<children>
|
||||||
<AnchorPane maxHeight="200.0" maxWidth="200.0" prefHeight="200.0" prefWidth="216.0">
|
<AnchorPane maxHeight="145.0" maxWidth="145.0" minHeight="145.0" minWidth="145.0" prefHeight="145.0" prefWidth="145.0">
|
||||||
<children>
|
<children>
|
||||||
<GridPane fx:id="canvasBase1" maxHeight="200.0" maxWidth="200.0" prefHeight="200.0" prefWidth="216.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<GridPane fx:id="canvasBase1" maxHeight="145.0" maxWidth="145.0" minHeight="145.0" minWidth="145.0" prefHeight="145.0" prefWidth="145.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
@@ -229,6 +204,49 @@
|
|||||||
</StackPane>
|
</StackPane>
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
|
<ImageView fitHeight="150.0" fitWidth="200.0" focusTraversable="true" mouseTransparent="true" pickOnBounds="true" preserveRatio="true" StackPane.alignment="BOTTOM_CENTER">
|
||||||
|
<image>
|
||||||
|
<Image url="@../../images/raceViewUI_LowerMiddle.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
<ImageView fitHeight="115.0" fitWidth="255.0" mouseTransparent="true" pickOnBounds="true" preserveRatio="true" StackPane.alignment="TOP_CENTER">
|
||||||
|
<image>
|
||||||
|
<Image url="@../../images/raceViewUI_UpperMiddle.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
<StackPane fx:id="arrowPane" maxHeight="60.0" maxWidth="60.0" minHeight="60.0" minWidth="60.0" prefHeight="60.0" prefWidth="60.0" StackPane.alignment="BOTTOM_CENTER">
|
||||||
|
<StackPane.margin>
|
||||||
|
<Insets bottom="25.0" left="2.0" />
|
||||||
|
</StackPane.margin>
|
||||||
|
</StackPane>
|
||||||
|
<StackPane fx:id="nextMarkPane" alignment="TOP_CENTER" mouseTransparent="true" prefHeight="150.0" prefWidth="150.0" snapToPixel="false">
|
||||||
|
<children>
|
||||||
|
<fx:include fx:id="nextMark" source="nextMark.fxml" />
|
||||||
|
</children>
|
||||||
|
<StackPane.margin>
|
||||||
|
<Insets top="4.0" />
|
||||||
|
</StackPane.margin>
|
||||||
|
</StackPane>
|
||||||
|
<Label fx:id="timer" alignment="CENTER" maxHeight="20.0" mouseTransparent="true" text="0:0" StackPane.alignment="TOP_CENTER">
|
||||||
|
<font>
|
||||||
|
<Font size="9.0" />
|
||||||
|
</font>
|
||||||
|
<padding>
|
||||||
|
<Insets top="101.0" />
|
||||||
|
</padding>
|
||||||
|
</Label>
|
||||||
|
<AnchorPane maxHeight="600.0" maxWidth="600.0" minHeight="600.0" minWidth="600.0" mouseTransparent="true" prefHeight="600.0" prefWidth="600.0" StackPane.alignment="CENTER">
|
||||||
|
<children>
|
||||||
|
<GridPane fx:id="canvasBase2" maxHeight="600.0" maxWidth="600.0" minHeight="600.0" minWidth="600.0" prefHeight="600.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
||||||
|
</rowConstraints>
|
||||||
|
</GridPane>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
<AnchorPane fx:id="infoWrapper" focusTraversable="true" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="200.0" visible="false">
|
<AnchorPane fx:id="infoWrapper" focusTraversable="true" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="200.0" visible="false">
|
||||||
<children>
|
<children>
|
||||||
<GridPane layoutX="-2.0" AnchorPane.bottomAnchor="40.0" AnchorPane.leftAnchor="40.0" AnchorPane.rightAnchor="40.0" AnchorPane.topAnchor="40.0">
|
<GridPane layoutX="-2.0" AnchorPane.bottomAnchor="40.0" AnchorPane.leftAnchor="40.0" AnchorPane.rightAnchor="40.0" AnchorPane.topAnchor="40.0">
|
||||||
|
|||||||
@@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
<GridPane fx:id="arrowGridPane" alignment="TOP_CENTER" maxHeight="-Infinity" maxWidth="-Infinity" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.NextMarkController">
|
<GridPane fx:id="arrowGridPane" alignment="TOP_CENTER" maxHeight="-Infinity" maxWidth="-Infinity" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.NextMarkController">
|
||||||
<children>
|
<children>
|
||||||
<Pane fx:id="pane2d" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="112.0" prefWidth="112.0">
|
<Pane fx:id="pane2d" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="100.0" prefWidth="100.0">
|
||||||
<children>
|
<children>
|
||||||
<StackPane fx:id="arrowStackPane2d" prefHeight="112.0" prefWidth="112.0">
|
<StackPane fx:id="arrowStackPane2d" prefHeight="100.0" prefWidth="100.0">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fx:id="arrowImage" fitHeight="75.0" fitWidth="25.0">
|
<ImageView fx:id="arrowImage" fitHeight="70.0" fitWidth="25.0">
|
||||||
<image>
|
<image>
|
||||||
<Image url="@../../images/nextMarkArrow2d.png" />
|
<Image url="@../../images/nextMarkArrow2d.png" />
|
||||||
</image>
|
</image>
|
||||||
@@ -23,9 +23,9 @@
|
|||||||
</StackPane>
|
</StackPane>
|
||||||
</children>
|
</children>
|
||||||
</Pane>
|
</Pane>
|
||||||
<Pane fx:id="pane3d" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="112.0" prefWidth="112.0">
|
<Pane fx:id="pane3d" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="100.0" prefWidth="100.0">
|
||||||
<children>
|
<children>
|
||||||
<StackPane fx:id="arrowStackPane3d" prefHeight="112.0" prefWidth="112.0" />
|
<StackPane fx:id="arrowStackPane3d" prefHeight="100.0" prefWidth="100.0" />
|
||||||
</children>
|
</children>
|
||||||
</Pane>
|
</Pane>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||