keypress.py 844 B

123456789101112131415161718192021222324
  1. """Implement a custom function that is triggered by
  2. pressing a keyboard button when the rendering window
  3. is in interactive mode.
  4. Place the pointer anywhere on the mesh and press c"""
  5. from vedo import dataurl, printc, Plotter, Point, Mesh
  6. #############################################################
  7. def myfnc(evt):
  8. mesh = evt.object
  9. # printc('dump event info', evt)
  10. if not mesh or evt.keypress != "c":
  11. printc("click mesh and press c", c="r", invert=True)
  12. return
  13. printc("point:", mesh.picked3d, c="v")
  14. cpt = Point(mesh.picked3d)
  15. cpt.color("violet").ps(20).pickable(False)
  16. plt.add(cpt).render()
  17. ##############################################################
  18. plt = Plotter(axes=1)
  19. plt+= Mesh(dataurl+"bunny.obj").color("gold")
  20. plt+= __doc__
  21. plt.add_callback('on key press', myfnc)
  22. plt.show().close()