-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path__init__.py
More file actions
140 lines (107 loc) · 4.04 KB
/
Copy path__init__.py
File metadata and controls
140 lines (107 loc) · 4.04 KB
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
from bpy.types import ( TOPBAR_MT_file_export,
TOPBAR_MT_file_import,
OUTLINER_MT_collection_new,
OUTLINER_MT_collection ,
Menu)
from bpy.utils import register_class, unregister_class
from .modules.SceneBackground import ( register_background_properties,
unregister_background_properties)
# Developer note: 2025-10-23 The reason we import RunUnitTests is so that we can
# run it as an Operator from a python script
from .modules.test import RunUnitTests
from .modules.ExportManifest import ExportManifest
from .modules.ImportManifest import ImportManifest
from .modules.ImportLocalModel import ImportLocalModel
from .modules.ImportNetworkModel import ImportNetworkModel
from .modules.NewManifest import NewManifest
from .modules.NewCamera import NewCamera
from .modules.LoadLocalModel import LoadLocalModel
from .modules.LoadNetworkModel import LoadNetworkModel
from .modules.Configure3DViewport import Configure3DViewport
from .modules.custom_props import (
AddIIIF3DObjProperties,
AddIIIF3DCollProperties,
IIIF3DObjMetadataPanel,
IIIF3DCollMetadataPanel
)
from .modules.ui import (
IIIFManifestPanel,
register_ui_properties,
unregister_ui_properties,
)
import logging
logger=logging.getLogger("iiif.init")
class OUTLINER_MT_edit_manifest_anno_page(Menu):
"""
intent is that this menu will be added to the popup
menu associated with any Blender bpy.type.Collection
which has an iiif_type property value of AnnotationPage
"""
bl_label="Add Painting Annotations"
bl_idname="OUTLINER_MT_edit_manifest"
def draw(self,context):
layout = self.layout
if layout is not None:
layout.operator(ImportLocalModel.bl_idname, text="Add Local Model")
layout.operator(ImportNetworkModel.bl_idname, text="Add Network Model")
layout.operator(NewCamera.bl_idname, text="Add Camera")
def menu_func_manifest_submenu(self,context):
target_collection = context.collection
layout = self.layout
if target_collection.get("iiif_type","") == "AnnotationPage":
layout.menu(OUTLINER_MT_edit_manifest_anno_page.bl_idname, text="Add Painting Annotation")
classes = (
RunUnitTests,
ImportManifest,
ExportManifest,
ImportLocalModel,
ImportNetworkModel,
LoadLocalModel,
LoadNetworkModel,
IIIFManifestPanel,
AddIIIF3DObjProperties,
AddIIIF3DCollProperties,
IIIF3DObjMetadataPanel,
IIIF3DCollMetadataPanel,
NewManifest,
NewCamera,
OUTLINER_MT_edit_manifest_anno_page,
Configure3DViewport
)
def menu_func_import(self, context):
self.layout.operator(
ImportManifest.bl_idname, text="IIIF 3D Manifest (.json)"
)
def menu_func_export(self, context):
self.layout.operator(
ExportManifest.bl_idname, text="IIIF 3D Manifest (.json)"
)
def menu_func_new_manifest(self, context):
self.layout.operator(
NewManifest.bl_idname, text="New IIIF Manifest"
)
def register():
for cls in classes:
register_class(cls)
register_ui_properties()
register_background_properties()
TOPBAR_MT_file_import.append(menu_func_import)
TOPBAR_MT_file_export.append(menu_func_export)
OUTLINER_MT_collection_new.append(menu_func_new_manifest)
OUTLINER_MT_collection.append(menu_func_manifest_submenu)
def unregister():
TOPBAR_MT_file_import.remove(menu_func_import)
TOPBAR_MT_file_export.remove(menu_func_export)
OUTLINER_MT_collection_new.remove(menu_func_new_manifest)
OUTLINER_MT_collection.append(menu_func_manifest_submenu)
unregister_background_properties()
unregister_ui_properties()
for cls in classes:
unregister_class(cls)
if __name__ == "__main__":
try:
register()
except Exception as e:
print(e)
unregister()
raise e