1234567891011121314151617181920212223242526272829303132333435363738394041 |
- """Slice multiple datasets"""
- from vedo import Plotter, Text2D, load, dataurl, ScalarBar3D
- volumes = [dataurl+'vase.vti', dataurl+'embryo.slc', dataurl+'head.vti']
- volumes = load(volumes)
- cmaps = ['hot_r', 'gist_ncar_r', 'bone_r']
- ########################################################################
- def initfunc(iren, vol):
- vol.mode(1).cmap('k').alpha([0, 0, 0.15, 0, 0])
- txt = Text2D(data.filename[-20:], font='Calco')
- plt.at(iren).show(vol, vol.box(), txt)
- def func(widget, event):
- zs = int(widget.value)
- widget.title = f"z-slice = {zs}"
- msh = vol.zslice(zs)
- msh.cmap(cmaps[iren]).lighting("off")
- msh.name = "slice"
- sb = ScalarBar3D(msh, c='k')
- # sb = sb.clone2d("bottom-right", 0.08)
- plt.renderer = widget.renderer # make it the current renderer
- plt.remove("slice", "ScalarBar3D").add(msh, sb)
- return func # this is the actual function returned!
- ########################################################################
- plt = Plotter(shape=(1, len(volumes)), sharecam=False, bg2='lightcyan')
- for iren, data in enumerate(volumes):
- plt.add_slider(
- initfunc(iren, data), #func
- 0, data.dimensions()[2],
- value=0,
- show_value=False,
- pos=[(0.1,0.1), (0.25,0.1)],
- )
- plt.interactive().close()
|