diff options
Diffstat (limited to 'space_view3d_pie_menus/pie_proportional_menu.py')
-rw-r--r-- | space_view3d_pie_menus/pie_proportional_menu.py | 427 |
1 files changed, 0 insertions, 427 deletions
diff --git a/space_view3d_pie_menus/pie_proportional_menu.py b/space_view3d_pie_menus/pie_proportional_menu.py deleted file mode 100644 index 10b4cf57..00000000 --- a/space_view3d_pie_menus/pie_proportional_menu.py +++ /dev/null @@ -1,427 +0,0 @@ -# ##### BEGIN GPL LICENSE BLOCK ##### -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ##### END GPL LICENSE BLOCK ##### - -# <pep8 compliant> - -bl_info = { - "name": "Hotkey: 'Shift O'", - "description": "Proportional Object/Edit Tools", - "author": "pitiwazou, meta-androcto", - "version": (0, 1, 1), - "blender": (2, 80, 0), - "location": "3D View Object & Edit modes", - "warning": "", - "wiki_url": "", - "category": "Proportional Edit Pie" - } - -import bpy -from bpy.types import ( - Menu, - Operator, - ) - - -# Proportional Edit Object -class PIE_OT_ProportionalEditObj(Operator): - bl_idname = "proportional_obj.active" - bl_label = "Proportional Edit Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - - if ts.use_proportional_edit_objects is True: - ts.use_proportional_edit_objects = False - - elif ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - - return {'FINISHED'} - - -class PIE_OT_ProportionalSmoothObj(Operator): - bl_idname = "proportional_obj.smooth" - bl_label = "Proportional Smooth Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'SMOOTH' - - if ts.proportional_edit_falloff != 'SMOOTH': - ts.proportional_edit_falloff = 'SMOOTH' - return {'FINISHED'} - - -class PIE_OT_ProportionalSphereObj(Operator): - bl_idname = "proportional_obj.sphere" - bl_label = "Proportional Sphere Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'SPHERE' - - if ts.proportional_edit_falloff != 'SPHERE': - ts.proportional_edit_falloff = 'SPHERE' - return {'FINISHED'} - - -class PIE_OT_ProportionalRootObj(Operator): - bl_idname = "proportional_obj.root" - bl_label = "Proportional Root Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'ROOT' - - if ts.proportional_edit_falloff != 'ROOT': - ts.proportional_edit_falloff = 'ROOT' - return {'FINISHED'} - - -class PIE_OT_ProportionalSharpObj(Operator): - bl_idname = "proportional_obj.sharp" - bl_label = "Proportional Sharp Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'SHARP' - - if ts.proportional_edit_falloff != 'SHARP': - ts.proportional_edit_falloff = 'SHARP' - return {'FINISHED'} - - -class PIE_OT_ProportionalLinearObj(Operator): - bl_idname = "proportional_obj.linear" - bl_label = "Proportional Linear Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'LINEAR' - - if ts.proportional_edit_falloff != 'LINEAR': - ts.proportional_edit_falloff = 'LINEAR' - return {'FINISHED'} - - -class PIE_OT_ProportionalConstantObj(Operator): - bl_idname = "proportional_obj.constant" - bl_label = "Proportional Constant Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'CONSTANT' - - if ts.proportional_edit_falloff != 'CONSTANT': - ts.proportional_edit_falloff = 'CONSTANT' - return {'FINISHED'} - - -class PIE_OT_ProportionalRandomObj(Operator): - bl_idname = "proportional_obj.random" - bl_label = "Proportional Random Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'RANDOM' - - if ts.proportional_edit_falloff != 'RANDOM': - ts.proportional_edit_falloff = 'RANDOM' - return {'FINISHED'} - - -# Proportional Edit Edit Mode -class PIE_OT_ProportionalEditEdt(Operator): - bl_idname = "proportional_edt.active" - bl_label = "Proportional Edit EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit ^= 1 - return {'FINISHED'} - - -class PIE_OT_ProportionalConnectedEdt(Operator): - bl_idname = "proportional_edt.connected" - bl_label = "Proportional Connected EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_connected = True - return {'FINISHED'} - - -class PIE_OT_ProportionalProjectedEdt(Operator): - bl_idname = "proportional_edt.projected" - bl_label = "Proportional projected EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - - ts = context.tool_settings - ts.use_proportional_projected = True - return {'FINISHED'} - - -class PIE_OT_ProportionalSmoothEdt(Operator): - bl_idname = "proportional_edt.smooth" - bl_label = "Proportional Smooth EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'SMOOTH' - return {'FINISHED'} - - -class PIE_OT_ProportionalSphereEdt(Operator): - bl_idname = "proportional_edt.sphere" - bl_label = "Proportional Sphere EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'SPHERE' - return {'FINISHED'} - - -class PIE_OT_ProportionalRootEdt(Operator): - bl_idname = "proportional_edt.root" - bl_label = "Proportional Root EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'ROOT' - return {'FINISHED'} - - -class PIE_OT_ProportionalSharpEdt(Operator): - bl_idname = "proportional_edt.sharp" - bl_label = "Proportional Sharp EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'SHARP' - return {'FINISHED'} - - -class PIE_OT_ProportionalLinearEdt(Operator): - bl_idname = "proportional_edt.linear" - bl_label = "Proportional Linear EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'LINEAR' - return {'FINISHED'} - - -class PIE_OT_ProportionalConstantEdt(Operator): - bl_idname = "proportional_edt.constant" - bl_label = "Proportional Constant EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'CONSTANT' - return {'FINISHED'} - - -class PIE_OT_ProportionalRandomEdt(Operator): - bl_idname = "proportional_edt.random" - bl_label = "Proportional Random EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'RANDOM' - return {'FINISHED'} - -class PIE_OT_ProportionalInverseS(Operator): - bl_idname = "proportional_edt.inverse" - bl_label = "Proportional Inverse Square" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'INVERSE_SQUARE' - return {'FINISHED'} - -# Pie ProportionalEditObj - O -class PIE_MT_ProportionalObj(Menu): - bl_idname = "PIE_MT_proportional_obj" - bl_label = "Pie Proportional Obj" - - def draw(self, context): - layout = self.layout - pie = layout.menu_pie() - # 4 - LEFT - pie.operator("proportional_obj.sphere", text="Sphere", icon='SPHERECURVE') - # 6 - RIGHT - pie.operator("proportional_obj.root", text="Root", icon='ROOTCURVE') - # 2 - BOTTOM - pie.operator("proportional_obj.smooth", text="Smooth", icon='SMOOTHCURVE') - # 8 - TOP - pie.prop(context.tool_settings, "use_proportional_edit_objects", text="Proportional On/Off") - # 7 - TOP - LEFT - pie.operator("proportional_obj.linear", text="Linear", icon='LINCURVE') - # 9 - TOP - RIGHT - pie.operator("proportional_obj.sharp", text="Sharp", icon='SHARPCURVE') - # 1 - BOTTOM - LEFT - pie.operator("proportional_obj.constant", text="Constant", icon='NOCURVE') - # 3 - BOTTOM - RIGHT - pie.operator("proportional_obj.random", text="Random", icon='RNDCURVE') - - -# Pie ProportionalEditEdt - O -class PIE_MT_ProportionalEdt(Menu): - bl_idname = "PIE_MT_proportional_edt" - bl_label = "Pie Proportional Edit" - - def draw(self, context): - layout = self.layout - pie = layout.menu_pie() - # 4 - LEFT - pie.operator("proportional_edt.connected", text="Connected", icon='PROP_CON') - # 6 - RIGHT - pie.operator("proportional_edt.projected", text="Projected", icon='PROP_ON') - # 2 - BOTTOM - pie.operator("proportional_edt.root", text="Root", icon='ROOTCURVE') - # 8 - TOP - pie.operator("proportional_edt.active", text="Proportional On/Off", icon='PROP_ON') - # 7 - TOP - LEFT - pie.operator("proportional_edt.smooth", text="Smooth", icon='SMOOTHCURVE') - # 9 - TOP - RIGHT - pie.operator("proportional_edt.sphere", text="Sphere", icon='SPHERECURVE') - # 1 - BOTTOM - LEFT - pie.operator("proportional_edt.constant", text="Constant", icon='NOCURVE') - # 3 - BOTTOM - RIGHT - pie.menu("PIE_MT_proportional_more", text="More", icon='LINCURVE') - - -# Pie ProportionalEditEdt - O -class PIE_MT_ProportionalMore(Menu): - bl_idname = "PIE_MT_proportional_more" - bl_label = "Pie Proportional More" - - def draw(self, context): - layout = self.layout - pie = layout.menu_pie() - box = pie.split().column() - box.operator("proportional_edt.linear", text="Linear", icon='LINCURVE') - box.operator("proportional_edt.sharp", text="Sharp", icon='SHARPCURVE') - box.operator("proportional_edt.random", text="Random", icon='RNDCURVE') - box.operator("proportional_edt.inverse", text="INVERSE", icon='INVERSESQUARECURVE') - - -classes = ( - PIE_OT_ProportionalEditObj, - PIE_OT_ProportionalSmoothObj, - PIE_OT_ProportionalSphereObj, - PIE_OT_ProportionalRootObj, - PIE_OT_ProportionalSharpObj, - PIE_OT_ProportionalLinearObj, - PIE_OT_ProportionalConstantObj, - PIE_OT_ProportionalRandomObj, - PIE_OT_ProportionalEditEdt, - PIE_OT_ProportionalConnectedEdt, - PIE_OT_ProportionalProjectedEdt, - PIE_OT_ProportionalSmoothEdt, - PIE_OT_ProportionalSphereEdt, - PIE_OT_ProportionalRootEdt, - PIE_OT_ProportionalSharpEdt, - PIE_OT_ProportionalLinearEdt, - PIE_OT_ProportionalConstantEdt, - PIE_OT_ProportionalRandomEdt, - PIE_MT_ProportionalObj, - PIE_MT_ProportionalEdt, - PIE_MT_ProportionalMore, - PIE_OT_ProportionalInverseS, - ) - -addon_keymaps = [] - - -def register(): - for cls in classes: - bpy.utils.register_class(cls) - - wm = bpy.context.window_manager - if wm.keyconfigs.addon: - # ProportionalEditObj - km = wm.keyconfigs.addon.keymaps.new(name='Object Mode') - kmi = km.keymap_items.new('wm.call_menu_pie', 'O', 'PRESS', shift=True) - kmi.properties.name = "PIE_MT_proportional_obj" - addon_keymaps.append((km, kmi)) - - # ProportionalEditEdt - km = wm.keyconfigs.addon.keymaps.new(name='Mesh') - kmi = km.keymap_items.new('wm.call_menu_pie', 'O', 'PRESS', shift=True) - kmi.properties.name = "PIE_MT_proportional_edt" - addon_keymaps.append((km, kmi)) - - -def unregister(): - for cls in classes: - bpy.utils.unregister_class(cls) - - wm = bpy.context.window_manager - kc = wm.keyconfigs.addon - if kc: - for km, kmi in addon_keymaps: - km.keymap_items.remove(kmi) - addon_keymaps.clear() - - -if __name__ == "__main__": - register() |