-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathPyVistaAxesGrid.py
More file actions
60 lines (44 loc) · 1.81 KB
/
PyVistaAxesGrid.py
File metadata and controls
60 lines (44 loc) · 1.81 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
"""Validate vtkCubeAxesActor serializer.
Make sure that the grid lines color from `vtkCubeAxesActor.GetXAxesLinesProperty.GetColor`
is synchroniezed in addition to text colors.
"""
from trame.app import get_server
from trame.ui.vuetify3 import SinglePageLayout
from trame.widgets import vuetify3 as vuetify
from trame.widgets.vtk import VtkLocalView
import pyvista as pv
server = get_server()
server.client_type = "vue2"
state, ctrl = server.state, server.controller
state.trame__title = "PyVista Local View Grid Lines"
# -----------------------------------------------------------------------------
pv.set_plot_theme("document") # sets black as default for grid lines and text
mesh = pv.Cone()
plotter = pv.Plotter(off_screen=True)
actor = plotter.add_mesh(mesh)
plotter.set_background("lightgrey") # To see problematic white default set by VTK.js
plotter.show_grid()
plotter.reset_camera(render=False) # <<< Needed to have a valid initial camera
# -----------------------------------------------------------------------------
# GUI
# -----------------------------------------------------------------------------
with SinglePageLayout(server) as layout:
layout.icon.click = ctrl.view_reset_camera
layout.title.set_text(state.trame__title)
with layout.toolbar:
vuetify.VSpacer()
with layout.content:
with vuetify.VContainer(
fluid=True,
classes="pa-0 fill-height",
):
view = VtkLocalView(plotter.ren_win)
ctrl.view_update = view.update
ctrl.view_reset_camera = view.reset_camera
# hide footer
layout.footer.hide()
# -----------------------------------------------------------------------------
# Main
# -----------------------------------------------------------------------------
if __name__ == "__main__":
server.start()