CameraParameters params = viewer.getCameraParameters();
    public void display(GLDrawable drawable) {      if (quit) {        return;      }      if (!fullyInitialized) {        return;      }      if (!firstRender) {        if (++frameCount == 30) {          timer.stop();          System.err.println("Frames per second: " + (30.0f / timer.getDurationAsSeconds()));          timer.reset();          timer.start();          frameCount = 0;        }      } else {        firstRender = false;        timer.start();      }      GL gl = drawable.getGL();      GLU glu = drawable.getGLU();      gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);      if (doViewAll) {	viewer.viewAll(gl);	doViewAll = false;        // Immediately zap effects        gl.glMatrixMode(GL.GL_PROJECTION);        gl.glLoadIdentity();        gl.glMatrixMode(GL.GL_MODELVIEW);        gl.glLoadIdentity();      }      CameraParameters params = viewer.getCameraParameters();      switch (displayMode) {        case RENDER_SCENE_FROM_CAMERA_VIEW:          render_scene_from_camera_view(gl, glu, drawable, params); break;        case RENDER_SCENE_FROM_CAMERA_VIEW_SHADOWED: render_scene_from_camera_view_shadowed(gl, glu, drawable, params); break;        case RENDER_SCENE_FROM_LIGHT_VIEW:           render_scene_from_light_view(gl, glu);           break;        default: throw new RuntimeException("Illegal display mode " + displayMode);      }    }