code: def pix2canvas(self, pt):
          
          x, y = pt[:2]
          #print('p2c in', x, y)
          mm = gl.glGetDoublev(gl.GL_MODELVIEW_MATRIX)
          pm = gl.glGetDoublev(gl.GL_PROJECTION_MATRIX)
          vp = gl.glGetIntegerv(gl.GL_VIEWPORT)
  
          win_x, win_y = float(x), float(vp[3] - y)
          win_z = gl.glReadPixels(int(win_x), int(win_y), 1, 1,
                                  gl.GL_DEPTH_COMPONENT, gl.GL_FLOAT)
          pos = glu.gluUnProject(win_x, win_y, win_z, mm, pm, vp)
          #print('out', pos)
          return pos
docs: Takes a 2-tuple of (x, y) in window coordinates and gives
          the (cx, cy, cz) coordinates on the canvas.