From c2fd5c9baeba84c87663d70e004890c7e9e0c63e Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Wed, 30 Aug 2017 15:49:20 +1200 Subject: [PATCH] Changed box to boat mesh - Mesh needs to be rotated -90 degrees on X - STL file has been added to assets #story[1196] --- .../Controllers/HostController.java | 20 ++++++++++++++---- .../main/java/visualiser/model/View3D.java | 3 --- .../resources/assets/V1.2 Complete Boat.stl | Bin 0 -> 30984 bytes 3 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 racevisionGame/src/main/resources/assets/V1.2 Complete Boat.stl diff --git a/racevisionGame/src/main/java/visualiser/Controllers/HostController.java b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java index 6d11e65e..ed34a2c6 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/HostController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java @@ -1,5 +1,6 @@ package visualiser.Controllers; +import com.interactivemesh.jfx.importer.stl.StlMeshImporter; import javafx.fxml.FXML; import javafx.scene.control.Alert; import javafx.scene.control.ButtonType; @@ -8,6 +9,9 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.shape.Box; +import javafx.scene.shape.Mesh; +import javafx.scene.shape.MeshView; +import javafx.scene.transform.Rotate; import mock.app.Event; import mock.exceptions.EventConstructionException; import visualiser.model.View3D; @@ -59,10 +63,18 @@ public class HostController extends Controller { view3D = new View3D(); playerContainer.add(view3D, 0,0); - Box box = new Box(100, 100, 100); - view3D.addShape(box); - view3D.setPivot(box); - view3D.setDistance(500); + URL asset = HostController.class.getClassLoader().getResource("assets/V1.2 Complete Boat.stl"); + + StlMeshImporter importer = new StlMeshImporter(); + importer.read(asset); + MeshView mesh = new MeshView(importer.getImport()); + + mesh.getTransforms().add(new Rotate(-90, Rotate.X_AXIS)); + + view3D.addShape(mesh); + view3D.setPivot(mesh); + view3D.setDistance(50); + view3D.setYaw(45); view3D.setPitch(20); } diff --git a/racevisionGame/src/main/java/visualiser/model/View3D.java b/racevisionGame/src/main/java/visualiser/model/View3D.java index 936b7fbc..bd4b4dd0 100644 --- a/racevisionGame/src/main/java/visualiser/model/View3D.java +++ b/racevisionGame/src/main/java/visualiser/model/View3D.java @@ -9,9 +9,6 @@ import javafx.scene.shape.Shape3D; import javafx.scene.transform.Rotate; import javafx.scene.transform.Translate; -import java.util.ArrayList; -import java.util.List; - /** * Control for rendering 3D objects visible through a PerspectiveCamera. Implements Adapter Pattern to * interface with camera, and allows clients to add shapes to the scene. All scenes contain sea plane and diff --git a/racevisionGame/src/main/resources/assets/V1.2 Complete Boat.stl b/racevisionGame/src/main/resources/assets/V1.2 Complete Boat.stl new file mode 100644 index 0000000000000000000000000000000000000000..a952ca7739aa8326a2ba076af6254834bb61886a GIT binary patch literal 30984 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