8 lines
12 KiB
JavaScript
8 lines
12 KiB
JavaScript
/**
|
|
* Minified by jsDelivr using Terser v5.19.2.
|
|
* Original file: /npm/three@0.128.0/examples/js/controls/OrbitControls.js
|
|
*
|
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
*/
|
|
!function(){const e={type:"change"},t={type:"start"},n={type:"end"};class o extends THREE.EventDispatcher{constructor(o,a){super(),void 0===a&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),a===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=o,this.domElement=a,this.enabled=!0,this.target=new THREE.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:THREE.MOUSE.ROTATE,MIDDLE:THREE.MOUSE.DOLLY,RIGHT:THREE.MOUSE.PAN},this.touches={ONE:THREE.TOUCH.ROTATE,TWO:THREE.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return u.phi},this.getAzimuthalAngle=function(){return u.theta},this.listenToKeyEvents=function(e){e.addEventListener("keydown",X),this._domElementKeyEvents=e},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(e),i.update(),s=c.NONE},this.update=function(){const t=new THREE.Vector3,n=(new THREE.Quaternion).setFromUnitVectors(o.up,new THREE.Vector3(0,1,0)),a=n.clone().invert(),p=new THREE.Vector3,d=new THREE.Quaternion,b=2*Math.PI;return function(){const o=i.object.position;t.copy(o).sub(i.target),t.applyQuaternion(n),u.setFromVector3(t),i.autoRotate&&s===c.NONE&&v(2*Math.PI/60/60*i.autoRotateSpeed),i.enableDamping?(u.theta+=l.theta*i.dampingFactor,u.phi+=l.phi*i.dampingFactor):(u.theta+=l.theta,u.phi+=l.phi);let T=i.minAzimuthAngle,f=i.maxAzimuthAngle;return isFinite(T)&&isFinite(f)&&(T<-Math.PI?T+=b:T>Math.PI&&(T-=b),f<-Math.PI?f+=b:f>Math.PI&&(f-=b),u.theta=T<=f?Math.max(T,Math.min(f,u.theta)):u.theta>(T+f)/2?Math.max(T,u.theta):Math.min(f,u.theta)),u.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,u.phi)),u.makeSafe(),u.radius*=m,u.radius=Math.max(i.minDistance,Math.min(i.maxDistance,u.radius)),!0===i.enableDamping?i.target.addScaledVector(h,i.dampingFactor):i.target.add(h),t.setFromSpherical(u),t.applyQuaternion(a),o.copy(i.target).add(t),i.object.lookAt(i.target),!0===i.enableDamping?(l.theta*=1-i.dampingFactor,l.phi*=1-i.dampingFactor,h.multiplyScalar(1-i.dampingFactor)):(l.set(0,0,0),h.set(0,0,0)),m=1,!!(E||p.distanceToSquared(i.object.position)>r||8*(1-d.dot(i.object.quaternion))>r)&&(i.dispatchEvent(e),p.copy(i.object.position),d.copy(i.object.quaternion),E=!1,!0)}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",B),i.domElement.removeEventListener("pointerdown",V),i.domElement.removeEventListener("wheel",I),i.domElement.removeEventListener("touchstart",F),i.domElement.removeEventListener("touchend",K),i.domElement.removeEventListener("touchmove",Z),i.domElement.ownerDocument.removeEventListener("pointermove",_),i.domElement.ownerDocument.removeEventListener("pointerup",z),null!==i._domElementKeyEvents&&i._domElementKeyEvents.removeEventListener("keydown",X)};const i=this,c={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=c.NONE;const r=1e-6,u=new THREE.Spherical,l=new THREE.Spherical;let m=1;const h=new THREE.Vector3;let E=!1;const p=new THREE.Vector2,d=new THREE.Vector2,b=new THREE.Vector2,T=new THREE.Vector2,f=new THREE.Vector2,O=new THREE.Vector2,g=new THREE.Vector2,R=new THREE.Vector2,H=new THREE.Vector2;function y(){return Math.pow(.95,i.zoomSpeed)}function v(e){l.theta-=e}function P(e){l.phi-=e}const w=function(){const e=new THREE.Vector3;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),h.add(e)}}(),A=function(){const e=new THREE.Vector3;return function(t,n){!0===i.screenSpacePanning?e.setFromMatrixColumn(n,1):(e.setFromMatrixColumn(n,0),e.crossVectors(i.object.up,e)),e.multiplyScalar(t),h.add(e)}}(),L=function(){const e=new THREE.Vector3;return function(t,n){const o=i.domElement;if(i.object.isPerspectiveCamera){const a=i.object.position;e.copy(a).sub(i.target);let c=e.length();c*=Math.tan(i.object.fov/2*Math.PI/180),w(2*t*c/o.clientHeight,i.object.matrix),A(2*n*c/o.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(w(t*(i.object.right-i.object.left)/i.object.zoom/o.clientWidth,i.object.matrix),A(n*(i.object.top-i.object.bottom)/i.object.zoom/o.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function N(e){i.object.isPerspectiveCamera?m/=e:i.object.isOrthographicCamera?(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom*e)),i.object.updateProjectionMatrix(),E=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function M(e){i.object.isPerspectiveCamera?m*=e:i.object.isOrthographicCamera?(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/e)),i.object.updateProjectionMatrix(),E=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function j(e){p.set(e.clientX,e.clientY)}function D(e){T.set(e.clientX,e.clientY)}function S(e){if(1==e.touches.length)p.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);p.set(t,n)}}function Y(e){if(1==e.touches.length)T.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);T.set(t,n)}}function k(e){const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,o=Math.sqrt(t*t+n*n);g.set(0,o)}function C(e){if(1==e.touches.length)d.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);d.set(t,n)}b.subVectors(d,p).multiplyScalar(i.rotateSpeed);const t=i.domElement;v(2*Math.PI*b.x/t.clientHeight),P(2*Math.PI*b.y/t.clientHeight),p.copy(d)}function x(e){if(1==e.touches.length)f.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);f.set(t,n)}O.subVectors(f,T).multiplyScalar(i.panSpeed),L(O.x,O.y),T.copy(f)}function U(e){const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,o=Math.sqrt(t*t+n*n);R.set(0,o),H.set(0,Math.pow(R.y/g.y,i.zoomSpeed)),N(H.y),g.copy(R)}function V(e){if(!1!==i.enabled)switch(e.pointerType){case"mouse":case"pen":!function(e){let n;switch(e.preventDefault(),i.domElement.focus?i.domElement.focus():window.focus(),e.button){case 0:n=i.mouseButtons.LEFT;break;case 1:n=i.mouseButtons.MIDDLE;break;case 2:n=i.mouseButtons.RIGHT;break;default:n=-1}switch(n){case THREE.MOUSE.DOLLY:if(!1===i.enableZoom)return;!function(e){g.set(e.clientX,e.clientY)}(e),s=c.DOLLY;break;case THREE.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===i.enablePan)return;D(e),s=c.PAN}else{if(!1===i.enableRotate)return;j(e),s=c.ROTATE}break;case THREE.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===i.enableRotate)return;j(e),s=c.ROTATE}else{if(!1===i.enablePan)return;D(e),s=c.PAN}break;default:s=c.NONE}s!==c.NONE&&(i.domElement.ownerDocument.addEventListener("pointermove",_),i.domElement.ownerDocument.addEventListener("pointerup",z),i.dispatchEvent(t))}(e)}}function _(e){if(!1!==i.enabled)switch(e.pointerType){case"mouse":case"pen":!function(e){if(!1===i.enabled)return;switch(e.preventDefault(),s){case c.ROTATE:if(!1===i.enableRotate)return;!function(e){d.set(e.clientX,e.clientY),b.subVectors(d,p).multiplyScalar(i.rotateSpeed);const t=i.domElement;v(2*Math.PI*b.x/t.clientHeight),P(2*Math.PI*b.y/t.clientHeight),p.copy(d),i.update()}(e);break;case c.DOLLY:if(!1===i.enableZoom)return;!function(e){R.set(e.clientX,e.clientY),H.subVectors(R,g),H.y>0?N(y()):H.y<0&&M(y()),g.copy(R),i.update()}(e);break;case c.PAN:if(!1===i.enablePan)return;!function(e){f.set(e.clientX,e.clientY),O.subVectors(f,T).multiplyScalar(i.panSpeed),L(O.x,O.y),T.copy(f),i.update()}(e)}}(e)}}function z(e){switch(e.pointerType){case"mouse":case"pen":!function(e){if(i.domElement.ownerDocument.removeEventListener("pointermove",_),i.domElement.ownerDocument.removeEventListener("pointerup",z),!1===i.enabled)return;i.dispatchEvent(n),s=c.NONE}()}}function I(e){!1===i.enabled||!1===i.enableZoom||s!==c.NONE&&s!==c.ROTATE||(e.preventDefault(),i.dispatchEvent(t),function(e){e.deltaY<0?M(y()):e.deltaY>0&&N(y()),i.update()}(e),i.dispatchEvent(n))}function X(e){!1!==i.enabled&&!1!==i.enablePan&&function(e){let t=!1;switch(e.code){case i.keys.UP:L(0,i.keyPanSpeed),t=!0;break;case i.keys.BOTTOM:L(0,-i.keyPanSpeed),t=!0;break;case i.keys.LEFT:L(i.keyPanSpeed,0),t=!0;break;case i.keys.RIGHT:L(-i.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),i.update())}(e)}function F(e){if(!1!==i.enabled){switch(e.preventDefault(),e.touches.length){case 1:switch(i.touches.ONE){case THREE.TOUCH.ROTATE:if(!1===i.enableRotate)return;S(e),s=c.TOUCH_ROTATE;break;case THREE.TOUCH.PAN:if(!1===i.enablePan)return;Y(e),s=c.TOUCH_PAN;break;default:s=c.NONE}break;case 2:switch(i.touches.TWO){case THREE.TOUCH.DOLLY_PAN:if(!1===i.enableZoom&&!1===i.enablePan)return;!function(e){i.enableZoom&&k(e),i.enablePan&&Y(e)}(e),s=c.TOUCH_DOLLY_PAN;break;case THREE.TOUCH.DOLLY_ROTATE:if(!1===i.enableZoom&&!1===i.enableRotate)return;!function(e){i.enableZoom&&k(e),i.enableRotate&&S(e)}(e),s=c.TOUCH_DOLLY_ROTATE;break;default:s=c.NONE}break;default:s=c.NONE}s!==c.NONE&&i.dispatchEvent(t)}}function Z(e){if(!1!==i.enabled)switch(e.preventDefault(),s){case c.TOUCH_ROTATE:if(!1===i.enableRotate)return;C(e),i.update();break;case c.TOUCH_PAN:if(!1===i.enablePan)return;x(e),i.update();break;case c.TOUCH_DOLLY_PAN:if(!1===i.enableZoom&&!1===i.enablePan)return;!function(e){i.enableZoom&&U(e),i.enablePan&&x(e)}(e),i.update();break;case c.TOUCH_DOLLY_ROTATE:if(!1===i.enableZoom&&!1===i.enableRotate)return;!function(e){i.enableZoom&&U(e),i.enableRotate&&C(e)}(e),i.update();break;default:s=c.NONE}}function K(e){!1!==i.enabled&&(i.dispatchEvent(n),s=c.NONE)}function B(e){!1!==i.enabled&&e.preventDefault()}i.domElement.addEventListener("contextmenu",B),i.domElement.addEventListener("pointerdown",V),i.domElement.addEventListener("wheel",I,{passive:!1}),i.domElement.addEventListener("touchstart",F,{passive:!1}),i.domElement.addEventListener("touchend",K),i.domElement.addEventListener("touchmove",Z,{passive:!1}),this.update()}}THREE.MapControls=class extends o{constructor(e,t){super(e,t),this.screenSpacePanning=!1,this.mouseButtons.LEFT=THREE.MOUSE.PAN,this.mouseButtons.RIGHT=THREE.MOUSE.ROTATE,this.touches.ONE=THREE.TOUCH.PAN,this.touches.TWO=THREE.TOUCH.DOLLY_ROTATE}},THREE.OrbitControls=o}();
|
|
//# sourceMappingURL=/sm/fc5fd902a482222922ed8730fd6d0d77a3740faf716db8fa553e36c6cda36422.map
|