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

#story[1190]
main
Connor Taylor-Brown 8 years ago
parent b59eca1a8b
commit 23eabed3ff

@ -82,7 +82,7 @@ public class HostController extends Controller {
AnimationTimer rotate = new AnimationTimer() {
@Override
public void handle(long now) {
subject.setHeading(subject.getHeading() + 0.1);
subject.setHeading(subject.getHeading().getAngle() + 0.1);
}
};
rotate.start();

@ -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);
}
});

Loading…
Cancel
Save