def main(): win = pango.CreateWindowAndBind("main py_pangolin", 640, 480) log = pango.DataLog() log.SetLabels(["sin(t)", "cos(t)", "sin(t)+cos(t)"]) t=0; tinc=0.01 plotter = pango.Plotter(log,0,4*math.pi/tinc,-2,2,math.pi/(4*tinc),0.5); plotter.Track("$i") plotter.AddMarker(pango.Marker.Vertical, -1000, pango.Marker.LessThan, pango.Colour.Blue().WithAlpha(0.2)) plotter.AddMarker(pango.Marker.Horizontal, 100, pango.Marker.GreaterThan, pango.Colour.Red().WithAlpha(0.2)) plotter.AddMarker(pango.Marker.Horizontal, 10, pango.Marker.Equal, pango.Colour.Green().WithAlpha(0.2)) plotter.SetBounds(pango.Attach(0), pango.Attach(1), pango.Attach(0), pango.Attach(1)) pango.DisplayBase().AddDisplay(plotter) while not pango.ShouldQuit(): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) log.Log(math.sin(t), math.cos(t), math.sin(t)+math.cos(t)) t+=tinc pango.FinishFrame()
def main(): # Create OpenGL window in single line pangolin.CreateWindowAndBind('Main', 640, 480) gl.glEnable(gl.GL_DEPTH_TEST) # Define Projection and initial ModelView matrix scam = pangolin.OpenGlRenderState( pangolin.ProjectionMatrix(640, 480, 420, 420, 320, 240, 0.2, 100), pangolin.ModelViewLookAt(-2, 2, -2, 0, 0, 0, pangolin.AxisDirection.AxisY)) handler = pangolin.Handler3D(scam) # Create Interactive View in window dcam = pangolin.CreateDisplay() dcam.SetBounds(pangolin.Attach(0.0), pangolin.Attach(1.0), pangolin.Attach(0.0), pangolin.Attach(1.0), -640.0 / 480.0) dcam.SetHandler(handler) # Data logger object log = pangolin.DataLog() # Optionally add named labels labels = ['sin(t)', 'cos(t)', 'sin(t)+cos(t)'] log.SetLabels(labels) # OpenGL 'view' of data. We might have many views of the same data. tinc = 0.03 plotter = pangolin.Plotter(log, 0.0, 6.0 * np.pi / tinc, -2.0, 2.0, np.pi / (6 * tinc), 0.5) plotter.SetBounds(pangolin.Attach(0.05), pangolin.Attach(0.3), pangolin.Attach(0.0), pangolin.Attach(0.4)) plotter.Track('$i') # Add some sample annotations to the plot plotter.AddMarker(pangolin.Marker.Vertical, -1000, pangolin.Marker.LessThan, pangolin.Colour.Blue().WithAlpha(0.2)) plotter.AddMarker(pangolin.Marker.Horizontal, 100, pangolin.Marker.GreaterThan, pangolin.Colour.Red().WithAlpha(0.2)) plotter.AddMarker(pangolin.Marker.Horizontal, 10, pangolin.Marker.Equal, pangolin.Colour.Green().WithAlpha(0.2)) pangolin.DisplayBase().AddDisplay(plotter) t = 0 while not pangolin.ShouldQuit(): gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT) # Plot line log.Log(np.sin(t), np.cos(t), np.sin(t) + np.cos(t)) t += tinc gl.glClearColor(1.0, 1.0, 1.0, 1.0) dcam.Activate(scam) # Render OpenGL 3D Cube pangolin.glDrawColouredCube() pangolin.FinishFrame()
def main(): # Create OpenGL window in single line pangolin.CreateWindowAndBind('Main', 640, 480) # Data logger object log = pangolin.DataLog() # Optionally add named labels labels = ['sin(t)', 'cos(t)', 'sin(t)+cos(t)'] log.SetLabels(labels) # OpenGL 'view' of data. We might have many views of the same data. tinc = 0.03 plotter = pangolin.Plotter(log, 0.0, 4.0 * np.pi / tinc, -2.0, 2.0, np.pi / (4 * tinc), 0.5) plotter.SetBounds(0.0, 1.0, 0.0, 1.0) plotter.Track('$i') # Add some sample annotations to the plot plotter.AddMarker(pangolin.Marker.Vertical, -1000, pangolin.Marker.LessThan, pangolin.Colour.Blue().WithAlpha(0.2)) plotter.AddMarker(pangolin.Marker.Horizontal, 100, pangolin.Marker.GreaterThan, pangolin.Colour.Red().WithAlpha(0.2)) plotter.AddMarker(pangolin.Marker.Horizontal, 10, pangolin.Marker.Equal, pangolin.Colour.Green().WithAlpha(0.2)) pangolin.DisplayBase().AddDisplay(plotter) t = 0 while not pangolin.ShouldQuit(): gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT) log.Log(np.sin(t), np.cos(t), np.sin(t) + np.cos(t)) t += tinc pangolin.FinishFrame()
def main(): pangolin.ParseVarsFile('app.cfg') pangolin.CreateWindowAndBind('Main', 640, 480) gl.glEnable(gl.GL_DEPTH_TEST) scam = pangolin.OpenGlRenderState( pangolin.ProjectionMatrix(640, 480, 420, 420, 320, 240, 0.1, 1000), pangolin.ModelViewLookAt(0, 0.5, -3, 0, 0, 0, pangolin.AxisDirection.AxisY)) handler3d = pangolin.Handler3D(scam) dcam = pangolin.CreateDisplay() dcam.SetBounds(0.0, 1.0, 180 / 640., 1.0, -640.0 / 480.0) # dcam.SetBounds(pangolin.Attach(0.0), pangolin.Attach(1.0), # pangolin.Attach.Pix(180), pangolin.Attach(1.0), -640.0/480.0) dcam.SetHandler(pangolin.Handler3D(scam)) panel = pangolin.CreatePanel('ui') panel.SetBounds(0.0, 1.0, 0.0, 180 / 640.) button = pangolin.VarBool('ui.Button', value=False, toggle=False) checkbox = pangolin.VarBool('ui.Checkbox', value=False, toggle=True) float_slider = pangolin.VarFloat('ui.Float', value=3, min=0, max=5) float_log_slider = pangolin.VarFloat('ui.Log_scale var', value=3, min=1, max=1e4, logscale=True) int_slider = pangolin.VarInt('ui.Int', value=2, min=0, max=5) int_slave_slider = pangolin.VarInt('ui.Int_slave', value=2, toggle=False) save_window = pangolin.VarBool('ui.Save_Window', value=False, toggle=False) save_cube = pangolin.VarBool('ui.Save_Cube', value=False, toggle=False) record_cube = pangolin.VarBool('ui.Record_Cube', value=False, toggle=False) def reset(): #float_slider.SetVal(0.5) print('You typed ctrl-r or pushed reset') # Reset = SetVarFunctor(float_slider, 0.5) # reset = pangolin.VarFunc('ui.Reset', reset) # pangolin.RegisterKeyPressCallback(int(pangolin.PANGO_CTRL) + ord('r'), reset) # segfault # pangolin.RegisterKeyPressCallback(int(pangolin.PANGO_CTRL) + ord('b'), pangolin.SetVarFunctorFloat('ui.Float', 4.5)) # segfault # pangolin.RegisterKeyPressCallback(int(pangolin.PANGO_CTRL) + ord('b'), SetVarFunctor(float_slider, 4.5)) # segfault while not pangolin.ShouldQuit(): gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT) if pangolin.Pushed(button): print('You Pushed a button!') if checkbox.Get(): int_slider.SetVal(int(float_slider)) int_slave_slider.SetVal(int_slider) if pangolin.Pushed(save_window): pangolin.SaveWindowOnRender("window") if pangolin.Pushed(save_cube): pangolin.SaveWindowOnRender("cube") if pangolin.Pushed(record_cube): pangolin.DisplayBase().RecordOnRender( "ffmpeg:[fps=50,bps=8388608,unique_filename]//screencap.avi") dcam.Activate(scam) gl.glColor3f(1.0, 1.0, 1.0) pangolin.glDrawColouredCube() pangolin.FinishFrame()