Skip to content

Added a zoom to cursor option to PanCamera - #25285

Open
mbremner wants to merge 5 commits into
bevyengine:mainfrom
mbremner:pan_camera_zoom_target_cursor
Open

Added a zoom to cursor option to PanCamera#25285
mbremner wants to merge 5 commits into
bevyengine:mainfrom
mbremner:pan_camera_zoom_target_cursor

Conversation

@mbremner

@mbremner mbremner commented Aug 3, 2026

Copy link
Copy Markdown

Added a ZoomTarget enum to the PanCamera struct, with two variants: Center and Cursor. Center is set as default and does not change the behavior of PanCamera. Cursor causes the zoom to be focused on the position of the cursor if the cursor is over the window, or the center of the window if the cursor is not over the window.

Objective

In my experience, most CAD / GIS software zooms towards (and away from) the cursor. This PR adds this functionality as an option for the PanCamera Plugin.

Solution

Added an enum to the PanCamera Struct. Added input parameters and code to the run_pancamera_controller system, so that it computes the world distance between the center of the viewport and the cursor, then computes the difference in this distance due to the zoom and pans the camera to compensate.

Testing

I have only tested this change visually by running the PanCameraController Example with this option turned on and off. It looks correct to me.

I have also only tested it on my windows machine.

I am not sure how to test it more deeply than a visual inspection.

For reviewers to test it (visually) they would need to create a PanCamera struct and populate the zoom_target field with; ZoomTarget::Cursor (or ZoomTarget::Center to test the previous behaviour).

Showcase

Here is a short video of the new behaviour:

2026-08-03.09-42-05.mp4

…enter and Cursor. Center is set as default and does not change the behavior of PanCamera. Cursor causes the zoom to be focused on the position of the cursor if the cursor is over the window, or the center of the window if the cursor is not over the window.
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Welcome, new contributor!

Please make sure you've read our contributing guide, as well as our policy regarding AI usage, and we look forward to reviewing your pull request shortly ✨

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