Added mark radius 3D annotation to improve bird's eye visibility

#story[1261]
main
cbt24 8 years ago
parent e149255240
commit 643f145407

@ -28,6 +28,7 @@ import shared.model.Mark;
import visualiser.app.App; import visualiser.app.App;
import visualiser.gameController.ControllerClient; import visualiser.gameController.ControllerClient;
import visualiser.gameController.Keys.ControlKey; import visualiser.gameController.Keys.ControlKey;
import visualiser.layout.MarkRadius;
import visualiser.layout.Subject3D; import visualiser.layout.Subject3D;
import visualiser.layout.View3D; import visualiser.layout.View3D;
import visualiser.model.*; import visualiser.model.*;
@ -178,8 +179,6 @@ public class RaceController extends Controller {
} }
private void initialiseView3D(VisualiserRaceEvent race) { private void initialiseView3D(VisualiserRaceEvent race) {
int scale = 1;
ObservableList<Subject3D> subjects = FXCollections.observableArrayList(); ObservableList<Subject3D> subjects = FXCollections.observableArrayList();
//read 3d Assets //read 3d Assets
@ -216,13 +215,17 @@ public class RaceController extends Controller {
for(Mark mark: race.getVisualiserRaceState().getMarks()) { for(Mark mark: race.getVisualiserRaceState().getMarks()) {
MeshView mesh = new MeshView(importerMark.getImport()); MeshView mesh = new MeshView(importerMark.getImport());
Subject3D subject = new Subject3D(mesh); Subject3D markModel = new Subject3D(mesh);
// subject.setX(mark.getPosition().getLongitude() * scale); Subject3D markRadius = new MarkRadius(3);
// subject.setZ(mark.getPosition().getLatitude()* scale); double x = gpsConverter.convertGPS(mark.getPosition()).getX();
subject.setX(gpsConverter.convertGPS(mark.getPosition()).getX() * scale); double z = gpsConverter.convertGPS(mark.getPosition()).getY();
subject.setZ(gpsConverter.convertGPS(mark.getPosition()).getY() * scale); markModel.setX(x);
markModel.setZ(z);
subjects.add(subject); markRadius.setX(x);
markRadius.setZ(z);
subjects.add(markModel);
subjects.add(markRadius);
} }
for(VisualiserBoat boat: race.getVisualiserRaceState().getBoats()) { for(VisualiserBoat boat: race.getVisualiserRaceState().getBoats()) {
@ -238,13 +241,8 @@ public class RaceController extends Controller {
@Override @Override
public void handle(long now) { public void handle(long now) {
subject.setHeading(boat.getBearing().degrees()); subject.setHeading(boat.getBearing().degrees());
// subject.setHeading(0); subject.setX(gpsConverter.convertGPS(boat.getPosition()).getX());
// subject.setX(boat.getPosition().getLongitude() * scale); subject.setZ(gpsConverter.convertGPS(boat.getPosition()).getY());
// 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);
if(boat.getSourceID() == race.getVisualiserRaceState().getPlayerBoatID()) { if(boat.getSourceID() == race.getVisualiserRaceState().getPlayerBoatID()) {
//view3D.updatePivot(subject.getPosition()); //view3D.updatePivot(subject.getPosition());
} }

@ -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)));
}
}
Loading…
Cancel
Save