Limit panning in 2D view to keep texture in viewport

This commit is contained in:
Lubos Lenco
2021-04-21 12:05:14 +02:00
parent 2be697f3fe
commit cf8e18864a
+10
View File
@@ -324,5 +324,15 @@ class UIView2D {
else if (kb.started("right")) panX += 5;
if (kb.started("up")) panY -= 5;
else if (kb.started("down")) panY += 5;
// Limit panning to keep texture in viewport
var border = 32;
var tw = ww * 0.95 * panScale;
var tx = ww / 2 - tw / 2 + panX;
var ty = iron.App.h() / 2 - tw / 2 + panY;
if (tx + border > ww) panX = ww / 2 + tw / 2 - border;
else if (tx - border < -tw) panX = -tw / 2 - ww / 2 + border;
if (ty + border > wh) panY = wh / 2 + tw / 2 - border;
else if (ty - border < -tw) panY = -tw / 2 - wh / 2 + border;
}
}