From 1b1b0a45914dcfa5808aeaec23b10744f07dc39d Mon Sep 17 00:00:00 2001 From: cbt24 Date: Tue, 29 Aug 2017 14:38:27 +1200 Subject: [PATCH 1/3] Added floating test cube in title screen initialiser #story[1191] --- .../Controllers/TitleController.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index 32e033c8..45ab295d 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -1,12 +1,18 @@ package visualiser.Controllers; +import javafx.animation.AnimationTimer; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; +import javafx.scene.Group; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.RadioButton; import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.Pane; +import javafx.scene.shape.Box; +import javafx.scene.shape.CullFace; +import javafx.scene.transform.Rotate; import javafx.stage.Modality; import javafx.stage.Stage; import visualiser.app.App; @@ -32,6 +38,8 @@ public class TitleController extends Controller { @FXML RadioButton nightModeRD; + Group group3d; + /** * Method called when the 'host a game' button is pressed. * Opens the next window allowing a user to host their own game. @@ -81,7 +89,31 @@ public class TitleController extends Controller { @Override public void initialize(URL location, ResourceBundle resources) { + System.out.println("Initializing..."); + + Box box = new Box(50,50,50); + box.setTranslateX(100); + box.setTranslateY(100); + box.setCullFace(CullFace.BACK); + + Rotate ry = new Rotate(0, 0,0,0, Rotate.Y_AXIS); + Rotate rx = new Rotate(20, 0, 0, 0, Rotate.X_AXIS); + box.getTransforms().add(ry); + box.getTransforms().add(rx); + + group3d = new Group(box); + + titleWrapper.getChildren().add(0, group3d); + group3d.toFront(); + + AnimationTimer rotation = new AnimationTimer() { + @Override + public void handle(long now) { + ry.setAngle(ry.getAngle() + 0.1); + } + }; + rotation.start(); } /** From ea41c64c34a1b64b5bce812b103233e88214c978 Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Tue, 29 Aug 2017 20:36:08 +1200 Subject: [PATCH 2/3] Added dependency for stl converter #story[1191] --- racevisionGame/pom.xml | 11 ++++++++++- .../java/visualiser/model/BoatDisplay3D.java | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 racevisionGame/src/main/java/visualiser/model/BoatDisplay3D.java diff --git a/racevisionGame/pom.xml b/racevisionGame/pom.xml index b0f6d203..958bdfd7 100644 --- a/racevisionGame/pom.xml +++ b/racevisionGame/pom.xml @@ -54,6 +54,11 @@ 9.0 + + InteractiveMesh + STLImporter + 0_4_1 + @@ -72,7 +77,11 @@ http://download.osgeo.org/webdav/geotools/ - + + interactivemesh + Interactive Mesh + http://umbrasheep.com:8888/repository/internal/ + diff --git a/racevisionGame/src/main/java/visualiser/model/BoatDisplay3D.java b/racevisionGame/src/main/java/visualiser/model/BoatDisplay3D.java new file mode 100644 index 00000000..9314f5cd --- /dev/null +++ b/racevisionGame/src/main/java/visualiser/model/BoatDisplay3D.java @@ -0,0 +1,18 @@ +package visualiser.model; + +import com.interactivemesh.jfx.importer.Importer; +import javafx.scene.layout.Pane; + +/** + * Created by fwy13 on 29/08/17. + */ +public class BoatDisplay3D extends Pane { + + + public BoatDisplay3D(String filePath){ + super(); +// Shape3D +// this.getChildren().add(); + } + +} From cf838f2072c6bea5e30da28a385df14ee293ff39 Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Wed, 30 Aug 2017 01:30:05 +1200 Subject: [PATCH 3/3] Added View3D control for rendering 3D shapes under a PerspectiveCamera, which is not currently working. #story[1196] --- .../Controllers/HostController.java | 9 ++ .../Controllers/LobbyController.java | 2 +- .../Controllers/TitleController.java | 33 ----- .../main/java/visualiser/model/View3D.java | 49 +++++++ .../visualiser/scenes/hostlobby.fxml | 127 +++--------------- 5 files changed, 77 insertions(+), 143 deletions(-) create mode 100644 racevisionGame/src/main/java/visualiser/model/View3D.java diff --git a/racevisionGame/src/main/java/visualiser/Controllers/HostController.java b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java index 22c76426..a085041b 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/HostController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java @@ -6,8 +6,10 @@ import javafx.scene.control.ButtonType; import javafx.scene.control.SplitPane; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.GridPane; import mock.app.Event; import mock.exceptions.EventConstructionException; +import visualiser.model.View3D; import java.io.IOException; import java.net.Socket; @@ -44,11 +46,18 @@ public class HostController extends Controller { @FXML AnchorPane specPane; + @FXML + GridPane playerContainer; + private Event game; + private View3D fancyStuff; @Override public void initialize(URL location, ResourceBundle resources) { + fancyStuff = new View3D(); + playerContainer.add(fancyStuff, 0,0); + fancyStuff.spinBox(); } /** diff --git a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java index 07af2b49..d541c531 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java @@ -21,7 +21,7 @@ import java.util.ResourceBundle; public class LobbyController extends Controller { @FXML - AnchorPane lobbyWrapper; + private AnchorPane lobbyWrapper; @FXML private TableView lobbyTable; @FXML diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index 45ab295d..5617e3da 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -1,18 +1,12 @@ package visualiser.Controllers; -import javafx.animation.AnimationTimer; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.scene.Group; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.RadioButton; import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.Pane; -import javafx.scene.shape.Box; -import javafx.scene.shape.CullFace; -import javafx.scene.transform.Rotate; import javafx.stage.Modality; import javafx.stage.Stage; import visualiser.app.App; @@ -38,8 +32,6 @@ public class TitleController extends Controller { @FXML RadioButton nightModeRD; - Group group3d; - /** * Method called when the 'host a game' button is pressed. * Opens the next window allowing a user to host their own game. @@ -89,31 +81,6 @@ public class TitleController extends Controller { @Override public void initialize(URL location, ResourceBundle resources) { - System.out.println("Initializing..."); - - Box box = new Box(50,50,50); - box.setTranslateX(100); - box.setTranslateY(100); - box.setCullFace(CullFace.BACK); - - Rotate ry = new Rotate(0, 0,0,0, Rotate.Y_AXIS); - Rotate rx = new Rotate(20, 0, 0, 0, Rotate.X_AXIS); - box.getTransforms().add(ry); - box.getTransforms().add(rx); - - group3d = new Group(box); - - titleWrapper.getChildren().add(0, group3d); - group3d.toFront(); - - AnimationTimer rotation = new AnimationTimer() { - @Override - public void handle(long now) { - ry.setAngle(ry.getAngle() + 0.1); - } - }; - - rotation.start(); } /** diff --git a/racevisionGame/src/main/java/visualiser/model/View3D.java b/racevisionGame/src/main/java/visualiser/model/View3D.java new file mode 100644 index 00000000..f6937755 --- /dev/null +++ b/racevisionGame/src/main/java/visualiser/model/View3D.java @@ -0,0 +1,49 @@ +package visualiser.model; + +import javafx.animation.AnimationTimer; +import javafx.scene.Group; +import javafx.scene.PerspectiveCamera; +import javafx.scene.SubScene; +import javafx.scene.layout.Pane; +import javafx.scene.shape.Box; +import javafx.scene.shape.CullFace; +import javafx.scene.transform.Rotate; + +/** + * Created by connortaylorbrown on 30/08/17. + */ +public class View3D extends Pane { + SubScene scene; + PerspectiveCamera camera; + Box box; + + public View3D() { + scene = new SubScene(this, 500, 500); + camera = new PerspectiveCamera(); + scene.setCamera(camera); + } + + public void spinBox() { + camera.getTransforms().add(new Rotate(-20, Rotate.X_AXIS)); + + box = new Box(50,50,50); + box.setTranslateX(100); + box.setTranslateY(100); + box.setCullFace(CullFace.BACK); + + Rotate ry = new Rotate(0, 0,0,0, Rotate.Y_AXIS); + box.getTransforms().add(ry); + + this.getChildren().add(camera); + this.getChildren().add(box); + + AnimationTimer rotation = new AnimationTimer() { + @Override + public void handle(long now) { + ry.setAngle(ry.getAngle() + 0.1); + } + }; + + rotation.start(); + } +} diff --git a/racevisionGame/src/main/resources/visualiser/scenes/hostlobby.fxml b/racevisionGame/src/main/resources/visualiser/scenes/hostlobby.fxml index aed6664b..c4198bf3 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/hostlobby.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/hostlobby.fxml @@ -1,24 +1,20 @@ - - - - - - + - + + - + @@ -36,123 +32,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -