"""Interactively slice a Volume along a plane.
Middle button + drag to slide the plane along the arrow"""
from vedo import *

normal = [0, 0, 1]
cmap = "gist_stern_r"

def func(w, _):
    c, n = pcutter.origin, pcutter.normal
    vslice = vol.slice_plane(c, n, autocrop=True).cmap(cmap)
    vslice.name = "Slice"
    plt.at(1).remove("Slice").add(vslice)


vol = Volume(dataurl + "embryo.slc").cmap(cmap)
vslice = vol.slice_plane(vol.center(), normal).cmap(cmap)
vslice.name = "Slice"

plt = Plotter(axes=0, N=2, bg="k", bg2="bb")

pcutter = PlaneCutter(
    vslice,
    normal=normal,
    alpha=0,
    c="white",
    padding=0,
)
pcutter.add_observer("interaction", func)
plt.at(0).add(vol, __doc__)
plt.at(1).add(pcutter, vol.box())

pcutter.on() # enable the cutter after adding it to the plotter

plt.show(zoom=1.2)
plt.interactive()
plt.close()
