Skip to content

Conversation

@paulsohn
Copy link
Contributor

@paulsohn paulsohn commented Dec 18, 2025

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:

  • Alt key was the unique choice, because Shift / Ctrl keys are reserved in Three.js OrbitControls and hard-coded to behave identically with mouse right click.
  • For orthographic mode, 'screen space panning' gives unexpected behavior, because even the UI is on screen plane of orthographic camera, it tries to perform panning along the screen plane of perspective camera. Ideally we should disable this, but the user would not want 'screen space panning' when they can simply do normal XY plane panning, and user can simply release Alt key while panning if they found something is wrong. So I decided not to work further.
  • Image panels are not affected.

Checklist

  • The web version was tested and it is running ok
  • The desktop version was tested and it is running ok
  • This change is covered by unit tests
  • Files constants.ts, types.ts and *.style.ts have been checked and relevant code snippets have been relocated

@paulsohn paulsohn force-pushed the feature/screen-space-panning branch from a311505 to 8f7dc6b Compare December 18, 2025 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant