diff options
author | Antonioya <blendergit@gmail.com> | 2019-01-11 21:15:23 +0300 |
---|---|---|
committer | Antonioya <blendergit@gmail.com> | 2019-01-11 21:21:56 +0300 |
commit | bb9c9d0eaaab836b8f20ab7b2228795f607b823a (patch) | |
tree | 8fd6ebad4084c66e6d1a49849ed6b9dbbc126d22 /release/scripts/startup/bl_ui/space_view3d.py | |
parent | 6dbfd7f6d6bc9bea9556861eba682a3126b5ed40 (diff) |
GP: New Cutter, Constraints and Segment selection
This commit groups a set of new tools that were tested in grease pencil object branch before moving to master. We decide to do all the development in a separated branch because it could break master during days or weeks before the new tools were ready to deploy.
The commit includes:
- New Cutter tool to trim strokes and help cleaning up drawings.
- New set of constraints and guides to draw different types of shapes. All the credits for this development goes to Charlie Jolly (@charlie), thanks for your help!
- Segment selection mode to select strokes between intersections.
- New operator to change strokes cap mode.
- New option to display only keyframed frames. This option is very important when fill strokes with color.
- Multiple small fixes and tweaks.
Thanks to @pepeland and @mendio for their ideas, tests, reviews and support.
Note: Still pending the final icons for Cutter in Toolbar and Segment Selection in Topbar. @billreynish could help us here?
Diffstat (limited to 'release/scripts/startup/bl_ui/space_view3d.py')
-rw-r--r-- | release/scripts/startup/bl_ui/space_view3d.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 5342ae44d11..5c2cf8d529f 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -245,6 +245,18 @@ class VIEW3D_HT_header(Header): text=lk_name, icon=lk_icon, ) + + if object_mode in {'PAINT_GPENCIL'}: + if context.workspace.tools.from_space_view3d_mode(object_mode).name == "Draw": + settings = tool_settings.gpencil_sculpt.guide + row = layout.row(align=True) + row.prop(settings, "use_guide", text="", icon='GRID') + sub = row.row(align=True) + sub.active = settings.use_guide + sub.popover( + panel="VIEW3D_PT_gpencil_guide", + text="Guides" + ) layout.separator_spacer() @@ -3955,6 +3967,7 @@ class VIEW3D_MT_edit_gpencil(Menu): layout.menu("VIEW3D_MT_edit_gpencil_delete") layout.operator("gpencil.stroke_cyclical_set", text="Toggle Cyclic").type = 'TOGGLE' + layout.operator_menu_enum("gpencil.stroke_caps_set", text="Toggle Caps...", property="type") layout.separator() @@ -5317,7 +5330,47 @@ class VIEW3D_PT_gpencil_lock(Panel): col = row.column() col.prop(context.tool_settings.gpencil_sculpt, "lock_axis", expand=True) + +class VIEW3D_PT_gpencil_guide(Panel): + bl_space_type = 'VIEW_3D' + bl_region_type = 'HEADER' + bl_label = "Guides" + + @staticmethod + def draw(self, context): + from math import pi + settings = context.tool_settings.gpencil_sculpt.guide + layout = self.layout + layout.label(text="Guides") + + col = layout.column() + col.active = settings.use_guide + col.prop(settings, "type", expand=True) + + if settings.type in {'PARALLEL'}: + col.prop(settings, "angle") + row = col.row(align=True) + + col.prop(settings, "use_snapping") + if settings.use_snapping: + + if settings.type in {'RADIAL'}: + col.prop(settings, "angle_snap") + else: + col.prop(settings, "spacing") + + col.label(text="Reference Point") + row = col.row(align=True) + row.prop(settings, "reference_point", expand=True) + if settings.reference_point in {'CUSTOM'}: + col.prop(settings, "location", text="Custom Location") + if settings.reference_point in {'OBJECT'}: + col.prop(settings, "reference_object", text="Object Location") + if not settings.reference_object: + col.label(text="No object selected, using cursor") + + class VIEW3D_PT_overlay_gpencil_options(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'HEADER' @@ -5560,6 +5613,7 @@ class VIEW3D_MT_gpencil_edit_specials(Menu): layout.operator("gpencil.stroke_join", text="Join").type = 'JOIN' layout.operator("gpencil.stroke_join", text="Join & Copy").type = 'JOINCOPY' layout.operator("gpencil.stroke_flip", text="Flip Direction") + layout.operator_menu_enum("gpencil.stroke_caps_set", text="Toggle Caps...", property="type") layout.separator() layout.operator("gpencil.frame_duplicate", text="Duplicate Active Frame") @@ -5787,6 +5841,7 @@ classes = ( VIEW3D_PT_snapping, VIEW3D_PT_gpencil_origin, VIEW3D_PT_gpencil_lock, + VIEW3D_PT_gpencil_guide, VIEW3D_PT_transform_orientations, VIEW3D_PT_overlay_gpencil_options, VIEW3D_PT_context_properties, |