View3D tracks selected boat at fixed distance, pitch, and relative yaw

#story[1190]
This commit is contained in:
Connor Taylor-Brown
2017-09-08 12:58:06 +12:00
parent b59eca1a8b
commit 23eabed3ff
3 changed files with 13 additions and 6 deletions
@@ -43,6 +43,10 @@ public class Subject3D {
return this.position;
}
public Rotate getHeading() {
return heading;
}
public void setX(double x) {
position.setX(x);
}
@@ -55,10 +59,6 @@ public class Subject3D {
position.setZ(z);
}
public double getHeading() {
return heading.getAngle();
}
public void setHeading(double angle) {
heading.setAngle(angle);
}
@@ -77,7 +77,14 @@ public class View3D extends Pane {
scene.setOnMousePressed(e -> {
PickResult result = e.getPickResult();
if(result != null && result.getIntersectedNode() != null && result.getIntersectedNode() instanceof Shape3D) {
System.out.println(selectionMap.get(result.getIntersectedNode()));
Subject3D target = selectionMap.get(result.getIntersectedNode());
target.getPosition().xProperty().addListener((o, prev, curr) -> pivot.setX((double)curr));
target.getPosition().yProperty().addListener((o, prev, curr) -> pivot.setY((double)curr));
target.getPosition().zProperty().addListener((o, prev, curr) -> pivot.setZ((double)curr));
target.getHeading().angleProperty().addListener((o, prev, curr) -> setYaw((double)curr));
this.setDistance(100);
this.setPitch(30);
}
});