1234567891011121314151617181920212223242526272829303132 |
- """Add a square button with N possible internal states
- to a rendering window that calls an external function"""
- from vedo import Plotter, Mesh, dataurl, printc
- # Define a function that toggles the transparency of a mesh
- # and changes the button state
- def buttonfunc(obj, ename):
- mesh.alpha(1 - mesh.alpha()) # toggle mesh transparency
- bu.switch() # change to next status
- printc(bu.status(), box="_", dim=True)
- # Load a mesh and set its color to violet
- mesh = Mesh(dataurl+"magnolia.vtk").c("violet").flat()
- # Create an instance of the Plotter class with axes style-11 enabled
- plt = Plotter(axes=11)
- # Add a button to the plotter with buttonfunc as the callback function
- bu = plt.add_button(
- buttonfunc,
- pos=(0.7, 0.1), # x,y fraction from bottom left corner
- states=["click to hide", "click to show"], # text for each state
- c=["w", "w"], # font color for each state
- bc=["dg", "dv"], # background color for each state
- font="courier", # font type
- size=30, # font size
- bold=True, # bold font
- italic=False, # non-italic font style
- )
- # Show the mesh, docstring, and button in the plot
- plt.show(mesh, __doc__).close()
|