orbit_camera.gd: set_pivot(hit) rechnet aus unveränderter Position/Basis target/yaw/pitch/distance neu (kein Sprung); MMT-Druck pivoted auf den Punkt unterm Cursor — Objekt-Treffer zuerst (interaction._pick_object), sonst Terrain (interaction._ground_point), sonst alter Ziel-Punkt. ORBIT_DEG_PER_PX = 0.3 gekapselt, Zoom-Minimum DISTANCE_MIN = 5. fit_to_bounds(mn, mx) ersetzt das tote frame_map(): target = Kartemitte aus bounds, Abstand über Umkugel-Formel (alle 8 Ecken sicher im Frustum — reiner Kanten-Faktor 0,65 reicht bei flachen Maps nicht), Mindestabstand 30 m; Pos1/Home = ganze Karte ins Bild (Bounds bleiben gemerkt). main.gd: Laden/Neu + Resize rufen fit_to_bounds mit den echten doc-Bounds. Neu: tests/test_orbit_camera.gd (30 checks: kein Sprung, Drehpunkt wandert, fit, gleichmäßiges Ziehen, Flug-Übergang, Pos1).
1 line
19 B
Text
1 line
19 B
Text
uid://o7mjux7sfh85
|