Merge remote-tracking branch 'origin/storyD-3D' into storyD-3D

main
Joseph Gardner 8 years ago
commit 7fa2037753

@ -138,9 +138,8 @@ public class RaceViewController extends Controller {
} }
} }
/** private AnimationTimer arrowToNextMark;
* Sets up the listener and actions that occur when a key is pressed.
*/
private void initKeypressHandler() { private void initKeypressHandler() {
racePane.addEventFilter(KeyEvent.KEY_PRESSED, event -> { racePane.addEventFilter(KeyEvent.KEY_PRESSED, event -> {
String codeString = event.getCode().toString(); String codeString = event.getCode().toString();
@ -206,7 +205,19 @@ public class RaceViewController extends Controller {
* Initialises the various UI components to listen to the {@link #visualiserRace}. * Initialises the various UI components to listen to the {@link #visualiserRace}.
*/ */
private void initialiseRaceVisuals() { private void initialiseRaceVisuals() {
this.nextMarkArrow = new Annotation3D(new Box(1,3,0));
// Import arrow mesh
URL asset = this.getClass().getClassLoader().getResource("assets/arrow V1.0.4.stl");
StlMeshImporter importer = new StlMeshImporter();
importer.read(asset);
MeshView arrow = new MeshView(importer.getImport());
PhongMaterial arrowMat = new PhongMaterial(Color.RED);
arrow.setMaterial(arrowMat);
this.nextMarkArrow = new Annotation3D(arrow);
this.nextMarkArrow.setScale(0.1);
// initialise displays // initialise displays
initialiseFps(); initialiseFps();
initialiseInfoTable(); initialiseInfoTable();
@ -404,7 +415,27 @@ public class RaceViewController extends Controller {
private void addThirdPersonAnnotations(Subject3D subject3D) { private void addThirdPersonAnnotations(Subject3D subject3D) {
viewSubjects.add(nextMarkArrow); viewSubjects.add(nextMarkArrow);
final VisualiserBoat boat;
try {
boat = visualiserRace.getVisualiserRaceState().getBoat(subject3D.getSourceID());
} catch (BoatNotFoundException e) {
e.printStackTrace();
return;
}
arrowToNextMark = new AnimationTimer() {
@Override
public void handle(long now) {
CompoundMark target = boat.getCurrentLeg().getEndCompoundMark();
Bearing headingToMark = GPSCoordinate.calculateBearing(boat.getPosition(), target.getAverageGPSCoordinate());
nextMarkArrow.setX(view3D.getPivot().getX());
nextMarkArrow.setY(view3D.getPivot().getY());
nextMarkArrow.setZ(view3D.getPivot().getZ() + 15);
nextMarkArrow.setHeading(headingToMark.degrees());
}
};
arrowToNextMark.start();
/*
try { try {
VisualiserBoat boat = visualiserRace.getVisualiserRaceState().getBoat(subject3D.getSourceID()); VisualiserBoat boat = visualiserRace.getVisualiserRaceState().getBoat(subject3D.getSourceID());
this.pointToMark = new AnimationTimer() { this.pointToMark = new AnimationTimer() {
@ -422,12 +453,20 @@ public class RaceViewController extends Controller {
pointToMark.start(); pointToMark.start();
} catch (BoatNotFoundException e) { } catch (BoatNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} }*/
} }
private void removeThirdPersonAnnotations(Subject3D subject3D) { private void removeThirdPersonAnnotations(Subject3D subject3D) {
viewSubjects.remove(nextMarkArrow); viewSubjects.remove(nextMarkArrow);
pointToMark.stop(); arrowToNextMark.stop();
/*
try {
VisualiserBoat boat = visualiserRace.getVisualiserRaceState().getBoat(subject3D.getSourceID());
boat.positionProperty().removeListener(pointToMark);
} catch (BoatNotFoundException e) {
e.printStackTrace();
}*/
//pointToMark.stop();
} }
/** /**

Loading…
Cancel
Save