View3D tracks selected boat at fixed distance, pitch, and relative yaw
#story[1190]
This commit is contained in:
@@ -82,7 +82,7 @@ public class HostController extends Controller {
|
|||||||
AnimationTimer rotate = new AnimationTimer() {
|
AnimationTimer rotate = new AnimationTimer() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(long now) {
|
public void handle(long now) {
|
||||||
subject.setHeading(subject.getHeading() + 0.1);
|
subject.setHeading(subject.getHeading().getAngle() + 0.1);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
rotate.start();
|
rotate.start();
|
||||||
|
|||||||
@@ -43,6 +43,10 @@ public class Subject3D {
|
|||||||
return this.position;
|
return this.position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Rotate getHeading() {
|
||||||
|
return heading;
|
||||||
|
}
|
||||||
|
|
||||||
public void setX(double x) {
|
public void setX(double x) {
|
||||||
position.setX(x);
|
position.setX(x);
|
||||||
}
|
}
|
||||||
@@ -55,10 +59,6 @@ public class Subject3D {
|
|||||||
position.setZ(z);
|
position.setZ(z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getHeading() {
|
|
||||||
return heading.getAngle();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHeading(double angle) {
|
public void setHeading(double angle) {
|
||||||
heading.setAngle(angle);
|
heading.setAngle(angle);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,14 @@ public class View3D extends Pane {
|
|||||||
scene.setOnMousePressed(e -> {
|
scene.setOnMousePressed(e -> {
|
||||||
PickResult result = e.getPickResult();
|
PickResult result = e.getPickResult();
|
||||||
if(result != null && result.getIntersectedNode() != null && result.getIntersectedNode() instanceof Shape3D) {
|
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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user