mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 057af2799a | |||
| 45669c333a | |||
| f7fd5494ef | |||
| 6fafb02a8f | |||
| d436d2a6e4 | |||
| 51078c82a0 | |||
| 22fbb529ef | |||
| d3e8a21d2f | |||
| 852575c9e7 | |||
| 567e351c7f | |||
| 72fe8c4881 | |||
| 270326ea77 |
@@ -11,6 +11,7 @@ import java.util.Random;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
import javafx.beans.property.ReadOnlyDoubleWrapper;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -82,6 +83,7 @@ public class GameState implements Runnable {
|
|||||||
|
|
||||||
private static Long previousUpdateTime;
|
private static Long previousUpdateTime;
|
||||||
public static Double windDirection;
|
public static Double windDirection;
|
||||||
|
public static ReadOnlyDoubleWrapper windDirectionProperty = new ReadOnlyDoubleWrapper();
|
||||||
private static Double windSpeed;
|
private static Double windSpeed;
|
||||||
private static Double serverSpeedMultiplier;
|
private static Double serverSpeedMultiplier;
|
||||||
|
|
||||||
@@ -108,6 +110,7 @@ public class GameState implements Runnable {
|
|||||||
|
|
||||||
public GameState() {
|
public GameState() {
|
||||||
windDirection = 180d;
|
windDirection = 180d;
|
||||||
|
windDirectionProperty.set(windDirection);
|
||||||
windSpeed = 10000d;
|
windSpeed = 10000d;
|
||||||
yachts = new HashMap<>();
|
yachts = new HashMap<>();
|
||||||
tokensInPlay = new ArrayList<>();
|
tokensInPlay = new ArrayList<>();
|
||||||
@@ -191,6 +194,7 @@ public class GameState implements Runnable {
|
|||||||
|
|
||||||
public static void setWindDirection(Double newWindDirection) {
|
public static void setWindDirection(Double newWindDirection) {
|
||||||
windDirection = newWindDirection;
|
windDirection = newWindDirection;
|
||||||
|
windDirectionProperty.set(newWindDirection);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setWindSpeed(Double newWindSpeed) {
|
public static void setWindSpeed(Double newWindSpeed) {
|
||||||
@@ -509,6 +513,7 @@ public class GameState implements Runnable {
|
|||||||
Double optimalAngle = PolarTable.getOptimalAngle();
|
Double optimalAngle = PolarTable.getOptimalAngle();
|
||||||
Double heading = yacht.getHeading();
|
Double heading = yacht.getHeading();
|
||||||
windDirection = (double) Math.floorMod(Math.round(heading + optimalAngle), 360L);
|
windDirection = (double) Math.floorMod(Math.round(heading + optimalAngle), 360L);
|
||||||
|
windDirectionProperty.set(windDirection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1058,4 +1063,8 @@ public class GameState implements Runnable {
|
|||||||
public static void setTokensEnabled (boolean tokensEnabled) {
|
public static void setTokensEnabled (boolean tokensEnabled) {
|
||||||
GameState.tokensEnabled = tokensEnabled;
|
GameState.tokensEnabled = tokensEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ReadOnlyDoubleWrapper getWindDirectionProperty() {
|
||||||
|
return windDirectionProperty;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,4 +134,8 @@ public class RaceState {
|
|||||||
public Boolean getRaceFinished() {
|
public Boolean getRaceFinished() {
|
||||||
return raceFinished;
|
return raceFinished;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ReadOnlyDoubleWrapper getWindDirection() {
|
||||||
|
return windDirection;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ public class GameView3D extends GameView {
|
|||||||
private Double windDir;
|
private Double windDir;
|
||||||
private Skybox skybox;
|
private Skybox skybox;
|
||||||
|
|
||||||
|
|
||||||
public GameView3D () {
|
public GameView3D () {
|
||||||
isometricCam = new IsometricCamera(DEFAULT_CAMERA_X, DEFAULT_CAMERA_Y);
|
isometricCam = new IsometricCamera(DEFAULT_CAMERA_X, DEFAULT_CAMERA_Y);
|
||||||
topDownCam = new TopDownCamera();
|
topDownCam = new TopDownCamera();
|
||||||
@@ -370,6 +371,10 @@ public class GameView3D extends GameView {
|
|||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SubScene getView() {
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the boatObjects color with that of the clientYachts object. Used in notification from
|
* Updates the boatObjects color with that of the clientYachts object. Used in notification from
|
||||||
* a listener on this attribute in clientYacht to re paint the boat mesh
|
* a listener on this attribute in clientYacht to re paint the boat mesh
|
||||||
|
|||||||
@@ -7,28 +7,33 @@ import java.util.ArrayList;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
import javafx.animation.RotateTransition;
|
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.beans.property.ReadOnlyBooleanProperty;
|
import javafx.beans.property.ReadOnlyBooleanProperty;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.SubScene;
|
import javafx.scene.SubScene;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.control.ComboBox;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.control.Slider;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
|
import javafx.scene.layout.VBox;
|
||||||
import javafx.scene.paint.Paint;
|
import javafx.scene.paint.Paint;
|
||||||
import javafx.util.Duration;
|
import javafx.scene.text.Text;
|
||||||
import seng302.model.ClientYacht;
|
import seng302.model.ClientYacht;
|
||||||
import seng302.model.RaceState;
|
import seng302.model.RaceState;
|
||||||
|
import seng302.model.mark.CompoundMark;
|
||||||
import seng302.model.stream.xml.parser.RaceXMLData;
|
import seng302.model.stream.xml.parser.RaceXMLData;
|
||||||
import seng302.model.token.TokenType;
|
import seng302.model.token.TokenType;
|
||||||
import seng302.utilities.Sounds;
|
import seng302.utilities.Sounds;
|
||||||
import seng302.visualiser.GameView3D;
|
import seng302.visualiser.GameView3D;
|
||||||
import seng302.visualiser.MiniMap;
|
import seng302.visualiser.MiniMap;
|
||||||
|
import seng302.visualiser.controllers.cells.WindCell;
|
||||||
import seng302.visualiser.controllers.dialogs.FinishDialogController;
|
import seng302.visualiser.controllers.dialogs.FinishDialogController;
|
||||||
import seng302.visualiser.fxObjects.ChatHistory;
|
import seng302.visualiser.fxObjects.ChatHistory;
|
||||||
|
|
||||||
@@ -61,6 +66,20 @@ public class RaceViewController extends Thread {
|
|||||||
private Pane miniMapPane;
|
private Pane miniMapPane;
|
||||||
@FXML
|
@FXML
|
||||||
private ImageView windImageView;
|
private ImageView windImageView;
|
||||||
|
@FXML
|
||||||
|
private AnchorPane rvAnchorPane;
|
||||||
|
@FXML
|
||||||
|
private AnchorPane windArrowHolder;
|
||||||
|
@FXML
|
||||||
|
private Slider annotationSlider;
|
||||||
|
@FXML
|
||||||
|
private Button selectAnnotationBtn;
|
||||||
|
@FXML
|
||||||
|
private ComboBox<ClientYacht> yachtSelectionComboBox;
|
||||||
|
@FXML
|
||||||
|
private Text fpsDisplay;
|
||||||
|
// @FXML
|
||||||
|
// private ImageView windImageView;
|
||||||
@FXML
|
@FXML
|
||||||
private Label windDirectionLabel;
|
private Label windDirectionLabel;
|
||||||
@FXML
|
@FXML
|
||||||
@@ -70,8 +89,16 @@ public class RaceViewController extends Thread {
|
|||||||
@FXML
|
@FXML
|
||||||
private ImageView velocityIcon, handlingIcon, windWalkerIcon, bumperIcon, badRandomIcon;
|
private ImageView velocityIcon, handlingIcon, windWalkerIcon, bumperIcon, badRandomIcon;
|
||||||
@FXML
|
@FXML
|
||||||
|
private VBox windArrowVBox;
|
||||||
|
@FXML
|
||||||
private JFXButton miniMapButton;
|
private JFXButton miniMapButton;
|
||||||
|
|
||||||
|
|
||||||
|
private WindCell windCell;
|
||||||
|
//Race Data
|
||||||
|
private Map<Integer, ClientYacht> participants;
|
||||||
|
private Map<Integer, CompoundMark> markers;
|
||||||
|
private RaceXMLData courseData;
|
||||||
private GameView3D gameView;
|
private GameView3D gameView;
|
||||||
private RaceState raceState;
|
private RaceState raceState;
|
||||||
private ChatHistory chatHistory;
|
private ChatHistory chatHistory;
|
||||||
@@ -141,6 +168,30 @@ public class RaceViewController extends Thread {
|
|||||||
});
|
});
|
||||||
|
|
||||||
lastWindDirection = 0d;
|
lastWindDirection = 0d;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialise wind arrow cell.
|
||||||
|
*/
|
||||||
|
private void initialiseWindArrow() {
|
||||||
|
FXMLLoader loader = new FXMLLoader(
|
||||||
|
getClass().getResource("/views/cells/WindCell.fxml"));
|
||||||
|
windCell = new WindCell();
|
||||||
|
loader.setController(windCell);
|
||||||
|
|
||||||
|
try {
|
||||||
|
loader.load();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
windCell.init(player, raceState.getWindDirection());
|
||||||
|
windCell.setCamera(gameView.getView().getCamera());
|
||||||
|
gameView.getView().cameraProperty()
|
||||||
|
.addListener((obs, oldVal, newVal) -> windCell.setCamera(newVal));
|
||||||
|
|
||||||
|
windArrowVBox.getChildren().add(windCell.getAssets());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showFinishDialog(ArrayList<ClientYacht> finishedBoats) {
|
public void showFinishDialog(ArrayList<ClientYacht> finishedBoats) {
|
||||||
@@ -248,6 +299,12 @@ public class RaceViewController extends Thread {
|
|||||||
});
|
});
|
||||||
gameView.setWindDir(raceState.windDirectionProperty().doubleValue());
|
gameView.setWindDir(raceState.windDirectionProperty().doubleValue());
|
||||||
Platform.runLater(this::initializeUpdateTimer);
|
Platform.runLater(this::initializeUpdateTimer);
|
||||||
|
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
//windCell.setCamera(gameView.getView().getCamera());
|
||||||
|
|
||||||
|
initialiseWindArrow();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -334,12 +391,12 @@ public class RaceViewController extends Thread {
|
|||||||
*/
|
*/
|
||||||
private void updateWindDirection(double direction) {
|
private void updateWindDirection(double direction) {
|
||||||
windDirectionLabel.setText(String.format("%.1f°", direction));
|
windDirectionLabel.setText(String.format("%.1f°", direction));
|
||||||
RotateTransition rt = new RotateTransition(Duration.millis(300), windImageView);
|
// RotateTransition rt = new RotateTransition(Duration.millis(300), windImageView);
|
||||||
rt.setByAngle(direction - lastWindDirection);
|
// rt.setByAngle(direction - lastWindDirection);
|
||||||
rt.setCycleCount(3);
|
// rt.setCycleCount(3);
|
||||||
rt.setAutoReverse(true);
|
// rt.setAutoReverse(true);
|
||||||
rt.play();
|
// rt.play();
|
||||||
lastWindDirection = direction;
|
// lastWindDirection = direction;
|
||||||
// windImageView.setRotate(direction);
|
// windImageView.setRotate(direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,131 @@
|
|||||||
|
package seng302.visualiser.controllers.cells;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import javafx.application.Platform;
|
||||||
|
import javafx.beans.property.DoubleProperty;
|
||||||
|
import javafx.beans.property.ReadOnlyDoubleWrapper;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.geometry.Point3D;
|
||||||
|
import javafx.scene.Camera;
|
||||||
|
import javafx.scene.Group;
|
||||||
|
import javafx.scene.Node;
|
||||||
|
import javafx.scene.PerspectiveCamera;
|
||||||
|
import javafx.scene.SceneAntialiasing;
|
||||||
|
import javafx.scene.SubScene;
|
||||||
|
import javafx.scene.layout.Pane;
|
||||||
|
import javafx.scene.transform.Rotate;
|
||||||
|
import javafx.scene.transform.Transform;
|
||||||
|
import javafx.scene.transform.Translate;
|
||||||
|
import seng302.model.ClientYacht;
|
||||||
|
import seng302.visualiser.cameras.ChaseCamera;
|
||||||
|
import seng302.visualiser.fxObjects.assets_3D.Model;
|
||||||
|
import seng302.visualiser.fxObjects.assets_3D.ModelFactory;
|
||||||
|
|
||||||
|
public class WindCell {
|
||||||
|
|
||||||
|
//--------FXML BEGIN--------//
|
||||||
|
@FXML
|
||||||
|
private Pane windPane;
|
||||||
|
//---------FXML END---------//
|
||||||
|
|
||||||
|
private final double FOV = 60;
|
||||||
|
private final double DEFAULT_CAMERA_X = 0;
|
||||||
|
private final double DEFAULT_CAMERA_Y = 50;
|
||||||
|
|
||||||
|
private Group root3D;
|
||||||
|
private SubScene view;
|
||||||
|
private Group gameObjects;
|
||||||
|
|
||||||
|
private ChaseCamera chaseCam;
|
||||||
|
|
||||||
|
private ClientYacht playerYacht;
|
||||||
|
|
||||||
|
// Cameras
|
||||||
|
private PerspectiveCamera camera = null;
|
||||||
|
|
||||||
|
private Model windArrowModel;
|
||||||
|
private Boolean isChaseCam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialise WindCell fxml and load 3D wind arrow into a group.
|
||||||
|
*/
|
||||||
|
public void init(ClientYacht playerYacht, ReadOnlyDoubleWrapper windDirection) {
|
||||||
|
|
||||||
|
this.playerYacht = playerYacht;
|
||||||
|
camera = new PerspectiveCamera();
|
||||||
|
camera.setFarClip(1000);
|
||||||
|
camera.setNearClip(0.1);
|
||||||
|
camera.setFieldOfView(60);
|
||||||
|
initialiseWindView();
|
||||||
|
|
||||||
|
for (DoubleProperty o : Arrays.asList(playerYacht.getHeadingProperty(), windDirection)) {
|
||||||
|
o.addListener((obs, oldValue, newValue) -> {
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
if (isChaseCam) {
|
||||||
|
camera.getTransforms().clear();
|
||||||
|
for (Transform t : chaseCam.getTransforms()) {
|
||||||
|
if (t instanceof Rotate) {
|
||||||
|
camera.getTransforms().add(t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.camera.getTransforms().addAll(
|
||||||
|
new Translate(-55, -60, 0)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
windArrowModel.getAssets().getTransforms().clear();
|
||||||
|
windArrowModel.getAssets().getTransforms().addAll(
|
||||||
|
new Rotate(windDirection.getValue(),
|
||||||
|
new Point3D(0, 0, 1))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initialiseWindView() {
|
||||||
|
gameObjects = new Group();
|
||||||
|
windPane.getChildren().add(gameObjects);
|
||||||
|
|
||||||
|
root3D = new Group(camera, gameObjects);
|
||||||
|
view = new SubScene(
|
||||||
|
root3D, 110, 120, true, SceneAntialiasing.BALANCED
|
||||||
|
);
|
||||||
|
view.setCamera(camera);
|
||||||
|
|
||||||
|
windArrowModel = ModelFactory.makeWindArrow();
|
||||||
|
|
||||||
|
gameObjects.getChildren().addAll(
|
||||||
|
windArrowModel.getAssets()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Node getAssets() {
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void updateCameraTransforms(Camera camera) {
|
||||||
|
this.camera.getTransforms().clear();
|
||||||
|
|
||||||
|
for (Transform transform : camera.getTransforms()) {
|
||||||
|
if (!(transform instanceof Translate)) {
|
||||||
|
this.camera.getTransforms().add(transform);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.camera.getTransforms().addAll(
|
||||||
|
new Translate(-55, -60, 0)
|
||||||
|
);
|
||||||
|
windArrowModel.getAssets().getTransforms().clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCamera(Camera camera) {
|
||||||
|
isChaseCam = camera instanceof ChaseCamera;
|
||||||
|
if (isChaseCam) {
|
||||||
|
this.chaseCam = (ChaseCamera) camera;
|
||||||
|
} else {
|
||||||
|
this.chaseCam = null;
|
||||||
|
}
|
||||||
|
updateCameraTransforms(camera);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,7 +16,6 @@ import javafx.scene.transform.Scale;
|
|||||||
import javafx.scene.transform.Translate;
|
import javafx.scene.transform.Translate;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory class for creating 3D models of boatTypes.
|
* Factory class for creating 3D models of boatTypes.
|
||||||
*/
|
*/
|
||||||
@@ -276,4 +275,31 @@ public class ModelFactory {
|
|||||||
);
|
);
|
||||||
return new Model(new Group(assets), null);
|
return new Model(new Group(assets), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a 3D wind arrow.
|
||||||
|
*
|
||||||
|
* @return 3D wind arrow object
|
||||||
|
*/
|
||||||
|
public static Model makeWindArrow() {
|
||||||
|
ColModelImporter importer = new ColModelImporter();
|
||||||
|
importer.read(ModelFactory.class.getResource("/meshes/" + ModelType.WIND_ARROW.filename));
|
||||||
|
Group assets = new Group(importer.getImport());
|
||||||
|
assets.setCache(true);
|
||||||
|
assets.setCacheHint(CacheHint.SCALE_AND_ROTATE);
|
||||||
|
|
||||||
|
Rotate animationRotate = new Rotate(0, new Point3D(0, 1, 0));
|
||||||
|
assets.getTransforms().addAll(
|
||||||
|
new Translate(0, 0, 0),
|
||||||
|
new Scale(5, 5, 5),
|
||||||
|
new Rotate(270, new Point3D(1, 0, 0)),
|
||||||
|
animationRotate
|
||||||
|
);
|
||||||
|
|
||||||
|
assets.getChildren().addAll(
|
||||||
|
new AmbientLight()
|
||||||
|
);
|
||||||
|
|
||||||
|
return new Model(new Group(assets), null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ public enum ModelType {
|
|||||||
LAND("land.dae"),
|
LAND("land.dae"),
|
||||||
LAND_SMOOTH("land_smooth.dae"),
|
LAND_SMOOTH("land_smooth.dae"),
|
||||||
NEXT_MARK_INDICATOR("indicator_arrow.dae"),
|
NEXT_MARK_INDICATOR("indicator_arrow.dae"),
|
||||||
PLAYER_IDENTIFIER_TORUS("torus.dae");
|
PLAYER_IDENTIFIER_TORUS("torus.dae"),
|
||||||
|
WIND_ARROW("windFiles/arrow56.dae"); // change filename
|
||||||
|
|
||||||
final String filename;
|
final String filename;
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,13 @@ GridPane .timer * {
|
|||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#chatToggleButton {
|
||||||
|
-fx-background-color: rgba(255, 255, 255, 0.6);
|
||||||
|
-fx-background-radius: 5;
|
||||||
|
-fx-min-width: 30;
|
||||||
|
-fx-min-height: 30;
|
||||||
|
}
|
||||||
|
|
||||||
#windImageView {
|
#windImageView {
|
||||||
-fx-image: url("/images/wind-180.png");
|
-fx-image: url("/images/wind-180.png");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
#windPane {
|
||||||
|
-fx-background-color: rgba(255, 255, 255, 0);
|
||||||
|
}
|
||||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,518 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<asset>
|
||||||
|
<contributor>
|
||||||
|
<author>Blender User</author>
|
||||||
|
<authoring_tool>Blender 2.79.0 commit date:2017-09-11, commit time:10:43, hash:5bd8ac9</authoring_tool>
|
||||||
|
</contributor>
|
||||||
|
<created>2017-09-28T02:22:29</created>
|
||||||
|
<modified>2017-09-28T02:22:29</modified>
|
||||||
|
<unit name="meter" meter="1"/>
|
||||||
|
<up_axis>Z_UP</up_axis>
|
||||||
|
</asset>
|
||||||
|
<library_cameras>
|
||||||
|
<camera id="Camera-camera" name="Camera">
|
||||||
|
<optics>
|
||||||
|
<technique_common>
|
||||||
|
<perspective>
|
||||||
|
<xfov sid="xfov">49.13434</xfov>
|
||||||
|
<aspect_ratio>1.777778</aspect_ratio>
|
||||||
|
<znear sid="znear">0.1</znear>
|
||||||
|
<zfar sid="zfar">100</zfar>
|
||||||
|
</perspective>
|
||||||
|
</technique_common>
|
||||||
|
</optics>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<shiftx sid="shiftx" type="float">0</shiftx>
|
||||||
|
<shifty sid="shifty" type="float">0</shifty>
|
||||||
|
<YF_dofdist sid="YF_dofdist" type="float">0</YF_dofdist>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</camera>
|
||||||
|
<camera id="Camera_001-camera" name="Camera.001">
|
||||||
|
<optics>
|
||||||
|
<technique_common>
|
||||||
|
<perspective>
|
||||||
|
<xfov sid="xfov">49.13434</xfov>
|
||||||
|
<aspect_ratio>1.777778</aspect_ratio>
|
||||||
|
<znear sid="znear">0.1</znear>
|
||||||
|
<zfar sid="zfar">100</zfar>
|
||||||
|
</perspective>
|
||||||
|
</technique_common>
|
||||||
|
</optics>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<shiftx sid="shiftx" type="float">0</shiftx>
|
||||||
|
<shifty sid="shifty" type="float">0</shifty>
|
||||||
|
<YF_dofdist sid="YF_dofdist" type="float">0</YF_dofdist>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</camera>
|
||||||
|
<camera id="Camera_001-camera" name="Camera.003">
|
||||||
|
<optics>
|
||||||
|
<technique_common>
|
||||||
|
<perspective>
|
||||||
|
<xfov sid="xfov">49.13434</xfov>
|
||||||
|
<aspect_ratio>1.777778</aspect_ratio>
|
||||||
|
<znear sid="znear">0.1</znear>
|
||||||
|
<zfar sid="zfar">100</zfar>
|
||||||
|
</perspective>
|
||||||
|
</technique_common>
|
||||||
|
</optics>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<shiftx sid="shiftx" type="float">0</shiftx>
|
||||||
|
<shifty sid="shifty" type="float">0</shifty>
|
||||||
|
<YF_dofdist sid="YF_dofdist" type="float">0</YF_dofdist>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</camera>
|
||||||
|
<camera id="Camera_001_001-camera" name="Camera.003">
|
||||||
|
<optics>
|
||||||
|
<technique_common>
|
||||||
|
<perspective>
|
||||||
|
<xfov sid="xfov">49.13434</xfov>
|
||||||
|
<aspect_ratio>1.777778</aspect_ratio>
|
||||||
|
<znear sid="znear">0.1</znear>
|
||||||
|
<zfar sid="zfar">100</zfar>
|
||||||
|
</perspective>
|
||||||
|
</technique_common>
|
||||||
|
</optics>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<shiftx sid="shiftx" type="float">0</shiftx>
|
||||||
|
<shifty sid="shifty" type="float">0</shifty>
|
||||||
|
<YF_dofdist sid="YF_dofdist" type="float">0</YF_dofdist>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</camera>
|
||||||
|
</library_cameras>
|
||||||
|
<library_lights>
|
||||||
|
<light id="Lamp-light" name="Lamp">
|
||||||
|
<technique_common>
|
||||||
|
<point>
|
||||||
|
<color sid="color">1 1 1</color>
|
||||||
|
<constant_attenuation>1</constant_attenuation>
|
||||||
|
<linear_attenuation>0</linear_attenuation>
|
||||||
|
<quadratic_attenuation>0.00111109</quadratic_attenuation>
|
||||||
|
</point>
|
||||||
|
</technique_common>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<type sid="type" type="int">0</type>
|
||||||
|
<flag sid="flag" type="int">0</flag>
|
||||||
|
<mode sid="mode" type="int">8192</mode>
|
||||||
|
<gamma sid="blender_gamma" type="float">1</gamma>
|
||||||
|
<red sid="red" type="float">1</red>
|
||||||
|
<green sid="green" type="float">1</green>
|
||||||
|
<blue sid="blue" type="float">1</blue>
|
||||||
|
<shadow_r sid="blender_shadow_r" type="float">0</shadow_r>
|
||||||
|
<shadow_g sid="blender_shadow_g" type="float">0</shadow_g>
|
||||||
|
<shadow_b sid="blender_shadow_b" type="float">0</shadow_b>
|
||||||
|
<energy sid="blender_energy" type="float">1</energy>
|
||||||
|
<dist sid="blender_dist" type="float">29.99998</dist>
|
||||||
|
<spotsize sid="spotsize" type="float">75</spotsize>
|
||||||
|
<spotblend sid="spotblend" type="float">0.15</spotblend>
|
||||||
|
<halo_intensity sid="blnder_halo_intensity" type="float">1</halo_intensity>
|
||||||
|
<att1 sid="att1" type="float">0</att1>
|
||||||
|
<att2 sid="att2" type="float">1</att2>
|
||||||
|
<falloff_type sid="falloff_type" type="int">2</falloff_type>
|
||||||
|
<clipsta sid="clipsta" type="float">1.000799</clipsta>
|
||||||
|
<clipend sid="clipend" type="float">30.002</clipend>
|
||||||
|
<bias sid="bias" type="float">1</bias>
|
||||||
|
<soft sid="soft" type="float">3</soft>
|
||||||
|
<compressthresh sid="compressthresh" type="float">0.04999995</compressthresh>
|
||||||
|
<bufsize sid="bufsize" type="int">2880</bufsize>
|
||||||
|
<samp sid="samp" type="int">3</samp>
|
||||||
|
<buffers sid="buffers" type="int">1</buffers>
|
||||||
|
<filtertype sid="filtertype" type="int">0</filtertype>
|
||||||
|
<bufflag sid="bufflag" type="int">0</bufflag>
|
||||||
|
<buftype sid="buftype" type="int">2</buftype>
|
||||||
|
<ray_samp sid="ray_samp" type="int">1</ray_samp>
|
||||||
|
<ray_sampy sid="ray_sampy" type="int">1</ray_sampy>
|
||||||
|
<ray_sampz sid="ray_sampz" type="int">1</ray_sampz>
|
||||||
|
<ray_samp_type sid="ray_samp_type" type="int">0</ray_samp_type>
|
||||||
|
<area_shape sid="area_shape" type="int">1</area_shape>
|
||||||
|
<area_size sid="area_size" type="float">0.1</area_size>
|
||||||
|
<area_sizey sid="area_sizey" type="float">0.1</area_sizey>
|
||||||
|
<area_sizez sid="area_sizez" type="float">1</area_sizez>
|
||||||
|
<adapt_thresh sid="adapt_thresh" type="float">0.000999987</adapt_thresh>
|
||||||
|
<ray_samp_method sid="ray_samp_method" type="int">1</ray_samp_method>
|
||||||
|
<shadhalostep sid="shadhalostep" type="int">0</shadhalostep>
|
||||||
|
<sun_effect_type sid="sun_effect_type" type="int">0</sun_effect_type>
|
||||||
|
<skyblendtype sid="skyblendtype" type="int">1</skyblendtype>
|
||||||
|
<horizon_brightness sid="horizon_brightness" type="float">1</horizon_brightness>
|
||||||
|
<spread sid="spread" type="float">1</spread>
|
||||||
|
<sun_brightness sid="sun_brightness" type="float">1</sun_brightness>
|
||||||
|
<sun_size sid="sun_size" type="float">1</sun_size>
|
||||||
|
<backscattered_light sid="backscattered_light" type="float">1</backscattered_light>
|
||||||
|
<sun_intensity sid="sun_intensity" type="float">1</sun_intensity>
|
||||||
|
<atm_turbidity sid="atm_turbidity" type="float">2</atm_turbidity>
|
||||||
|
<atm_extinction_factor sid="atm_extinction_factor" type="float">1</atm_extinction_factor>
|
||||||
|
<atm_distance_factor sid="atm_distance_factor" type="float">1</atm_distance_factor>
|
||||||
|
<skyblendfac sid="skyblendfac" type="float">1</skyblendfac>
|
||||||
|
<sky_exposure sid="sky_exposure" type="float">1</sky_exposure>
|
||||||
|
<sky_colorspace sid="sky_colorspace" type="int">0</sky_colorspace>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</light>
|
||||||
|
<light id="Lamp_001-light" name="Lamp.001">
|
||||||
|
<technique_common>
|
||||||
|
<point>
|
||||||
|
<color sid="color">1 1 1</color>
|
||||||
|
<constant_attenuation>1</constant_attenuation>
|
||||||
|
<linear_attenuation>0</linear_attenuation>
|
||||||
|
<quadratic_attenuation>0.00111109</quadratic_attenuation>
|
||||||
|
</point>
|
||||||
|
</technique_common>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<type sid="type" type="int">0</type>
|
||||||
|
<flag sid="flag" type="int">0</flag>
|
||||||
|
<mode sid="mode" type="int">8192</mode>
|
||||||
|
<gamma sid="blender_gamma" type="float">1</gamma>
|
||||||
|
<red sid="red" type="float">1</red>
|
||||||
|
<green sid="green" type="float">1</green>
|
||||||
|
<blue sid="blue" type="float">1</blue>
|
||||||
|
<shadow_r sid="blender_shadow_r" type="float">0</shadow_r>
|
||||||
|
<shadow_g sid="blender_shadow_g" type="float">0</shadow_g>
|
||||||
|
<shadow_b sid="blender_shadow_b" type="float">0</shadow_b>
|
||||||
|
<energy sid="blender_energy" type="float">1</energy>
|
||||||
|
<dist sid="blender_dist" type="float">29.99998</dist>
|
||||||
|
<spotsize sid="spotsize" type="float">75</spotsize>
|
||||||
|
<spotblend sid="spotblend" type="float">0.15</spotblend>
|
||||||
|
<halo_intensity sid="blnder_halo_intensity" type="float">1</halo_intensity>
|
||||||
|
<att1 sid="att1" type="float">0</att1>
|
||||||
|
<att2 sid="att2" type="float">1</att2>
|
||||||
|
<falloff_type sid="falloff_type" type="int">2</falloff_type>
|
||||||
|
<clipsta sid="clipsta" type="float">1.000799</clipsta>
|
||||||
|
<clipend sid="clipend" type="float">30.002</clipend>
|
||||||
|
<bias sid="bias" type="float">1</bias>
|
||||||
|
<soft sid="soft" type="float">3</soft>
|
||||||
|
<compressthresh sid="compressthresh" type="float">0.04999995</compressthresh>
|
||||||
|
<bufsize sid="bufsize" type="int">2880</bufsize>
|
||||||
|
<samp sid="samp" type="int">3</samp>
|
||||||
|
<buffers sid="buffers" type="int">1</buffers>
|
||||||
|
<filtertype sid="filtertype" type="int">0</filtertype>
|
||||||
|
<bufflag sid="bufflag" type="int">0</bufflag>
|
||||||
|
<buftype sid="buftype" type="int">2</buftype>
|
||||||
|
<ray_samp sid="ray_samp" type="int">1</ray_samp>
|
||||||
|
<ray_sampy sid="ray_sampy" type="int">1</ray_sampy>
|
||||||
|
<ray_sampz sid="ray_sampz" type="int">1</ray_sampz>
|
||||||
|
<ray_samp_type sid="ray_samp_type" type="int">0</ray_samp_type>
|
||||||
|
<area_shape sid="area_shape" type="int">1</area_shape>
|
||||||
|
<area_size sid="area_size" type="float">0.1</area_size>
|
||||||
|
<area_sizey sid="area_sizey" type="float">0.1</area_sizey>
|
||||||
|
<area_sizez sid="area_sizez" type="float">1</area_sizez>
|
||||||
|
<adapt_thresh sid="adapt_thresh" type="float">9.99987e-4</adapt_thresh>
|
||||||
|
<ray_samp_method sid="ray_samp_method" type="int">1</ray_samp_method>
|
||||||
|
<shadhalostep sid="shadhalostep" type="int">0</shadhalostep>
|
||||||
|
<sun_effect_type sid="sun_effect_type" type="int">0</sun_effect_type>
|
||||||
|
<skyblendtype sid="skyblendtype" type="int">1</skyblendtype>
|
||||||
|
<horizon_brightness sid="horizon_brightness" type="float">1</horizon_brightness>
|
||||||
|
<spread sid="spread" type="float">1</spread>
|
||||||
|
<sun_brightness sid="sun_brightness" type="float">1</sun_brightness>
|
||||||
|
<sun_size sid="sun_size" type="float">1</sun_size>
|
||||||
|
<backscattered_light sid="backscattered_light" type="float">1</backscattered_light>
|
||||||
|
<sun_intensity sid="sun_intensity" type="float">1</sun_intensity>
|
||||||
|
<atm_turbidity sid="atm_turbidity" type="float">2</atm_turbidity>
|
||||||
|
<atm_extinction_factor sid="atm_extinction_factor" type="float">1</atm_extinction_factor>
|
||||||
|
<atm_distance_factor sid="atm_distance_factor" type="float">1</atm_distance_factor>
|
||||||
|
<skyblendfac sid="skyblendfac" type="float">1</skyblendfac>
|
||||||
|
<sky_exposure sid="sky_exposure" type="float">1</sky_exposure>
|
||||||
|
<sky_colorspace sid="sky_colorspace" type="int">0</sky_colorspace>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</light>
|
||||||
|
<light id="Lamp_001-light" name="Lamp.003">
|
||||||
|
<technique_common>
|
||||||
|
<point>
|
||||||
|
<color sid="color">1 1 1</color>
|
||||||
|
<constant_attenuation>1</constant_attenuation>
|
||||||
|
<linear_attenuation>0</linear_attenuation>
|
||||||
|
<quadratic_attenuation>0.00111109</quadratic_attenuation>
|
||||||
|
</point>
|
||||||
|
</technique_common>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<type sid="type" type="int">0</type>
|
||||||
|
<flag sid="flag" type="int">0</flag>
|
||||||
|
<mode sid="mode" type="int">8192</mode>
|
||||||
|
<gamma sid="blender_gamma" type="float">1</gamma>
|
||||||
|
<red sid="red" type="float">1</red>
|
||||||
|
<green sid="green" type="float">1</green>
|
||||||
|
<blue sid="blue" type="float">1</blue>
|
||||||
|
<shadow_r sid="blender_shadow_r" type="float">0</shadow_r>
|
||||||
|
<shadow_g sid="blender_shadow_g" type="float">0</shadow_g>
|
||||||
|
<shadow_b sid="blender_shadow_b" type="float">0</shadow_b>
|
||||||
|
<energy sid="blender_energy" type="float">1</energy>
|
||||||
|
<dist sid="blender_dist" type="float">29.99998</dist>
|
||||||
|
<spotsize sid="spotsize" type="float">75</spotsize>
|
||||||
|
<spotblend sid="spotblend" type="float">0.15</spotblend>
|
||||||
|
<halo_intensity sid="blnder_halo_intensity" type="float">1</halo_intensity>
|
||||||
|
<att1 sid="att1" type="float">0</att1>
|
||||||
|
<att2 sid="att2" type="float">1</att2>
|
||||||
|
<falloff_type sid="falloff_type" type="int">2</falloff_type>
|
||||||
|
<clipsta sid="clipsta" type="float">1.000799</clipsta>
|
||||||
|
<clipend sid="clipend" type="float">30.002</clipend>
|
||||||
|
<bias sid="bias" type="float">1</bias>
|
||||||
|
<soft sid="soft" type="float">3</soft>
|
||||||
|
<compressthresh sid="compressthresh" type="float">0.04999995</compressthresh>
|
||||||
|
<bufsize sid="bufsize" type="int">2880</bufsize>
|
||||||
|
<samp sid="samp" type="int">3</samp>
|
||||||
|
<buffers sid="buffers" type="int">1</buffers>
|
||||||
|
<filtertype sid="filtertype" type="int">0</filtertype>
|
||||||
|
<bufflag sid="bufflag" type="int">0</bufflag>
|
||||||
|
<buftype sid="buftype" type="int">2</buftype>
|
||||||
|
<ray_samp sid="ray_samp" type="int">1</ray_samp>
|
||||||
|
<ray_sampy sid="ray_sampy" type="int">1</ray_sampy>
|
||||||
|
<ray_sampz sid="ray_sampz" type="int">1</ray_sampz>
|
||||||
|
<ray_samp_type sid="ray_samp_type" type="int">0</ray_samp_type>
|
||||||
|
<area_shape sid="area_shape" type="int">1</area_shape>
|
||||||
|
<area_size sid="area_size" type="float">0.1</area_size>
|
||||||
|
<area_sizey sid="area_sizey" type="float">0.1</area_sizey>
|
||||||
|
<area_sizez sid="area_sizez" type="float">1</area_sizez>
|
||||||
|
<adapt_thresh sid="adapt_thresh" type="float">9.99987e-4</adapt_thresh>
|
||||||
|
<ray_samp_method sid="ray_samp_method" type="int">1</ray_samp_method>
|
||||||
|
<shadhalostep sid="shadhalostep" type="int">0</shadhalostep>
|
||||||
|
<sun_effect_type sid="sun_effect_type" type="int">0</sun_effect_type>
|
||||||
|
<skyblendtype sid="skyblendtype" type="int">1</skyblendtype>
|
||||||
|
<horizon_brightness sid="horizon_brightness" type="float">1</horizon_brightness>
|
||||||
|
<spread sid="spread" type="float">1</spread>
|
||||||
|
<sun_brightness sid="sun_brightness" type="float">1</sun_brightness>
|
||||||
|
<sun_size sid="sun_size" type="float">1</sun_size>
|
||||||
|
<backscattered_light sid="backscattered_light" type="float">1</backscattered_light>
|
||||||
|
<sun_intensity sid="sun_intensity" type="float">1</sun_intensity>
|
||||||
|
<atm_turbidity sid="atm_turbidity" type="float">2</atm_turbidity>
|
||||||
|
<atm_extinction_factor sid="atm_extinction_factor" type="float">1</atm_extinction_factor>
|
||||||
|
<atm_distance_factor sid="atm_distance_factor" type="float">1</atm_distance_factor>
|
||||||
|
<skyblendfac sid="skyblendfac" type="float">1</skyblendfac>
|
||||||
|
<sky_exposure sid="sky_exposure" type="float">1</sky_exposure>
|
||||||
|
<sky_colorspace sid="sky_colorspace" type="int">0</sky_colorspace>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</light>
|
||||||
|
<light id="Lamp_001_001-light" name="Lamp.003">
|
||||||
|
<technique_common>
|
||||||
|
<point>
|
||||||
|
<color sid="color">1 1 1</color>
|
||||||
|
<constant_attenuation>1</constant_attenuation>
|
||||||
|
<linear_attenuation>0</linear_attenuation>
|
||||||
|
<quadratic_attenuation>0.00111109</quadratic_attenuation>
|
||||||
|
</point>
|
||||||
|
</technique_common>
|
||||||
|
<extra>
|
||||||
|
<technique profile="blender">
|
||||||
|
<type sid="type" type="int">0</type>
|
||||||
|
<flag sid="flag" type="int">0</flag>
|
||||||
|
<mode sid="mode" type="int">8192</mode>
|
||||||
|
<gamma sid="blender_gamma" type="float">1</gamma>
|
||||||
|
<red sid="red" type="float">1</red>
|
||||||
|
<green sid="green" type="float">1</green>
|
||||||
|
<blue sid="blue" type="float">1</blue>
|
||||||
|
<shadow_r sid="blender_shadow_r" type="float">0</shadow_r>
|
||||||
|
<shadow_g sid="blender_shadow_g" type="float">0</shadow_g>
|
||||||
|
<shadow_b sid="blender_shadow_b" type="float">0</shadow_b>
|
||||||
|
<energy sid="blender_energy" type="float">1</energy>
|
||||||
|
<dist sid="blender_dist" type="float">29.99998</dist>
|
||||||
|
<spotsize sid="spotsize" type="float">75</spotsize>
|
||||||
|
<spotblend sid="spotblend" type="float">0.15</spotblend>
|
||||||
|
<halo_intensity sid="blnder_halo_intensity" type="float">1</halo_intensity>
|
||||||
|
<att1 sid="att1" type="float">0</att1>
|
||||||
|
<att2 sid="att2" type="float">1</att2>
|
||||||
|
<falloff_type sid="falloff_type" type="int">2</falloff_type>
|
||||||
|
<clipsta sid="clipsta" type="float">1.000799</clipsta>
|
||||||
|
<clipend sid="clipend" type="float">30.002</clipend>
|
||||||
|
<bias sid="bias" type="float">1</bias>
|
||||||
|
<soft sid="soft" type="float">3</soft>
|
||||||
|
<compressthresh sid="compressthresh" type="float">0.04999995</compressthresh>
|
||||||
|
<bufsize sid="bufsize" type="int">2880</bufsize>
|
||||||
|
<samp sid="samp" type="int">3</samp>
|
||||||
|
<buffers sid="buffers" type="int">1</buffers>
|
||||||
|
<filtertype sid="filtertype" type="int">0</filtertype>
|
||||||
|
<bufflag sid="bufflag" type="int">0</bufflag>
|
||||||
|
<buftype sid="buftype" type="int">2</buftype>
|
||||||
|
<ray_samp sid="ray_samp" type="int">1</ray_samp>
|
||||||
|
<ray_sampy sid="ray_sampy" type="int">1</ray_sampy>
|
||||||
|
<ray_sampz sid="ray_sampz" type="int">1</ray_sampz>
|
||||||
|
<ray_samp_type sid="ray_samp_type" type="int">0</ray_samp_type>
|
||||||
|
<area_shape sid="area_shape" type="int">1</area_shape>
|
||||||
|
<area_size sid="area_size" type="float">0.1</area_size>
|
||||||
|
<area_sizey sid="area_sizey" type="float">0.1</area_sizey>
|
||||||
|
<area_sizez sid="area_sizez" type="float">1</area_sizez>
|
||||||
|
<adapt_thresh sid="adapt_thresh" type="float">9.99987e-4</adapt_thresh>
|
||||||
|
<ray_samp_method sid="ray_samp_method" type="int">1</ray_samp_method>
|
||||||
|
<shadhalostep sid="shadhalostep" type="int">0</shadhalostep>
|
||||||
|
<sun_effect_type sid="sun_effect_type" type="int">0</sun_effect_type>
|
||||||
|
<skyblendtype sid="skyblendtype" type="int">1</skyblendtype>
|
||||||
|
<horizon_brightness sid="horizon_brightness" type="float">1</horizon_brightness>
|
||||||
|
<spread sid="spread" type="float">1</spread>
|
||||||
|
<sun_brightness sid="sun_brightness" type="float">1</sun_brightness>
|
||||||
|
<sun_size sid="sun_size" type="float">1</sun_size>
|
||||||
|
<backscattered_light sid="backscattered_light" type="float">1</backscattered_light>
|
||||||
|
<sun_intensity sid="sun_intensity" type="float">1</sun_intensity>
|
||||||
|
<atm_turbidity sid="atm_turbidity" type="float">2</atm_turbidity>
|
||||||
|
<atm_extinction_factor sid="atm_extinction_factor" type="float">1</atm_extinction_factor>
|
||||||
|
<atm_distance_factor sid="atm_distance_factor" type="float">1</atm_distance_factor>
|
||||||
|
<skyblendfac sid="skyblendfac" type="float">1</skyblendfac>
|
||||||
|
<sky_exposure sid="sky_exposure" type="float">1</sky_exposure>
|
||||||
|
<sky_colorspace sid="sky_colorspace" type="int">0</sky_colorspace>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</light>
|
||||||
|
</library_lights>
|
||||||
|
<library_images/>
|
||||||
|
<library_effects>
|
||||||
|
<effect id="Material_004-effect">
|
||||||
|
<profile_COMMON>
|
||||||
|
<technique sid="common">
|
||||||
|
<phong>
|
||||||
|
<emission>
|
||||||
|
<color sid="emission">0 0 0 1</color>
|
||||||
|
</emission>
|
||||||
|
<ambient>
|
||||||
|
<color sid="ambient">0 0 0 1</color>
|
||||||
|
</ambient>
|
||||||
|
<diffuse>
|
||||||
|
<color sid="diffuse">0.8 0 0 1</color>
|
||||||
|
</diffuse>
|
||||||
|
<specular>
|
||||||
|
<color sid="specular">0.125 0.125 0.125 1</color>
|
||||||
|
</specular>
|
||||||
|
<shininess>
|
||||||
|
<float sid="shininess">50</float>
|
||||||
|
</shininess>
|
||||||
|
<index_of_refraction>
|
||||||
|
<float sid="index_of_refraction">1</float>
|
||||||
|
</index_of_refraction>
|
||||||
|
</phong>
|
||||||
|
</technique>
|
||||||
|
</profile_COMMON>
|
||||||
|
</effect>
|
||||||
|
<effect id="Material_002-effect">
|
||||||
|
<profile_COMMON>
|
||||||
|
<technique sid="common">
|
||||||
|
<phong>
|
||||||
|
<emission>
|
||||||
|
<color sid="emission">0 0 0 1</color>
|
||||||
|
</emission>
|
||||||
|
<ambient>
|
||||||
|
<color sid="ambient">0 0 0 1</color>
|
||||||
|
</ambient>
|
||||||
|
<diffuse>
|
||||||
|
<color sid="diffuse">0 0 0.8 1</color>
|
||||||
|
</diffuse>
|
||||||
|
<specular>
|
||||||
|
<color sid="specular">0.125 0.125 0.125 1</color>
|
||||||
|
</specular>
|
||||||
|
<shininess>
|
||||||
|
<float sid="shininess">50</float>
|
||||||
|
</shininess>
|
||||||
|
<index_of_refraction>
|
||||||
|
<float sid="index_of_refraction">1</float>
|
||||||
|
</index_of_refraction>
|
||||||
|
</phong>
|
||||||
|
</technique>
|
||||||
|
</profile_COMMON>
|
||||||
|
</effect>
|
||||||
|
</library_effects>
|
||||||
|
<library_materials>
|
||||||
|
<material id="Material_004-material" name="Material_004">
|
||||||
|
<instance_effect url="#Material_004-effect"/>
|
||||||
|
</material>
|
||||||
|
<material id="Material_002-material" name="Material_002">
|
||||||
|
<instance_effect url="#Material_002-effect"/>
|
||||||
|
</material>
|
||||||
|
</library_materials>
|
||||||
|
<library_geometries>
|
||||||
|
<geometry id="Cone_003-mesh" name="Cone.003">
|
||||||
|
<mesh>
|
||||||
|
<source id="Cone_003-mesh-positions">
|
||||||
|
<float_array id="Cone_003-mesh-positions-array" count="198">0 -0.6151299 -0.05701982 -1.77995e-7 -1.7983e-7 -2.05702 0.1200059 -0.6033104 -0.05701982 0.2354 -0.5683059 -0.05701982 0.3417478 -0.5114619 -0.05701982 0.4349624 -0.4349625 -0.05701982 0.5114617 -0.3417478 -0.05701982 0.5683057 -0.2354 -0.05701982 0.6033101 -0.120006 -0.05701988 0.6151297 -1.61108e-7 -0.05701988 0.6033102 0.1200057 -0.05701988 0.5683057 0.2353997 -0.05701988 0.5114617 0.3417476 -0.05701988 0.4349624 0.4349623 -0.05701988 0.3417478 0.5114615 -0.05701988 0.2353999 0.5683056 -0.05701988 0.1200057 0.60331 -0.05701988 -1.59668e-7 0.6151295 -0.05701988 -0.120006 0.6033099 -0.05701988 -0.2354001 0.5683054 -0.05701982 -0.341748 0.5114613 -0.05701982 -0.4349626 0.434962 -0.05701982 -0.5114619 0.3417473 -0.05701982 -0.568306 0.2353994 -0.05701982 -0.6033103 0.1200052 -0.05701982 -0.6151297 -7.08636e-7 -0.05701982 -0.6033101 -0.1200066 -0.05701977 -0.5683055 -0.2354007 -0.05701977 -0.5114613 -0.3417485 -0.05701977 -0.4349618 -0.4349631 -0.05701977 -0.341747 -0.5114623 -0.05701977 -0.235399 -0.5683063 -0.05701977 -0.1200048 -0.6033105 -0.05701977 0 0.6151295 -0.06060606 0 -2.89444e-7 1.939394 0.1200058 0.60331 -0.06060606 0.2353999 0.5683056 -0.06060606 0.3417478 0.5114615 -0.06060606 0.4349623 0.4349622 -0.06060606 0.5114616 0.3417475 -0.06060606 0.5683057 0.2353997 -0.06060606 0.6033101 0.1200057 -0.06060606 0.6151297 -1.40432e-7 -0.06060606 0.6033102 -0.1200059 -0.06060606 0.5683057 -0.2354 -0.06060606 0.5114616 -0.3417478 -0.06060606 0.4349623 -0.4349626 -0.06060606 0.3417477 -0.5114619 -0.06060606 0.2353998 -0.568306 -0.06060606 0.1200056 -0.6033104 -0.06060606 -2.4745e-7 -0.6151298 -0.06060606 -0.1200062 -0.6033103 -0.06060606 -0.2354003 -0.5683058 -0.06060606 -0.3417481 -0.5114617 -0.06060606 -0.4349627 -0.4349622 -0.06060606 -0.511462 -0.3417476 -0.06060606 -0.568306 -0.2353997 -0.06060606 -0.6033104 -0.1200055 -0.06060606 -0.6151298 4.10911e-7 -0.06060606 -0.6033101 0.1200063 -0.06060606 -0.5683056 0.2354003 -0.06060606 -0.5114613 0.3417482 -0.06060606 -0.4349619 0.4349627 -0.06060606 -0.3417471 0.511462 -0.06060606 -0.2353991 0.5683059 -0.06060606 -0.120005 0.6033102 -0.06060606</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Cone_003-mesh-positions-array" count="66" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="Cone_003-mesh-normals">
|
||||||
|
<float_array id="Cone_003-mesh-normals-array" count="198">0 0.8207646 -0.5712665 0 0 1 0.1601035 0.8050041 -0.5712578 0.3140783 0.7582927 -0.5712679 0.4559909 0.6824451 -0.5712627 0.5803661 0.5803661 -0.5712711 0.6824451 0.4559909 -0.5712627 0.7582927 0.3140783 -0.5712679 0.8050041 0.1601035 -0.5712578 0.8207646 0 -0.5712665 0.8050041 -0.1601035 -0.5712578 0.7582927 -0.3140783 -0.5712679 0.6824451 -0.4559909 -0.5712627 0.5803661 -0.5803661 -0.5712711 0.4559909 -0.6824451 -0.5712627 0.3140783 -0.7582927 -0.5712679 0.1601035 -0.8050041 -0.5712578 0 -0.8207646 -0.5712665 -0.1601035 -0.8050041 -0.5712578 -0.3140783 -0.7582927 -0.5712679 -0.4559909 -0.6824451 -0.5712627 -0.5803661 -0.5803661 -0.5712711 -0.6824451 -0.4559909 -0.5712627 -0.7582927 -0.3140783 -0.5712679 -0.8050041 -0.1601035 -0.5712578 -0.8207646 0 -0.5712665 -0.8050041 0.1601035 -0.5712578 -0.7582927 0.3140783 -0.5712679 -0.6824451 0.4559909 -0.5712627 -0.5803661 0.5803661 -0.5712711 -0.4559909 0.6824451 -0.5712627 -0.3140783 0.7582927 -0.5712679 -0.1601035 0.8050041 -0.5712578 0 -0.8207646 0.5712665 0 0 -1 0.1601035 -0.8050041 0.5712578 0.3140783 -0.7582927 0.5712679 0.4559909 -0.6824451 0.5712627 0.5803661 -0.5803661 0.5712711 0.6824451 -0.4559909 0.5712627 0.7582927 -0.3140783 0.5712679 0.8050041 -0.1601035 0.5712578 0.8207646 0 0.5712665 0.8050041 0.1601035 0.5712578 0.7582927 0.3140783 0.5712679 0.6824451 0.4559909 0.5712627 0.5803661 0.5803661 0.5712711 0.4559909 0.6824451 0.5712627 0.3140783 0.7582927 0.5712679 0.1601035 0.8050041 0.5712578 0 0.8207646 0.5712665 -0.1601035 0.8050041 0.5712578 -0.3140783 0.7582927 0.5712679 -0.4559909 0.6824451 0.5712627 -0.5803661 0.5803661 0.5712711 -0.6824451 0.4559909 0.5712627 -0.7582927 0.3140783 0.5712679 -0.8050041 0.1601035 0.5712578 -0.8207646 0 0.5712665 -0.8050041 -0.1601035 0.5712578 -0.7582927 -0.3140783 0.5712679 -0.6824451 -0.4559909 0.5712627 -0.5803661 -0.5803661 0.5712711 -0.4559909 -0.6824451 0.5712627 -0.3140783 -0.7582927 0.5712679 -0.1601035 -0.8050041 0.5712578</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Cone_003-mesh-normals-array" count="66" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<vertices id="Cone_003-mesh-vertices">
|
||||||
|
<input semantic="POSITION" source="#Cone_003-mesh-positions"/>
|
||||||
|
</vertices>
|
||||||
|
<triangles material="Material_004-material" count="62">
|
||||||
|
<input semantic="VERTEX" source="#Cone_003-mesh-vertices" offset="0"/>
|
||||||
|
<input semantic="NORMAL" source="#Cone_003-mesh-normals" offset="1"/>
|
||||||
|
<p>33 0 34 1 35 2 35 2 34 1 36 3 36 3 34 1 37 4 37 4 34 1 38 5 38 5 34 1 39 6 39 6 34 1 40 7 40 7 34 1 41 8 41 8 34 1 42 9 42 9 34 1 43 10 43 10 34 1 44 11 44 11 34 1 45 12 45 12 34 1 46 13 46 13 34 1 47 14 47 14 34 1 48 15 48 15 34 1 49 16 49 16 34 1 50 17 50 17 34 1 51 18 51 18 34 1 52 19 52 19 34 1 53 20 53 20 34 1 54 21 54 21 34 1 55 22 55 22 34 1 56 23 56 23 34 1 57 24 57 24 34 1 58 25 58 25 34 1 59 26 59 26 34 1 60 27 60 27 34 1 61 28 61 28 34 1 62 29 62 29 34 1 63 30 63 30 34 1 64 31 64 31 34 1 65 32 65 32 34 1 33 0 49 16 57 24 65 32 65 32 33 0 35 2 35 2 36 3 65 32 37 4 38 5 39 6 39 6 40 7 41 8 41 8 42 9 43 10 43 10 44 11 41 8 45 12 46 13 47 14 47 14 48 15 45 12 49 16 50 17 53 20 51 18 52 19 53 20 53 20 54 21 57 24 55 22 56 23 57 24 57 24 58 25 59 26 59 26 60 27 61 28 61 28 62 29 65 32 63 30 64 31 65 32 65 32 36 3 37 4 37 4 39 6 41 8 41 8 44 11 45 12 45 12 48 15 49 16 50 17 51 18 53 20 54 21 55 22 57 24 57 24 59 26 65 32 62 29 63 30 65 32 65 32 37 4 41 8 41 8 45 12 65 32 49 16 53 20 57 24 59 26 61 28 65 32 65 32 45 12 49 16</p>
|
||||||
|
</triangles>
|
||||||
|
<triangles material="Material_002-material" count="62">
|
||||||
|
<input semantic="VERTEX" source="#Cone_003-mesh-vertices" offset="0"/>
|
||||||
|
<input semantic="NORMAL" source="#Cone_003-mesh-normals" offset="1"/>
|
||||||
|
<p>0 33 1 34 2 35 2 35 1 34 3 36 3 36 1 34 4 37 4 37 1 34 5 38 5 38 1 34 6 39 6 39 1 34 7 40 7 40 1 34 8 41 8 41 1 34 9 42 9 42 1 34 10 43 10 43 1 34 11 44 11 44 1 34 12 45 12 45 1 34 13 46 13 46 1 34 14 47 14 47 1 34 15 48 15 48 1 34 16 49 16 49 1 34 17 50 17 50 1 34 18 51 18 51 1 34 19 52 19 52 1 34 20 53 20 53 1 34 21 54 21 54 1 34 22 55 22 55 1 34 23 56 23 56 1 34 24 57 24 57 1 34 25 58 25 58 1 34 26 59 26 59 1 34 27 60 27 60 1 34 28 61 28 61 1 34 29 62 29 62 1 34 30 63 30 63 1 34 31 64 31 64 1 34 32 65 32 65 1 34 0 33 16 49 24 57 8 41 32 65 0 33 2 35 2 35 3 36 4 37 4 37 5 38 8 41 6 39 7 40 8 41 8 41 9 42 10 43 10 43 11 44 8 41 12 45 13 46 14 47 14 47 15 48 16 49 16 49 17 50 20 53 18 51 19 52 20 53 20 53 21 54 22 55 22 55 23 56 24 57 24 57 25 58 26 59 26 59 27 60 24 57 28 61 29 62 32 65 30 63 31 64 32 65 32 65 2 35 8 41 5 38 6 39 8 41 8 41 11 44 12 45 12 45 14 47 16 49 17 50 18 51 20 53 20 53 22 55 24 57 24 57 27 60 28 61 29 62 30 63 32 65 2 35 4 37 8 41 8 41 12 45 16 49 16 49 20 53 24 57 24 57 28 61 32 65 32 65 8 41 24 57</p>
|
||||||
|
</triangles>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</library_geometries>
|
||||||
|
<library_controllers/>
|
||||||
|
<library_visual_scenes>
|
||||||
|
<visual_scene id="Scene" name="Scene">
|
||||||
|
<node id="Camera" name="Camera" type="NODE">
|
||||||
|
<matrix sid="transform">0.6859207 -0.3240135 0.6515582 7.481132 0.7276763 0.3054208 -0.6141704 -6.50764 0 0.8953956 0.4452714 5.343665 0 0 0 1</matrix>
|
||||||
|
<instance_camera url="#Camera-camera"/>
|
||||||
|
</node>
|
||||||
|
<node id="Lamp" name="Lamp" type="NODE">
|
||||||
|
<matrix sid="transform">-0.2908646 -0.7711008 0.5663932 4.076245 0.9551712 -0.1998834 0.2183912 1.005454 -0.05518906 0.6045247 0.7946723 5.903862 0 0 0 1</matrix>
|
||||||
|
<instance_light url="#Lamp-light"/>
|
||||||
|
</node>
|
||||||
|
<node id="Camera_001" name="Camera_001" type="NODE">
|
||||||
|
<matrix sid="transform">1.371841 -0.648027 1.303116 10.0091 1.455353 0.6108412 -1.228341 -10.6572 3.76898e-7 1.790791 0.8905425 5.77815 0 0 0 1</matrix>
|
||||||
|
<instance_camera url="#Camera_001-camera"/>
|
||||||
|
</node>
|
||||||
|
<node id="Lamp_001" name="Lamp_001" type="NODE">
|
||||||
|
<matrix sid="transform">-0.5817292 -1.542202 1.132786 3.199329 1.910342 -0.3997671 0.4367821 4.368987 -0.1103777 1.209049 1.589345 6.898543 0 0 0 1</matrix>
|
||||||
|
<instance_light url="#Lamp_001-light"/>
|
||||||
|
</node>
|
||||||
|
<node id="Cone_000" name="Cone_000" type="NODE">
|
||||||
|
<matrix sid="transform">0.1515022 -3.01129e-7 -1.994254 0.004837528 -3.54228e-13 -2 3.01996e-7 -0.04310748 -1.994254 -2.28762e-8 -0.1515022 -0.001579307 0 0 0 1</matrix>
|
||||||
|
<instance_geometry url="#Cone_003-mesh" name="Cone_000">
|
||||||
|
<bind_material>
|
||||||
|
<technique_common>
|
||||||
|
<instance_material symbol="Material_004-material" target="#Material_004-material"/>
|
||||||
|
<instance_material symbol="Material_002-material" target="#Material_002-material"/>
|
||||||
|
</technique_common>
|
||||||
|
</bind_material>
|
||||||
|
</instance_geometry>
|
||||||
|
</node>
|
||||||
|
<node id="Lamp_001" name="Lamp_001" type="NODE">
|
||||||
|
<matrix sid="transform">-0.5817294 -1.542202 1.132787 3.199328 1.910342 -0.3997668 0.4367828 4.368987 -0.1103783 1.209049 1.589345 6.898543 0 0 0 1</matrix>
|
||||||
|
<instance_light url="#Lamp_001-light"/>
|
||||||
|
</node>
|
||||||
|
<node id="Camera_001" name="Camera_001" type="NODE">
|
||||||
|
<matrix sid="transform">1.371841 -0.648027 1.303116 10.0091 1.455353 0.6108412 -1.228341 -10.6572 3.76898e-7 1.790791 0.8905425 5.77815 0 0 0 1</matrix>
|
||||||
|
<instance_camera url="#Camera_001-camera"/>
|
||||||
|
</node>
|
||||||
|
<node id="Camera_001_001" name="Camera_001_001" type="NODE">
|
||||||
|
<matrix sid="transform">1.371841 -0.648027 1.303116 10.0091 1.455353 0.6108412 -1.228341 -10.6572 3.76898e-7 1.790791 0.8905425 5.77815 0 0 0 1</matrix>
|
||||||
|
<instance_camera url="#Camera_001_001-camera"/>
|
||||||
|
</node>
|
||||||
|
<node id="Lamp_001_001" name="Lamp_001_001" type="NODE">
|
||||||
|
<matrix sid="transform">-0.5817294 -1.542202 1.132787 3.199328 1.910342 -0.3997668 0.4367828 4.368987 -0.1103783 1.209049 1.589345 6.898543 0 0 0 1</matrix>
|
||||||
|
<instance_light url="#Lamp_001_001-light"/>
|
||||||
|
</node>
|
||||||
|
</visual_scene>
|
||||||
|
</library_visual_scenes>
|
||||||
|
<scene>
|
||||||
|
<instance_visual_scene url="#Scene"/>
|
||||||
|
</scene>
|
||||||
|
</COLLADA>
|
||||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@@ -22,14 +22,15 @@
|
|||||||
<?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?>
|
||||||
|
|
||||||
<StackPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" style="-fx-background-color: skyblue;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.visualiser.controllers.RaceViewController">
|
<StackPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" style="-fx-background-color: skyblue;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.visualiser.controllers.RaceViewController">
|
||||||
<children>
|
<children>
|
||||||
<StackPane fx:id="contentStackPane" maxHeight="1.7976931348623157E308"
|
<StackPane fx:id="contentStackPane" maxHeight="1.7976931348623157E308"
|
||||||
maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity"
|
maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0"
|
||||||
prefHeight="800.0" prefWidth="1200.0" style="-fx-background-color: skyblue;"
|
prefWidth="1200.0" style="-fx-background-color: skyblue;" xmlns="http://javafx.com/javafx/8.0.111"
|
||||||
xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
|
xmlns:fx="http://javafx.com/fxml/1">
|
||||||
<children>
|
<children>
|
||||||
<GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308"
|
<GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308"
|
||||||
prefHeight="800.0" prefWidth="1200.0">
|
prefHeight="800.0" prefWidth="1200.0">
|
||||||
@@ -37,8 +38,8 @@
|
|||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="250.0" minWidth="250.0"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="250.0" minWidth="250.0"
|
||||||
prefWidth="250.0"/>
|
prefWidth="250.0"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308"/>
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="400.0"
|
||||||
minWidth="400.0" prefWidth="400.0"/>
|
prefWidth="400.0"/>
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="70.0" minHeight="70.0" prefHeight="70.0"
|
<RowConstraints maxHeight="70.0" minHeight="70.0" prefHeight="70.0"
|
||||||
@@ -50,14 +51,13 @@
|
|||||||
<children>
|
<children>
|
||||||
<GridPane id="timerGrid" fx:id="timerGrid" prefWidth="192.0" styleClass="timer">
|
<GridPane id="timerGrid" fx:id="timerGrid" prefWidth="192.0" styleClass="timer">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="50.0"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="50.0" minWidth="50.0"
|
||||||
minWidth="50.0" prefWidth="50.0"/>
|
prefWidth="50.0"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="135.0"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="135.0" minWidth="135.0"
|
||||||
minWidth="135.0" prefWidth="135.0"/>
|
prefWidth="135.0"/>
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0"
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
|
||||||
vgrow="SOMETIMES"/>
|
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<opaqueInsets>
|
<opaqueInsets>
|
||||||
<Insets/>
|
<Insets/>
|
||||||
@@ -76,9 +76,8 @@
|
|||||||
<Insets/>
|
<Insets/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</ImageView>
|
</ImageView>
|
||||||
<Label fx:id="timerLabel" text="00:03:34"
|
<Label fx:id="timerLabel" text="00:03:34" GridPane.columnIndex="1"
|
||||||
GridPane.columnIndex="1" GridPane.halignment="CENTER"
|
GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||||
GridPane.valignment="CENTER">
|
|
||||||
<font>
|
<font>
|
||||||
<Font size="21.0"/>
|
<Font size="21.0"/>
|
||||||
</font>
|
</font>
|
||||||
@@ -90,68 +89,57 @@
|
|||||||
</GridPane>
|
</GridPane>
|
||||||
<GridPane GridPane.columnIndex="2">
|
<GridPane GridPane.columnIndex="2">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
prefWidth="100.0"/>
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
|
||||||
prefWidth="100.0"/>
|
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0"
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
|
||||||
vgrow="SOMETIMES"/>
|
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<GridPane fx:id="chatGridPane" GridPane.columnIndex="2" GridPane.rowIndex="2">
|
<GridPane fx:id="chatGridPane" GridPane.columnIndex="2" GridPane.rowIndex="2">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="390.0"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="390.0" minWidth="390.0"
|
||||||
minWidth="390.0" prefWidth="390.0"/>
|
prefWidth="390.0"/>
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="1.7976931348623157E308"
|
<RowConstraints maxHeight="1.7976931348623157E308" vgrow="SOMETIMES"/>
|
||||||
|
<RowConstraints maxHeight="60.0" minHeight="60.0" prefHeight="60.0"
|
||||||
vgrow="SOMETIMES"/>
|
vgrow="SOMETIMES"/>
|
||||||
<RowConstraints maxHeight="60.0" minHeight="60.0"
|
|
||||||
prefHeight="60.0" vgrow="SOMETIMES"/>
|
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Pane fx:id="chatHistoryHolder" prefHeight="200.0"
|
<Pane fx:id="chatHistoryHolder" prefHeight="200.0" prefWidth="200.0"
|
||||||
prefWidth="200.0" GridPane.hgrow="ALWAYS"
|
GridPane.hgrow="ALWAYS" GridPane.valignment="BOTTOM"
|
||||||
GridPane.valignment="BOTTOM" GridPane.vgrow="ALWAYS">
|
GridPane.vgrow="ALWAYS">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets/>
|
<Insets/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
<padding>
|
<padding>
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0"
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
|
||||||
top="10.0"/>
|
|
||||||
</padding>
|
</padding>
|
||||||
</Pane>
|
</Pane>
|
||||||
<GridPane fx:id="chatInputHolder" GridPane.rowIndex="1">
|
<GridPane fx:id="chatInputHolder" GridPane.rowIndex="1">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
||||||
prefWidth="100.0"/>
|
prefWidth="100.0"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity"
|
||||||
maxWidth="-Infinity" minWidth="90.0"
|
minWidth="90.0" prefWidth="90.0"/>
|
||||||
prefWidth="90.0"/>
|
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="50.0" minHeight="50.0"
|
<RowConstraints maxHeight="50.0" minHeight="50.0" prefHeight="50.0"
|
||||||
prefHeight="50.0" valignment="CENTER"
|
valignment="CENTER" vgrow="SOMETIMES"/>
|
||||||
vgrow="SOMETIMES"/>
|
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<JFXButton fx:id="chatSend" alignment="CENTER"
|
<JFXButton fx:id="chatSend" alignment="CENTER" buttonType="RAISED"
|
||||||
buttonType="RAISED" focusTraversable="false"
|
focusTraversable="false" maxHeight="-Infinity"
|
||||||
maxHeight="-Infinity"
|
maxWidth="1.7976931348623157E308" minHeight="-Infinity"
|
||||||
maxWidth="1.7976931348623157E308"
|
minWidth="-Infinity" prefHeight="35.0" text="SEND"
|
||||||
minHeight="-Infinity" minWidth="-Infinity"
|
|
||||||
prefHeight="35.0" text="SEND"
|
|
||||||
GridPane.columnIndex="1">
|
GridPane.columnIndex="1">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0"
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
|
||||||
top="10.0"/>
|
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</JFXButton>
|
</JFXButton>
|
||||||
<JFXTextField fx:id="chatInput" focusTraversable="false"
|
<JFXTextField fx:id="chatInput" focusTraversable="false"
|
||||||
maxHeight="35.0" minHeight="-Infinity"
|
maxHeight="35.0" minHeight="-Infinity" prefHeight="35.0">
|
||||||
prefHeight="35.0">
|
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="10.0" left="20.0" right="10.0"/>
|
<Insets bottom="10.0" left="20.0" right="10.0"/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
@@ -169,33 +157,31 @@
|
|||||||
<Insets bottom="10.0" right="10.0"/>
|
<Insets bottom="10.0" right="10.0"/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<GridPane fx:id="windGridPane" maxHeight="-Infinity"
|
<GridPane fx:id="windGridPane" maxHeight="-Infinity" maxWidth="-Infinity"
|
||||||
maxWidth="-Infinity" prefHeight="150.0" prefWidth="240.0"
|
prefHeight="150.0" prefWidth="240.0" GridPane.halignment="CENTER"
|
||||||
GridPane.halignment="CENTER" GridPane.rowIndex="2"
|
GridPane.rowIndex="2" GridPane.valignment="BOTTOM">
|
||||||
GridPane.valignment="BOTTOM">
|
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="110.0"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="110.0" minWidth="110.0"
|
||||||
minWidth="110.0" prefWidth="110.0"/>
|
prefWidth="110.0"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="132.0"
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="132.0" minWidth="10.0"
|
||||||
minWidth="10.0" prefWidth="132.0"/>
|
prefWidth="132.0"/>
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="120.0" minHeight="120.0"
|
<RowConstraints maxHeight="120.0" minHeight="120.0" prefHeight="120.0"
|
||||||
prefHeight="120.0" vgrow="SOMETIMES"/>
|
vgrow="SOMETIMES"/>
|
||||||
<RowConstraints maxHeight="30.0" minHeight="30.0"
|
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0"
|
||||||
prefHeight="30.0" vgrow="SOMETIMES"/>
|
vgrow="SOMETIMES"/>
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<Label fx:id="positionLabel" text="Position:"
|
<Label fx:id="positionLabel" text="Position:" GridPane.columnIndex="1"
|
||||||
GridPane.columnIndex="1" GridPane.halignment="LEFT"
|
GridPane.halignment="LEFT" GridPane.rowSpan="2" GridPane.valignment="TOP">
|
||||||
GridPane.rowSpan="2" GridPane.valignment="TOP">
|
|
||||||
<padding>
|
<padding>
|
||||||
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
|
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
|
||||||
</padding>
|
</padding>
|
||||||
</Label>
|
</Label>
|
||||||
<Label fx:id="boatSpeedLabel" text="Boat Speed:"
|
<Label fx:id="boatSpeedLabel" text="Boat Speed:" GridPane.columnIndex="1"
|
||||||
GridPane.columnIndex="1" GridPane.halignment="LEFT"
|
GridPane.halignment="LEFT" GridPane.rowSpan="2"
|
||||||
GridPane.rowSpan="2" GridPane.valignment="CENTER">
|
GridPane.valignment="CENTER">
|
||||||
<opaqueInsets>
|
<opaqueInsets>
|
||||||
<Insets/>
|
<Insets/>
|
||||||
</opaqueInsets>
|
</opaqueInsets>
|
||||||
@@ -204,8 +190,8 @@
|
|||||||
</padding>
|
</padding>
|
||||||
</Label>
|
</Label>
|
||||||
<Label fx:id="boatHeadingLabel" text="Boat Heading:"
|
<Label fx:id="boatHeadingLabel" text="Boat Heading:"
|
||||||
GridPane.columnIndex="1" GridPane.halignment="LEFT"
|
GridPane.columnIndex="1" GridPane.halignment="LEFT" GridPane.rowSpan="2"
|
||||||
GridPane.rowSpan="2" GridPane.valignment="BOTTOM">
|
GridPane.valignment="BOTTOM">
|
||||||
<padding>
|
<padding>
|
||||||
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
|
<Insets bottom="5.0" left="10.0" right="5.0" top="5.0"/>
|
||||||
</padding>
|
</padding>
|
||||||
@@ -218,14 +204,10 @@
|
|||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="120.0" minHeight="120.0"
|
<RowConstraints maxHeight="120.0" minHeight="120.0"
|
||||||
prefHeight="120.0" vgrow="SOMETIMES"/>
|
prefHeight="120.0" vgrow="SOMETIMES"/>
|
||||||
<RowConstraints maxHeight="30.0" minHeight="30.0"
|
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0"
|
||||||
prefHeight="30.0" vgrow="SOMETIMES"/>
|
vgrow="SOMETIMES"/>
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<ImageView fx:id="windImageView" fitHeight="92.0"
|
|
||||||
fitWidth="109.0" pickOnBounds="true"
|
|
||||||
preserveRatio="true" GridPane.halignment="CENTER"
|
|
||||||
GridPane.rowSpan="2" GridPane.valignment="CENTER"/>
|
|
||||||
<Label fx:id="windSpeedLabel" text="0.0 Knots"
|
<Label fx:id="windSpeedLabel" text="0.0 Knots"
|
||||||
GridPane.halignment="RIGHT" GridPane.rowIndex="1"
|
GridPane.halignment="RIGHT" GridPane.rowIndex="1"
|
||||||
GridPane.valignment="CENTER">
|
GridPane.valignment="CENTER">
|
||||||
@@ -240,6 +222,7 @@
|
|||||||
<Insets left="5.0"/>
|
<Insets left="5.0"/>
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Label>
|
</Label>
|
||||||
|
<VBox fx:id="windArrowVBox" prefHeight="200.0" prefWidth="100.0"/>
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</children>
|
</children>
|
||||||
@@ -252,28 +235,22 @@
|
|||||||
</GridPane>
|
</GridPane>
|
||||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="2">
|
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="2">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
prefWidth="100.0"/>
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
prefWidth="100.0"/>
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
prefWidth="100.0"/>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
|
||||||
prefWidth="100.0"/>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0"
|
|
||||||
prefWidth="100.0"/>
|
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="152.0" minHeight="10.0"
|
<RowConstraints maxHeight="152.0" minHeight="10.0" prefHeight="152.0"
|
||||||
prefHeight="152.0" vgrow="SOMETIMES"/>
|
vgrow="SOMETIMES"/>
|
||||||
<RowConstraints maxHeight="118.0" minHeight="10.0"
|
<RowConstraints maxHeight="118.0" minHeight="10.0" prefHeight="98.0"
|
||||||
prefHeight="98.0" vgrow="SOMETIMES"/>
|
vgrow="SOMETIMES"/>
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<ImageView fx:id="velocityIcon" fitHeight="88.0"
|
<ImageView fx:id="velocityIcon" fitHeight="88.0" fitWidth="106.0"
|
||||||
fitWidth="106.0" pickOnBounds="true" preserveRatio="true"
|
pickOnBounds="true" preserveRatio="true" visible="false"
|
||||||
visible="false" GridPane.halignment="CENTER"
|
GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
||||||
GridPane.rowIndex="1">
|
|
||||||
<image>
|
<image>
|
||||||
<Image url="@../icons/velocity.png"/>
|
<Image url="@../icons/velocity.png"/>
|
||||||
</image>
|
</image>
|
||||||
@@ -286,10 +263,10 @@
|
|||||||
<Image url="@../icons/handlingIcon.png"/>
|
<Image url="@../icons/handlingIcon.png"/>
|
||||||
</image>
|
</image>
|
||||||
</ImageView>
|
</ImageView>
|
||||||
<ImageView fx:id="windWalkerIcon" fitHeight="83.0"
|
<ImageView fx:id="windWalkerIcon" fitHeight="83.0" fitWidth="100.0"
|
||||||
fitWidth="100.0" pickOnBounds="true" preserveRatio="true"
|
pickOnBounds="true" preserveRatio="true" visible="false"
|
||||||
visible="false" GridPane.columnIndex="2"
|
GridPane.columnIndex="2" GridPane.halignment="CENTER"
|
||||||
GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
GridPane.rowIndex="1">
|
||||||
<image>
|
<image>
|
||||||
<Image url="@../icons/windWalkerIcon.png"/>
|
<Image url="@../icons/windWalkerIcon.png"/>
|
||||||
</image>
|
</image>
|
||||||
@@ -302,11 +279,10 @@
|
|||||||
<Image url="@../icons/bumperIcon.png"/>
|
<Image url="@../icons/bumperIcon.png"/>
|
||||||
</image>
|
</image>
|
||||||
</ImageView>
|
</ImageView>
|
||||||
<ImageView fx:id="badRandomIcon" fitHeight="69.0"
|
<ImageView fx:id="badRandomIcon" fitHeight="69.0" fitWidth="103.0"
|
||||||
fitWidth="103.0" pickOnBounds="true" preserveRatio="true"
|
pickOnBounds="true" preserveRatio="true" visible="false"
|
||||||
visible="false" GridPane.columnIndex="4"
|
GridPane.columnIndex="4" GridPane.halignment="CENTER"
|
||||||
GridPane.halignment="CENTER" GridPane.rowIndex="1"
|
GridPane.rowIndex="1" GridPane.valignment="CENTER">
|
||||||
GridPane.valignment="CENTER">
|
|
||||||
<image>
|
<image>
|
||||||
<Image url="@../icons/slowedIcon.png"/>
|
<Image url="@../icons/slowedIcon.png"/>
|
||||||
</image>
|
</image>
|
||||||
@@ -316,9 +292,8 @@
|
|||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
<Pane fx:id="miniMapPane" maxHeight="200.0" maxWidth="200.0" minHeight="200.0"
|
<Pane fx:id="miniMapPane" maxHeight="200.0" maxWidth="200.0" minHeight="200.0" minWidth="200.0" prefHeight="200.0" prefWidth="200.0" style="-fx-background-color: white; -fx-opacity: 0.45; -fx-background-radius: 10;" StackPane.alignment="TOP_RIGHT">
|
||||||
minWidth="200.0" prefHeight="200.0" prefWidth="200.0" StackPane.alignment="TOP_RIGHT">
|
|
||||||
<StackPane.margin>
|
<StackPane.margin>
|
||||||
<Insets right="15.0" top="15.0" />
|
<Insets right="15.0" top="15.0" />
|
||||||
</StackPane.margin>
|
</StackPane.margin>
|
||||||
@@ -332,11 +307,8 @@
|
|||||||
</StackPane.margin>
|
</StackPane.margin>
|
||||||
</JFXButton>
|
</JFXButton>
|
||||||
<AnchorPane fx:id="loadingScreenPane">
|
<AnchorPane fx:id="loadingScreenPane">
|
||||||
<children>
|
<ImageView fx:id="loadingScreen" fitHeight="672.0" fitWidth="1200.0" pickOnBounds="true" preserveRatio="true" />
|
||||||
<ImageView fx:id="loadingScreen" fitHeight="672.0" fitWidth="1200.0"
|
<JFXSpinner layoutX="566.0" layoutY="692.0" radius="30.0" />
|
||||||
pickOnBounds="true" preserveRatio="true"/>
|
|
||||||
<JFXSpinner layoutX="566.0" layoutY="692.0" radius="30.0"/>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
<JFXButton fx:id="chatToggleButton" text="—" StackPane.alignment="BOTTOM_RIGHT">
|
<JFXButton fx:id="chatToggleButton" text="—" StackPane.alignment="BOTTOM_RIGHT">
|
||||||
<font>
|
<font>
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
|
||||||
|
<?import javafx.scene.layout.Pane?>
|
||||||
|
<Pane fx:id="windPane" prefHeight="120.0" prefWidth="110.0"
|
||||||
|
stylesheets="@../../css/cells/WindCell.css" xmlns="http://javafx.com/javafx/8"
|
||||||
|
xmlns:fx="http://javafx.com/fxml/1"/>
|
||||||
Reference in New Issue
Block a user