viewport pies: remove cursor, proportional: T67995
This commit is contained in:
parent
4262eb5403
commit
f4e1bf3eb7
|
@ -34,7 +34,7 @@ from bpy.types import (
|
|||
bl_info = {
|
||||
"name": "3D Viewport Pie Menus",
|
||||
"author": "meta-androcto",
|
||||
"version": (1, 2, 8),
|
||||
"version": (1, 2, 9),
|
||||
"blender": (2, 80, 0),
|
||||
"description": "Pie Menu Activation",
|
||||
"location": "Addons Preferences",
|
||||
|
@ -49,11 +49,9 @@ sub_modules_names = (
|
|||
"pie_views_numpad_menu",
|
||||
"pie_sculpt_menu",
|
||||
"pie_origin",
|
||||
"pie_cursor",
|
||||
"pie_manipulator_menu",
|
||||
"pie_snap_menu",
|
||||
"pie_shading_menu",
|
||||
"pie_proportional_menu",
|
||||
"pie_align_menu",
|
||||
"pie_delete_menu",
|
||||
"pie_apply_transform_menu",
|
||||
|
|
|
@ -1,122 +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 S'",
|
||||
"description": "Cursor Menu",
|
||||
"author": "pitiwazou, meta-androcto",
|
||||
"version": (0, 1, 0),
|
||||
"blender": (2, 80, 0),
|
||||
"location": "3D View",
|
||||
"warning": "",
|
||||
"wiki_url": "",
|
||||
"category": "Cursor Pie"
|
||||
}
|
||||
|
||||
import bpy
|
||||
from bpy.types import (
|
||||
Menu,
|
||||
Operator,
|
||||
)
|
||||
|
||||
|
||||
# SnapCursSelToCenter1 thanks to Isaac Weaver (wisaac) D1963
|
||||
class PIE_OT_Snap_CursSelToCenter1(Operator):
|
||||
bl_idname = "view3d.snap_cursor_selected_to_center1"
|
||||
bl_label = "Snap Cursor & Selection to Center"
|
||||
bl_description = ("Snap 3D cursor and selected objects to the center \n"
|
||||
"Works only in Object Mode")
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
return (context.area.type == "VIEW_3D" and context.mode == "OBJECT")
|
||||
|
||||
def execute(self, context):
|
||||
context.scene.cursor.location = (0, 0, 0)
|
||||
for obj in context.selected_objects:
|
||||
obj.location = (0, 0, 0)
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
# Origin/Pivot menu1 - Shift + S
|
||||
class PIE_MT_Snap_CursorMenu(Menu):
|
||||
bl_idname = "SNAP_MT_cursormenu"
|
||||
bl_label = "Cursor Menu"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
pie = layout.menu_pie()
|
||||
# 4 - LEFT
|
||||
pie.operator("view3d.snap_selected_to_cursor", text="Selection to Cursor",
|
||||
icon='CLIPUV_HLT').use_offset = False
|
||||
# 6 - RIGHT
|
||||
pie.operator("view3d.snap_selected_to_cursor",
|
||||
text="Selection to Cursor (Keep Offset)", icon='PIVOT_CURSOR').use_offset = True
|
||||
# 2 - BOTTOM
|
||||
pie.operator("view3d.snap_cursor_selected_to_center1",
|
||||
text="Selected & Cursor to Center", icon='NONE')
|
||||
# 8 - TOP
|
||||
pie.operator("view3d.snap_cursor_to_center", text="Cursor to World Origin", icon='CLIPUV_DEHLT')
|
||||
# 7 - TOP - LEFT
|
||||
pie.operator("view3d.snap_cursor_to_selected", text="Cursor to Selected", icon='NONE')
|
||||
# 9 - TOP - RIGHT
|
||||
pie.operator("view3d.snap_cursor_to_active", text="Cursor to Active", icon='NONE')
|
||||
# 1 - BOTTOM - LEFT
|
||||
pie.operator("view3d.snap_selected_to_grid", text="Selection to Grid", icon='GRID')
|
||||
# 3 - BOTTOM - RIGHT
|
||||
pie.operator("view3d.snap_cursor_to_grid", text="Cursor to Grid", icon='GRID')
|
||||
|
||||
|
||||
classes = (
|
||||
PIE_MT_Snap_CursorMenu,
|
||||
PIE_OT_Snap_CursSelToCenter1,
|
||||
)
|
||||
|
||||
addon_keymaps = []
|
||||
|
||||
|
||||
def register():
|
||||
for cls in classes:
|
||||
bpy.utils.register_class(cls)
|
||||
|
||||
wm = bpy.context.window_manager
|
||||
if wm.keyconfigs.addon:
|
||||
# Origin/Pivot
|
||||
km = wm.keyconfigs.addon.keymaps.new(name='3D View Generic', space_type='VIEW_3D')
|
||||
kmi = km.keymap_items.new('wm.call_menu_pie', 'S', 'PRESS', shift=True)
|
||||
kmi.properties.name = "SNAP_MT_cursormenu"
|
||||
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()
|
|
@ -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()
|
|
@ -47,9 +47,8 @@ class PIE_MT_SelectionsMore(Menu):
|
|||
layout = self.layout
|
||||
pie = layout.menu_pie()
|
||||
box = pie.split().column()
|
||||
box.operator("object.select_by_type", text="Select By Type", icon='SNAP_VOLUME')
|
||||
box.operator("object.select_grouped", text="Select Grouped", icon='NONE')
|
||||
box.operator("object.select_linked", text="Select Linked", icon='CONSTRAINT_BONE')
|
||||
box.operator("object.select_random", text="Select Random")
|
||||
box.operator("object.select_linked", text="Select Linked")
|
||||
box.menu("VIEW3D_MT_select_object_more_less", text="More/Less")
|
||||
|
||||
|
||||
|
@ -62,9 +61,9 @@ class PIE_MT_SelectionsOM(Menu):
|
|||
layout = self.layout
|
||||
pie = layout.menu_pie()
|
||||
# 4 - LEFT
|
||||
pie.row().label(text="")
|
||||
pie.operator("object.select_grouped", text="Select Grouped")
|
||||
# 6 - RIGHT
|
||||
pie.operator("object.select_random", text="Select Random", icon='GROUP_VERTEX')
|
||||
pie.operator("object.select_by_type", text="Select By Type")
|
||||
# 2 - BOTTOM
|
||||
pie.operator("object.select_all", text="Invert Selection",
|
||||
icon='ZOOM_PREVIOUS').action = 'INVERT'
|
||||
|
@ -72,13 +71,13 @@ class PIE_MT_SelectionsOM(Menu):
|
|||
pie.operator("object.select_all", text="Select All Toggle",
|
||||
icon='NONE').action = 'TOGGLE'
|
||||
# 7 - TOP - LEFT
|
||||
pie.operator("view3d.select_circle", text="Circle Select", icon='NONE')
|
||||
pie.operator("view3d.select_circle", text="Circle Select")
|
||||
# 9 - TOP - RIGHT
|
||||
pie.operator("view3d.select_box", text="Box Select", icon='NONE')
|
||||
pie.operator("view3d.select_box", text="Box Select")
|
||||
# 1 - BOTTOM - LEFT
|
||||
pie.operator("object.select_camera", text="Select Camera", icon='CAMERA_DATA')
|
||||
pie.operator("object.select_camera", text="Select Camera")
|
||||
# 3 - BOTTOM - RIGHT
|
||||
pie.menu("PIE_MT_selectionsmore", text="Select Menu", icon='RESTRICT_SELECT_OFF')
|
||||
pie.menu("PIE_MT_selectionsmore", text="Select Menu")
|
||||
|
||||
|
||||
# Pie Selection Edit Mode
|
||||
|
@ -90,25 +89,21 @@ class PIE_MT_SelectionsEM(Menu):
|
|||
layout = self.layout
|
||||
pie = layout.menu_pie()
|
||||
# 4 - LEFT
|
||||
pie.operator("view3d.select_box", text="Box Select",
|
||||
icon='NONE')
|
||||
# 6 - RIGHT
|
||||
pie.menu("OBJECT_MT_selectloopselection", text="Select Loop Menu", icon='NONE')
|
||||
# 2 - BOTTOM
|
||||
pie.operator("mesh.select_all", text="Select None",
|
||||
icon='RESTRICT_SELECT_ON').action = 'DESELECT'
|
||||
# 8 - TOP
|
||||
pie.operator("mesh.select_all", text="Select All",
|
||||
icon='RESTRICT_SELECT_OFF').action = 'SELECT'
|
||||
# 6 - RIGHT
|
||||
pie.menu("OBJECT_MT_selectloopselection", text="Select Loop Menu")
|
||||
# 2 - BOTTOM
|
||||
pie.operator("mesh.select_all", text="Invert Selection").action = 'INVERT'
|
||||
# 8 - TOP
|
||||
pie.operator("mesh.select_all", text="Select All Toggle").action = 'TOGGLE'
|
||||
# 7 - TOP - LEFT
|
||||
pie.operator("mesh.select_all", text="Select All Toggle",
|
||||
icon='ARROW_LEFTRIGHT').action = 'TOGGLE'
|
||||
pie.operator("view3d.select_circle", text="Circle Select")
|
||||
# 9 - TOP - RIGHT
|
||||
pie.operator("mesh.select_all", text="Invert Selection",
|
||||
icon='FULLSCREEN_EXIT').action = 'INVERT'
|
||||
pie.operator("view3d.select_box", text="Box Select")
|
||||
# 1 - BOTTOM - LEFT
|
||||
pie.operator("view3d.select_circle", text="Circle Select",
|
||||
icon='NONE')
|
||||
pie.operator("mesh.select_all", text="Select None",
|
||||
icon='RESTRICT_SELECT_ON').action = 'DESELECT'
|
||||
# 3 - BOTTOM - RIGHT
|
||||
pie.menu("PIE_MT_selectallbyselection", text="Edit Modes", icon='VERTEXSEL')
|
||||
|
||||
|
|
Loading…
Reference in New Issue