buttons2.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. """Create three checkbox buttons to toggle objects on/off."""
  2. from vedo import Mesh, Plotter, dataurl
  3. s1 = Mesh(dataurl+"bunny.obj").normalize().x(0).color("p5")
  4. s2 = Mesh(dataurl+"teapot.vtk").normalize().x(3).rotate_x(-90).color("y5")
  5. s3 = Mesh(dataurl+"mug.ply").normalize().x(6).color("r5")
  6. def func1(b, evt):
  7. s1.toggle() # toggle visibility
  8. b.switch()
  9. def func2(b, evt):
  10. s2.toggle()
  11. b.switch()
  12. def func3(b, evt):
  13. s3.toggle()
  14. b.switch()
  15. def func4(_, evt):
  16. [s.toggle() for s in (s1,s2,s3)]
  17. [b.switch() for b in plt.buttons]
  18. plt = Plotter(axes=1, size=(1000,500))
  19. plt.add_hint(s1, "A Bunny", size=42) # shows a label when hovering on the object
  20. plt.add_hint(s2, "A Teapot", size=42)
  21. plt.add_hint(s3, "A Mug", size=42)
  22. plt.add_button(func1, pos=(0.4,0.15), size=42, states=["", ""], bc=["p5", "k7"])
  23. plt.add_button(func2, pos=(0.5,0.15), size=42, states=["", ""], bc=["y5", "k7"])
  24. plt.add_button(func3, pos=(0.6,0.15), size=42, states=["", ""], bc=["r5", "k7"])
  25. plt.add_button(func4, pos=(0.9,0.15), size=42, states=["flip","flip"], bc=["k4","k5"],
  26. c=["k5","k4"], font="Cartoons123")
  27. plt.show(s1, s2, s3, __doc__, zoom=1.8).close()