2 lines
25 KiB
JavaScript
2 lines
25 KiB
JavaScript
|
|
import{k as Zt,V as g,l as U,T as Y,Q as yt,m as bt,b as E,n as Ht,f as Kt,M as Ft,r as b,o as gt,C as Et,F as wt,P as Xt,W as Vt,p as Wt,q as qt,s as Pt,t as Gt,v as Bt,w as Qt,I as Mt,i as $t,j as w,x as Jt,y as te,z as Dt}from"./index-CEeZxcxj.js";const St={type:"change"},et={type:"start"},Ct={type:"end"},V=new Ht,Tt=new Kt,ee=Math.cos(70*Ft.DEG2RAD),h=new g,f=2*Math.PI,a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},$=1e-6;class se extends Zt{constructor(t,e=null){super(t,e),this.state=a.NONE,this.target=new g,this.cursor=new g,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.keyRotateSpeed=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:U.ROTATE,MIDDLE:U.DOLLY,RIGHT:U.PAN},this.touches={ONE:Y.ROTATE,TWO:Y.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new g,this._lastQuaternion=new yt,this._lastTargetPosition=new g,this._quat=new yt().setFromUnitVectors(t.up,new g(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new bt,this._sphericalDelta=new bt,this._scale=1,this._panOffset=new g,this._rotateStart=new E,this._rotateEnd=new E,this._rotateDelta=new E,this._panStart=new E,this._panEnd=new E,this._panDelta=new E,this._dollyStart=new E,this._dollyEnd=new E,this._dollyDelta=new E,this._dollyDirection=new g,this._mouse=new E,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=oe.bind(this),this._onPointerDown=ie.bind(this),this._onPointerUp=ae.bind(this),this._onContextMenu=pe.bind(this),this._onMouseWheel=he.bind(this),this._onKeyDown=le.bind(this),this._onTouchStart=ce.bind(this),this._onTouchMove=de.bind(this),this._onMouseDown=ne.bind(this),this._onMouseMove=re.bind(this),this._interceptControlDown=ue.bind(this),this._interceptControlUp=me.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(t
|