diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-02-06 08:13:10 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-02-06 08:13:10 +0300 |
commit | 1142e215758f00714a139769d9ff6af35da0fa6c (patch) | |
tree | a8c913474eb011b9be3619a4a1e672a183e276a1 /mesh_snap_utilities_line/__init__.py | |
parent | afd211e1089fecb4ce6ff01c3967673e999dc1d7 (diff) |
mesh_snap_utilties_line: Add Gizmos support
Diffstat (limited to 'mesh_snap_utilities_line/__init__.py')
-rw-r--r-- | mesh_snap_utilities_line/__init__.py | 92 |
1 files changed, 52 insertions, 40 deletions
diff --git a/mesh_snap_utilities_line/__init__.py b/mesh_snap_utilities_line/__init__.py index 58511339..0ce402b5 100644 --- a/mesh_snap_utilities_line/__init__.py +++ b/mesh_snap_utilities_line/__init__.py @@ -22,37 +22,40 @@ bl_info = { "name": "Snap_Utilities_Line", "author": "Germano Cavalcante", - "version": (5, 8, 30), + "version": (5, 9, 00), "blender": (2, 80, 0), - "location": "View3D > TOOLS > Make Line", + "location": "View3D > TOOLS > Line Tool", "description": "Extends Blender Snap controls", #"wiki_url" : "http://blenderartists.org/forum/showthread.php?363859-Addon-CAD-Snap-Utilities", "category": "Mesh"} if "bpy" in locals(): import importlib + importlib.reload(common_classes) importlib.reload(preferences) importlib.reload(ops_line) - importlib.reload(common_classes) else: + from . import common_classes from . import preferences from . import ops_line import bpy from bpy.utils.toolsystem import ToolDef +if not __package__: + __package__ = "mesh_snap_utilities_line" + @ToolDef.from_fn -def tool_make_line(): +def tool_line(): import os def draw_settings(context, layout, tool): - addon_prefs = context.preferences.addons["mesh_snap_utilities_line"].preferences + addon_prefs = context.preferences.addons[__package__].preferences layout.prop(addon_prefs, "incremental") layout.prop(addon_prefs, "increments_grid") - if addon_prefs.increments_grid: - layout.prop(addon_prefs, "relative_scale") layout.prop(addon_prefs, "create_face") - layout.prop(addon_prefs, "outer_verts") + if context.mode == 'EDIT_MESH': + layout.prop(addon_prefs, "outer_verts") #props = tool.operator_properties("mesh.snap_utilities_line") #layout.prop(props, "radius") @@ -64,9 +67,9 @@ def tool_make_line(): "Make Lines\n" "Connect them to split faces" ), - icon=os.path.join(icons_dir, "ops.mesh.make_line"), - #widget="MESH_GGT_mouse_point", - operator="mesh.make_line", + icon=os.path.join(icons_dir, "ops.mesh.snap_utilities_line"), + widget="MESH_GGT_snap_point", + #operator="mesh.snap_utilities_line", keymap="3D View Tool: Edit Mesh, Make Line", draw_settings=draw_settings, ) @@ -75,12 +78,13 @@ def tool_make_line(): # ----------------------------------------------------------------------------- # Tool Registraion -def km_3d_view_tool_make_line(tool_mouse = 'LEFTMOUSE'): +def km_3d_view_snap_tools(tool_mouse = 'LEFTMOUSE'): return [( - "3D View Tool: Edit Mesh, Make Line", + tool_line.keymap[0], {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, {"items": [ - ("mesh.make_line", {"type": tool_mouse, "value": 'CLICK'}, None), + ("mesh.snap_utilities_line", {"type": tool_mouse, "value": 'CLICK'}, + {"properties": [("wait_for_input", False)]}), ]}, )] @@ -91,67 +95,75 @@ def get_tool_list(space_type, context_mode): return cls._tools[context_mode] -def register_make_line_tool(): +def register_snap_tools(): tools = get_tool_list('VIEW_3D', 'EDIT_MESH') for index, tool in enumerate(tools, 1): - if isinstance(tool, ToolDef) and tool.text == "Add Cube": + if isinstance(tool, ToolDef) and tool.text == "Measure": break - tools.insert(index, tool_make_line) + tools[:index] += None, tool_line + + del tools keyconfigs = bpy.context.window_manager.keyconfigs kc_defaultconf = keyconfigs.get("blender") kc_addonconf = keyconfigs.get("blender addon") - # TODO: find the user defined tool_mouse. - keyconfig_data = km_3d_view_tool_make_line() + keyconfig_data = km_3d_view_snap_tools() + # TODO: find the user defined tool_mouse. from bl_keymap_utils.io import keyconfig_init_from_data keyconfig_init_from_data(kc_defaultconf, keyconfig_data) keyconfig_init_from_data(kc_addonconf, keyconfig_data) -def unregister_make_line_tool(): +def unregister_snap_tools(): tools = get_tool_list('VIEW_3D', 'EDIT_MESH') - tools.remove(tool_make_line) - km_name, km_args, km_content = km_3d_view_tool_make_line()[0] + index = tools.index(tool_line) - 1 #None + tools.pop(index) + tools.remove(tool_line) + + del tools + del index keyconfigs = bpy.context.window_manager.keyconfigs defaultmap = keyconfigs.get("blender").keymaps addonmap = keyconfigs.get("blender addon").keymaps - addonmap.remove(addonmap.find(km_name, **km_args)) - defaultmap.remove(defaultmap.find(km_name, **km_args)) + for keyconfig_data in km_3d_view_snap_tools(): + km_name, km_args, km_content = keyconfig_data + + addonmap.remove(addonmap.find(km_name, **km_args)) + defaultmap.remove(defaultmap.find(km_name, **km_args)) # ----------------------------------------------------------------------------- # Addon Registraion +classes = ( + preferences.SnapUtilitiesLinePreferences, + ops_line.SnapUtilitiesLine, + common_classes.VIEW3D_OT_rotate_custom_pivot, + common_classes.VIEW3D_OT_zoom_custom_target, + common_classes.SnapPointWidget, + common_classes.SnapPointWidgetGroup, +) + def register(): - bpy.utils.register_class(preferences.SnapUtilitiesLinePreferences) - bpy.utils.register_class(common_classes.VIEW3D_OT_rotate_custom_pivot) - bpy.utils.register_class(common_classes.VIEW3D_OT_zoom_custom_target) - bpy.utils.register_class(ops_line.SnapUtilitiesLine) - #bpy.utils.register_class(common_classes.MousePointWidget) - #bpy.utils.register_class(common_classes.MousePointWidgetGroup) + for cls in classes: + bpy.utils.register_class(cls) - register_make_line_tool() + register_snap_tools() def unregister(): - unregister_make_line_tool() + unregister_snap_tools() - #bpy.utils.unregister_class(common_classes.MousePointWidgetGroup) - #bpy.utils.unregister_class(common_classes.MousePointWidget) - bpy.utils.unregister_class(ops_line.SnapUtilitiesLine) - bpy.utils.unregister_class(common_classes.VIEW3D_OT_zoom_custom_target) - bpy.utils.unregister_class(common_classes.VIEW3D_OT_rotate_custom_pivot) - bpy.utils.unregister_class(preferences.SnapUtilitiesLinePreferences) + for cls in reversed(classes): + bpy.utils.unregister_class(cls) if __name__ == "__main__": - __name__ = "mesh_snap_utilities_line" - __package__ = "mesh_snap_utilities_line" register() |