feature: add screen space panning option #847
Open
+14
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
User-Facing Changes
Support 'screen space panning' for 3D panels, i.e. move the camera viewpoint along the screen plane instead of coordinate XY plane, allowing user to change z-coordinates without touching the settings panel.
Screen space panning mode is disabled by default, to keep consistent behavior from previous versions.
Description
Screencast.from.2025.12.25.14.17.43.webm
(Performing panning without / with Alt key in this order)
AFAIK, current 3D panel does only support any panning that does not involve z-value update, highly restricting user manipulation DoF. (No combination of click-and-drag, wheel-click-and-drag, right-click-and-drag, pressing Shift, Ctrl or Meta key while any of the previous could update camera z-coordinate.)
Internally manipulations for 3D panel uses Three.js OrbitControls which supports screen space panning, but current 3D panel disallow it, only enabling XY plane panning. This PR enables it when the user drags the panel while holding the Alt key.
Some rationales:
Checklist