Page MenuHome

Allow navigating while transforming (second solution)
Needs ReviewPublic

Authored by Germano Cavalcante (mano-wii) on Feb 23 2022, 4:46 AM.

Details

Summary

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:

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 InfluenceVIEW3D_OT_zoomWheel DownAlt Wheel Down
Decrease Proportional InfluenceVIEW3D_OT_zoomWheel UpAlt Wheel Up
Adjust Proportional InfluenceVIEW3D_OT_rotateMouse/Trackpad PanAlt Mouse/Trackpad Pan
Increase Max AutoIK Chain LengthVIEW3D_OT_zoomWheel DownAlt Wheel Down
Decrease Max AutoIK Chain LengthVIEW3D_OT_zoomWheel UpAlt Wheel Up
Automatic ConstraintVIEW3D_OT_rotateMiddle MouseAlt Middle Mouse
Automatic Constraint PlaneVIEW3D_OT_moveShift Middle MouseShift Alt Middle Mouse
Modal Map (Industry Compatible):Conflict:Current:New:
Increase Proportional InfluenceVIEW3D_OT_zoomWheel DownShift Wheel Down
Decrease Proportional InfluenceVIEW3D_OT_zoomWheel UpShift Wheel Up
Adjust Proportional InfluenceVIEW3D_OT_rotateMouse/Trackpad PanAlt Mouse/Trackpad Pan
Increase Max AutoIK Chain LengthVIEW3D_OT_zoomWheel DownShift Wheel Down
Decrease Max AutoIK Chain LengthVIEW3D_OT_zoomWheel UpShift Wheel Up
Modal Map (Blender 27x):Conflict:Current:New:
Increase Proportional InfluenceVIEW3D_OT_zoomWheel DownAlt Wheel Down
Decrease Proportional InfluenceVIEW3D_OT_zoomWheel UpAlt Wheel Up
Increase Proportional InfluenceVIEW3D_OT_view_panShift Wheel DownShift Alt Wheel Down
Decrease Proportional InfluenceVIEW3D_OT_view_panShift Wheel UpShift Alt Wheel Up
Adjust Proportional InfluenceVIEW3D_OT_rotateMouse/Trackpad PanAlt Mouse/Trackpad Pan
Increase Max AutoIK Chain LengthVIEW3D_OT_zoomWheel DownAlt Wheel Down
Decrease Max AutoIK Chain LengthVIEW3D_OT_zoomWheel UpAlt Wheel Up
Increase Max AutoIK Chain LengthVIEW3D_OT_view_panShift Wheel DownShift Alt Wheel Down
Decrease Max AutoIK Chain LengthVIEW3D_OT_view_panShift Wheel UpShift Alt Wheel Up
Automatic ConstraintVIEW3D_OT_rotateMiddle MouseAlt Middle Mouse
Automatic Constraint PlaneVIEW3D_OT_moveShift Middle MouseShift Alt Middle Mouse

Diff Detail

Repository
rB Blender
Branch
ED_vew3d_navigation (branched from master)
Build Status
Buildable 20699
Build 20699: arc lint + arc unit

Event Timeline

Germano Cavalcante (mano-wii) requested review of this revision.Feb 23 2022, 4:46 AM
  • Fix transform modifier shortcuts not being canceled
  • Redo way to update mouse initial value after orbiting
  • Fix view locks having no effect
  • Support view_pan
  • Silence warnings
  • Cleanup: read from op_idnames[V3D_VIEW_PAN] in op idname
  • Fix acumulator of precision transform no updating after navigating
  • Make auto-suggesting keyitem changes smarter

It is preferable to have shorter shortcuts.
so if it's possible to avoid +Ctrl+Alt, it's better.

  • Edge Slide: Update input
  • Vert Slide: Update input
  • Do not support for To Sphere (It does not display mouse cursor)
  • Do not support navigation for TFM_SHRINKFATTEN (no mouse)
  • Set "release confirm" to False if operator is called from a menu
  • Merge remote-tracking branch 'origin/master' into tmp-transform-navigate
  • Merge remote-tracking branch 'origin/master' into tmp-transform-navigate
  • Merge remote-tracking branch 'origin/master' into tmp-transform-navigate
  • Fix zoom shifting offset in ortho view
  • Rebase onto master

Some of the recent commits allow for the simplification of this patch.

  • Fix small mistake im mode check
  • Rebase on master (fixing conflicts)