From 5d9b574378ad9819fb0433c2a24befb3130b953a Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 23:40:00 +1300 Subject: [PATCH] Zooming in while in birds eye no longer clips through sea surface. Zooming with mouse wheel is the same speed as zooming with keyboard. --- .../java/visualiser/Controllers/RaceViewController.java | 7 ++++++- racevisionGame/src/main/java/visualiser/layout/View3D.java | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index 72c564f2..66ac58d1 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -576,7 +576,12 @@ public class RaceViewController extends Controller { // Bind zooming to scrolling view3D.setOnScroll(e -> { - view3D.updateDistance(e.getDeltaY()); + //view3D.updateDistance(e.getDeltaY()); + if (e.getDeltaY() > 0) { + view3D.zoomIn(); + } else { + view3D.zoomOut(); + } }); // Bind zooming to keypress (Z/X default) diff --git a/racevisionGame/src/main/java/visualiser/layout/View3D.java b/racevisionGame/src/main/java/visualiser/layout/View3D.java index 8501cdaa..dfaa0c0f 100644 --- a/racevisionGame/src/main/java/visualiser/layout/View3D.java +++ b/racevisionGame/src/main/java/visualiser/layout/View3D.java @@ -268,8 +268,10 @@ public class View3D extends Pane { public void updateDistance(double delta) { double newDistance = -this.distance.getZ() + delta; if (target.get() == null){ - if (newDistance > MAX_ZOOM_LIMIT){ + if (newDistance > MAX_ZOOM_LIMIT) { setDistance(MAX_ZOOM_LIMIT); + } else if (newDistance <= ZOOM_IN_LIMIT) { + setDistance(ZOOM_IN_LIMIT); } else { setDistance(newDistance); } @@ -372,4 +374,4 @@ public class View3D extends Pane { public void addPointLight(PointLight pointLight) { this.world.getChildren().add(pointLight); } -} \ No newline at end of file +}