-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathPvConeLocal.py
More file actions
75 lines (56 loc) · 2.23 KB
/
PvConeLocal.py
File metadata and controls
75 lines (56 loc) · 2.23 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
# pvpython ./PvConeLocal.py --venv /path/to/venv
import paraview.web.venv
from trame.app import get_server
from trame.widgets import vuetify3 as vuetify, paraview
from trame.ui.vuetify3 import SinglePageLayout
from paraview import simple
# -----------------------------------------------------------------------------
# Trame setup
# -----------------------------------------------------------------------------
server = get_server()
server.client_type = "vue2"
state, ctrl = server.state, server.controller
# -----------------------------------------------------------------------------
# ParaView code
# -----------------------------------------------------------------------------
DEFAULT_RESOLUTION = 6
cone = simple.Cone()
representation = simple.Show(cone)
view = simple.Render()
@state.change("resolution")
def update_cone(resolution, **kwargs):
cone.Resolution = resolution
ctrl.view_update()
def update_reset_resolution():
state.resolution = DEFAULT_RESOLUTION
# -----------------------------------------------------------------------------
# GUI
# -----------------------------------------------------------------------------
state.trame__title = "ParaView cone"
with SinglePageLayout(server) as layout:
layout.icon.click = ctrl.view_reset_camera
layout.title.set_text("Cone Application")
with layout.toolbar:
vuetify.VSpacer()
vuetify.VSlider(
v_model=("resolution", DEFAULT_RESOLUTION),
min=3,
max=60,
step=1,
hide_details=True,
dense=True,
style="max-width: 300px",
)
vuetify.VDivider(vertical=True, classes="mx-2")
with vuetify.VBtn(icon=True, click=update_reset_resolution):
vuetify.VIcon("mdi-undo-variant")
with layout.content:
with vuetify.VContainer(fluid=True, classes="pa-0 fill-height"):
html_view = paraview.VtkLocalView(view, ref="view")
ctrl.view_reset_camera = html_view.reset_camera
ctrl.view_update = html_view.update
# -----------------------------------------------------------------------------
# Main
# -----------------------------------------------------------------------------
if __name__ == "__main__":
server.start()