From 8c81b3fb8b9c857626c037fe0c95c5d48a3ca20f Mon Sep 17 00:00:00 2001 From: Pablo Dobarro Date: Sat, 26 Sep 2020 21:59:30 +0200 Subject: Sculpt: Line gestures and Mask Line tool This adds support for line gesture to SculptGestureContext and implements a Mask Line tool, which affects everything to the right of a plane defined by the straightline gesture. For this to work, a new WM_gesture_straightline_oneshot_modal is needed which only runs exec when the gesture is over. Added as experimental as it does not have icon. Reviewed By: Severin Differential Revision: https://developer.blender.org/D8722 --- .../startup/bl_ui/space_toolsystem_toolbar.py | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'release/scripts/startup') diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py index 75dfd60b1d4..3f7a3604741 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -1258,6 +1258,21 @@ class _defs_sculpt: draw_settings=draw_settings, ) + @ToolDef.from_fn + def mask_line(): + def draw_settings(_context, layout, tool): + props = tool.operator_properties("paint.mask_line_gesture") + layout.prop(props, "use_front_faces_only", expand=False) + + return dict( + idname="builtin.line_mask", + label="Line Mask", + icon="ops.sculpt.line_mask", + widget=None, + keymap=(), + draw_settings=draw_settings, + ) + @ToolDef.from_fn def face_set_box(): def draw_settings(_context, layout, tool): @@ -1273,6 +1288,7 @@ class _defs_sculpt: draw_settings=draw_settings, ) + @ToolDef.from_fn def face_set_lasso(): def draw_settings(_context, layout, tool): @@ -1308,7 +1324,6 @@ class _defs_sculpt: keymap=(), ) - @ToolDef.from_fn def mesh_filter(): def draw_settings(_context, layout, tool): @@ -2652,6 +2667,13 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel): _defs_sculpt.mask_lasso, ), _defs_sculpt.hide_border, + lambda context: ( + (_defs_sculpt.mask_line,) + if context is None or ( + context.preferences.view.show_developer_ui and + context.preferences.experimental.use_tools_missing_icons) + else () + ), lambda context: ( (_defs_sculpt.face_set_box,) if context is None or ( -- cgit v1.2.3