From c582a66f9a8bb4d5c4ad503693bedee328292202 Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Thu, 28 Sep 2017 06:58:40 +1300 Subject: [PATCH] Added new Highlight --- .../Controllers/InGameLobbyController.java | 14 ++++++++------ .../Controllers/RaceViewController.java | 12 +++++++----- .../main/java/visualiser/layout/Assets3D.java | 17 +++++++++++++++++ .../resources/assets/V1.0 Boat Highlight.stl | Bin 0 -> 15984 bytes 4 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 racevisionGame/src/main/resources/assets/V1.0 Boat Highlight.stl diff --git a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java index 3e79b51e..e4629790 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java @@ -188,12 +188,14 @@ public class InGameLobbyController extends Controller { if (boat.isClientBoat()) { - Shockwave boatHighlight = new Shockwave(10); - boatHighlight.getMesh().setMaterial(new PhongMaterial(new Color(1, 1, 0, 0.1))); - boatHighlight.setX(subject.getPosition().getX()); - boatHighlight.setY(subject.getPosition().getY()); - boatHighlight.setZ(subject.getPosition().getZ()); - subjects.add(boatHighlight); + /*Shockwave boatHighlight = new Shockwave(10); + boatHighlight.getMesh().setMaterial(new PhongMaterial(new Color(1, 1, 0, 0.1)));*/ + + Assets3D.boatHighlight.setX(subject.getPosition().getX()); + Assets3D.boatHighlight.setY(subject.getPosition().getY()); + Assets3D.boatHighlight.setZ(subject.getPosition().getZ()); + + subjects.add(Assets3D.boatHighlight); subject.getMesh().toFront(); } diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index 79b03e53..b92d4e80 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -450,9 +450,11 @@ public class RaceViewController extends Controller { // Configure visualiser for client's boat if (boat.isClientBoat()) { // Add player boat highlight - Shockwave boatHighlight = new Shockwave(10); - boatHighlight.getMesh().setMaterial(new PhongMaterial(new Color(1, 1, 0, 0.1))); - viewSubjects.add(boatHighlight); +// Shockwave boatHighlight = new Shockwave(10); +// boatHighlight.getMesh().setMaterial(new PhongMaterial(new Color(1, 1, 0, 0.1))); +// viewSubjects.add(boatHighlight); + + viewSubjects.add(Assets3D.boatHighlight); // Track player boat with camera viewSubjects.add(boatModel); @@ -465,8 +467,8 @@ public class RaceViewController extends Controller { AnimationTimer highlightTrack = new AnimationTimer() { @Override public void handle(long now) { - boatHighlight.setX(gpsConverter.convertGPS(boat.getPosition()).getX()); - boatHighlight.setZ(gpsConverter.convertGPS(boat.getPosition()).getY()); + Assets3D.boatHighlight.setX(gpsConverter.convertGPS(boat.getPosition()).getX()); + Assets3D.boatHighlight.setZ(gpsConverter.convertGPS(boat.getPosition()).getY()); } }; highlightTrack.start(); diff --git a/racevisionGame/src/main/java/visualiser/layout/Assets3D.java b/racevisionGame/src/main/java/visualiser/layout/Assets3D.java index ad613905..266d8e12 100644 --- a/racevisionGame/src/main/java/visualiser/layout/Assets3D.java +++ b/racevisionGame/src/main/java/visualiser/layout/Assets3D.java @@ -27,6 +27,7 @@ public class Assets3D { public static Subject3D cwNextArrow; public static Subject3D ccwNextArrow; public static SkyBox skyBox; + public static Subject3D boatHighlight; public static void loadAssets(){ loadSails(); @@ -35,6 +36,7 @@ public class Assets3D { loadSeaSurface(); loadSkybox(); loadSeagull(); + loadBoatHightlight(); } private static void loadNextArrow(){ @@ -64,6 +66,21 @@ public class Assets3D { } + private static void loadBoatHightlight(){ + Material markColor = new PhongMaterial(new Color(0,1,0,0.5)); + StlMeshImporter objModelImporter = new StlMeshImporter(); + String path = "assets/V1.0 Boat Highlight.stl"; + URL highlight = Assets3D.class.getClassLoader().getResource(path); + objModelImporter.read(highlight); + + MeshView hMesh = new MeshView(objModelImporter.getImport()); + hMesh.setMaterial(markColor); + hMesh.setMouseTransparent(true); + hMesh.toBack(); + boatHighlight = new Subject3D(hMesh, 0); + + } + private static void loadSails(){ sails = new MeshView[40]; ObjModelImporter objModelImporter = new ObjModelImporter(); diff --git a/racevisionGame/src/main/resources/assets/V1.0 Boat Highlight.stl b/racevisionGame/src/main/resources/assets/V1.0 Boat Highlight.stl new file mode 100644 index 0000000000000000000000000000000000000000..8b0d5d59cc845e2b52c26bb64f1662ab43d11fad GIT binary patch literal 15984 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