Skip to content

Commit 177e76a

Browse files
committed
step 3
1 parent 7ef007f commit 177e76a

5 files changed

Lines changed: 110 additions & 81 deletions

File tree

03_html/app_cone.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from trame.layouts import SinglePage
2+
from trame.html import vtk, vuetify
3+
4+
from vtkmodules.vtkFiltersSources import vtkConeSource
5+
from vtkmodules.vtkRenderingCore import (
6+
vtkActor,
7+
vtkPolyDataMapper,
8+
vtkRenderer,
9+
vtkRenderWindow,
10+
vtkRenderWindowInteractor,
11+
)
12+
13+
# Required for interactor initialization
14+
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleSwitch # noqa
15+
16+
# Required for rendering initialization, not necessary for
17+
# local rendering, but doesn't hurt to include it
18+
import vtkmodules.vtkRenderingOpenGL2 # noqa
19+
20+
21+
# -----------------------------------------------------------------------------
22+
# VTK pipeline
23+
# -----------------------------------------------------------------------------
24+
25+
renderer = vtkRenderer()
26+
renderWindow = vtkRenderWindow()
27+
renderWindow.AddRenderer(renderer)
28+
29+
renderWindowInteractor = vtkRenderWindowInteractor()
30+
renderWindowInteractor.SetRenderWindow(renderWindow)
31+
renderWindowInteractor.GetInteractorStyle().SetCurrentStyleToTrackballCamera()
32+
33+
cone_source = vtkConeSource()
34+
mapper = vtkPolyDataMapper()
35+
mapper.SetInputConnection(cone_source.GetOutputPort())
36+
actor = vtkActor()
37+
actor.SetMapper(mapper)
38+
39+
renderer.AddActor(actor)
40+
renderer.ResetCamera()
41+
42+
# -----------------------------------------------------------------------------
43+
# GUI
44+
# -----------------------------------------------------------------------------
45+
46+
html_view = vtk.VtkLocalView(renderWindow)
47+
48+
layout = SinglePage("Hello trame", on_ready=html_view.update)
49+
layout.title.set_text("Hello trame")
50+
51+
layout.content.children += [
52+
vuetify.VContainer(
53+
fluid=True,
54+
classes="pa-0 fill-height",
55+
children=[html_view],
56+
)
57+
]
58+
59+
# -----------------------------------------------------------------------------
60+
# Main
61+
# -----------------------------------------------------------------------------
62+
63+
if __name__ == "__main__":
64+
layout.start()
Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010
vtkRenderWindowInteractor,
1111
)
1212

13-
# Required for interacter factory initialization
13+
# Required for interactor initialization
1414
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleSwitch # noqa
1515

16-
# Required for remote rendering factory initialization, not necessary for
16+
# Required for rendering initialization, not necessary for
1717
# local rendering, but doesn't hurt to include it
18-
1918
import vtkmodules.vtkRenderingOpenGL2 # noqa
2019

2120

@@ -30,7 +29,6 @@
3029
renderWindowInteractor = vtkRenderWindowInteractor()
3130
renderWindowInteractor.SetRenderWindow(renderWindow)
3231
renderWindowInteractor.GetInteractorStyle().SetCurrentStyleToTrackballCamera()
33-
renderWindowInteractor.EnableRenderOff()
3432

3533
cone_source = vtkConeSource()
3634
mapper = vtkPolyDataMapper()
@@ -40,47 +38,37 @@
4038

4139
renderer.AddActor(actor)
4240
renderer.ResetCamera()
43-
renderWindow.Render()
44-
45-
# -----------------------------------------------------------------------------
46-
# Functions
47-
# -----------------------------------------------------------------------------
48-
49-
50-
def update_view(**kwargs):
51-
html_view.update()
52-
5341

5442
# -----------------------------------------------------------------------------
5543
# GUI
5644
# -----------------------------------------------------------------------------
5745

