-
Notifications
You must be signed in to change notification settings - Fork 0
/
application.py
97 lines (79 loc) · 3.06 KB
/
application.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
92
93
94
95
96
97
from examples_common.GuaVE import GuaVE
import avango.gua
class Application:
def __init__(self):
self.viewer = avango.gua.nodes.Viewer(Name='Viewer')
self.scenegraph = avango.gua.nodes.SceneGraph(Name='SceneGraph')
self.window = None
self.screen = None
self.camera = None
self.field_containers = {}
self.planned_field_connections = []
self.root = avango.gua.nodes.TransformNode(
Name="Custom_Root",
Transform=avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0)
)
self.scenegraph.Root.value.Children.value.append(self.root)
def run(self):
guaVE = GuaVE()
guaVE.start(locals(), globals(), show_banner=False)
self.viewer.run()
def basic_setup(self):
size = avango.gua.Vec2ui(1600, 900)
# self.camera = avango.gua.nodes.CameraNode(
# LeftScreenPath = "/screen",
# SceneGraph = "SceneGraph",
# Resolution = size,
# OutputWindowName = "window",
# Transform = avango.gua.make_trans_mat(0.0, 0.0, 3.5)
# )
# self.screen = avango.gua.nodes.ScreenNode(
# Name = "screen",
# Width = 2,
# Height = 1.5,
# Children = [self.camera],
# Transform = avango.gua.make_trans_mat(0.0, 0.0, 15.0)
# )
self.camera.LeftScreenPath.value = self.screen.Path.value
self.scenegraph.Root.value.Children.value.append(self.screen)
self.window = avango.gua.nodes.GlfwWindow(
Size=size,
LeftResolution=size,
)
avango.gua.register_window("window", self.window)
self.viewer.SceneGraphs.value = [self.scenegraph]
self.viewer.Windows.value = [self.window]
def add_field_container(self, field_container):
self.field_containers[field_container.Name.value] = field_container
def add_field_connection(
self,
from_container_name,
from_field_name,
to_container_name,
to_field_name):
to_field =\
self.field_containers[to_container_name].get_field(to_field_name)
from_field = self.field_containers[from_container_name].\
get_field(from_field_name)
print(("add field connection", to_field_name))
to_field.connect_from(from_field)
def plan_field_connection(
self,
from_container_name,
from_field_name,
to_container_name,
to_field_name):
from_container_name = from_container_name.replace('.', '_')
to_container_name = to_container_name.replace('.', '_')
self.planned_field_connections.append((
from_container_name,
from_field_name,
to_container_name,
to_field_name
))
def apply_field_connections(self):
for fc in self.planned_field_connections:
self.add_field_connection(fc[0], fc[1], fc[2], fc[3])
self.planned_field_connections = []
def set_camera(self, camera):
self.camera = camera