""" from vtkplotter import Plotter, datadir, Text2D def slider1(widget, event): value = widget.GetRepresentation().GetValue() mesh.color(value) def slider2(widget, event): value = widget.GetRepresentation().GetValue() mesh.alpha(value) vp = Plotter(axes=0) mesh = vp.load(datadir + "magnolia.vtk").flat().lw(0.1) # pos = position corner number: horizontal [1-4] or vertical [11-14] vp.addSlider2D(slider1, -9, 9, value=0, pos=4, title="color number") vp.addSlider2D(slider2, xmin=0.01, xmax=0.99, value=0.5, pos=14, c="blue", title="alpha value (opacity)") vp += Text2D(__doc__) vp.show()
pos = position corner number: horizontal [1-4] or vertical [11-14] ''' print(__doc__) from vtkplotter import Plotter vp = Plotter(axes=0, bg='w') mesh = vp.load('data/shapes/magnolia.vtk', c=0) def slider1(widget, event): value = widget.GetRepresentation().GetValue() mesh.color(value) def slider2(widget, event): value = widget.GetRepresentation().GetValue() mesh.alpha(value) vp.addSlider2D(slider1, -9, 9, value=0, pos=4, title='color number') vp.addSlider2D(slider2, xmin=0.01, xmax=0.99, value=0.5, pos=14, c='blue', title='alpha value (opacity)') vp.show()
vertice = flamelayer(shape_params, expression_params, pose_params, neck_pose, transl) faces = flamelayer.faces vertices = vertice[0].detach().cpu().numpy().squeeze() if phong_shading: mesh = vtkplotter.mesh.Mesh([vertices, faces]).computeNormals().phong() else: mesh = vtkplotter.mesh.Mesh([vertices, faces ]).flat() #computeNormals().phong()#flat() vp.addSlider2D(flame_shape_slider, xmin=-1., xmax=1., value=0, pos=1, title="Flame shape") vp.addSlider2D(flame_expr_slider, xmin=-1, xmax=1, value=0, pos=2, title="Flame expression") vp.addSlider2D(flame_jaw_slider, xmin=-0.05, xmax=0.05, value=0, pos=3, title="Flame jaw") vp.addSlider2D(flame_neck_slider,
def view_mesh( meshes: list, output_file: str, mesh_names: list = [], patient_data="", plid="", scan_path="", ): logging.info("Opening mesh viewer.") settings.useDepthPeeling = True vmeshes = [] def slider1(widget, event): value = widget.GetRepresentation().GetValue() vmeshes[index].color(value) def slider2(widget, event): value = widget.GetRepresentation().GetValue() vmeshes[index].opacity(value) def buttonfunc(): global index bu.switch() index = mesh_names.index(bu.status()) def background_swap(): bg_button.switch() vp.backgroundRenderer.SetBackground(colors.getColor( bg_button.status())) def ar_view(): save() holo_registration_wrapper.start_viewer(output_file, plid) def save(): write_mesh_as_glb_with_colour(vmeshes, output_file) def open_scan(): external_2d_viewer.start(scan_path) vp = Plotter( sharecam=False, bg="./core/client/images/hologram_icon2.png", bg2='black', shape=[1, 1], size=[640, 480], interactive=False, ) # pos = position corner number: horizontal [1-4] or vertical [11-14] vp.addSlider2D(slider1, -9, 9, value=0, pos=4, title="color number") left_side_x = 0.1 vp.addSlider2D( slider2, xmin=0.00, xmax=1.00, value=0.5, pos=14, c="blue", title="alpha value (opacity)", ) bu = vp.addButton( buttonfunc, pos=(0.5, 0.05), # x,y fraction from bottom left corner states=mesh_names, font=font_style, # arial, courier, times size=25, bold=True, italic=False, ) save_button = vp.addButton( save, pos=(left_side_x, 0.05), # x,y fraction from bottom left corner states=["Save"], font=font_style, # arial, courier, times size=25, bold=True, italic=False, ) if holo_registration_wrapper.is_supported(plid): ar_button = vp.addButton( ar_view, pos=(left_side_x, 0.20), states=["AR View"], font=font_style, size=25, bold=True, italic=False, ) if scan_path != "": scan_button = vp.addButton( open_scan, pos=(left_side_x, 0.15), states=["2D View"], font=font_style, size=25, bold=True, italic=False, ) bg_button = vp.addButton( background_swap, pos=(left_side_x, 0.10), # x,y fraction from bottom left corner states=["black", "white"], font=font_style, size=25, bold=True, italic=False, ) for i in range(0, len(meshes)): vmeshes.append(trimesh2vtk(meshes[i], alphaPerCell=True)) doc = Text2D(patient_data, pos=4, c=(0, 113, 197)) vp.show(doc) vp.backgroundRenderer.GetActiveCamera().Zoom(1.3) vp.show(vmeshes) interactive()