1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- from trame.app import get_server
- from trame.ui.vuetify import SinglePageLayout
- from trame.widgets import vtk, vuetify
- import vedo
- cone = vedo.Cone()
- axes = vedo.Axes(cone).unpack()
- plt = vedo.Plotter()
- plt += [cone, axes]
- # -----------------------------------------------------------------------------
- # Trame setup
- # -----------------------------------------------------------------------------
- server = get_server()
- state, ctrl = server.state, server.controller
- # -----------------------------------------------------------------------------
- # Functions
- # -----------------------------------------------------------------------------
- @state.change("resolution")
- def update_resolution(resolution, **kwargs):
- cone.color(resolution)
- ctrl.view_update()
- def reset_resolution():
- cone.color("red5")
- ctrl.view_update()
- # -----------------------------------------------------------------------------
- # GUI
- # -----------------------------------------------------------------------------
- with SinglePageLayout(server) as layout:
- layout.title.set_text("Use slider to change color")
- with layout.content:
- with vuetify.VContainer(
- fluid=True,
- classes="pa-0 fill-height",
- ):
- plt.reset_camera()
- view = vtk.VtkLocalView(plt.window)
- ctrl.view_update = view.update
- ctrl.view_reset_camera = view.reset_camera
- with layout.toolbar:
- vuetify.VSpacer()
- vuetify.VSlider(
- v_model=("resolution", "blue5"),
- min=3,
- max=60,
- step=1,
- hide_details=True,
- dense=True,
- style="max-width: 300px",
- )
- with vuetify.VBtn(icon=True, click=reset_resolution):
- vuetify.VIcon("mdi-restore")
- vuetify.VDivider(vertical=True, classes="mx-2")
- vuetify.VSwitch(
- v_model="$vuetify.theme.dark",
- hide_details=True,
- dense=True,
- )
- with vuetify.VBtn(icon=True, click=ctrl.view_reset_camera):
- vuetify.VIcon("mdi-crop-free")
- # -----------------------------------------------------------------------------
- # Main
- # -----------------------------------------------------------------------------
- server.start()
|