pan method

dynamic pan(
  1. dynamic deltaX,
  2. dynamic deltaY
)

Implementation

pan(deltaX, deltaY) {
  var element = scope.domElement;

  if (scope.object is PerspectiveCamera) {
    // perspective
    var position = scope.object.position;
    offset.copy(position).sub(scope.target);
    var targetDistance = offset.length();

    // half of the fov is center to top of screen
    targetDistance *= Math.tan((scope.object.fov / 2) * Math.pi / 180.0);

    // we use only clientHeight here so aspect ratio does not distort speed
    panLeft(2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix);
    panUp(2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix);
  } else if (scope.object is OrthographicCamera) {
    // orthographic
    panLeft(deltaX * (scope.object.right - scope.object.left) / scope.object.zoom / element.clientWidth,
        scope.object.matrix);
    panUp(deltaY * (scope.object.top - scope.object.bottom) / scope.object.zoom / element.clientHeight,
        scope.object.matrix);
  } else {
    // camera neither orthographic nor perspective
    print('WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.');
    scope.enablePan = false;
  }
}