def viewer_init(self, w, h): pangolin.CreateWindowAndBind('Map Viewer', w, h) gl.glEnable(gl.GL_DEPTH_TEST) self.scam = pangolin.OpenGlRenderState( pangolin.ProjectionMatrix(w, h, 420, 420, w // 2, h // 2, 0.2, 10000), pangolin.ModelViewLookAt(0, -10, -8, 0, 0, 0, 0, -1, 0)) self.handler = pangolin.Handler3D(self.scam) # Create Interactive View in window self.dcam = pangolin.CreateDisplay() self.dcam.SetBounds(0.0, 1.0, 0.0, 1.0, w / h) self.dcam.SetHandler(self.handler) # hack to avoid small Pangolin, no idea why it's *2 self.dcam.Resize(pangolin.Viewport(0, 0, w * 2, h * 2)) self.dcam.Activate()
def main(): 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(0.0, 1.0, 0.0, 1.0, -640.0 / 480.0) dcam.SetHandler(handler) while not pangolin.ShouldQuit(): gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT) gl.glClearColor(1.0, 1.0, 1.0, 1.0) dcam.Activate(scam) # Render OpenGL Cube pangolin.glDrawColouredCube() # Draw Point Cloud points = np.random.random((100000, 3)) * 10 colors = np.zeros((len(points), 3)) colors[:, 1] = 1 - points[:, 0] / 10. colors[:, 2] = 1 - points[:, 1] / 10. colors[:, 0] = 1 - points[:, 2] / 10. gl.glPointSize(2) gl.glColor3f(1.0, 0.0, 0.0) # access numpy array directly(without copying data), array should be contiguous. pangolin.DrawPoints(points, colors) pangolin.FinishFrame()
def viewer_init(self, w, h): # pangolin.ParseVarsFile('app.cfg') pangolin.CreateWindowAndBind('Map Viewer', w, h) gl.glEnable(gl.GL_DEPTH_TEST) viewpoint_x = 0 viewpoint_y = -40 viewpoint_z = -80 viewpoint_f = 1000 self.proj = pangolin.ProjectionMatrix(w, h, viewpoint_f, viewpoint_f, w // 2, h // 2, 0.1, 5000) self.look_view = pangolin.ModelViewLookAt(viewpoint_x, viewpoint_y, viewpoint_z, 0, 0, 0, 0, -1, 0) self.scam = pangolin.OpenGlRenderState(self.proj, self.look_view) self.handler = pangolin.Handler3D(self.scam) # Create Interactive View in window self.dcam = pangolin.CreateDisplay() self.dcam.SetBounds(0.0, 1.0, kUiWidth / w, 1.0, -w / h) self.dcam.SetHandler(pangolin.Handler3D(self.scam)) self.panel = pangolin.CreatePanel('ui') self.panel.SetBounds(0.0, 1.0, 0.0, kUiWidth / w) self.do_follow = True self.is_following = True self.draw_cameras = True self.draw_covisibility = True self.draw_spanning_tree = True self.draw_loops = True #self.button = pangolin.VarBool('ui.Button', value=False, toggle=False) self.checkboxFollow = pangolin.VarBool('ui.Follow', value=True, toggle=True) self.checkboxCams = pangolin.VarBool('ui.Draw Cameras', value=True, toggle=True) self.checkboxCovisibility = pangolin.VarBool('ui.Draw Covisibility', value=True, toggle=True) self.checkboxSpanningTree = pangolin.VarBool('ui.Draw Tree', value=True, toggle=True) self.checkboxGrid = pangolin.VarBool('ui.Grid', value=True, toggle=True) self.checkboxPause = pangolin.VarBool('ui.Pause', value=False, toggle=True) #self.float_slider = pangolin.VarFloat('ui.Float', value=3, min=0, max=5) #self.float_log_slider = pangolin.VarFloat('ui.Log_scale var', value=3, min=1, max=1e4, logscale=True) self.int_slider = pangolin.VarInt('ui.Point Size', value=kDefaultPointSize, min=1, max=10) self.pointSize = self.int_slider.Get() self.Twc = pangolin.OpenGlMatrix() self.Twc.SetIdentity()