|
|
|
|
@ -204,7 +204,7 @@ public class View3D extends Pane {
|
|
|
|
|
/**
|
|
|
|
|
* Stop camera from following the last selected subject
|
|
|
|
|
*/
|
|
|
|
|
private void untrackSubject() {
|
|
|
|
|
public void untrackSubject() {
|
|
|
|
|
if(target.get() != null) {
|
|
|
|
|
trackBoat.stop();
|
|
|
|
|
target.setValue(null);
|
|
|
|
|
@ -215,7 +215,7 @@ public class View3D extends Pane {
|
|
|
|
|
* Set camera to follow the selected subject
|
|
|
|
|
* @param subject to track
|
|
|
|
|
*/
|
|
|
|
|
private void trackSubject(Subject3D subject) {
|
|
|
|
|
public void trackSubject(Subject3D subject) {
|
|
|
|
|
target.set(subject);
|
|
|
|
|
|
|
|
|
|
this.trackBoat = new AnimationTimer() {
|
|
|
|
|
@ -265,17 +265,18 @@ public class View3D extends Pane {
|
|
|
|
|
* @param delta amount to change distance by
|
|
|
|
|
*/
|
|
|
|
|
public void updateDistance(double delta) {
|
|
|
|
|
double distance = -this.distance.getZ() + delta;
|
|
|
|
|
|
|
|
|
|
if(distance <= ZOOM_IN_LIMIT) {
|
|
|
|
|
double newDistance = -this.distance.getZ() + delta;
|
|
|
|
|
if (target.get() == null){
|
|
|
|
|
setDistance(newDistance);
|
|
|
|
|
} else if(newDistance <= ZOOM_IN_LIMIT) {
|
|
|
|
|
setDistance(ZOOM_IN_LIMIT);
|
|
|
|
|
} else if (distance > ZOOM_OUT_LIMIT){
|
|
|
|
|
} else if (newDistance > ZOOM_OUT_LIMIT){
|
|
|
|
|
untrackSubject();
|
|
|
|
|
setDistance(1050);
|
|
|
|
|
updatePivot(new Translate(250, 0, 210));
|
|
|
|
|
setYaw(0);
|
|
|
|
|
} else {
|
|
|
|
|
setDistance(distance);
|
|
|
|
|
setDistance(newDistance);
|
|
|
|
|
}
|
|
|
|
|
adjustPitchForZoom();
|
|
|
|
|
adjustScaleForZoom();
|
|
|
|
|
@ -294,7 +295,6 @@ public class View3D extends Pane {
|
|
|
|
|
itemScale = 0.1;
|
|
|
|
|
// if zoomed right out
|
|
|
|
|
} else if (itemScale > 1) {
|
|
|
|
|
System.out.println("over 1");
|
|
|
|
|
itemScale = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|