viewPosition.x += xOffset;
viewPosition.y += yOffset;
}
if (useAnimator) {
SceneAnimator sceneAnimator = scene.getSceneAnimator();
synchronized (sceneAnimator) {
double zoom = sceneAnimator.isAnimatingZoomFactor() ? sceneAnimator.getTargetZoomFactor() : scene.getZoomFactor();
while (amount > 0 && zoom / zoomMultiplier >= minFactor && zoom / zoomMultiplier <= maxFactor) {
zoom /= zoomMultiplier;
if (viewPosition != null) {
viewPosition.x /= zoomMultiplier;
viewPosition.y /= zoomMultiplier;
bounds.width /= zoomMultiplier;
bounds.height /= zoomMultiplier;
componentSize.width /= zoomMultiplier;
componentSize.height /= zoomMultiplier;
}
amount--;
}
while (amount < 0 && zoom * zoomMultiplier >= minFactor && zoom * zoomMultiplier <= maxFactor) {
zoom *= zoomMultiplier;
if (viewPosition != null) {
viewPosition.x *= zoomMultiplier;
viewPosition.y *= zoomMultiplier;
bounds.width *= zoomMultiplier;
bounds.height *= zoomMultiplier;
componentSize.width *= zoomMultiplier;
componentSize.height *= zoomMultiplier;
}
amount++;
}
sceneAnimator.animateZoomFactor(zoom);
}
} else {
double zoom = scene.getZoomFactor();
while (amount > 0 && zoom / zoomMultiplier >= minFactor && zoom / zoomMultiplier <= maxFactor) {
zoom /= zoomMultiplier;