pan method
dynamic
pan(
- dynamic deltaX,
- 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;
}
}