interaction_modes4.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """Press TAB to toggle active panel and freeze the other"""
  2. from vedo import settings, Cube, Image, dataurl, RendererFrame, Plotter
  3. from vedo.interactor_modes import MousePan
  4. settings.enable_default_keyboard_callbacks = False
  5. settings.default_font = "Roboto"
  6. active = 0
  7. inactive = 1
  8. cube = Cube().rotate_x(10)
  9. img = Image(dataurl+"images/dog.jpg")
  10. def toggle_active(event):
  11. global active, inactive
  12. if event.keypress == "Tab": # toggle active renderer
  13. active, inactive = inactive, active
  14. plt.at(active).user_mode(modes[active])
  15. plt.at(inactive).remove(frames[inactive]).freeze(True)
  16. plt.at(active).add(frames[active]).freeze(False)
  17. plt.render()
  18. elif event.keypress == "q":
  19. plt.close()
  20. frame0 = RendererFrame(lw=10, c="red5", alpha=1)
  21. frame1 = RendererFrame(lw=10, c="red5", alpha=1)
  22. plt = Plotter(shape=(1,2), sharecam=False, axes=1)
  23. modes = [0, MousePan()]
  24. frames = [frame0, frame1]
  25. plt.at(0).add(cube, frame0, __doc__).reset_camera()
  26. plt.at(1).add(img)
  27. plt.add_callback('key press', toggle_active)
  28. plt.at(inactive).freeze()
  29. plt.show(interactive=True).close()