This patch implements the navigating while transforming feature as an experimental (See image):
In addition to the experimental navigation while transforming feature, a considerable part of this patch is the implementation of two temporary operators:
- TRANSFORM_OT_modalkeymap_update
- TRANSFORM_OT_modalkeymap_restore
These operators are for modifying the keymap to remove conflicts with navigation shortcuts. (More details of these conflicts at the end below.)
The main solution in the patch was to create the bool ED_view3d_navigation_do(...); utility that can be used for any operator.
Navigating while transforming is not a new idea:
- https://rightclickselect.com/p/ui/Tqbbbc/allow-navigating-while-transforming (See comments);
- D1583: Allow no modal transform.
This feature allows us to be more freedom in transforming an object in closed spaces.
And with D9415: Transform: add feature to edit the 'Snap Base' navigating while transform becomes necessary because:
- we are incapable of choosing the occluded snap origin point while transforming
- Currently only 3 navigation operators are supported (more may be added over time):
- VIEW3D_OT_zoom,
- VIEW3D_OT_rotate,
- VIEW3D_OT_move
- This patch affects the modal transform operators in 3D View. They are:
- Translation,
- Rotation,
- Resize,
- Skin Resize,
- To Sphere,
- Shear,
- Bend,
- Shrink/Fatten,
- Tilt,
- Trackball,
- Push/Pull,
- Crease,
- Bone Size,
- Bone Envelope,
- Bone Envelope Distance,
- Curve Shrink/Fatten,
- Grease Pencil Shrink/Fatten,
- Bone Roll,
- Bevel Weight,
- Align,
- Edge Slide,
- Sequence Slide,
- Grease Pencil Opacity
- Navigation is not available when transforming with Release Confirm
- Default modal keymaps need to be edited to avoid conflict (in the patch a temporary operator was implemented to automatically update keymaps)
| Modal Map (Blender): | Conflict: | Current: | New: |
|---|---|---|---|
| Increase Proportional Influence | VIEW3D_OT_zoom | Wheel Down | Alt Wheel Down |
| Decrease Proportional Influence | VIEW3D_OT_zoom | Wheel Up | Alt Wheel Up |
| Adjust Proportional Influence | VIEW3D_OT_rotate | Mouse/Trackpad Pan | Alt Mouse/Trackpad Pan |
| Increase Max AutoIK Chain Length | VIEW3D_OT_zoom | Wheel Down | Alt Wheel Down |
| Decrease Max AutoIK Chain Length | VIEW3D_OT_zoom | Wheel Up | Alt Wheel Up |
| Automatic Constraint | VIEW3D_OT_rotate | Middle Mouse | Alt Middle Mouse |
| Automatic Constraint Plane | VIEW3D_OT_move | Shift Middle Mouse | Shift Alt Middle Mouse |
| Modal Map (Industry Compatible): | Conflict: | Current: | New: |
|---|---|---|---|
| Increase Proportional Influence | VIEW3D_OT_zoom | Wheel Down | Shift Wheel Down |
| Decrease Proportional Influence | VIEW3D_OT_zoom | Wheel Up | Shift Wheel Up |
| Adjust Proportional Influence | VIEW3D_OT_rotate | Mouse/Trackpad Pan | Alt Mouse/Trackpad Pan |
| Increase Max AutoIK Chain Length | VIEW3D_OT_zoom | Wheel Down | Shift Wheel Down |
| Decrease Max AutoIK Chain Length | VIEW3D_OT_zoom | Wheel Up | Shift Wheel Up |
| Modal Map (Blender 27x): | Conflict: | Current: | New: |
|---|---|---|---|
| Increase Proportional Influence | VIEW3D_OT_zoom | Wheel Down | Alt Wheel Down |
| Decrease Proportional Influence | VIEW3D_OT_zoom | Wheel Up | Alt Wheel Up |
| Increase Proportional Influence | VIEW3D_OT_view_pan | Shift Wheel Down | Shift Alt Wheel Down |
| Decrease Proportional Influence | VIEW3D_OT_view_pan | Shift Wheel Up | Shift Alt Wheel Up |
| Adjust Proportional Influence | VIEW3D_OT_rotate | Mouse/Trackpad Pan | Alt Mouse/Trackpad Pan |
| Increase Max AutoIK Chain Length | VIEW3D_OT_zoom | Wheel Down | Alt Wheel Down |
| Decrease Max AutoIK Chain Length | VIEW3D_OT_zoom | Wheel Up | Alt Wheel Up |
| Increase Max AutoIK Chain Length | VIEW3D_OT_view_pan | Shift Wheel Down | Shift Alt Wheel Down |
| Decrease Max AutoIK Chain Length | VIEW3D_OT_view_pan | Shift Wheel Up | Shift Alt Wheel Up |
| Automatic Constraint | VIEW3D_OT_rotate | Middle Mouse | Alt Middle Mouse |
| Automatic Constraint Plane | VIEW3D_OT_move | Shift Middle Mouse | Shift Alt Middle Mouse |
