UNPKG

hart-estate-widget

Version:

HART Estate widget

1 lines 1.85 kB
var t={d:(e,o)=>{for(var r in o)t.o(o,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:o[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};t.d(e,{T:()=>o});class o{_store;_fovSpeed;_touchEvent;_touchStartFov;constructor(t=1){this._fovSpeed=t,this._touchStartFov=75}get id(){return"fov"}get name(){return"Plugin for camera FOV scrolling by mouse"}get version(){return"1.0.0"}get isPanoramaTab(){return"panorama"===this._store?.tabStore.tab&&!this._store.panoramaTabStore.instructionsStore.visible}get cameraStore(){return this._store.panoramaTabStore.cameraStore}init=t=>(this._store=t,document.addEventListener("wheel",this.onWheel),document.addEventListener("touchstart",this.onTouchStart),document.addEventListener("touchmove",this.onTouchMove),document.addEventListener("touchend",this.onTouchEnd),!0);shutdown=()=>{delete this._store,document.removeEventListener("wheel",this.onWheel),document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd)};onWheel=t=>{if(!this.isPanoramaTab)return;const e=t.deltaY/100*this._fovSpeed,{cameraStore:o}=this;o.fov.set(o.fov.value+e)};onTouchStart=t=>{this.isPanoramaTab&&(2===t.touches.length?(t.preventDefault(),this._touchEvent=t,this._touchStartFov=this.cameraStore.fov.value):this._touchEvent=void 0)};onTouchMove=t=>{if(!this.isPanoramaTab)return;if(2!==this._touchEvent?.touches.length)return;t.preventDefault();const{touches:e}=t;if(2!==e.length)return;const[o,r]=this._touchEvent.touches,[n,s]=e,h=r.screenX-o.screenX,a=r.screenY-o.screenY,c=Math.sqrt(h**2+a**2),i=s.screenX-n.screenX,u=s.screenY-n.screenY,v=c/Math.sqrt(i**2+u**2),{cameraStore:d}=this;d.fov.set(this._touchStartFov*v)};onTouchEnd=()=>{this._touchEvent=void 0}}const r=e.T;export{r as FovPlugin};