Blender Git Loki
Git Commits -> Revision 481dc77
Revision 481dc77 by Bastien Montagne (soc-2017-normal-tools) March 5, 2018, 21:01 (GMT) |
Heavy refactor of 'Point To' editing normals tools. Core code remains the same, but UI/UX was quiet deeply changed: * Some fixes in core code (like missing normalization of new normal in spherize case), as well as some optimizations (reducing amount of vector operations per affected normals) and cleanup/simplifications. * Moving modal part of the op closer to moder 'state of the art' Blender code, mainly: ** Use a modal keymap instead of hard-coded shortcuts. ** Use of proper header message generator extracting shortcuts from modal keymap. ** Get rid of odd 'callback' function stuff for 'point to mouse', this can be handled much more simply directly in main modal function. ** Adding some more keymap shortcuts (to temporarily reset normals, to toggle invert, aligned and spherize options...). ** Do not immediately finish when selecting 'point to pivot/object/etc.', keep consistent behavior requiring an explicit validation. This also makes it possible to cancel after seeing effects of changes, or to try another option, go back and forth between original and changed versions, etc. * Fixed memleak in case one would close Blender while modal op was running (we need to define cancel operator callback for that case). Note that we could (should?) go further still, adding ways to edit spherize strength, even with some numinput. We could also add an option to handle target value as global (current case) or local coordinates. And so on. For now that will do though. |
Commit Details:
Full Hash: 481dc7738925b30a2a6676ca32ea382be0919a26
Parent Commit: 04e6114
Lines Changed: +335, -205
6 Modified Paths:
/release/scripts/modules/bpy_extras/keyconfig_utils.py (+1, -0) (Diff)
/source/blender/bmesh/bmesh_class.h (+0, -1) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.c (+1, -6) (Diff)
/source/blender/editors/mesh/editmesh_tools.c (+330, -198) (Diff)
/source/blender/editors/mesh/mesh_intern.h (+2, -0) (Diff)
/source/blender/editors/mesh/mesh_ops.c (+1, -0) (Diff)
/source/blender/bmesh/bmesh_class.h (+0, -1) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.c (+1, -6) (Diff)
/source/blender/editors/mesh/editmesh_tools.c (+330, -198) (Diff)
/source/blender/editors/mesh/mesh_intern.h (+2, -0) (Diff)
/source/blender/editors/mesh/mesh_ops.c (+1, -0) (Diff)