[0.19.0-rc.2] No way to do 2-axis/all-but-one-axis operations on translate and scale on transform gizmo
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## What problem does this solve or what need does it fill?
Most editors have a way to express a transformation on all but one axis - in blender it's holding shift when either hitting a transform key, or clicking on a given axis, or alternatively moving the coloured quad that is normal to the axis it's related to.
## What solution would you like?
Implement extra clickable gizmos, and either an "excluding axis" marker/bool or an axis variant.
Note, this doesn't make sense for rotation, so it should not be done there. Not sure how to best represent that.
## What alternative(s) have you considered?
Blender, Unity, etc.
This could also be a separate ticket, but also isn't as critical to the core workflow - "combo"/"multitool" gizmos are also quite useful and might be worth adding, but not critical at this time.
https://github.com/urholaukkarinen/transform-gizmo implements all of these options, including the multitool gizmo, though I don't think that makes as much sense here.
## Additional context
Blender examples:
https://github.com/user-attachments/assets/61853dd3-2016-4ebc-a99c-2bdb570c62eb
https://github.com/user-attachments/assets/a2240aa2-a969-423f-b8a9-8f6ba223933f
Contributor guide
Research direction
Start by locating Bevy's transform gizmo implementation and its translate and scale interaction paths. Compare the requested all-but-one-axis behavior with the linked Blender and transform-gizmo examples, while keeping rotation out of scope. Done means clickable two-axis controls for translation and scaling with a clear axis-exclusion representation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics, game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100