58-
layout = SinglePage("Hello trame", on_ready=update_view)
46+
html_view = vtk.VtkLocalView(renderWindow)
47+
48+
layout = SinglePage("Hello trame", on_ready=html_view.update)
5949
layout.title.set_text("Hello trame")
6050

51+
layout.content.children += [
52+
vuetify.VContainer(
53+
fluid=True,
54+
classes="pa-0 fill-height",
55+
children=[html_view],
56+
)
57+
]
58+
6159
layout.toolbar.children += [
6260
vuetify.VSpacer(),
6361
vuetify.VSwitch(
6462
v_model="$vuetify.theme.dark",
6563
hide_details=True,
64+
dense=True,
6665
),
6766
vuetify.VBtn(
6867
vuetify.VIcon("mdi-crop-free"),
6968
icon=True,
7069
click="$refs.view.resetCamera()",
7170
),
7271
]
73-
74-
html_view = vtk.VtkLocalView(renderWindow)
75-
76-
layout.content.children += [
77-
vuetify.VContainer(
78-
fluid=True,
79-
classes="pa-0 fill-height",
80-
children=[html_view],
81-
)
82-
]
83-
8472
# -----------------------------------------------------------------------------
8573
# Main
8674
# -----------------------------------------------------------------------------
Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010
vtkRenderWindowInteractor,
1111
)
1212

13-
# Required for interacter factory initialization
13+
# Required for interactor initialization
1414
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleSwitch # noqa
1515

16-
# Required for remote rendering factory initialization, not necessary for
16+
# Required for rendering initialization, not necessary for
1717
# local rendering, but doesn't hurt to include it
18-
1918
import vtkmodules.vtkRenderingOpenGL2 # noqa
2019

2120

@@ -30,7 +29,6 @@
3029
renderWindowInteractor = vtkRenderWindowInteractor()
3130
renderWindowInteractor.SetRenderWindow(renderWindow)
3231
renderWindowInteractor.GetInteractorStyle().SetCurrentStyleToTrackballCamera()
33-
renderWindowInteractor.EnableRenderOff()
3432

3533
cone_source = vtkConeSource()
3634
mapper = vtkPolyDataMapper()
@@ -40,45 +38,34 @@
4038

4139
renderer.AddActor(actor)
4240
renderer.ResetCamera()
43-
renderWindow.Render()
4441

4542
# -----------------------------------------------------------------------------
46-
# Functions
43+
# GUI
4744
# -----------------------------------------------------------------------------
4845

46+
html_view = vtk.VtkLocalView(renderWindow)
4947

50-
def update_view(**kwargs):
51-
html_view.update()
52-
48+
layout = SinglePage("Hello trame", on_ready=html_view.update)
49+
layout.title.set_text("Hello trame")
5350

54-
# -----------------------------------------------------------------------------
55-
# GUI
56-
# -----------------------------------------------------------------------------
51+
with layout.content:
52+
vuetify.VContainer(
53+
fluid=True,
54+
classes="pa-0 fill-height",
55+
children=[html_view],
56+
)
5757

58-
layout = SinglePage("Hello trame", on_ready=update_view)
59-
layout.title.set_text("Hello trame")
6058

6159
with layout.toolbar:
6260
vuetify.VSpacer()
6361
vuetify.VSwitch(
6462
v_model="$vuetify.theme.dark",
6563
hide_details=True,
64+
dense=True,
6665
)
67-
with vuetify.VBtn(
68-
icon=True,
69-
click="$refs.view.resetCamera()",
70-
):
66+
with vuetify.VBtn(icon=True, click="$refs.view.resetCamera()"):
7167
vuetify.VIcon("mdi-crop-free")
7268

73-
html_view = vtk.VtkLocalView(renderWindow)
74-
75-
with layout.content:
76-
vuetify.VContainer(
77-
fluid=True,
78-
classes="pa-0 fill-height",
79-
children=[html_view],
80-
)
81-
8269
# -----------------------------------------------------------------------------
8370
# Main
8471
# -----------------------------------------------------------------------------
Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,11 @@
1111
vtkRenderWindowInteractor,
1212
)
1313

