-
Notifications
You must be signed in to change notification settings - Fork 0
/
uml_diagram.uxf
128 lines (115 loc) · 6.63 KB
/
uml_diagram.uxf
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
<diagram program="umletino" version="14.4.0-SNAPSHOT"><zoom_level>10</zoom_level><help_text>Space for diagram notes</help_text><element><id>UMLClass</id><coordinates><x>810</x><y>720</y><w>310</w><h>200</h></coordinates><panel_attributes>Task
--
-id: string
-name: string
-label: string
-inputs: list<ProcessorData>
-exec_code: String
-output: ProcessorData
-supported_engines: list<Engine>
--
+from_json(string json)
+set_inputs(list<ProcessorData> inputs)
+execute()
+is_entity_supported(Entity entity): bool</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLNote</id><coordinates><x>630</x><y>60</y><w>290</w><h>540</h></coordinates><panel_attributes>Task as JSON
bg=blue
{
"id": "task_id_001",
"name": "task_name",
"label": "Task 001",
"inputs": [
{
"id": "input_id_001",
"name": "boolean_input",
"label": "Dummy Boolean Input",
"type": "Boolean",
"value": true
},
{
"id": "input_id_002",
"name": "path_input",
"label": "Dummy Path Input",
"type": "Path",
"value": "D:/Personal_Work/Pipeline"
}
],
"output": {
"id": "output_id_001",
"name": "task_output",
"label": "Dummy Output",
"type": "Path",
"value": "D:/Personal_Work/Pipeline/test.abc"
},
"supported_engines": [
"maya"
],
"exec": "import pymel.core as pm"
}</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>0</x><y>780</y><w>200</w><h>150</h></coordinates><panel_attributes><<enum>>
ProcessorDataTypes
--
Empty
Task
Boolean
String
Integer
Float
Path
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>330</x><y>830</y><w>220</w><h>110</h></coordinates><panel_attributes>ProcessorData
--
-id: string
-name: string
-label: string
-type: ProcessorDataTypes
-value: any</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>990</x><y>580</y><w>130</w><h>110</h></coordinates><panel_attributes>Entity
--
-id: string
-name: string
-label: string
-file: ProcessorData
--
+getExtension(): string</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>970</x><y>1010</y><w>150</w><h>200</h></coordinates><panel_attributes>TaskQueue
--
-id: string
-name: string
-label: string
-entity: Entity
-tasks: list<Task>
--
+set_entity(Entity entity)
+add_task(Task task)
+remove_task(Task task)
+start()
+pause()
+stop()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>810</x><y>590</y><w>40</w><h>150</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>20;130;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>190</x><y>850</y><w>160</w><h>80</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>140;60;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>540</x><y>820</y><w>290</w><h>80</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>270;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>540</x><y>870</y><w>450</w><h>350</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>430;330;30;330;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>540</x><y>630</y><w>470</w><h>260</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>450;10;40;10;10;240</additional_attributes></element><element><id>Relation</id><coordinates><x>1040</x><y>910</y><w>30</w><h>120</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;100;10;10</additional_attributes></element><element><id>UMLNote</id><coordinates><x>650</x><y>930</y><w>310</w><h>160</h></coordinates><panel_attributes>Task
bg=green
Task class is responsible for exectuing any engine code.
A task JSON file specifes which engine it works on,
inputs (parameters) it needs, the output it produces and
the engine-specific code to get that output.
This JSON data is converted to a Task object in python.
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLNote</id><coordinates><x>0</x><y>520</y><w>560</w><h>250</h></coordinates><panel_attributes>ProcessorData
bg=green
All data in this application which needs to be passed around is encapsulated inside the ProcessorData
object.
All tasks, task queues and entities makes use of ProcessorData.
The data can be of any type: boolean, string, int etc. It can also be another task.
For example:
Consider the task to open a file and export it as an alembic geometry.
You need a file path as input and alembic file as output.
INPUT:
You create one ProcessorData object with type=Path and value=<path/to/file>
OUTPUT:
You create one more ProcessorData object with type=Path and value=<path/to/export/alembic>
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLNote</id><coordinates><x>1127</x><y>1088</y><w>340</w><h>200</h></coordinates><panel_attributes>Task Queue
bg=green
For each entity (file), a task queue object is created.
A task queue has reference to the entity it works on and a list
of tasks it need to execute.</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLNote</id><coordinates><x>1127</x><y>528</y><w>340</w><h>110</h></coordinates><panel_attributes>Entity
bg=green
An entity is nothing but a file on which we need to execute a
number of tasks.</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1350</x><y>820</y><w>130</w><h>80</h></coordinates><panel_attributes>Processor
--
-entities: list<Entity>
-task_queue: TaskQueue
--
+process_entities()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1110</x><y>890</y><w>260</w><h>220</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>240;10;10;200</additional_attributes></element><element><id>Relation</id><coordinates><x>1110</x><y>630</y><w>260</w><h>210</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>240;190;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1110</x><y>850</y><w>260</w><h>30</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>240;10;10;10</additional_attributes></element></diagram>