123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from vedo import settings, Plotter, ParametricShape, VedoLogo, Text2D
- settings.renderer_frame_width = 1
- ##############################################################################
- def on_left_click(evt):
- if not evt.object: return
- shapename.text(f'This is called: {evt.object.name}, on renderer nr.{evt.at}')
- plt.at(1).remove(objs).add(evt.object).reset_camera()
- objs.clear()
- objs.append(evt.object)
- ##############################################################################
- sy, sx, dx = 0.12, 0.12, 0.01
- # Define the renderers rectangle areas
- # to help finding bottomleft&topright corners check out utils.grid_corners()
- shape = [
- dict(bottomleft=(0,0), topright=(1,1), bg='k7'), # the full empty window
- dict(bottomleft=(dx*2+sx,0.01), topright=(1-dx,1-dx), bg='w'), # the display window
- dict(bottomleft=(dx,sy*1), topright=(dx+sx,sy*2), bg='k8', bg2='lb'), # CrossCap
- dict(bottomleft=(dx,sy*2), topright=(dx+sx,sy*3), bg='k8', bg2='lb'),
- dict(bottomleft=(dx,sy*3), topright=(dx+sx,sy*4), bg='k8', bg2='lb'),
- dict(bottomleft=(dx,sy*4), topright=(dx+sx,sy*5), bg='k8', bg2='lb'),
- dict(bottomleft=(dx,sy*5), topright=(dx+sx,sy*6), bg='k8', bg2='lb'),
- dict(bottomleft=(dx,sy*6), topright=(dx+sx,sy*7), bg='k8', bg2='lb'),
- dict(bottomleft=(dx,sy*7), topright=(dx+sx,sy*8), bg='k8', bg2='lb'), # RandomHills
- ]
- plt = Plotter(shape=shape, sharecam=False, size=(1050, 980))
- plt.add_callback("when i click my mouse button please call", on_left_click)
- for i in range(2,9):
- ps = ParametricShape(i).color(i)
- pname = Text2D(ps.name, c='k', bg='blue', s=0.7, font='Calco')
- plt.at(i).show(ps, pname)
- shapename = Text2D(pos='top-center', c='r', bg='y', font='Calco') # empty text
- vlogo = VedoLogo(distance=5)
- objs = [vlogo]
- title = "My Multi Viewer 1.0"
- instr = "Click on the left panel to select a shape\n"
- instr+= "Press h to print the full list of options"
- plt.at(1).show(
- vlogo, shapename,
- Text2D(title, pos=(0.5,0.85), s=2.5, c='dg', font='Kanopus', justify='center'),
- Text2D(instr, bg='g', pos=(0.5,0.05), s=1.2, font='Quikhand', justify='center'),
- )
- plt.interactive().close()
|