player / lib /three /examples /jsm /controls /OrbitControls.min.js
izuemon's picture
Rename lib/three/examples/jsm/OrbitControls.min.js to lib/three/examples/jsm/controls/OrbitControls.min.js
7cf3555 verified
/**
* Minified by jsDelivr using Terser v5.37.0.
* Original file: /npm/three@0.160.0/examples/jsm/controls/OrbitControls.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
import{EventDispatcher,MOUSE,Quaternion,Spherical,TOUCH,Vector2,Vector3,Plane,Ray,MathUtils}from"three";const _changeEvent={type:"change"},_startEvent={type:"start"},_endEvent={type:"end"},_ray=new Ray,_plane=new Plane,TILT_LIMIT=Math.cos(70*MathUtils.DEG2RAD);class OrbitControls extends EventDispatcher{constructor(e,t){super(),this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Vector3,this.cursor=new Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=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.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:MOUSE.ROTATE,MIDDLE:MOUSE.DOLLY,RIGHT:MOUSE.PAN},this.touches={ONE:TOUCH.ROTATE,TWO: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 r.phi},this.getAzimuthalAngle=function(){return r.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(e){e.addEventListener("keydown",Z),this._domElementKeyEvents=e},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",Z),this._domElementKeyEvents=null},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(_changeEvent),n.update(),a=o.NONE},this.update=function(){const t=new Vector3,m=(new Quaternion).setFromUnitVectors(e.up,new Vector3(0,1,0)),p=m.clone().invert(),u=new Vector3,h=new Quaternion,d=new Vector3,b=2*Math.PI;return function(E=null){const g=n.object.position;t.copy(g).sub(n.target),t.applyQuaternion(m),r.setFromVector3(t),n.autoRotate&&a===o.NONE&&w(function(e){return null!==e?2*Math.PI/60*n.autoRotateSpeed*e:2*Math.PI/60/60*n.autoRotateSpeed}(E)),n.enableDamping?(r.theta+=c.theta*n.dampingFactor,r.phi+=c.phi*n.dampingFactor):(r.theta+=c.theta,r.phi+=c.phi);let f=n.minAzimuthAngle,P=n.maxAzimuthAngle;isFinite(f)&&isFinite(P)&&(f<-Math.PI?f+=b:f>Math.PI&&(f-=b),P<-Math.PI?P+=b:P>Math.PI&&(P-=b),r.theta=f<=P?Math.max(f,Math.min(P,r.theta)):r.theta>(f+P)/2?Math.max(f,r.theta):Math.min(P,r.theta)),r.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,r.phi)),r.makeSafe(),!0===n.enableDamping?n.target.addScaledVector(l,n.dampingFactor):n.target.add(l),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&T||n.object.isOrthographicCamera?r.radius=_(r.radius):r.radius=_(r.radius*s),t.setFromSpherical(r),t.applyQuaternion(p),g.copy(n.target).add(t),n.object.lookAt(n.target),!0===n.enableDamping?(c.theta*=1-n.dampingFactor,c.phi*=1-n.dampingFactor,l.multiplyScalar(1-n.dampingFactor)):(c.set(0,0,0),l.set(0,0,0));let v=!1;if(n.zoomToCursor&&T){let o=null;if(n.object.isPerspectiveCamera){const e=t.length();o=_(e*s);const a=e-o;n.object.position.addScaledVector(y,a),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const e=new Vector3(O.x,O.y,0);e.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/s)),n.object.updateProjectionMatrix(),v=!0;const a=new Vector3(O.x,O.y,0);a.unproject(n.object),n.object.position.sub(a).add(e),n.object.updateMatrixWorld(),o=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;null!==o&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(o).add(n.object.position):(_ray.origin.copy(n.object.position),_ray.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(_ray.direction))<TILT_LIMIT?e.lookAt(n.target):(_plane.setFromNormalAndCoplanarPoint(n.object.up,n.target),_ray.intersectPlane(_plane,n.target))))}else n.object.isOrthographicCamera&&(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/s)),n.object.updateProjectionMatrix(),v=!0);return s=1,T=!1,!!(v||u.distanceToSquared(n.object.position)>i||8*(1-h.dot(n.object.quaternion))>i||d.distanceToSquared(n.target)>0)&&(n.dispatchEvent(_changeEvent),u.copy(n.object.position),h.copy(n.object.quaternion),d.copy(n.target),!0)}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",G),n.domElement.removeEventListener("pointerdown",z),n.domElement.removeEventListener("pointercancel",X),n.domElement.removeEventListener("wheel",F),n.domElement.removeEventListener("pointermove",K),n.domElement.removeEventListener("pointerup",X),null!==n._domElementKeyEvents&&(n._domElementKeyEvents.removeEventListener("keydown",Z),n._domElementKeyEvents=null)};const n=this,o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let a=o.NONE;const i=1e-6,r=new Spherical,c=new Spherical;let s=1;const l=new Vector3,m=new Vector2,p=new Vector2,u=new Vector2,h=new Vector2,d=new Vector2,b=new Vector2,E=new Vector2,g=new Vector2,f=new Vector2,y=new Vector3,O=new Vector2;let T=!1;const P=[],v={};function j(e){const t=Math.abs(e)/(100*(0|window.devicePixelRatio));return Math.pow(.95,n.zoomSpeed*t)}function w(e){c.theta-=e}function M(e){c.phi-=e}const A=function(){const e=new Vector3;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),l.add(e)}}(),L=function(){const e=new Vector3;return function(t,o){!0===n.screenSpacePanning?e.setFromMatrixColumn(o,1):(e.setFromMatrixColumn(o,0),e.crossVectors(n.object.up,e)),e.multiplyScalar(t),l.add(e)}}(),N=function(){const e=new Vector3;return function(t,o){const a=n.domElement;if(n.object.isPerspectiveCamera){const i=n.object.position;e.copy(i).sub(n.target);let r=e.length();r*=Math.tan(n.object.fov/2*Math.PI/180),A(2*t*r/a.clientHeight,n.object.matrix),L(2*o*r/a.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(A(t*(n.object.right-n.object.left)/n.object.zoom/a.clientWidth,n.object.matrix),L(o*(n.object.top-n.object.bottom)/n.object.zoom/a.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function x(e){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?s/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function S(e){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?s*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function R(e,t){if(!n.zoomToCursor)return;T=!0;const o=n.domElement.getBoundingClientRect(),a=e-o.left,i=t-o.top,r=o.width,c=o.height;O.x=a/r*2-1,O.y=-i/c*2+1,y.set(O.x,O.y,1).unproject(n.object).sub(n.object.position).normalize()}function _(e){return Math.max(n.minDistance,Math.min(n.maxDistance,e))}function C(e){m.set(e.clientX,e.clientY)}function k(e){h.set(e.clientX,e.clientY)}function I(e){if(1===P.length)m.set(e.pageX,e.pageY);else{const t=B(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);m.set(n,o)}}function D(e){if(1===P.length)h.set(e.pageX,e.pageY);else{const t=B(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);h.set(n,o)}}function Y(e){const t=B(e),n=e.pageX-t.x,o=e.pageY-t.y,a=Math.sqrt(n*n+o*o);E.set(0,a)}function V(e){if(1==P.length)p.set(e.pageX,e.pageY);else{const t=B(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);p.set(n,o)}u.subVectors(p,m).multiplyScalar(n.rotateSpeed);const t=n.domElement;w(2*Math.PI*u.x/t.clientHeight),M(2*Math.PI*u.y/t.clientHeight),m.copy(p)}function H(e){if(1===P.length)d.set(e.pageX,e.pageY);else{const t=B(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);d.set(n,o)}b.subVectors(d,h).multiplyScalar(n.panSpeed),N(b.x,b.y),h.copy(d)}function U(e){const t=B(e),o=e.pageX-t.x,a=e.pageY-t.y,i=Math.sqrt(o*o+a*a);g.set(0,i),f.set(0,Math.pow(g.y/E.y,n.zoomSpeed)),x(f.y),E.copy(g);R(.5*(e.pageX+t.x),.5*(e.pageY+t.y))}function z(e){!1!==n.enabled&&(0===P.length&&(n.domElement.setPointerCapture(e.pointerId),n.domElement.addEventListener("pointermove",K),n.domElement.addEventListener("pointerup",X)),function(e){P.push(e.pointerId)}(e),"touch"===e.pointerType?function(e){switch(W(e),P.length){case 1:switch(n.touches.ONE){case TOUCH.ROTATE:if(!1===n.enableRotate)return;I(e),a=o.TOUCH_ROTATE;break;case TOUCH.PAN:if(!1===n.enablePan)return;D(e),a=o.TOUCH_PAN;break;default:a=o.NONE}break;case 2:switch(n.touches.TWO){case TOUCH.DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(e){n.enableZoom&&Y(e),n.enablePan&&D(e)}(e),a=o.TOUCH_DOLLY_PAN;break;case TOUCH.DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(e){n.enableZoom&&Y(e),n.enableRotate&&I(e)}(e),a=o.TOUCH_DOLLY_ROTATE;break;default:a=o.NONE}break;default:a=o.NONE}a!==o.NONE&&n.dispatchEvent(_startEvent)}(e):function(e){let t;switch(e.button){case 0:t=n.mouseButtons.LEFT;break;case 1:t=n.mouseButtons.MIDDLE;break;case 2:t=n.mouseButtons.RIGHT;break;default:t=-1}switch(t){case MOUSE.DOLLY:if(!1===n.enableZoom)return;!function(e){R(e.clientX,e.clientX),E.set(e.clientX,e.clientY)}(e),a=o.DOLLY;break;case MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enablePan)return;k(e),a=o.PAN}else{if(!1===n.enableRotate)return;C(e),a=o.ROTATE}break;case MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enableRotate)return;C(e),a=o.ROTATE}else{if(!1===n.enablePan)return;k(e),a=o.PAN}break;default:a=o.NONE}a!==o.NONE&&n.dispatchEvent(_startEvent)}(e))}function K(e){!1!==n.enabled&&("touch"===e.pointerType?function(e){switch(W(e),a){case o.TOUCH_ROTATE:if(!1===n.enableRotate)return;V(e),n.update();break;case o.TOUCH_PAN:if(!1===n.enablePan)return;H(e),n.update();break;case o.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(e){n.enableZoom&&U(e),n.enablePan&&H(e)}(e),n.update();break;case o.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(e){n.enableZoom&&U(e),n.enableRotate&&V(e)}(e),n.update();break;default:a=o.NONE}}(e):function(e){switch(a){case o.ROTATE:if(!1===n.enableRotate)return;!function(e){p.set(e.clientX,e.clientY),u.subVectors(p,m).multiplyScalar(n.rotateSpeed);const t=n.domElement;w(2*Math.PI*u.x/t.clientHeight),M(2*Math.PI*u.y/t.clientHeight),m.copy(p),n.update()}(e);break;case o.DOLLY:if(!1===n.enableZoom)return;!function(e){g.set(e.clientX,e.clientY),f.subVectors(g,E),f.y>0?x(j(f.y)):f.y<0&&S(j(f.y)),E.copy(g),n.update()}(e);break;case o.PAN:if(!1===n.enablePan)return;!function(e){d.set(e.clientX,e.clientY),b.subVectors(d,h).multiplyScalar(n.panSpeed),N(b.x,b.y),h.copy(d),n.update()}(e)}}(e))}function X(e){!function(e){delete v[e.pointerId];for(let t=0;t<P.length;t++)if(P[t]==e.pointerId)return void P.splice(t,1)}(e),0===P.length&&(n.domElement.releasePointerCapture(e.pointerId),n.domElement.removeEventListener("pointermove",K),n.domElement.removeEventListener("pointerup",X)),n.dispatchEvent(_endEvent),a=o.NONE}function F(e){!1!==n.enabled&&!1!==n.enableZoom&&a===o.NONE&&(e.preventDefault(),n.dispatchEvent(_startEvent),function(e){R(e.clientX,e.clientY),e.deltaY<0?S(j(e.deltaY)):e.deltaY>0&&x(j(e.deltaY)),n.update()}(e),n.dispatchEvent(_endEvent))}function Z(e){!1!==n.enabled&&!1!==n.enablePan&&function(e){let t=!1;switch(e.code){case n.keys.UP:e.ctrlKey||e.metaKey||e.shiftKey?M(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(0,n.keyPanSpeed),t=!0;break;case n.keys.BOTTOM:e.ctrlKey||e.metaKey||e.shiftKey?M(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(0,-n.keyPanSpeed),t=!0;break;case n.keys.LEFT:e.ctrlKey||e.metaKey||e.shiftKey?w(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(n.keyPanSpeed,0),t=!0;break;case n.keys.RIGHT:e.ctrlKey||e.metaKey||e.shiftKey?w(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(-n.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),n.update())}(e)}function G(e){!1!==n.enabled&&e.preventDefault()}function W(e){let t=v[e.pointerId];void 0===t&&(t=new Vector2,v[e.pointerId]=t),t.set(e.pageX,e.pageY)}function B(e){const t=e.pointerId===P[0]?P[1]:P[0];return v[t]}n.domElement.addEventListener("contextmenu",G),n.domElement.addEventListener("pointerdown",z),n.domElement.addEventListener("pointercancel",X),n.domElement.addEventListener("wheel",F,{passive:!1}),this.update()}}export{OrbitControls};
//# sourceMappingURL=/sm/ffcee0a7d1e5338ba73b8139b6c883ea0080c1d3fe62ea2ae2c2ac47dcafa2b5.map