diff --git a/src/main/java/seng302/visualiser/test3d.java b/src/main/java/seng302/visualiser/test3d.java index 06eb9975..8c0907af 100644 --- a/src/main/java/seng302/visualiser/test3d.java +++ b/src/main/java/seng302/visualiser/test3d.java @@ -1,13 +1,17 @@ package seng302.visualiser; +import com.interactivemesh.jfx.importer.stl.StlMeshImporter; +import javafx.animation.AnimationTimer; import javafx.application.Application; import javafx.geometry.Point3D; import javafx.scene.Camera; import javafx.scene.Group; import javafx.scene.PerspectiveCamera; -import javafx.scene.PointLight; import javafx.scene.Scene; import javafx.scene.SceneAntialiasing; +import javafx.scene.paint.Color; +import javafx.scene.paint.PhongMaterial; +import javafx.scene.shape.MeshView; import javafx.scene.transform.Rotate; import javafx.scene.transform.Scale; import javafx.scene.transform.Translate; @@ -35,34 +39,39 @@ public class test3d extends Application { primaryStage.setScene(scene); primaryStage.show(); -// StlMeshImporter importer = new StlMeshImporter(); -// importer.read(getClass().getResource("/meshes/boat_hull.stl")); -// MeshView boat = new MeshView(importer.getImport()); -// boat.setMaterial(new PhongMaterial(Color.BEIGE)); -// -// importer = new StlMeshImporter(); -// importer.read(getClass().getResource("/meshes/boat_mast.stl").toString()); -// MeshView mast = new MeshView(importer.getImport()); -// mast.setMaterial(new PhongMaterial(Color.BEIGE)); -// -// importer = new StlMeshImporter(); -// importer.read(getClass().getResource("/meshes/boat_sail.stl").toString()); -// MeshView sail = new MeshView(importer.getImport()); -// sail.setMaterial(new PhongMaterial(Color.WHITE)); + StlMeshImporter importer = new StlMeshImporter(); + importer.read(test3d.class.getResource("/meshes/high_poly_boat.stl").toString()); + MeshView boat = new MeshView(importer.getImport()); + boat.setMaterial(new PhongMaterial(Color.GREENYELLOW)); -// gameObjects.getChildren().addAll(boat, mast, sail); + importer = new StlMeshImporter(); + importer.read(getClass().getResource("/meshes/boat-mast.stl").toString()); + MeshView mast = new MeshView(importer.getImport()); + mast.setMaterial(new PhongMaterial(Color.GREENYELLOW)); - gameObjects.getTransforms().add(new Scale(40, 40,40)); - gameObjects.getTransforms().add(new Translate(10, 10,0)); + importer = new StlMeshImporter(); + importer.read(getClass().getResource("/meshes/sail_centered.stl").toString()); + MeshView sail = new MeshView(importer.getImport()); + sail.setMaterial(new PhongMaterial(Color.LIGHTGREY)); + + gameObjects.getChildren().addAll(boat, mast, sail); + + gameObjects.getTransforms().add(new Scale(25, 25,25)); + gameObjects.getTransforms().add(new Translate(15, 20,0)); gameObjects.getTransforms().addAll( new Rotate(90, new Point3D(0,0,1)), new Rotate(90, new Point3D(0, 1, 0)) ); - PointLight light = new PointLight(); - light.setLightOn(true); - light.getTransforms().add(new Translate(10, 10, -50)); - root3D.getChildren().add(light); +// PointLight light = new PointLight(); +// light.setLightOn(true); +// light.getTransforms().add(new Translate(15, 20, 0)); +// +// PointLight light2 = new PointLight(); +// light2.setLightOn(true); +// light2.getTransforms().add(new Translate(30, 40, 0)); + +// root3D.getChildren().addAll(light); scene.setOnKeyPressed(event -> { switch (event.getCode()) { @@ -80,5 +89,14 @@ public class test3d extends Application { break; } }); + + AnimationTimer animationTimer = new AnimationTimer() { + @Override + public void handle(long now) { + sail.getTransforms().add(new Rotate(0.5, 0, -1.36653, 0, new Point3D(0, 0, 1))); + } + }; + + animationTimer.start(); } } diff --git a/src/main/resources/meshes/high_poly_boat.stl b/src/main/resources/meshes/high_poly_boat.stl new file mode 100644 index 00000000..0659488a Binary files /dev/null and b/src/main/resources/meshes/high_poly_boat.stl differ diff --git a/src/main/resources/meshes/sail_centered.stl b/src/main/resources/meshes/sail_centered.stl new file mode 100644 index 00000000..948ad9e7 Binary files /dev/null and b/src/main/resources/meshes/sail_centered.stl differ