From 64811354e37aa81087905cb47934ad93885e9543 Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 7 Sep 2017 17:09:52 +1200 Subject: [PATCH] added peters boat --- .../visualiser/{map => }/GameView3D.java | 2 +- src/main/java/seng302/visualiser/test3d.java | 84 ++++++++++++++++++ src/main/resources/meshes/boat-hull.stl | Bin 0 -> 14284 bytes src/main/resources/meshes/boat-mast.stl | Bin 0 -> 2284 bytes src/main/resources/meshes/boat-sail.stl | Bin 0 -> 1484 bytes 5 files changed, 85 insertions(+), 1 deletion(-) rename src/main/java/seng302/visualiser/{map => }/GameView3D.java (95%) create mode 100644 src/main/java/seng302/visualiser/test3d.java create mode 100644 src/main/resources/meshes/boat-hull.stl create mode 100644 src/main/resources/meshes/boat-mast.stl create mode 100644 src/main/resources/meshes/boat-sail.stl diff --git a/src/main/java/seng302/visualiser/map/GameView3D.java b/src/main/java/seng302/visualiser/GameView3D.java similarity index 95% rename from src/main/java/seng302/visualiser/map/GameView3D.java rename to src/main/java/seng302/visualiser/GameView3D.java index c3183737..9b6ccf93 100644 --- a/src/main/java/seng302/visualiser/map/GameView3D.java +++ b/src/main/java/seng302/visualiser/GameView3D.java @@ -1,4 +1,4 @@ -package seng302.visualiser.map; +package seng302.visualiser; import javafx.scene.Camera; import javafx.scene.Group; diff --git a/src/main/java/seng302/visualiser/test3d.java b/src/main/java/seng302/visualiser/test3d.java new file mode 100644 index 00000000..06eb9975 --- /dev/null +++ b/src/main/java/seng302/visualiser/test3d.java @@ -0,0 +1,84 @@ +package seng302.visualiser; + +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.transform.Rotate; +import javafx.scene.transform.Scale; +import javafx.scene.transform.Translate; +import javafx.stage.Stage; + +/** + * Created by cir27 on 7/09/17. + */ +public class test3d extends Application { + + Group root3D; + Scene scene; + Camera camera; + Group gameObjects; + + @Override + public void start(Stage primaryStage) throws Exception { + camera = new PerspectiveCamera(); + gameObjects = new Group(); + root3D = new Group(camera, gameObjects); + scene = new Scene( + root3D, 750, 750, true, SceneAntialiasing.BALANCED + ); + scene.setCamera(camera); + 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)); + +// gameObjects.getChildren().addAll(boat, mast, sail); + + gameObjects.getTransforms().add(new Scale(40, 40,40)); + gameObjects.getTransforms().add(new Translate(10, 10,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); + + scene.setOnKeyPressed(event -> { + switch (event.getCode()) { + case UP: + gameObjects.getTransforms().add(new Rotate(5, new Point3D(0,0,1))); + break; + case DOWN: + gameObjects.getTransforms().add(new Rotate(-5, new Point3D(0,0,1))); + break; + case LEFT: + gameObjects.getTransforms().add(new Rotate(-5, new Point3D(0,1,0))); + break; + case RIGHT: + gameObjects.getTransforms().add(new Rotate(5, new Point3D(0,1,0))); + break; + } + }); + } +} diff --git a/src/main/resources/meshes/boat-hull.stl b/src/main/resources/meshes/boat-hull.stl new file mode 100644 index 0000000000000000000000000000000000000000..4fc58ea50582a04715f0ab9961b273c0da409851 GIT binary patch literal 14284 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 GBL4w3f}-aD literal 0 HcmV?d00001 diff --git a/src/main/resources/meshes/boat-mast.stl b/src/main/resources/meshes/boat-mast.stl new file mode 100644 index 0000000000000000000000000000000000000000..433d1bb4491655248fa399adb37a5f8e0fd94449 GIT binary patch literal 2284 zcmb7FJ!=$E6n)BCTBbtbt(8p>?2;4< zHk&{|vSWUL{sR$Fqv8iBh+-4(nKx(VJg0JD;lR1)o_D`?J9lp__ilF=o7a2GH=7r4 zbe9&pz3FpjS~Jbbl{*W~v!~sEeWon>%j|0MdTo6O;aEJ{e*Wxfa&2=eA-?zK!G*z~ z(LOo3nE;0hWr$S`?A+Hzl>BK#89X$K7LKPf!Enc{b$P=*+JsrDWp*4Epf zXIFC%jUtA}_N#}3D~}!*9;#4=7cpLwZJh8TIN4m{eJxkeGQ zj+ME+&?8qM7a3yYrP_P^u&V8A8|Iuw5yK<4d9>!U!sDkXlp$sv@b(@bZRWTUcxV(c zJYHNK+Zlg*Pb@ z!JCMJ8|0f%hcdi7k^0E#}W@I(LX`Diq2PtJ?2X@&A!ut@ei)QK~NgKXQdK#CR3ewRvQWLS9DE1M~N< zTIx?kzGG>wAjAG3iu3o1s=sNb4CjF;?pR%+4Cg^b^;>eRKe5YKal;YCEdl1O)IF5p x1QDejac-pZa)%zu0J95PpT%}Am%UO(Ytq+Now9Aul+hQecc}Q+gZ&8=e*v<+IHLdn literal 0 HcmV?d00001 diff --git a/src/main/resources/meshes/boat-sail.stl b/src/main/resources/meshes/boat-sail.stl new file mode 100644 index 0000000000000000000000000000000000000000..e9b25cc8fd8e9909192e3abdb26df564af34bc4b GIT binary patch literal 1484 zcmb7E&r4KM7`?Lyf_9M>^cI69=)zH&zzNN(QP^hMMH_!1Z`_zYc`8U4JrFlCE~Ned zo1|5w!$gQWUO@+4iO@1!>dr;Db2HsDx6e7Fv}iVSnDd?Qd_V3t&!)$Na5Ce^N5Wt% z{^WJ$jh_iy9wgdR@urEX;dooK`mc|75glp3zEZk4@co+}dbHmyIJ?==bH9{+jNgGp z;uOpX9wap~K@sVh`CJl+qXZ+bZ$13fiE$p~@_SwSol73y_?TekgN2A6x9-ImBk=Y7zg&&P-g`-%_b90K@FO~{G z%m~JOI1}RJ6PZI>N%nkodwu-+#Xf+gb6|73scYQIvI*}1k{$joF{nBn>G+~A?q z^ZL;IdiSM^yXCF1x~e#~3TD`kGeHsQTX#O!yj|V_ULX58MZ>*Z(rX!PWrp+040(gK zHwcEi6-D*6qcXTLBbe3f;i}`Ui2@rGKiN5=mBKAD^U7Y4?3^>X=!f|}bG8xF9^INx zxBYJgGwi{coX6$P@m{4u#@t8kbir`vg5AFlF3H|U;pXYvR?f?naD}KUGIgE(mDkRU JsCl~1;}5U`H244j literal 0 HcmV?d00001