diff --git a/racevisionGame/src/main/java/visualiser/layout/View3D.java b/racevisionGame/src/main/java/visualiser/layout/View3D.java index 30502203..efe8bda2 100644 --- a/racevisionGame/src/main/java/visualiser/layout/View3D.java +++ b/racevisionGame/src/main/java/visualiser/layout/View3D.java @@ -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; }