anchor.diff:    double roll = 0.0;
     final VM.Vector3 _lookAtPos = new VM.Vector3.zero();
     num mouseWheelFactor = -0.02;
  -  final Keyboard _keyboard;
  -  final Mouse _mouse;
  +  final Keyboard keyboard;
  +  final Mouse mouse;
   
     /// OrbitCamera initializes an orbiting camera
     ///
     /// @param this._radius blah
     /// @param this._polar blah
     OrbitCamera(this._radius, this.azimuth, this.polar, HTML.Element eventElement)
  -      : _keyboard = new Keyboard(eventElement),
  -        _mouse = new Mouse(eventElement),
  +      : keyboard = new Keyboard(null),
  +        mouse = new Mouse(eventElement),
           super("camera:orbit");
   
     void setLookAt(VM.Vector3 v) {
  
positive.code:   static const int MIDDLE = 1;
    static const int LEFT = 0;
  
    final Set<int> _currentlyPressedMouseButtons = new Set<int>();
  
    int moveDeltaX = 0;
    int moveDeltaY = 0;
    int wheelDeltaY = 0;
  
    Mouse(dynamic elem) {
      if (elem == null) elem = HTML.document;
  
      elem.onMouseMove.listen((HTML.MouseEvent e) {
        e.preventDefault();
  
        moveDeltaX = e.movement.x;
        moveDeltaY = e.movement.y;
  
negative.code:     */
    }
  
    bool currentlyPressedButton(int key) =>
        _currentlyPressedButtons.contains(key);
  
    // if you use this function make sure you call AfterFrameCleanup
    bool justPressedButton(int key) => _justPressedButtons.contains(key);
  
    // if you use this function make sure you call AfterFrameCleanup
    bool justReleasedButton(int key) => _justReleasedButtons.contains(key);
  
    void AfterFrameCleanup() {
      moveDeltaY = 0;
      moveDeltaX = 0;
      wheelDeltaY = 0;
      _justReleasedButtons.clear();
      _justPressedButtons.clear();
    }
  }
  
  