forked from jayanam/fast-carve
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path__init__.py
91 lines (74 loc) · 3.37 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
bl_info = {
"name": "Fast Carve",
"description": "Hardsurface utility Blender addon for quick and easy boolean and bevel operations",
"author": "Jayanam",
"version": (0, 6, 0, 1),
"blender": (2, 79, 0),
"location": "View3D",
"category": "Object"}
# Blender imports
import bpy
from bpy.props import *
from . fc_bevel_op import FC_BevelOperator
from . fc_unbevel_op import FC_UnBevelOperator
from . fc_panel import FC_Panel
from . fc_bevel_panel import FC_Bevel_Panel
from . fc_bool_op import FC_BoolOperator_Diff
from . fc_bool_op import FC_BoolOperator_Union
from . fc_bool_op import FC_BoolOperator_Slice
from . fc_bool_op import FC_BoolOperator_Intersect
from . fc_bool_op import FC_TargetSelectOperator
from . fc_utils_op import FC_MirrorOperator
from . fc_utils_op import FC_SymmetrizeOperator
from . fc_menus import FC_Main_Menu
from . fc_apply_bool_op import FC_ApplyBoolOperator
from . fc_immediate_mode_op import FC_Immediate_Mode_Operator
# Scene properties
bpy.types.Scene.carver_target = PointerProperty(type=bpy.types.Object)
bpy.types.Scene.apply_bool = BoolProperty(name="Apply Immediately", description="Apply bool operation immediately")
addon_keymaps = []
def register():
bpy.utils.register_class(FC_Panel)
bpy.utils.register_class(FC_Bevel_Panel)
bpy.utils.register_class(FC_BevelOperator)
bpy.utils.register_class(FC_UnBevelOperator)
bpy.utils.register_class(FC_BoolOperator_Diff)
bpy.utils.register_class(FC_BoolOperator_Union)
bpy.utils.register_class(FC_BoolOperator_Slice)
bpy.utils.register_class(FC_BoolOperator_Intersect)
bpy.utils.register_class(FC_TargetSelectOperator)
bpy.utils.register_class(FC_MirrorOperator)
bpy.utils.register_class(FC_SymmetrizeOperator)
bpy.utils.register_class(FC_ApplyBoolOperator)
bpy.utils.register_class(FC_Immediate_Mode_Operator)
bpy.utils.register_class(FC_Main_Menu)
# add keymap entry
kcfg = bpy.context.window_manager.keyconfigs.addon
if kcfg:
km = kcfg.keymaps.new(name='3D View', space_type='VIEW_3D')
kmi = km.keymap_items.new("object.fc_immediate_mode_op", 'F', 'PRESS', shift=True, ctrl=True)
kmi_mnu = km.keymap_items.new("wm.call_menu", "Q", "PRESS")
kmi_mnu.properties.name = FC_Main_Menu.bl_idname
addon_keymaps.append((km, kmi))
addon_keymaps.append((km, kmi_mnu))
def unregister():
bpy.utils.unregister_class(FC_Panel)
bpy.utils.unregister_class(FC_Bevel_Panel)
bpy.utils.unregister_class(FC_BevelOperator)
bpy.utils.unregister_class(FC_UnBevelOperator)
bpy.utils.unregister_class(FC_BoolOperator_Diff)
bpy.utils.unregister_class(FC_BoolOperator_Union)
bpy.utils.unregister_class(FC_BoolOperator_Slice)
bpy.utils.unregister_class(FC_BoolOperator_Intersect)
bpy.utils.unregister_class(FC_TargetSelectOperator)
bpy.utils.unregister_class(FC_MirrorOperator)
bpy.utils.unregister_class(FC_SymmetrizeOperator)
bpy.utils.unregister_class(FC_ApplyBoolOperator)
bpy.utils.unregister_class(FC_Main_Menu)
# remove keymap entry
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
bpy.utils.unregister_class(FC_Immediate_Mode_Operator)
if __name__ == "__main__":
register()