[Bf-blender-cvs] [920b138f83c] master: UI: Add manifold extrude to extrude menu

Liam Scaife noreply at git.blender.org
Wed Jul 15 07:43:40 CEST 2020


Commit: 920b138f83c4b740480c821b640351d41e70ec12
Author: Liam Scaife
Date:   Wed Jul 15 15:19:21 2020 +1000
Branches: master
https://developer.blender.org/rB920b138f83c4b740480c821b640351d41e70ec12

UI: Add manifold extrude to extrude menu

===================================================================

M	release/scripts/startup/bl_operators/view3d.py
M	release/scripts/startup/bl_ui/space_view3d.py

===================================================================

diff --git a/release/scripts/startup/bl_operators/view3d.py b/release/scripts/startup/bl_operators/view3d.py
index a8e04eb2f24..02bfebbdc0c 100644
--- a/release/scripts/startup/bl_operators/view3d.py
+++ b/release/scripts/startup/bl_operators/view3d.py
@@ -159,6 +159,33 @@ class VIEW3D_OT_edit_mesh_extrude_shrink_fatten(Operator):
         return self.execute(context)
 
 
+class VIEW3D_OT_edit_mesh_extrude_manifold_normal(Operator):
+    """Extrude manifold region along normals"""
+    bl_label = "Extrude Manifold Along Normals"
+    bl_idname = "view3d.edit_mesh_extrude_manifold_normal"
+
+    @classmethod
+    def poll(cls, context):
+        obj = context.active_object
+        return (obj is not None and obj.mode == 'EDIT')
+
+    def execute(self, context):
+        bpy.ops.mesh.extrude_manifold(
+            'INVOKE_REGION_WIN',
+            MESH_OT_extrude_region={
+                "use_dissolve_ortho_edges": True,
+            },
+            TRANSFORM_OT_translate={
+                "orient_type": 'NORMAL',
+                "constraint_axis": (False, False, True),
+            },
+        )
+        return {'FINISHED'}
+
+    def invoke(self, context, _event):
+        return self.execute(context)
+
+
 class VIEW3D_OT_transform_gizmo_set(Operator):
     """Set the current transform gizmo"""
     bl_label = "Transform Gizmo Set"
@@ -208,5 +235,6 @@ classes = (
     VIEW3D_OT_edit_mesh_extrude_individual_move,
     VIEW3D_OT_edit_mesh_extrude_move,
     VIEW3D_OT_edit_mesh_extrude_shrink_fatten,
+    VIEW3D_OT_edit_mesh_extrude_manifold_normal,
     VIEW3D_OT_transform_gizmo_set,
 )
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index f363f8f3f40..e4d0423cd76 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3876,6 +3876,8 @@ class VIEW3D_MT_edit_mesh_extrude(Menu):
         layout.operator("view3d.edit_mesh_extrude_move_shrink_fatten", text="Extrude Faces Along Normals"),
         'FACE': lambda layout:
         layout.operator("mesh.extrude_faces_move", text="Extrude Individual Faces"),
+        'MANIFOLD': lambda layout:
+        layout.operator("view3d.edit_mesh_extrude_manifold_normal", text="Extrude Manifold"),
     }
 
     @staticmethod
@@ -3886,7 +3888,7 @@ class VIEW3D_MT_edit_mesh_extrude(Menu):
 
         menu = []
         if mesh.total_face_sel:
-            menu += ['REGION', 'REGION_VERT_NORMAL', 'FACE']
+            menu += ['REGION', 'REGION_VERT_NORMAL', 'FACE', 'MANIFOLD']
         if mesh.total_edge_sel and (select_mode[0] or select_mode[1]):
             menu += ['EDGE']
         if mesh.total_vert_sel and select_mode[0]:



More information about the Bf-blender-cvs mailing list