diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java index fbcf0c2f..ba95317f 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java @@ -28,6 +28,7 @@ import shared.model.Mark; import visualiser.app.App; import visualiser.gameController.ControllerClient; import visualiser.gameController.Keys.ControlKey; +import visualiser.layout.MarkRadius; import visualiser.layout.Subject3D; import visualiser.layout.View3D; import visualiser.model.*; @@ -178,8 +179,6 @@ public class RaceController extends Controller { } private void initialiseView3D(VisualiserRaceEvent race) { - int scale = 1; - ObservableList subjects = FXCollections.observableArrayList(); //read 3d Assets @@ -216,13 +215,17 @@ public class RaceController extends Controller { for(Mark mark: race.getVisualiserRaceState().getMarks()) { MeshView mesh = new MeshView(importerMark.getImport()); - Subject3D subject = new Subject3D(mesh); -// subject.setX(mark.getPosition().getLongitude() * scale); -// subject.setZ(mark.getPosition().getLatitude()* scale); - subject.setX(gpsConverter.convertGPS(mark.getPosition()).getX() * scale); - subject.setZ(gpsConverter.convertGPS(mark.getPosition()).getY() * scale); - - subjects.add(subject); + Subject3D markModel = new Subject3D(mesh); + Subject3D markRadius = new MarkRadius(3); + double x = gpsConverter.convertGPS(mark.getPosition()).getX(); + double z = gpsConverter.convertGPS(mark.getPosition()).getY(); + markModel.setX(x); + markModel.setZ(z); + markRadius.setX(x); + markRadius.setZ(z); + + subjects.add(markModel); + subjects.add(markRadius); } for(VisualiserBoat boat: race.getVisualiserRaceState().getBoats()) { @@ -238,13 +241,8 @@ public class RaceController extends Controller { @Override public void handle(long now) { subject.setHeading(boat.getBearing().degrees()); -// subject.setHeading(0); -// subject.setX(boat.getPosition().getLongitude() * scale); -// subject.setZ(boat.getPosition().getLatitude()* scale); - double x = gpsConverter.convertGPS(boat.getPosition()).getX() * scale; - //System.out.println(x); - subject.setX(x); - subject.setZ(gpsConverter.convertGPS(boat.getPosition()).getY() * scale); + subject.setX(gpsConverter.convertGPS(boat.getPosition()).getX()); + subject.setZ(gpsConverter.convertGPS(boat.getPosition()).getY()); if(boat.getSourceID() == race.getVisualiserRaceState().getPlayerBoatID()) { //view3D.updatePivot(subject.getPosition()); } diff --git a/racevisionGame/src/main/java/visualiser/layout/MarkRadius.java b/racevisionGame/src/main/java/visualiser/layout/MarkRadius.java new file mode 100644 index 00000000..27f68efd --- /dev/null +++ b/racevisionGame/src/main/java/visualiser/layout/MarkRadius.java @@ -0,0 +1,15 @@ +package visualiser.layout; + +import javafx.scene.paint.Color; +import javafx.scene.paint.PhongMaterial; +import javafx.scene.shape.Cylinder; + +/** + * Created by cbt24 on 9/09/17. + */ +public class MarkRadius extends Subject3D { + public MarkRadius(double radius) { + super(new Cylinder(radius, 0)); + this.getMesh().setMaterial(new PhongMaterial(new Color(1, 0, 0, 0.5))); + } +}