UNPKG

@turbox3d/event-manager

Version:

Large-scale productivity application event management library

1 lines 79.7 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["@turbox3d/event-manager"]=e():t.EventManager=e()}(self,(()=>(()=>{"use strict";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})}};t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),t.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),t.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var e={};function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n<e;n++)i[n]=t[n];return i}function i(t,e){if(t){if("string"==typeof t)return n(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?n(t,e):void 0}}function r(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function s(t){var e=function(t){if("object"!=o(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==o(e)?e:e+""}function h(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,s(i.key),i)}}function u(t,e,n){return e&&h(t.prototype,e),n&&h(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}t.r(e),t.d(e,{CoordinateController:()=>Z,CoordinateType:()=>A,EventType:()=>O,HotKey:()=>V,HotKeyController:()=>R,HotKeyEventType:()=>f,InteractiveController:()=>ct,InteractiveEvent:()=>I,InteractiveListener:()=>lt,Key:()=>d,SceneEvent:()=>U,TaskPriority:()=>l,throttleInAFrame:()=>k}),"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),new Array(36);var l,c=function(){function t(e,n){a(this,t),this.fn=e,this.priority=n}return u(t,null,[{key:"createTask",value:function(e,n){return new t(e,n)}}])}(),v=Promise.resolve();function y(){return"undefined"!=typeof window?"browser":"vm"}!function(t){t[t.UserAction=0]="UserAction",t[t.UpdateState=1]="UpdateState",t[t.RenderReact=2]="RenderReact",t[t.RenderScene=-1]="RenderScene"}(l||(l={}));var d,f,g=[],p=!1;function m(){var t=function(t,e){for(var n=t.length,i=0;i<n;i++)for(var r=i+1;r<n;r++){var a=t[i],o=t[r],s=e?e(a):a;(e?e(o):o)<s&&(t[i]=o,t[r]=a)}return t}(g,(function(t){return t.priority}));g=[],t.forEach((function(t){(0,t.fn)()})),p=!1}function k(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.UserAction,i=!1;function a(){i=!1,t.apply(void 0,r(e))}var o=function(t,e){var n=1e3/e,i=0;return function(){var e=Date.now();if(e-i>=n){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];t.apply(this,a),i=e}}}((function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];var s;e=r,i||(i=!0,g.push(c.createTask(a,n)),p||(p=!0,(s=m)&&v.then(s)))}),arguments.length>2&&void 0!==arguments[2]?arguments[2]:60);return o}function x(t,e){var n={x:t.x-e.x,y:t.y-e.y};if(!(n.x<=0||n.y<=0||n.x>e.width||n.y>e.height))return n}new(function(){return u((function t(){a(this,t),this.listeners={}}),[{key:"on",value:function(t,e){var n=this.listeners[t]||[];n.push(e),this.listeners[t]=n}},{key:"emit",value:function(t){for(var e=this,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];var a=this.listeners[t];Array.isArray(a)&&a.forEach((function(t){try{t.apply(e,i)}catch(t){console.error(t)}}))}},{key:"off",value:function(t){this.listeners[t]&&(this.listeners[t]=[])}}])}()),Date.now,function(t){t.Unidentified="Unidentified",t.Alt="Alt",t.AltGraph="AltGraph",t.CapsLock="CapsLock",t.Control="Control",t.Ctrl="Ctrl",t.Fn="Fn",t.FnLock="FnLock",t.Hyper="Hyper",t.Meta="Meta",t.NumLock="NumLock",t.ScrollLock="ScrollLock",t.Shift="Shift",t.Super="Super",t.Symbol="Symbol",t.SymbolLock="SymbolLock",t.Enter="Enter",t.Tab="Tab",t.ArrowDown="ArrowDown",t.ArrowLeft="ArrowLeft",t.ArrowRight="ArrowRight",t.ArrowUp="ArrowUp",t.End="End",t.Home="Home",t.PageDown="PageDown",t.PageUp="PageUp",t.Backspace="Backspace",t.Clear="Clear",t.Copy="Copy",t.CrSel="CrSel",t.Cut="Cut",t.Delete="Delete",t.EraseEof="EraseEof",t.ExSel="ExSel",t.Insert="Insert",t.Paste="Paste",t.Redo="Redo",t.Undo="Undo",t.Accept="Accept",t.Again="Again",t.Attn="Attn",t.Cancel="Cancel",t.ContextMenu="ContextMenu",t.Escape="Escape",t.Execute="Execute",t.Find="Find",t.Finish="Finish",t.Help="Help",t.Pause="Pause",t.Play="Play",t.Props="Props",t.Select="Select",t.ZoomIn="ZoomIn",t.ZoomOut="ZoomOut",t.BrightnessDown="BrightnessDown",t.BrightnessUp="BrightnessUp",t.Eject="Eject",t.LogOff="LogOff",t.Power="Power",t.PowerOff="PowerOff",t.PrintScreen="PrintScreen",t.Hibernate="Hibernate",t.Standby="Standby",t.WakeUp="WakeUp",t.AllCandidates="AllCandidates",t.Alphanumeric="Alphanumeric",t.CodeInput="CodeInput",t.Compose="Compose",t.Convert="Convert",t.Dead="Dead",t.FinalMode="FinalMode",t.GroupFirst="GroupFirst",t.GroupLast="GroupLast",t.GroupNext="GroupNext",t.GroupPrevious="GroupPrevious",t.ModeChange="ModeChange",t.NextCandidate="NextCandidate",t.NonConvert="NonConvert",t.PreviousCandidate="PreviousCandidate",t.Process="Process",t.SingleCandidate="SingleCandidate",t.HangulMode="HangulMode",t.HanjaMode="HanjaMode",t.JunjaMode="JunjaMode",t.Eisu="Eisu",t.Hankaku="Hankaku",t.Hiragana="Hiragana",t.HiraganaKatakana="HiraganaKatakana",t.KanaMode="KanaMode",t.KanjiMode="KanjiMode",t.Katakana="Katakana",t.Romaji="Romaji",t.Zenkaku="Zenkaku",t.ZenkakuHanaku="ZenkakuHanaku",t.F1="F1",t.F2="F2",t.F3="F3",t.F4="F4",t.F5="F5",t.F6="F6",t.F7="F7",t.F8="F8",t.F9="F9",t.F10="F10",t.F11="F11",t.F12="F12",t.F13="F13",t.F14="F14",t.F15="F15",t.F16="F16",t.F17="F17",t.F18="F18",t.F19="F19",t.F20="F20",t.Soft1="Soft1",t.Soft2="Soft2",t.Soft3="Soft3",t.Soft4="Soft4",t.AppSwitch="AppSwitch",t.Call="Call",t.Camera="Camera",t.CameraFocus="CameraFocus",t.EndCall="EndCall",t.GoBack="GoBack",t.GoHome="GoHome",t.HeadsetHook="HeadsetHook",t.LastNumberRedial="LastNumberRedial",t.Notification="Notification",t.MannerMode="MannerMode",t.VoiceDial="VoiceDial",t.ChannelDown="ChannelDown",t.ChannelUp="ChannelUp",t.MediaFastForward="MediaFastForward",t.MediaPause="MediaPause",t.MediaPlay="MediaPlay",t.MediaPlayPause="MediaPlayPause",t.MediaRecord="MediaRecord",t.MediaRewind="MediaRewind",t.MediaStop="MediaStop",t.MediaTrackNext="MediaTrackNext",t.MediaTrackPrevious="MediaTrackPrevious",t.AudioBalanceLeft="AudioBalanceLeft",t.AudioBalanceRight="AudioBalanceRight",t.AudioBassDown="AudioBassDown",t.AudioBassBoostDown="AudioBassBoostDown",t.AudioBassBoostToggle="AudioBassBoostToggle",t.AudioBassBoostUp="AudioBassBoostUp",t.AudioBassUp="AudioBassUp",t.AudioFaderFront="AudioFaderFront",t.AudioFaderRear="AudioFaderRear",t.AudioSurroundModeNext="AudioSurroundModeNext",t.AudioTrebleDown="AudioTrebleDown",t.AudioTrebleUp="AudioTrebleUp",t.AudioVolumeDown="AudioVolumeDown",t.AudioVolumeMute="AudioVolumeMute",t.AudioVolumeUp="AudioVolumeUp",t.MicrophoneToggle="MicrophoneToggle",t.MicrophoneVolumeDown="MicrophoneVolumeDown",t.MicrophoneVolumeMute="MicrophoneVolumeMute",t.MicrophoneVolumeUp="MicrophoneVolumeUp",t.TV="TV",t.TV3DMode="TV3DMode",t.TVAntennaCable="TVAntennaCable",t.TVAudioDescription="TVAudioDescription",t.TVAudioDescriptionMixDown="TVAudioDescriptionMixDown",t.TVAudioDescriptionMixUp="TVAudioDescriptionMixUp",t.TVContentsMenu="TVContentsMenu",t.TVDataService="TVDataService",t.TVInput="TVInput",t.TVInputComponent1="TVInputComponent1",t.TVInputComponent2="TVInputComponent2",t.TVInputComposite1="TVInputComposite1",t.TVInputComposite2="TVInputComposite2",t.TVInputHDMI1="TVInputHDMI1",t.TVInputHDMI2="TVInputHDMI2",t.TVInputHDMI3="TVInputHDMI3",t.TVInputHDMI4="TVInputHDMI4",t.TVInputVGA1="TVInputVGA1",t.TVMediaContext="TVMediaContext",t.TVNetwork="TVNetwork",t.TVNumberEntry="TVNumberEntry",t.TVPower="TVPower",t.TVRadioService="TVRadioService",t.TVSatellite="TVSatellite",t.TVSatelliteBS="TVSatelliteBS",t.TVSatelliteCS="TVSatelliteCS",t.TVSatelliteToggle="TVSatelliteToggle",t.TVTerrestrialAnalog="TVTerrestrialAnalog",t.TVTerrestrialDigital="TVTerrestrialDigital",t.TVTimer="TVTimer",t.AVRInput="AVRInput",t.AVRPower="AVRPower",t.ColorF0Red="ColorF0Red",t.ColorF1Green="ColorF1Green",t.ColorF2Yellow="ColorF2Yellow",t.ColorF3Blue="ColorF3Blue",t.ColorF4Grey="ColorF4Grey",t.ColorF5Brown="ColorF5Brown",t.ClosedCaptionToggle="ClosedCaptionToggle",t.Dimmer="Dimmer",t.DisplaySwap="DisplaySwap",t.DVR="DVR",t.Exit="Exit",t.FavoriteClear0="FavoriteClear0",t.FavoriteClear1="FavoriteClear1",t.FavoriteClear2="FavoriteClear2",t.FavoriteClear3="FavoriteClear3",t.FavoriteRecall0="FavoriteRecall0",t.FavoriteRecall1="FavoriteRecall1",t.FavoriteRecall2="FavoriteRecall2",t.FavoriteRecall3="FavoriteRecall3",t.FavoriteStore0="FavoriteStore0",t.FavoriteStore1="FavoriteStore1",t.FavoriteStore2="FavoriteStore2",t.FavoriteStore3="FavoriteStore3",t.Guide="Guide",t.GuideNextDay="GuideNextDay",t.GuidePreviousDay="GuidePreviousDay",t.Info="Info",t.InstantReplay="InstantReplay",t.Link="Link",t.ListProgram="ListProgram",t.LiveContent="LiveContent",t.Lock="Lock",t.MediaApps="MediaApps",t.MediaAudioTrack="MediaAudioTrack",t.MediaLast="MediaLast",t.MediaSkipBackward="MediaSkipBackward",t.MediaSkipForward="MediaSkipForward",t.MediaStepBackward="MediaStepBackward",t.MediaStepForward="MediaStepForward",t.MediaTopMenu="MediaTopMenu",t.NavigateIn="NavigateIn",t.NavigateNext="NavigateNext",t.NavigateOut="NavigateOut",t.NavigatePrevious="NavigatePrevious",t.NextFavoriteChannel="NextFavoriteChannel",t.NextUserProfile="NextUserProfile",t.OnDemand="OnDemand",t.Pairing="Pairing",t.PinPDown="PinPDown",t.PinPMove="PinPMove",t.PinPToggle="PinPToggle",t.PinPUp="PinPUp",t.PlaySpeedDown="PlaySpeedDown",t.PlaySpeedReset="PlaySpeedReset",t.PlaySpeedUp="PlaySpeedUp",t.RandomToggle="RandomToggle",t.RcLowBattery="RcLowBattery",t.RecordSpeedNext="RecordSpeedNext",t.RfBypass="RfBypass",t.ScanChannelsToggle="ScanChannelsToggle",t.ScreenModeNext="ScreenModeNext",t.Settings="Settings",t.SplitScreenToggle="SplitScreenToggle",t.STBInput="STBInput",t.STBPower="STBPower",t.Subtitle="Subtitle",t.Teletext="Teletext",t.VideoModeNext="VideoModeNext",t.Wink="Wink",t.ZoomToggle="ZoomToggle",t.SpeechCorrectionList="SpeechCorrectionList",t.SpeechInputToggle="SpeechInputToggle",t.Close="Close",t.New="New",t.Open="Open",t.Print="Print",t.Save="Save",t.SpellCheck="SpellCheck",t.MailForward="MailForward",t.MailReply="MailReply",t.MailSend="MailSend",t.LaunchCalculator="LaunchCalculator",t.LaunchCalendar="LaunchCalendar",t.LaunchContacts="LaunchContacts",t.LaunchMail="LaunchMail",t.LaunchMediaPlayer="LaunchMediaPlayer",t.LaunchMusicPlayer="LaunchMusicPlayer",t.LaunchMyComputer="LaunchMyComputer",t.LaunchPhone="LaunchPhone",t.LaunchScreenSaver="LaunchScreenSaver",t.LaunchSpreadsheet="LaunchSpreadsheet",t.LaunchWebBrowser="LaunchWebBrowser",t.LaunchWebCam="LaunchWebCam",t.LaunchWordProcessor="LaunchWordProcessor",t.LaunchApplication1="LaunchApplication1",t.LaunchApplication2="LaunchApplication2",t.LaunchApplication3="LaunchApplication3",t.LaunchApplication4="LaunchApplication4",t.LaunchApplication5="LaunchApplication5",t.LaunchApplication6="LaunchApplication6",t.LaunchApplication7="LaunchApplication7",t.LaunchApplication8="LaunchApplication8",t.LaunchApplication9="LaunchApplication9",t.LaunchApplication10="LaunchApplication10",t.LaunchApplication11="LaunchApplication11",t.LaunchApplication12="LaunchApplication12",t.LaunchApplication13="LaunchApplication13",t.LaunchApplication14="LaunchApplication14",t.LaunchApplication15="LaunchApplication15",t.LaunchApplication16="LaunchApplication16",t.BrowserBack="BrowserBack",t.BrowserFavorites="BrowserFavorites",t.BrowserForward="BrowserForward",t.BrowserHome="BrowserHome",t.BrowserRefresh="BrowserRefresh",t.BrowserSearch="BrowserSearch",t.BrowserStop="BrowserStop",t.Decimal="Decimal",t.Key11="Key11",t.Key12="Key12",t.Multiply="Multiply",t.Add="Add",t.Divide="Divide",t.Subtract="Subtract",t.Separator="Separator"}(d||(d={})),function(t){t.KeyDown="key-down",t.KeyUp="key-up"}(f||(f={}));var M=0,C="shift",T=1,w="ctrl",_=2,S="control",b=2,P="alt",E=4,z="meta",D=8;function L(t){for(var e=t.replace(/[ +]*\+[ +]*/g,"+").toLowerCase().split("+"),n=e.length,i=M,r=0;r<n;r++){var a=e[r];a===C?i|=T:a===w?i|=_:a===S?i|=b:a===P?i|=E:a===z&&(i|=D)}var o=e[n-1];return o===d.Ctrl.toLowerCase()?"".concat(d.Control.toLowerCase(),"@").concat(i):"".concat(o,"@").concat(i)}var A,F=function(){return u((function t(e,n){var i=this;a(this,t),this.isTriggering=!1,this.keyMap={},this.onKeyDown=function(t){i.triggerHandler(t,f.KeyDown)},this.onKeyPress=function(t){},this.onKeyUp=function(t){i.triggerHandler(t,f.KeyUp)},this.dom=e,this.listener=n,this.addListener(this.dom)}),[{key:"register",value:function(t){var e=L(t);return this.keyMap[e]=t,!0}},{key:"deregister",value:function(t){var e=L(t);return delete this.keyMap[e],!0}},{key:"addListener",value:function(t){t.addEventListener("keydown",this.onKeyDown),t.addEventListener("keyup",this.onKeyUp)}},{key:"removeListener",value:function(t){t.removeEventListener("keydown",this.onKeyDown),t.removeEventListener("keyup",this.onKeyUp)}},{key:"triggerHandler",value:function(t,e){if(function(t){var e=t.target;return!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)}(t))if(this.isTriggering&&e===f.KeyUp){var n=function(t){var e=t.key.toLowerCase(),n=M;if(t.shiftKey)n|=T;else if(e===d.Shift.toLowerCase())return n|=T,"".concat(d.Shift.toLowerCase(),"@").concat(n);if(t.altKey)n|=E;else if(e===d.Alt.toLowerCase())return n|=E,"".concat(d.Alt.toLowerCase(),"@").concat(n);if(t.ctrlKey)n|=_;else if(e===d.Control.toLowerCase())return n|=_,"".concat(d.Control.toLowerCase(),"@").concat(n);if(t.metaKey)n|=D;else if(e===d.Meta.toLowerCase())return n|=D,"".concat(d.Meta.toLowerCase(),"@").concat(n);return"".concat(e,"@").concat(n)}(t);"string"==typeof this.keyMap[n]&&((0,this.listener)(this.keyMap[n],e),this.isTriggering=!1)}else{var i=function(t){var e=M;t.shiftKey&&(e|=T),t.altKey&&(e|=E),t.ctrlKey&&(e|=_),t.metaKey&&(e|=D);var n=t.key.toLowerCase();return"".concat(n,"@").concat(e)}(t);"string"==typeof this.keyMap[i]&&((0,this.listener)(this.keyMap[i],e),this.isTriggering=!0)}}}])}(),R=function(){return u((function t(){var e=this;a(this,t),this.keyMap={},this.handler=function(t,n){e.keyMap[t]&&(0,e.keyMap[t].handler)(n)},this.listener=new F(document,this.handler)}),[{key:"on",value:function(t){var e=this;return(Array.isArray(t.key)?t.key:[t.key]).forEach((function(n){if(e.listener.register(n),e.keyMap[n]){var i=e.keyMap[n];console.warn("[turbox]: ".concat("conflicted hot key detected,please check again:")),console.table({hotkey:n,name:i.name||"",info:i.info||""})}else e.keyMap[n]=t})),this}},{key:"off",value:function(t,e){var n=this;return(Array.isArray(t)?t:[t]).forEach((function(t){n.listener.deregister(t);var i=n.keyMap[t];i&&i.handler===e&&delete n.keyMap[t]})),this}},{key:"getHotKeyData",value:function(){var t=this,e=[];return Object.keys(this.keyMap).forEach((function(n){var i=t.keyMap[n];i.show&&e.push({key:n,name:i.name,description:i.description})})),e}}])}(),V=new R;!function(t){t[t.ScreenToCanvas=1]="ScreenToCanvas",t[t.ScreenToScene=2]="ScreenToScene",t[t.CanvasToScene=3]="CanvasToScene",t[t.CanvasToScreen=4]="CanvasToScreen",t[t.SceneToScreen=5]="SceneToScreen",t[t.SceneToCanvas=6]="SceneToCanvas"}(A||(A={}));var B,H,I,O,U=function(){function t(e,n,i,r){a(this,t),this.event=e,this.getCoordinateCtrl=n,this.hitTargetOriginalByPoint=i,this.extra=r}return u(t,[{key:"screenPosition",get:function(){var t=this.extra;return t&&t.mouseDownInfo?{x:t.mouseDownInfo.x,y:t.mouseDownInfo.y}:{x:this.event.clientX,y:this.event.clientY}}},{key:"canvasPosition",get:function(){return this.getCoordinateCtrl().transform(this.screenPosition,A.ScreenToCanvas)}},{key:"getScenePosition",value:function(t){return this.getCoordinateCtrl().transform(this.screenPosition,A.ScreenToScene,t)}}],[{key:"create",value:function(e,n,i,r){return new t(e,n,i,r)}}])}(),Z=function(){return u((function t(e){var n=e.getCanvasRectImpl,i=e.canvasToSceneImpl,r=e.sceneToCanvasImpl;a(this,t),this.getCanvasRectImpl=n,this.canvasToSceneImpl=i,this.sceneToCanvasImpl=r}),[{key:"transform",value:function(t,e,n){switch(e){case A.ScreenToCanvas:return this.screenToCanvas(t);case A.ScreenToScene:return this.screenToScene(t,n);case A.CanvasToScreen:return this.canvasToScreen(t);case A.CanvasToScene:return this.canvasToScene(t,n);case A.SceneToScreen:return this.sceneToScreen(t);case A.SceneToCanvas:return this.sceneToCanvas(t);default:return t}}},{key:"screenToCanvas",value:function(t){var e=this.getCanvasRectImpl(),n=e.x,i=e.y;return{x:t.x-n,y:t.y-i}}},{key:"canvasToScreen",value:function(t){var e=this.getCanvasRectImpl(),n=e.x,i=e.y;return{x:t.x+n,y:t.y+i}}},{key:"canvasToScene",value:function(t,e){return this.canvasToSceneImpl(t,e)}},{key:"sceneToCanvas",value:function(t){return this.sceneToCanvasImpl(t)}},{key:"screenToScene",value:function(t,e){return this.canvasToScene(this.screenToCanvas(t),e)}},{key:"sceneToScreen",value:function(t){return this.canvasToScreen(this.sceneToCanvas(t))}}])}();!function(t){t.Ready="ready",t.Dragging="dragging",t.End="end"}(B||(B={})),function(t){t.Drag="drag",t.Click="click",t.MultiTouch="multi-touch",t.Press="press"}(H||(H={})),function(t){t[t.Click=1]="Click",t[t.DBClick=2]="DBClick",t[t.RightClick=3]="RightClick",t[t.DragStart=4]="DragStart",t[t.DragMove=5]="DragMove",t[t.DragEnd=6]="DragEnd",t[t.CarriageMove=7]="CarriageMove",t[t.CarriageEnd=8]="CarriageEnd",t[t.Hover=9]="Hover",t[t.Wheel=10]="Wheel",t[t.PinchStart=11]="PinchStart",t[t.Pinch=12]="Pinch",t[t.PinchEnd=13]="PinchEnd",t[t.RotateStart=14]="RotateStart",t[t.Rotate=15]="Rotate",t[t.RotateEnd=16]="RotateEnd",t[t.Press=17]="Press",t[t.PressUp=18]="PressUp"}(I||(I={})),function(t){t[t.onClick=0]="onClick",t[t.onDBClick=1]="onDBClick",t[t.onRightClick=2]="onRightClick",t[t.onDragStart=3]="onDragStart",t[t.onDragMove=4]="onDragMove",t[t.onDragEnd=5]="onDragEnd",t[t.onCarriageMove=6]="onCarriageMove",t[t.onCarriageEnd=7]="onCarriageEnd",t[t.onHoverIn=8]="onHoverIn",t[t.onHoverOut=9]="onHoverOut",t[t.onWheel=10]="onWheel",t[t.onPinchStart=11]="onPinchStart",t[t.onPinch=12]="onPinch",t[t.onPinchEnd=13]="onPinchEnd",t[t.onRotateStart=14]="onRotateStart",t[t.onRotate=15]="onRotate",t[t.onRotateEnd=16]="onRotateEnd",t[t.onPress=17]="onPress",t[t.onPressUp=18]="onPressUp"}(O||(O={}));var N=function(){function t(e,n,i){a(this,t),this.cosTol=e||t.COS_TOL,this.distTol=n||t.DIST_TOL,this.numTol=i||t.NUM_TOL}return u(t,[{key:"setCosTolByAngle",value:function(t,e){var n=e?1:Math.PI/180;this.cosTol=1-Math.cos(t*n)}},{key:"clone",value:function(){return new t(this.cosTol,this.distTol,this.numTol)}}],[{key:"setGlobal",value:function(e,n,i){t.global=new t(e,n,i)}}])}();N.COS_TOL=1e-6,N.DIST_TOL=1e-6,N.NUM_TOL=1e-6,N.global=new N;for(var q=[],X=0;X<256;X++)q[X]=(X<16?"0":"")+X.toString(16);var Y=1234567,j={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return"".concat(q[255&t]+q[t>>8&255]+q[t>>16&255]+q[t>>24&255],"-").concat(q[255&e]).concat(q[e>>8&255],"-").concat(q[e>>16&15|64]).concat(q[e>>24&255],"-").concat(q[63&n|128]).concat(q[n>>8&255],"-").concat(q[n>>16&255]).concat(q[n>>24&255]).concat(q[255&i]).concat(q[i>>8&255]).concat(q[i>>16&255]).concat(q[i>>24&255]).toUpperCase()},clamp:function(t,e,n){return Math.max(e,Math.min(n,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},lerp:function(t,e,n){return(1-n)*t+n*e},damp:function(t,e,n,i){return j.lerp(t,e,1-Math.exp(-n*i))},pingpong:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e-Math.abs(j.euclideanModulo(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(Y=t%2147483647),((Y=16807*Y%2147483647)-1)/2147483646},degToRad:function(t){return t*j.DEG2RAD},radToDeg:function(t){return t*j.RAD2DEG},isPowerOfTwo:function(t){return!(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},setQuaternionFromProperEuler:function(t,e,n,i,r){var a=Math.cos,o=Math.sin,s=a(n/2),h=o(n/2),u=a((e+i)/2),l=o((e+i)/2),c=a((e-i)/2),v=o((e-i)/2),y=a((i-e)/2),d=o((i-e)/2);switch(r){case"XYX":t.set(s*l,h*c,h*v,s*u);break;case"YZY":t.set(h*v,s*l,h*c,s*u);break;case"ZXZ":t.set(h*c,h*v,s*l,s*u);break;case"XZX":t.set(s*l,h*d,h*y,s*u);break;case"YXY":t.set(h*y,s*l,h*d,s*u);break;case"ZYZ":t.set(h*d,h*y,s*l,s*u);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ".concat(r))}},isEqual:function(t,e,n){var i=n||N.global.numTol;return t===e||Math.abs(t-e)<=i},isZero:function(t,e){return j.isEqual(t,0,e)},isSmaller:function(t,e,n){return t-e<-(n||N.global.numTol)},isBigger:function(t,e,n){return t-e>(n||N.global.numTol)},isSmallerOrEqual:function(t,e,n){return t-e<=(n||N.global.numTol)},isBiggerOrEqual:function(t,e,n){return t-e>=-(n||N.global.numTol)},isInRange:function(t,e,n,i,r,a){var o=a||N.global.numTol,s=t-e,h=t-n;return(i?s>o:s>=-o)&&(r?h<-o:h<=o)},compare:function(t,e,n){if(Number.isNaN(t)||Number.isNaN(e))throw Error("Invalid NaN number");return j.isEqual(t,e,n)?0:t<e?-1:1},interpolation:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,i=e.subtracted(t),r=i.length/n,a=[],o=i.normalized(),s=0;s<n-1;s++)a.push(t.added(o.clone().multiplyScalar(r*(s+1))));return a.unshift(t.clone()),a.push(e.clone()),a},generateMeshByQuad:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,i=[],a=[],o=[],s=[],h=j.interpolation(t[0],t[1],e),u=j.interpolation(t[3],t[2],e),l=h.map((function(t,e){return j.interpolation(t.clone(),u[e].clone(),n)})),c=function(t){0===t?a.push.apply(a,r(h.flatMap((function(t){return t.toArray()})))):t===n?a.push.apply(a,r(u.flatMap((function(t){return t.toArray()})))):a.push.apply(a,r(l.flatMap((function(e){return e[t].toArray()}))));for(var i=0;i<=e;i++)o.push(0,0,1),s.push(i*(1/e),t*(1/n))},v=0;v<=n;v++)c(v);for(var y=0;y<n;y++)for(var d=0;d<e;d++){var f=y*(e+1)+(d+1),g=y*(e+1)+d,p=(y+1)*(e+1)+d,m=(y+1)*(e+1)+(d+1);i.push(f,g,m),i.push(g,p,m)}return{indices:i,vertices:a,normals:o,uvs:s}},clockwisePoints:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=[t[0]],i=function(){for(var i=n[n.length-1],r=t.filter((function(t){return t!==i})),a=function(){var a=r[o],s=new J(a.x-i.x,a.y-i.y);if(t.filter((function(t){return t!==i&&t!==a})).map((function(t){return new J(t.x-i.x,t.y-i.y)})).every((function(t){return e?s.cross(t)<0:s.cross(t)>0})))return n.push(a),1},o=0;o<r.length&&!a();o++);},r=0;r<t.length-1;r++)i();return n}},K=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;a(this,t),this._onChangeCallback=function(){},this.isQuaternion=!0,this._x=e,this._y=n,this._z=i,this._w=r}return u(t,[{key:"x",get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()}},{key:"y",get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()}},{key:"z",get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()}},{key:"w",get:function(){return this._w},set:function(t){this._w=t,this._onChangeCallback()}},{key:"set",value:function(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}},{key:"clone",value:function(){return new t(this._x,this._y,this._z,this._w)}},{key:"copy",value:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}},{key:"setFromEuler",value:function(t){var e=t._x,n=t._y,i=t._z,r=t._order,a=Math.cos,o=Math.sin,s=a(e/2),h=a(n/2),u=a(i/2),l=o(e/2),c=o(n/2),v=o(i/2);switch(r){case"XYZ":this._x=l*h*u+s*c*v,this._y=s*c*u-l*h*v,this._z=s*h*v+l*c*u,this._w=s*h*u-l*c*v;break;case"YXZ":this._x=l*h*u+s*c*v,this._y=s*c*u-l*h*v,this._z=s*h*v-l*c*u,this._w=s*h*u+l*c*v;break;case"ZXY":this._x=l*h*u-s*c*v,this._y=s*c*u+l*h*v,this._z=s*h*v+l*c*u,this._w=s*h*u-l*c*v;break;case"ZYX":this._x=l*h*u-s*c*v,this._y=s*c*u+l*h*v,this._z=s*h*v-l*c*u,this._w=s*h*u+l*c*v;break;case"YZX":this._x=l*h*u+s*c*v,this._y=s*c*u+l*h*v,this._z=s*h*v-l*c*u,this._w=s*h*u-l*c*v;break;case"XZY":this._x=l*h*u-s*c*v,this._y=s*c*u-l*h*v,this._z=s*h*v+l*c*u,this._w=s*h*u+l*c*v;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: ".concat(r))}return this._onChangeCallback(),this}},{key:"setFromAxisAngle",value:function(t,e){var n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}},{key:"setFromRotationMatrix",value:function(t){var e=t.elements,n=e[0],i=e[4],r=e[8],a=e[1],o=e[5],s=e[9],h=e[2],u=e[6],l=e[10],c=n+o+l;if(c>0){var v=.5/Math.sqrt(c+1);this._w=.25/v,this._x=(u-s)*v,this._y=(r-h)*v,this._z=(a-i)*v}else if(n>o&&n>l){var y=2*Math.sqrt(1+n-o-l);this._w=(u-s)/y,this._x=.25*y,this._y=(i+a)/y,this._z=(r+h)/y}else if(o>l){var d=2*Math.sqrt(1+o-n-l);this._w=(r-h)/d,this._x=(i+a)/d,this._y=.25*d,this._z=(s+u)/d}else{var f=2*Math.sqrt(1+l-n-o);this._w=(a-i)/f,this._x=(r+h)/f,this._y=(s+u)/f,this._z=.25*f}return this._onChangeCallback(),this}},{key:"setFromUnitVectors",value:function(t,e){var n=t.dot(e)+1;return n<1e-6?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}},{key:"angleTo",value:function(t){return 2*Math.acos(Math.abs(j.clamp(this.dot(t),-1,1)))}},{key:"rotateTowards",value:function(t,e){var n=this.angleTo(t);if(0===n)return this;var i=Math.min(1,e/n);return this.slerp(t,i),this}},{key:"identity",value:function(){return this.set(0,0,0,1)}},{key:"invert",value:function(){return this.conjugate()}},{key:"conjugate",value:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}},{key:"dot",value:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}},{key:"lengthSq",value:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}},{key:"length",value:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}},{key:"normalize",value:function(){var t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x*=t,this._y*=t,this._z*=t,this._w*=t),this._onChangeCallback(),this}},{key:"multiply",value:function(t){return this.multiplyQuaternions(this,t)}},{key:"premultiply",value:function(t){return this.multiplyQuaternions(t,this)}},{key:"multiplyQuaternions",value:function(t,e){var n=t._x,i=t._y,r=t._z,a=t._w,o=e._x,s=e._y,h=e._z,u=e._w;return this._x=n*u+a*o+i*h-r*s,this._y=i*u+a*s+r*o-n*h,this._z=r*u+a*h+n*s-i*o,this._w=a*u-n*o-i*s-r*h,this._onChangeCallback(),this}},{key:"slerp",value:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var n=this._x,i=this._y,r=this._z,a=this._w,o=a*t._w+n*t._x+i*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;var s=1-o*o;if(s<=Number.EPSILON){var h=1-e;return this._w=h*a+e*this._w,this._x=h*n+e*this._x,this._y=h*i+e*this._y,this._z=h*r+e*this._z,this.normalize(),this._onChangeCallback(),this}var u=Math.sqrt(s),l=Math.atan2(u,o),c=Math.sin((1-e)*l)/u,v=Math.sin(e*l)/u;return this._w=a*c+this._w*v,this._x=n*c+this._x*v,this._y=i*c+this._y*v,this._z=r*c+this._z*v,this._onChangeCallback(),this}},{key:"equals",value:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}},{key:"fromArray",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}},{key:"toArray",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}},{key:"_onChange",value:function(t){return this._onChangeCallback=t,this}}],[{key:"slerp",value:function(t,e,n,i){return n.copy(t).slerp(e,i)}},{key:"slerpFlat",value:function(t,e,n,i,r,a,o){var s=n[i+0],h=n[i+1],u=n[i+2],l=n[i+3],c=r[a+0],v=r[a+1],y=r[a+2],d=r[a+3];if(0===o)return t[e+0]=s,t[e+1]=h,t[e+2]=u,void(t[e+3]=l);if(1===o)return t[e+0]=c,t[e+1]=v,t[e+2]=y,void(t[e+3]=d);if(l!==d||s!==c||h!==v||u!==y){var f=1-o,g=s*c+h*v+u*y+l*d,p=g>=0?1:-1,m=1-g*g;if(m>Number.EPSILON){var k=Math.sqrt(m),x=Math.atan2(k,g*p);f=Math.sin(f*x)/k,o=Math.sin(o*x)/k}var M=o*p;if(s=s*f+c*M,h=h*f+v*M,u=u*f+y*M,l=l*f+d*M,f===1-o){var C=1/Math.sqrt(s*s+h*h+u*u+l*l);s*=C,h*=C,u*=C,l*=C}}t[e]=s,t[e+1]=h,t[e+2]=u,t[e+3]=l}},{key:"multiplyQuaternionsFlat",value:function(t,e,n,i,r,a){var o=n[i],s=n[i+1],h=n[i+2],u=n[i+3],l=r[a],c=r[a+1],v=r[a+2],y=r[a+3];return t[e]=o*y+u*l+s*v-h*c,t[e+1]=s*y+u*c+h*l-o*v,t[e+2]=h*y+u*v+o*c-s*l,t[e+3]=u*y-o*l-s*c-h*v,t}}])}(),G=new K,W=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;a(this,t),this.isVector3=!0,this.x=e,this.y=n,this.z=i}return u(t,[{key:"set",value:function(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}},{key:"setScalar",value:function(t){return this.x=t,this.y=t,this.z=t,this}},{key:"setX",value:function(t){return this.x=t,this}},{key:"setY",value:function(t){return this.y=t,this}},{key:"setZ",value:function(t){return this.z=t,this}},{key:"setComponent",value:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: ".concat(t))}return this}},{key:"getComponent",value:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: ".concat(t))}}},{key:"clone",value:function(){return new t(this.x,this.y,this.z)}},{key:"copy",value:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}},{key:"add",value:function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}},{key:"added",value:function(e){return new t(this.x+e.x,this.y+e.y,this.z+e.z)}},{key:"addScalar",value:function(t){return this.x+=t,this.y+=t,this.z+=t,this}},{key:"addVectors",value:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}},{key:"addScaledVector",value:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}},{key:"sub",value:function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}},{key:"subtracted",value:function(e){return new t(this.x-e.x,this.y-e.y,this.z-e.z)}},{key:"subScalar",value:function(t){return this.x-=t,this.y-=t,this.z-=t,this}},{key:"subVectors",value:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}},{key:"multiply",value:function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}},{key:"multiplied",value:function(e){return new t(this.x*e.x,this.y*e.y,this.z*e.z)}},{key:"multiplyScalar",value:function(t){return this.x*=t,this.y*=t,this.z*=t,this}},{key:"multiplyVectors",value:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}},{key:"applyEuler",value:function(t){return this.applyQuaternion(G.setFromEuler(t))}},{key:"appliedEuler",value:function(t){return this.appliedQuaternion(G.setFromEuler(t))}},{key:"applyAxisAngle",value:function(t,e){return this.applyQuaternion(G.setFromAxisAngle(t,e))}},{key:"applyMatrix3",value:function(t){var e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}},{key:"applyNormalMatrix",value:function(t){return this.applyMatrix3(t).normalize()}},{key:"applyMatrix4",value:function(t){var e=this.x,n=this.y,i=this.z,r=t.elements,a=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*a,this}},{key:"appliedMatrix4",value:function(e){var n=this.x,i=this.y,r=this.z,a=e.elements,o=1/(a[3]*n+a[7]*i+a[11]*r+a[15]),s=(a[0]*n+a[4]*i+a[8]*r+a[12])*o,h=(a[1]*n+a[5]*i+a[9]*r+a[13])*o,u=(a[2]*n+a[6]*i+a[10]*r+a[14])*o;return new t(s-a[12]*o,h-a[13]*o,u-a[14]*o)}},{key:"applyQuaternion",value:function(t){var e=this.x,n=this.y,i=this.z,r=t.x,a=t.y,o=t.z,s=t.w,h=s*e+a*i-o*n,u=s*n+o*e-r*i,l=s*i+r*n-a*e,c=-r*e-a*n-o*i;return this.x=h*s+c*-r+u*-o-l*-a,this.y=u*s+c*-a+l*-r-h*-o,this.z=l*s+c*-o+h*-a-u*-r,this}},{key:"appliedQuaternion",value:function(e){var n=this.x,i=this.y,r=this.z,a=e.x,o=e.y,s=e.z,h=e.w,u=h*n+o*r-s*i,l=h*i+s*n-a*r,c=h*r+a*i-o*n,v=-a*n-o*i-s*r;return new t(u*h+v*-a+l*-s-c*-o,l*h+v*-o+c*-a-u*-s,c*h+v*-s+u*-o-l*-a)}},{key:"transformDirection",value:function(t){var e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}},{key:"divide",value:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}},{key:"divideScalar",value:function(t){return this.multiplyScalar(1/t)}},{key:"min",value:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}},{key:"max",value:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}},{key:"clamp",value:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}},{key:"clampScalar",value:function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}},{key:"clampLength",value:function(t,e){var n=this.length;return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}},{key:"floor",value:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}},{key:"ceil",value:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}},{key:"round",value:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}},{key:"roundToZero",value:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}},{key:"negate",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}},{key:"dot",value:function(t){return this.x*t.x+this.y*t.y+this.z*t.z}},{key:"lengthSq",get:function(){return this.x*this.x+this.y*this.y+this.z*this.z}},{key:"length",get:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}},{key:"manhattanLength",get:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}},{key:"normalize",value:function(){return this.divideScalar(this.length||1)}},{key:"normalized",value:function(){var e=this.lengthSq;if(0===e||j.isEqual(e,1,1e-16))return new t(this.x,this.y,this.z);e=Math.sqrt(e);var n=this.x/e,i=this.y/e,r=this.z/e;return Number.isFinite(n)&&Number.isFinite(i)&&Number.isFinite(r)?new t(n,i,r):new t(this.x,this.y,this.z)}},{key:"reverse",value:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}},{key:"reversed",value:function(){return new t(-this.x,-this.y,-this.z)}},{key:"setLength",value:function(t){return this.normalize().multiplyScalar(t)}},{key:"lerp",value:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}},{key:"lerpVectors",value:function(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}},{key:"toVector2",value:function(){return new J(this.x,this.y)}},{key:"cross",value:function(t){return this.crossVectors(this,t)}},{key:"crossed",value:function(e){return new t(this.y*e.z-this.z*e.y,this.z*e.x-this.x*e.z,this.x*e.y-this.y*e.x)}},{key:"crossVectors",value:function(t,e){var n=t.x,i=t.y,r=t.z,a=e.x,o=e.y,s=e.z;return this.x=i*s-r*o,this.y=r*a-n*s,this.z=n*o-i*a,this}},{key:"projectOnVector",value:function(t){var e=t.lengthSq;if(0===e)return this.set(0,0,0);var n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}},{key:"projectOnPlane",value:function(t){return Q.copy(this).projectOnVector(t),this.sub(Q)}},{key:"reflect",value:function(t){return this.sub(Q.copy(t).multiplyScalar(2*this.dot(t)))}},{key:"angle",value:function(t){return Math.atan2(this.crossed(t).length,this.dot(t))}},{key:"angleTo",value:function(t,e){var n=this.crossed(t),i=this.angle(t),r=2*Math.PI;return n.dot(e)<0&&i<Math.PI&&i>0?r-i:i}},{key:"distanceTo",value:function(t){return Math.sqrt(this.distanceToSquared(t))}},{key:"distanceToSquared",value:function(t){var e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}},{key:"manhattanDistanceTo",value:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}},{key:"setFromMatrixPosition",value:function(t){var e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}},{key:"setFromMatrixScale",value:function(t){var e=this.setFromMatrixColumn(t,0).length,n=this.setFromMatrixColumn(t,1).length,i=this.setFromMatrixColumn(t,2).length;return this.x=e,this.y=n,this.z=i,this}},{key:"setFromMatrixColumn",value:function(t,e){return this.fromArray(t.elements,4*e)}},{key:"setFromMatrix3Column",value:function(t,e){return this.fromArray(t.elements,3*e)}},{key:"equals",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:N.global.distTol,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:N.global.cosTol,i=this.lengthSq,r=t.lengthSq;return!(!j.isZero(i,e*e)||!j.isZero(r,e*e))||j.isEqual(Math.sqrt(i),Math.sqrt(r),e)&&this.isSameDirection(t,new N(n,e,N.global.numTol),!1)}},{key:"isPerpendicular",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return this.cross(t).lengthSq>=Math.pow(s-i*s,2)}},{key:"isParallel",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return Math.abs(s-Math.abs(this.dot(t)))<=i*s}},{key:"isSameDirection",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return Math.abs(s-this.dot(t))<=i*s}},{key:"isOpposite",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return Math.abs(s+this.dot(t))<=i*s}},{key:"isZero",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:N.global.distTol;return this.lengthSq<t*t}},{key:"fromArray",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}},{key:"toArray",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}},{key:"random",value:function(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}],[{key:"fromObject",value:function(e){return new t(e.x,e.y,e.z)}}])}(),Q=new W,J=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;a(this,t),this.isVector2=!0,this.x=e,this.y=n}return u(t,[{key:"width",get:function(){return this.x},set:function(t){this.x=t}},{key:"height",get:function(){return this.y},set:function(t){this.y=t}},{key:"set",value:function(t,e){return this.x=t,this.y=e,this}},{key:"setScalar",value:function(t){return this.x=t,this.y=t,this}},{key:"setX",value:function(t){return this.x=t,this}},{key:"setY",value:function(t){return this.y=t,this}},{key:"setComponent",value:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: ".concat(t))}return this}},{key:"getComponent",value:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: ".concat(t))}}},{key:"clone",value:function(){return new t(this.x,this.y)}},{key:"copy",value:function(t){return this.x=t.x,this.y=t.y,this}},{key:"add",value:function(t){return this.x+=t.x,this.y+=t.y,this}},{key:"added",value:function(e){return new t(this.x+e.x,this.y+e.y)}},{key:"addScalar",value:function(t){return this.x+=t,this.y+=t,this}},{key:"addVectors",value:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}},{key:"addScaledVector",value:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}},{key:"sub",value:function(t){return this.x-=t.x,this.y-=t.y,this}},{key:"subtracted",value:function(e){return new t(this.x-e.x,this.y-e.y)}},{key:"subScalar",value:function(t){return this.x-=t,this.y-=t,this}},{key:"subVectors",value:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}},{key:"reverse",value:function(){return this.x=-this.x,this.y=-this.y,this}},{key:"reversed",value:function(){return new t(-this.x,-this.y)}},{key:"multiply",value:function(t){return this.x*=t.x,this.y*=t.y,this}},{key:"multiplied",value:function(e){return new t(this.x*e,this.y*e)}},{key:"multiplyScalar",value:function(t){return this.x*=t,this.y*=t,this}},{key:"divide",value:function(t){return this.x/=t.x,this.y/=t.y,this}},{key:"divideScalar",value:function(t){return this.multiplyScalar(1/t)}},{key:"applyMatrix3",value:function(t){var e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}},{key:"min",value:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}},{key:"max",value:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}},{key:"clamp",value:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}},{key:"clampScalar",value:function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}},{key:"clampLength",value:function(t,e){var n=this.length;return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}},{key:"floor",value:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}},{key:"ceil",value:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}},{key:"round",value:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},{key:"roundToZero",value:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}},{key:"negate",value:function(){return this.x=-this.x,this.y=-this.y,this}},{key:"dot",value:function(t){return this.x*t.x+this.y*t.y}},{key:"cross",value:function(t){return this.x*t.y-this.y*t.x}},{key:"lengthSq",get:function(){return this.x*this.x+this.y*this.y}},{key:"length",get:function(){return Math.sqrt(this.x*this.x+this.y*this.y)}},{key:"manhattanLength",get:function(){return Math.abs(this.x)+Math.abs(this.y)}},{key:"normalize",value:function(){return this.divideScalar(this.length||1)}},{key:"angle",value:function(t){return t?Math.atan2(Math.abs(this.cross(t)),this.dot(t)):Math.atan2(-this.y,-this.x)+Math.PI}},{key:"angleTo",value:function(t){var e=this.cross(t),n=this.angle(t),i=2*Math.PI;return e<0&&n<Math.PI&&n>0?i-n:n}},{key:"normalized",value:function(){var e=this.lengthSq;if(0===e||j.isEqual(e,1,1e-16))return new t(this.x,this.y);e=Math.sqrt(e);var n=this.x/e,i=this.y/e;return Number.isFinite(n)&&Number.isFinite(i)?new t(n,i):new t(this.x,this.y)}},{key:"distanceTo",value:function(t){return Math.sqrt(this.distanceToSquared(t))}},{key:"distanceToSquared",value:function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n}},{key:"manhattanDistanceTo",value:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}},{key:"setLength",value:function(t){return this.normalize().multiplyScalar(t)}},{key:"lerp",value:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}},{key:"lerpVectors",value:function(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}},{key:"equals",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:N.global.distTol,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:N.global.cosTol,i=this.lengthSq,r=t.lengthSq;return!(!j.isZero(i,e*e)||!j.isZero(r,e*e))||j.isEqual(Math.sqrt(i),Math.sqrt(r),e)&&this.isSameDirection(t,new N(n,e,N.global.numTol),!1)}},{key:"isZero",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:N.global.distTol;return this.lengthSq<t*t}},{key:"isParallel",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return Math.abs(s-Math.abs(this.dot(t)))<=i*s}},{key:"isPerpendicular",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return Math.abs(s-Math.abs(this.cross(t)))<=i*s}},{key:"isSameDirection",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return Math.abs(s-this.dot(t))<=i*s}},{key:"isOpposite",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e?e.cosTol:N.global.cosTol,r=e?e.distTol:N.global.distTol,a=this.length,o=t.length;if(0===a||0===o||n&&(j.isZero(a,r)||j.isZero(o,r)))return!1;var s=a*o;return Math.abs(s+this.dot(t))<=i*s}},{key:"fromArray",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.x=t[e],this.y=t[e+1],this}},{key:"toArray",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t[e]=this.x,t[e+1]=this.y,t}},{key:"toVector3",value:function(){return new W(this.x,this.y,0)}},{key:"rotateAround",value:function(t,e){var n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,a=this.y-t.y;return this.x=r*n-a*i+t.x,this.y=r*i+a*n+t.y,this}},{key:"random",value:function(){return this.x=Math.random(),this.y=Math.random(),this}}],[{key:"fromObject",value:function(e){return new t(e.x,e.y)}}])}(),$=(new J,new W,new W,new W,new W,new W,new W,new W,new W,new W,new W),tt=new W(0,0,0),et=new W(1,1,1),nt=new W,it=new W,rt=new W,at=function(){function t(){a(this,t),this.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}return u(t,[{key:"set",value:function(t,e,n,i,r,a,o,s,h,u,l,c,v,y,d,f){var g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=a,g[9]=o,g[13]=s,g[2]=h,g[6]=u,g[10]=l,g[14]=c,g[3]=v,g[7]=y,g[11]=d,g[15]=f,this}},{key:"identity",value:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}},{key:"clone",value:function(){return(new t).fromArray(this.elements)}},{key:"copy",value:function(t){var e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}},{key:"copyPosition",value:function(t){var e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}},{key:"setFromMatrix3",value:function(t){var e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}},{key:"extractBasis",value:function(t,e,n){retu