14-
# Required for interacter factory initialization
14+
# Required for interactor initialization
1515
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleSwitch # noqa
1616

17-
# Required for remote rendering factory initialization, not necessary for
17+
# Required for rendering initialization, not necessary for
1818
# local rendering, but doesn't hurt to include it
19-
2019
import vtkmodules.vtkRenderingOpenGL2 # noqa
2120

2221
# -----------------------------------------------------------------------------
@@ -36,7 +35,6 @@
3635
renderWindowInteractor = vtkRenderWindowInteractor()
3736
renderWindowInteractor.SetRenderWindow(renderWindow)
3837
renderWindowInteractor.GetInteractorStyle().SetCurrentStyleToTrackballCamera()
39-
renderWindowInteractor.EnableRenderOff()
4038

4139
cone_source = vtkConeSource()
4240
mapper = vtkPolyDataMapper()
@@ -46,21 +44,16 @@
4644

4745
renderer.AddActor(actor)
4846
renderer.ResetCamera()
49-
renderWindow.Render()
5047

5148
# -----------------------------------------------------------------------------
5249
# Functions
5350
# -----------------------------------------------------------------------------
5451

5552

56-
def update_view(**kwargs):
57-
html_view.update()
58-
59-
6053
@change("resolution")
6154
def update_resolution(resolution, **kwargs):
6255
cone_source.SetResolution(resolution)
63-
update_view()
56+
html_view.update()
6457

6558

6659
def reset_resolution():
@@ -71,9 +64,18 @@ def reset_resolution():
7164
# GUI
7265
# -----------------------------------------------------------------------------
7366

74-
layout = SinglePage("Hello trame", on_ready=update_view)
67+
html_view = vtk.VtkLocalView(renderWindow)
68+
69+
layout = SinglePage("Hello trame", on_ready=html_view.update)
7570
layout.title.set_text("Hello trame")
7671

72+
with layout.content:
73+
vuetify.VContainer(
74+
fluid=True,
75+
classes="pa-0 fill-height",
76+
children=[html_view],
77+
)
78+
7779
with layout.toolbar:
7880
vuetify.VSpacer()
7981
vuetify.VSlider(
@@ -85,30 +87,18 @@ def reset_resolution():
8587
dense=True,
8688
style="max-width: 300px",
8789
)
88-
with vuetify.VBtn(
89-
icon=True,
90-
click=reset_resolution,
91-
):
90+
with vuetify.VBtn(icon=True, click=reset_resolution):
9291
vuetify.VIcon("mdi-restore")
9392
vuetify.VDivider(vertical=True, classes="mx-2")
93+
9494
vuetify.VSwitch(
9595
v_model="$vuetify.theme.dark",
9696
hide_details=True,
97+
dense=True,
9798
)
98-
with vuetify.VBtn(
99-
icon=True,
100-
click="$refs.view.resetCamera()",
101-
):
99+
with vuetify.VBtn(icon=True, click="$refs.view.resetCamera()"):
102100
vuetify.VIcon("mdi-crop-free")
103101

104-
html_view = vtk.VtkLocalView(renderWindow)
105-
106-
with layout.content:
107-
vuetify.VContainer(
108-
fluid=True,
109-
classes="pa-0 fill-height",
110-
children=[html_view],
111-
)
112102

113103
# -----------------------------------------------------------------------------
114104
# Main

05_paraview/SimpleCone.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def update_reset_resolution():
3737
# GUI
3838
# -----------------------------------------------------------------------------
3939

40-
html_view = paraview.VtkRemoteView(view) # Remote rendering
40+
html_view = paraview.VtkRemoteView(view) # Remote rendering
4141
# html_view = paraview.VtkLocalView(view) # Local rendering
4242

4343
layout = SinglePage("ParaView cone", on_ready=update_cone)

0 commit comments

Comments
 (0)