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;
  }
}