/
__init__.py
85 lines (75 loc) · 2.36 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
bl_info = {
"name": "Avango",
"author": "Avango Development Team",
"version": (14, 11, 0),
"blender": (2, 72, 0),
"b4w_format_version": "5.01",
"location": "File > Import-Export",
"description": "Avango is a Blender-friendly 3D web framework",
"warning": "",
"wiki_url": "http://www.blend4web.com/doc",
"category": "Import-Export"
}
if "bpy" in locals():
import imp
imp.reload(properties)
imp.reload(interface)
imp.reload(node_tree)
imp.reload(field_container)
imp.reload(exporter)
else:
from . import properties
from . import interface
from . import node_tree
from . import field_container
from . import exporter
import bpy
import nodeitems_utils
import nodeitems_utils as nu
from bpy.props import StringProperty
import os
node_categories = [
node_tree.AvangoNodeCategory("SOMENODES", "avango.osg", items=[
nu.NodeItem("SceneGraph"),
nu.NodeItem("Viewer"),
nu.NodeItem("Window"),
nu.NodeItem("Camera"),
nu.NodeItem("Light"),
nu.NodeItem("Screen"),
nu.NodeItem("Transform"),
nu.NodeItem("Mesh"),
]),
#node_tree.AvangoNodeCategory("SOMENODES", "Nodes", items=[
#]
#node_tree.AvangoNodeCategory("SOMENODES", "Texture", items=[
#]
#node_tree.AvangoNodeCategory("SOMENODES", "Loader", items=[
#]
]
def register():
properties.register()
interface.register()
node_tree.register()
field_container.register()
exporter.register()
# Idee: root am SceneGraph
# 1.)
# alle objects haben CollectionProperty,
# sollte beim exportieren des scene graphs ein die CollectionProperty eines
# Hierarchieknotens leer sein, wird ein default FieldContainer des
# passenden typs erstellt
# 2.) wenn ein Node gelöscht wird, soll auf referenzierten blender objecten
# vorher die Referenz auf diesen Node entfernt werden
#bpy.types.Object.avango_nodes = bpy.props.CollectionProperty(type=bpy.types.PropertyGroup)
if not 'AVANGO_NODES' in nu._node_categories:
nu.register_node_categories('AVANGO_NODES', node_categories)
def unregister():
properties.unregister()
interface.unregister()
node_tree.unregister()
field_container.unregister()
exporter.unregister()
if 'AVANGO_NODES' in nu._node_categories:
nu.unregister_node_categories('AVANGO_NODES')
if __name__ == "__main__":
register()