-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathAxesActor.py
More file actions
61 lines (51 loc) · 1.83 KB
/
AxesActor.py
File metadata and controls
61 lines (51 loc) · 1.83 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
from trame.app import get_server
from trame.ui.vuetify3 import SinglePageLayout
from trame.widgets import vuetify3 as vuetify, vtk as vtk_widgets
from vtkmodules.vtkFiltersSources import vtkConeSource
from vtkmodules.vtkRenderingCore import (
vtkActor,
vtkPolyDataMapper,
vtkRenderer,
vtkRenderWindow,
vtkRenderWindowInteractor,
)
from vtkmodules.vtkRenderingAnnotation import vtkAxesActor
from vtkmodules.vtkCommonTransforms import vtkTransform
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleSwitch # noqa
import vtkmodules.vtkRenderingOpenGL2 # noqa
renderer = vtkRenderer()
renderWindow = vtkRenderWindow()
renderWindow.AddRenderer(renderer)
renderWindowInteractor = vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)
renderWindowInteractor.GetInteractorStyle().SetCurrentStyleToTrackballCamera()
cone_source = vtkConeSource()
mapper = vtkPolyDataMapper()
mapper.SetInputConnection(cone_source.GetOutputPort())
actor = vtkActor()
actor.SetMapper(mapper)
axes = vtkAxesActor()
# axes.SetShaftTypeToCylinder()
axes.SetShaftTypeToLine()
transform = vtkTransform()
transform.Translate(1.0, 0.0, 0.0)
axes.SetUserTransform(transform)
renderer.AddActor(axes)
renderer.AddActor(actor)
renderer.ResetCamera()
server = get_server()
server.client_type = "vue2"
ctrl = server.controller
with SinglePageLayout(server) as layout:
layout.title.set_text("Hello trame")
with layout.content:
with vuetify.VContainer(
fluid=True,
classes="pa-0 fill-height",
):
with vuetify.VCol(classes="pa-0 ma-1 fill-height"):
vtk_widgets.VtkLocalView(renderWindow)
with vuetify.VCol(classes="pa-0 ma-1 fill-height"):
vtk_widgets.VtkRemoteView(renderWindow, interactive_ratio=1)
if __name__ == "__main__":
server.start()