UNPKG

hart-estate-widget

Version:

HART Estate widget

1 lines 2.03 kB
var e={d:(t,o)=>{for(var r in o)e.o(o,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:o[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t={};e.d(t,{T:()=>o});class o{_store;_fovSpeed;_touchEvent;_touchStartFov;constructor(e=1){this._fovSpeed=e,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=e=>{this._store=e;const{domElement:t}=e.panoramaTabStore.sceneController.widgetScene.renderer;return t.addEventListener("touchstart",this.onTouchStart),t.addEventListener("touchmove",this.onTouchMove),t.addEventListener("wheel",this.onWheel),document.addEventListener("touchend",this.onTouchEnd),!0};shutdown=()=>{const e=this._store;if(!e)return;const t=e.panoramaTabStore.sceneController.widgetScene.renderer.domElement;t.removeEventListener("touchstart",this.onTouchStart),t.removeEventListener("touchmove",this.onTouchMove),t.removeEventListener("wheel",this.onWheel),document.removeEventListener("touchend",this.onTouchEnd),delete this._store};onWheel=e=>{if(!this.isPanoramaTab)return;e.preventDefault(),e.stopPropagation();const t=Math.sign(e.deltaY)*this._fovSpeed,{cameraStore:o}=this;o.fov.set(o.fov.value+t)};onTouchStart=e=>{this.isPanoramaTab&&(2===e.touches.length?(e.preventDefault(),this._touchEvent=e,this._touchStartFov=this.cameraStore.fov.value):this._touchEvent=void 0)};onTouchMove=e=>{if(!this.isPanoramaTab)return;if(2!==this._touchEvent?.touches.length)return;e.preventDefault();const{touches:t}=e;if(2!==t.length)return;const[o,r]=this._touchEvent.touches,[n,s]=t,a=((r.screenX-o.screenX)**2+(r.screenY-o.screenY)**2)**.5/((s.screenX-n.screenX)**2+(s.screenY-n.screenY)**2)**.5,{cameraStore:h}=this;h.fov.set(this._touchStartFov*a)};onTouchEnd=()=>{this._touchEvent=void 0}}const r=t.T;export{r as FovPlugin};