mouseclick2.py 883 B

1234567891011121314151617181920212223242526272829
  1. """Add an observer to specific objects in a scene"""
  2. from vedo import printc, Mesh, dataurl, Text2D, Plotter
  3. import numpy as np
  4. # -----------------------
  5. def func(obj, name=None):
  6. printc("Plotter callback", c="m")
  7. # -----------------------
  8. def ftxt(obj, ename):
  9. printc("Text2D callback", obj.__class__.__name__, ename, c="y")
  10. obj.color(np.random.rand() * 10)
  11. # -----------------------
  12. def fmsh(obj, ename):
  13. printc("Mesh callback", obj.__class__.__name__, ename, c="b")
  14. msh.color(np.random.rand() * 10)
  15. msh = Mesh(dataurl + "spider.ply")
  16. cid2 = msh.add_observer("pick", fmsh)
  17. txt = Text2D("CLICK ME", pos="bottom-center", s=3, bg="yellow5").pickable()
  18. cid1 = txt.add_observer("pick", ftxt)
  19. plt = Plotter()
  20. # plt.add_observer("mouse click", func) ### SAME AS:
  21. # plt.add_callback("mouse click", func, enable_picking=False)
  22. plt.show(txt, msh, __doc__).close()