anchor.diff:    }
   
     _setUniformProjectionMatrix(ProgramContext ctx) {
  -    injectMatrix4(ctx, camera._projectionMatrix, sfname_projectionmatrix);
  +    injectMatrix4(ctx, camera.projectionMatrix, sfname_projectionmatrix);
     }
   
     _setUniformViewMatrix(ProgramContext ctx) {
  -    injectMatrix4(ctx, camera._viewMatrix, sfname_viewmatrix);
  +    injectMatrix4(ctx, camera.viewMatrix, sfname_viewmatrix);
     }
   
     _setUniformRotMatrix(ProgramContext ctx) {
  -    injectMatrix3(ctx, camera._rotMatrix, sfname_rotmatrix);
  +    injectMatrix3(ctx, camera.rotMatrix, sfname_rotmatrix);
     }
   
     _setUniformProjectionViewMatrix(ProgramContext ctx) {
  -    injectMatrix4(ctx, camera._projectionViewMatrix, sfname_projectionviewmatrix);
  +    injectMatrix4(ctx, camera.projectionViewMatrix, sfname_projectionviewmatrix);
     }
   
     makeRequestRunOn() => new RequestRunOn()
  
positive.code: part of glf;
  
  class CameraInfo {
    double aspectRatio;
    double fovRadians;
    double near;
    double far;
  
    final position = new Vector3(0.0, 0.0, 1.0);
    final focusPosition = new Vector3(0.0, 0.0, 0.0);
    final upDirection = new Vector3(0.0, 1.0, 0.0);
  
    final _projectionMatrix = new Matrix4.zero();
    final _viewMatrix = new Matrix4.identity();
    final _rotMatrix = new Matrix3.identity();
    final _projectionViewMatrix = new Matrix4.zero();
  
    updateProjectionMatrix() {
      setPerspectiveMatrix(_projectionMatrix, fovRadians, aspectRatio, near, far); // from vector_math
      updateProjectionViewMatrix();
    }
  
    updateViewMatrix() {
      setViewMatrix(_viewMatrix, position, focusPosition, upDirection);
      //_viewMatrix.getRotation()
      _rotMatrix.storage[0] = _viewMatrix.storage[0];
      _rotMatrix.storage[1] = _viewMatrix.storage[1];
      _rotMatrix.storage[2] = _viewMatrix.storage[2];
      _rotMatrix.storage[3] = _viewMatrix.storage[4];
      _rotMatrix.storage[4] = _viewMatrix.storage[5];
      _rotMatrix.storage[5] = _viewMatrix.storage[6];
      _rotMatrix.storage[6] = _viewMatrix.storage[8];
      _rotMatrix.storage[7] = _viewMatrix.storage[9];
      _rotMatrix.storage[8] = _viewMatrix.storage[10];
      updateProjectionViewMatrix();
    }
  
    updateProjectionViewMatrix() {
      _projectionMatrix.copyInto(_projectionViewMatrix);
      _projectionViewMatrix.multiply(_viewMatrix);
    }
  
  }
  
  class Viewport {
    int x = 0;
    int y = 0;
    int viewWidth;
  
negative.code:   ViewportPlan();
  
    factory ViewportPlan.defaultSettings(CanvasElement canvas) {
      var b = new ViewportPlan()
      ..fullCanvas(canvas)
      ..registerOnResizeCanvas(canvas)
      ;
  