fromcompas.geometryimportPoint,Polyline,Bezierfromcompas.colorsimportColorfromcompas_view2.appimportAppcurve=Bezier([[0,0,0],[3,6,0],[5,-3,0],[10,0,0]])viewer=App(viewmode="shaded",enable_sidebar=True,width=1600,height=900)viewer.view.camera.target=[5,0,0]viewer.view.camera.distance=20pointobj=viewer.add(Point(*curve.point(0)),pointsize=20,pointcolor=(1,0,0))curveobj=viewer.add(Polyline(curve.locus()),linewidth=2)@viewer.checkbox(text="Show Point",checked=True)defcheck(checked):pointobj.is_visible=checkedviewer.view.update()@viewer.slider(title="Slide Point",maxval=100,step=1,bgcolor=Color.white())defslide(value):value=value/100pointobj._data=curve.point(value)pointobj.update()viewer.view.update()@viewer.button(text="Reset")defclick():ifviewer.confirm('This will reset the point to parameter t=0.'):pointobj._data=curve.point(0)pointobj.update()slide.value=0viewer.view.update()@viewer.radio(title='Display',items=[{'text':'Ghosted','value':'ghosted','checked':viewer.view.mode=='ghosted'},{'text':'Shaded','value':'shaded','checked':viewer.view.mode=='shaded'},{'text':'Lighted','value':'lighted','checked':viewer.view.mode=='lighted'},{'text':'Wireframe','value':'wireframe','checked':viewer.view.mode=='wireframe'}])defselect1(value):viewer.view.mode=valueviewer.view.update()@viewer.select(items=[{'text':'Item 1'},{'text':'Item 2'},{'text':'Item 3'},{'text':'Item 4'}])defselect2(index,text):viewer.info(f"You selected item '{index}' with text '{text}'")viewer.run()