anchor.diff:   static const ROTATE =  0;
    static const ZOOM = 1;
    static const PAN = 2;
  + static const TOUCH_ROTATE = 3;
  + static const TOUCH_ZOOM_PAN = 4;
   }
   
   class TrackballControls extends EventEmitter {
  
positive.code:     ..onMouseDown.listen(mousedown)
      ..onMouseWheel.listen(mousewheel)
      ..onTouchStart.listen(touchstart)
      ..onTouchEnd.listen(touchstart)
      ..onTouchMove.listen(touchmove);
  
      //this.domElement.addEventListener( 'DOMMouseScroll', mousewheel, false ); // firefox
  
negative.code: 
      zoomCamera() {
  
        if (_state == STATE.TOUCH_ZOOM_PAN) {
  
          var factor = _touchZoomDistanceStart / _touchZoomDistanceEnd;
  
          _touchZoomDistanceStart = _touchZoomDistanceEnd;
  
          _eye.scale( factor );
  
        } else {
  
          var factor = 1.0 + ( _zoomEnd.y - _zoomStart.y ) * zoomSpeed;
  
          if ( factor != 1.0 && factor > 0.0 ) {
  
            _eye.scale( factor );
  
            if ( staticMoving ) {
  
              _zoomStart.setFrom(_zoomEnd);
  
            } else {
  
              _zoomStart.y += ( _zoomEnd.y - _zoomStart.y ) * this.dynamicDampingFactor;
  
            }
  
          }
  
  