forked from GoldenQubicle/BAT4Blender
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathB4B_v2.puml
182 lines (146 loc) · 2.61 KB
/
B4B_v2.puml
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
@startuml
'package __init__ {
' object register {
'
' }
' object unregister {
' }
'}
package Enums{
enum Rotatation {
SOUTH
EAST
NORTH
WEST
}
enum Zoom {
ONE
TWO
THREE
FOUR
FIVE
}
enum Operators {
PREVIEW
RENDER
LOD_EXPORT
LOD_FIT
LOD_CUSTOM // na
LOD_DELETE
SUN_ADD
SUN_DELETE
CAM_ADD
CAM_DELETE
}
}
package Camera {
class Camera{
get_location_and_rotation(rotation, zoom)
set_camera(location, angle)
----
update(rotation, zoom)
----
add_to_scene()
delete_from_scene()
}
}
package Config {
object Names {
}
}
package LOD {
class LOD {
get_all_bound_boxes()
get_min_max_xyz(bound_boxes)
create_and_update(vertices)
get_mesh_cube(name)
----
fit_new()
----
export()
}
}
package Renderer {
class Renderer{
camera_manouvring(zoom)
get_orthographic_scale(depsgraph, camera, lod)
get_orthographic_scale_gmax(camera_z)
get_scale_factor(os_LOD, os_GMAX)
offset_camera(camera, lod, dimension)
----
generate_output(rotation, zoom, gid)
----
generate_preview(zoom)
}
}
package Rig {
class Rig {
setup(rotation, zoom)
lod_fit()
lod_delete()
}
}
package Sun {
class Sun{
get_sun_rotation(rotation)
set_sun(rotation)
----
update(rotation)
----
add_to_scene()
delete_from_scene()
}
}
note top of Utils: some helper methods
note top of Config : remnant of earlier structure could do away with?
package Utils {
object tgi_formatter{
}
object get_relative_path_for {
}
object translate {
}
}
package GUI {
class MainPanel {
}
class InterfaceVars {
}
}
note left of GUI_Ops : all of these implement Blender operators class \n and have a execute() method
package GUI_Ops{
class PREVIEW {
}
class RENDER{
}
class LOD_EXPORT{
}
class LOD_FIT {
}
class LOD_DELETE{
}
class SUN_ADD{
}
class SUN_DELETE{
}
class CAM_ADD{
}
class CAM_DELETE{
}
}
MainPanel --> GUI_Ops
RENDER --> Rig
RENDER --> Renderer
PREVIEW --> Rig
PREVIEW --> Renderer
LOD_EXPORT --> LOD
LOD_FIT --> Rig
LOD_DELETE --> Rig
SUN_ADD --> Sun
SUN_DELETE --> Sun
CAM_ADD --> Camera
CAM_DELETE --> Camera
Rig -down-> Sun
Rig -down-> Camera
Rig -down-> LOD
@enduml