UNPKG

babylonjs

Version:

> We recommend using the [ES6 package `@babylonjs/core`](https://www.npmjs.com/package/@babylonjs/core) for new projects. This UMD package is provided for compatibility.

1 lines 8.18 MB
function _BabylonUMDDynamicImportUnsupported(){return Promise.reject(new Error("Dynamic import of a module specifier is not supported in the UMD/global Babylon build; use the ES module build or provide the module explicitly."))}!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BABYLON=e.BABYLON||{})}(this,function(e){"use strict";"undefined"==typeof Symbol||Symbol.metadata||Object.defineProperty(Symbol,"metadata",{configurable:!0,writable:!0,value:Symbol("Symbol.metadata")});class t{}t.AUTOSAMPLERSUFFIX="Sampler",t.DISABLEUA="#define DISABLE_UNIFORMITY_ANALYSIS",t.ALPHA_DISABLE=0,t.ALPHA_ADD=1,t.ALPHA_COMBINE=2,t.ALPHA_SUBTRACT=3,t.ALPHA_MULTIPLY=4,t.ALPHA_MAXIMIZED=5,t.ALPHA_ONEONE=6,t.ALPHA_PREMULTIPLIED=7,t.ALPHA_PREMULTIPLIED_PORTERDUFF=8,t.ALPHA_INTERPOLATE=9,t.ALPHA_SCREENMODE=10,t.ALPHA_ONEONE_ONEONE=11,t.ALPHA_ALPHATOCOLOR=12,t.ALPHA_REVERSEONEMINUS=13,t.ALPHA_SRC_DSTONEMINUSSRCALPHA=14,t.ALPHA_ONEONE_ONEZERO=15,t.ALPHA_EXCLUSION=16,t.ALPHA_LAYER_ACCUMULATE=17,t.ALPHA_MIN=18,t.ALPHA_MAX=19,t.ALPHA_DUAL_SRC0_ADD_SRC1xDST=20,t.ALPHA_REPLACE_COLOR=21,t.ALPHA_EQUATION_ADD=0,t.ALPHA_EQUATION_SUBSTRACT=1,t.ALPHA_EQUATION_REVERSE_SUBTRACT=2,t.ALPHA_EQUATION_MAX=3,t.ALPHA_EQUATION_MIN=4,t.ALPHA_EQUATION_DARKEN=5,t.DELAYLOADSTATE_NONE=0,t.DELAYLOADSTATE_LOADED=1,t.DELAYLOADSTATE_LOADING=2,t.DELAYLOADSTATE_NOTLOADED=4,t.NEVER=512,t.ALWAYS=519,t.LESS=513,t.EQUAL=514,t.LEQUAL=515,t.GREATER=516,t.GEQUAL=518,t.NOTEQUAL=517,t.KEEP=7680,t.ZERO=0,t.REPLACE=7681,t.INCR=7682,t.DECR=7683,t.INVERT=5386,t.INCR_WRAP=34055,t.DECR_WRAP=34056,t.TEXTURE_CLAMP_ADDRESSMODE=0,t.TEXTURE_WRAP_ADDRESSMODE=1,t.TEXTURE_MIRROR_ADDRESSMODE=2,t.TEXTURE_REPETITION_NONE=0,t.TEXTURE_REPETITION_NOISE_BLEND=1,t.TEXTURE_REPETITION_HEX_TILING=2,t.TEXTURE_REPETITION_TILE_RANDOMIZATION=3,t.TEXTURE_REPETITION_VORONOI_BOMBING=4,t.TEXTURE_CREATIONFLAG_STORAGE=1,t.TEXTUREFORMAT_ALPHA=0,t.TEXTUREFORMAT_LUMINANCE=1,t.TEXTUREFORMAT_LUMINANCE_ALPHA=2,t.TEXTUREFORMAT_RGB=4,t.TEXTUREFORMAT_RGBA=5,t.TEXTUREFORMAT_RED=6,t.TEXTUREFORMAT_R=6,t.TEXTUREFORMAT_R16_UNORM=33322,t.TEXTUREFORMAT_RG16_UNORM=33324,t.TEXTUREFORMAT_RGB16_UNORM=32852,t.TEXTUREFORMAT_RGBA16_UNORM=32859,t.TEXTUREFORMAT_R16_SNORM=36760,t.TEXTUREFORMAT_RG16_SNORM=36761,t.TEXTUREFORMAT_RGB16_SNORM=36762,t.TEXTUREFORMAT_RGBA16_SNORM=36763,t.TEXTUREFORMAT_RG=7,t.TEXTUREFORMAT_RED_INTEGER=8,t.TEXTUREFORMAT_R_INTEGER=8,t.TEXTUREFORMAT_RG_INTEGER=9,t.TEXTUREFORMAT_RGB_INTEGER=10,t.TEXTUREFORMAT_RGBA_INTEGER=11,t.TEXTUREFORMAT_BGRA=12,t.TEXTUREFORMAT_DEPTH24_STENCIL8=13,t.TEXTUREFORMAT_DEPTH32_FLOAT=14,t.TEXTUREFORMAT_DEPTH16=15,t.TEXTUREFORMAT_DEPTH24=16,t.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8=17,t.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8=18,t.TEXTUREFORMAT_STENCIL8=19,t.TEXTUREFORMAT_UNDEFINED=4294967295,t.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM=36492,t.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM=36493,t.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT=36495,t.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT=36494,t.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5=33779,t.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919,t.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3=33778,t.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918,t.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1=33777,t.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1=33776,t.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917,t.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT=35916,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4=37808,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x4=37809,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x5=37810,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x5=37811,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x6=37812,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x5=37813,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x6=37814,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x8=37815,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x5=37816,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x6=37817,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x8=37818,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x10=37819,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x10=37820,t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x12=37821,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853,t.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL=36196,t.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2=37492,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2=37493,t.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494,t.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495,t.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC=37496,t.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497,t.TEXTURETYPE_UNSIGNED_BYTE=0,t.TEXTURETYPE_UNSIGNED_INT=0,t.TEXTURETYPE_FLOAT=1,t.TEXTURETYPE_HALF_FLOAT=2,t.TEXTURETYPE_BYTE=3,t.TEXTURETYPE_SHORT=4,t.TEXTURETYPE_UNSIGNED_SHORT=5,t.TEXTURETYPE_INT=6,t.TEXTURETYPE_UNSIGNED_INTEGER=7,t.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=8,t.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=9,t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=10,t.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=11,t.TEXTURETYPE_UNSIGNED_INT_24_8=12,t.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=13,t.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=14,t.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=15,t.TEXTURETYPE_UNDEFINED=16,t.TEXTURE_2D=3553,t.TEXTURE_2D_ARRAY=35866,t.TEXTURE_CUBE_MAP=34067,t.TEXTURE_CUBE_MAP_ARRAY=3735928559,t.TEXTURE_3D=32879,t.TEXTURE_NEAREST_SAMPLINGMODE=1,t.TEXTURE_NEAREST_NEAREST=1,t.TEXTURE_BILINEAR_SAMPLINGMODE=2,t.TEXTURE_LINEAR_LINEAR=2,t.TEXTURE_TRILINEAR_SAMPLINGMODE=3,t.TEXTURE_LINEAR_LINEAR_MIPLINEAR=3,t.TEXTURE_NEAREST_NEAREST_MIPNEAREST=4,t.TEXTURE_NEAREST_LINEAR_MIPNEAREST=5,t.TEXTURE_NEAREST_LINEAR_MIPLINEAR=6,t.TEXTURE_NEAREST_LINEAR=7,t.TEXTURE_NEAREST_NEAREST_MIPLINEAR=8,t.TEXTURE_LINEAR_NEAREST_MIPNEAREST=9,t.TEXTURE_LINEAR_NEAREST_MIPLINEAR=10,t.TEXTURE_LINEAR_LINEAR_MIPNEAREST=11,t.TEXTURE_LINEAR_NEAREST=12,t.TEXTURE_EXPLICIT_MODE=0,t.TEXTURE_SPHERICAL_MODE=1,t.TEXTURE_PLANAR_MODE=2,t.TEXTURE_CUBIC_MODE=3,t.TEXTURE_PROJECTION_MODE=4,t.TEXTURE_SKYBOX_MODE=5,t.TEXTURE_INVCUBIC_MODE=6,t.TEXTURE_EQUIRECTANGULAR_MODE=7,t.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=8,t.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=9,t.TEXTURE_FILTERING_QUALITY_OFFLINE=4096,t.TEXTURE_FILTERING_QUALITY_HIGH=64,t.TEXTURE_FILTERING_QUALITY_MEDIUM=16,t.TEXTURE_FILTERING_QUALITY_LOW=8,t.SCALEMODE_FLOOR=1,t.SCALEMODE_NEAREST=2,t.SCALEMODE_CEILING=3,t.MATERIAL_TextureDirtyFlag=1,t.MATERIAL_LightDirtyFlag=2,t.MATERIAL_FresnelDirtyFlag=4,t.MATERIAL_AttributesDirtyFlag=8,t.MATERIAL_MiscDirtyFlag=16,t.MATERIAL_PrePassDirtyFlag=32,t.MATERIAL_ImageProcessingDirtyFlag=64,t.MATERIAL_AllDirtyFlag=127,t.MATERIAL_TriangleFillMode=0,t.MATERIAL_WireFrameFillMode=1,t.MATERIAL_PointFillMode=2,t.MATERIAL_PointListDrawMode=3,t.MATERIAL_LineListDrawMode=4,t.MATERIAL_LineLoopDrawMode=5,t.MATERIAL_LineStripDrawMode=6,t.MATERIAL_TriangleStripDrawMode=7,t.MATERIAL_TriangleFanDrawMode=8,t.MATERIAL_ClockWiseSideOrientation=0,t.MATERIAL_CounterClockWiseSideOrientation=1,t.MATERIAL_DIFFUSE_MODEL_E_OREN_NAYAR=0,t.MATERIAL_DIFFUSE_MODEL_BURLEY=1,t.MATERIAL_DIFFUSE_MODEL_LAMBERT=2,t.MATERIAL_DIFFUSE_MODEL_LEGACY=3,t.MATERIAL_DIELECTRIC_SPECULAR_MODEL_GLTF=0,t.MATERIAL_DIELECTRIC_SPECULAR_MODEL_OPENPBR=1,t.MATERIAL_CONDUCTOR_SPECULAR_MODEL_GLTF=0,t.MATERIAL_CONDUCTOR_SPECULAR_MODEL_OPENPBR=1,t.ACTION_NothingTrigger=0,t.ACTION_OnPickTrigger=1,t.ACTION_OnLeftPickTrigger=2,t.ACTION_OnRightPickTrigger=3,t.ACTION_OnCenterPickTrigger=4,t.ACTION_OnPickDownTrigger=5,t.ACTION_OnDoublePickTrigger=6,t.ACTION_OnPickUpTrigger=7,t.ACTION_OnPickOutTrigger=16,t.ACTION_OnLongPressTrigger=8,t.ACTION_OnPointerOverTrigger=9,t.ACTION_OnPointerOutTrigger=10,t.ACTION_OnEveryFrameTrigger=11,t.ACTION_OnIntersectionEnterTrigger=12,t.ACTION_OnIntersectionExitTrigger=13,t.ACTION_OnKeyDownTrigger=14,t.ACTION_OnKeyUpTrigger=15,t.PARTICLES_BILLBOARDMODE_Y=2,t.PARTICLES_BILLBOARDMODE_ALL=7,t.PARTICLES_BILLBOARDMODE_STRETCHED=8,t.PARTICLES_BILLBOARDMODE_STRETCHED_LOCAL=9,t.MESHES_CULLINGSTRATEGY_STANDARD=0,t.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY=1,t.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION=2,t.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY=3,t.SCENELOADER_NO_LOGGING=0,t.SCENELOADER_MINIMAL_LOGGING=1,t.SCENELOADER_SUMMARY_LOGGING=2,t.SCENELOADER_DETAILED_LOGGING=3,t.PREPASS_IRRADIANCE_LEGACY_TEXTURE_TYPE=0,t.PREPASS_POSITION_TEXTURE_TYPE=1,t.PREPASS_VELOCITY_TEXTURE_TYPE=2,t.PREPASS_REFLECTIVITY_TEXTURE_TYPE=3,t.PREPASS_COLOR_TEXTURE_TYPE=4,t.PREPASS_DEPTH_TEXTURE_TYPE=5,t.PREPASS_NORMAL_TEXTURE_TYPE=6,t.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE=7,t.PREPASS_WORLD_NORMAL_TEXTURE_TYPE=8,t.PREPASS_LOCAL_POSITION_TEXTURE_TYPE=9,t.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE=10,t.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE=11,t.PREPASS_ALBEDO_TEXTURE_TYPE=12,t.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE=13,t.PREPASS_IRRADIANCE_TEXTURE_TYPE=14,t.BUFFER_CREATIONFLAG_READ=1,t.BUFFER_CREATIONFLAG_WRITE=2,t.BUFFER_CREATIONFLAG_READWRITE=3,t.BUFFER_CREATIONFLAG_UNIFORM=4,t.BUFFER_CREATIONFLAG_VERTEX=8,t.BUFFER_CREATIONFLAG_INDEX=16,t.BUFFER_CREATIONFLAG_STORAGE=32,t.BUFFER_CREATIONFLAG_INDIRECT=64,t.RENDERPASS_MAIN=0,t.INPUT_ALT_KEY=18,t.INPUT_CTRL_KEY=17,t.INPUT_META_KEY1=91,t.INPUT_META_KEY2=92,t.INPUT_META_KEY3=93,t.INPUT_SHIFT_KEY=16,t.SNAPSHOTRENDERING_STANDARD=0,t.SNAPSHOTRENDERING_FAST=1,t.PERSPECTIVE_CAMERA=0,t.ORTHOGRAPHIC_CAMERA=1,t.FOVMODE_VERTICAL_FIXED=0,t.FOVMODE_HORIZONTAL_FIXED=1,t.RIG_MODE_NONE=0,t.RIG_MODE_STEREOSCOPIC_ANAGLYPH=10,t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL=11,t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED=12,t.RIG_MODE_STEREOSCOPIC_OVERUNDER=13,t.RIG_MODE_STEREOSCOPIC_INTERLACED=14,t.RIG_MODE_VR=20,t.RIG_MODE_CUSTOM=22,t.MAX_SUPPORTED_UV_SETS=6,t.GL_ALPHA_EQUATION_ADD=32774,t.GL_ALPHA_EQUATION_MIN=32775,t.GL_ALPHA_EQUATION_MAX=32776,t.GL_ALPHA_EQUATION_SUBTRACT=32778,t.GL_ALPHA_EQUATION_REVERSE_SUBTRACT=32779,t.GL_ALPHA_FUNCTION_SRC=768,t.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR=769,t.GL_ALPHA_FUNCTION_SRC_ALPHA=770,t.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA=771,t.GL_ALPHA_FUNCTION_DST_ALPHA=772,t.GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA=773,t.GL_ALPHA_FUNCTION_DST_COLOR=774,t.GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR=775,t.GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED=776,t.GL_ALPHA_FUNCTION_CONSTANT_COLOR=32769,t.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR=32770,t.GL_ALPHA_FUNCTION_CONSTANT_ALPHA=32771,t.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA=32772,t.GL_ALPHA_FUNCTION_SRC1_COLOR=35065,t.GL_ALPHA_FUNCTION_ONE_MINUS_SRC1_COLOR=35066,t.GL_ALPHA_FUNCTION_SRC1_ALPHA=34185,t.GL_ALPHA_FUNCTION_ONE_MINUS_SRC1_ALPHA=35067,t.SnippetUrl="https://snippet.babylonjs.com",t.FOGMODE_NONE=0,t.FOGMODE_EXP=1,t.FOGMODE_EXP2=2,t.FOGMODE_LINEAR=3,t.BYTE=5120,t.UNSIGNED_BYTE=5121,t.SHORT=5122,t.UNSIGNED_SHORT=5123,t.INT=5124,t.UNSIGNED_INT=5125,t.FLOAT=5126,t.HALF_FLOAT=5131,t.PositionKind="position",t.NormalKind="normal",t.TangentKind="tangent",t.UVKind="uv",t.UV2Kind="uv2",t.UV3Kind="uv3",t.UV4Kind="uv4",t.UV5Kind="uv5",t.UV6Kind="uv6",t.ColorKind="color",t.ColorInstanceKind="instanceColor",t.MatricesIndicesKind="matricesIndices",t.MatricesWeightsKind="matricesWeights",t.MatricesIndicesExtraKind="matricesIndicesExtra",t.MatricesWeightsExtraKind="matricesWeightsExtra",t.ANIMATIONTYPE_FLOAT=0,t.ANIMATIONTYPE_VECTOR3=1,t.ANIMATIONTYPE_QUATERNION=2,t.ANIMATIONTYPE_MATRIX=3,t.ANIMATIONTYPE_COLOR3=4,t.ANIMATIONTYPE_COLOR4=7,t.ANIMATIONTYPE_VECTOR2=5,t.ANIMATIONTYPE_SIZE=6,t.ShadowMinZ=0,t.ShadowMaxZ=1e4,t.OUTLINELAYER_SAMPLING_TRIDIRECTIONAL=0,t.OUTLINELAYER_SAMPLING_OCTADIRECTIONAL=1;class i{constructor(){this.hoverCursor="",this.actions=[],this.isRecursive=!1,this.disposeWhenUnowned=!0}static get HasTriggers(){for(const e in i.Triggers)if(Object.prototype.hasOwnProperty.call(i.Triggers,e))return!0;return!1}static get HasPickTriggers(){for(const e in i.Triggers)if(Object.prototype.hasOwnProperty.call(i.Triggers,e)){const i=parseInt(e);if(i>=t.ACTION_OnPickTrigger&&i<=t.ACTION_OnPickUpTrigger)return!0}return!1}static HasSpecificTrigger(e){for(const t in i.Triggers)if(Object.prototype.hasOwnProperty.call(i.Triggers,t)&&parseInt(t)===e)return!0;return!1}}i.Triggers={};const n="undefined"!=typeof WeakRef;class r{constructor(e,t=!1,i,n){this.initialize(e,t,i,n)}initialize(e,t=!1,i,n){return this.mask=e,this.skipNextObservers=t,this.target=i,this.currentTarget=n,this}}class s{constructor(e,t,i=null){this.callback=e,this.mask=t,this.scope=i,this._willBeUnregistered=!1,this.unregisterOnNextCall=!1,this._remove=null}remove(e=!1){this._remove&&this._remove(e)}}class a{static FromPromise(e,t){const i=new a;return e.then(e=>{i.notifyObservers(e)}).catch(e=>{if(!t)throw e;t.notifyObservers(e)}),i}get observers(){return this._observers}constructor(e,t=!1){this.notifyIfTriggered=t,this._observers=new Array,this._numObserversMarkedAsDeleted=0,this._hasNotified=!1,this._eventState=new r(0),e&&(this._onObserverAdded=e)}add(e,t=-1,i=!1,r=null,a=!1){if(!e)return null;const o=new s(e,t,r);o.unregisterOnNextCall=a,i?this._observers.unshift(o):this._observers.push(o),this._onObserverAdded&&this._onObserverAdded(o),this._hasNotified&&this.notifyIfTriggered&&void 0!==this._lastNotifiedValue&&this.notifyObserver(o,this._lastNotifiedValue);const l=n?new WeakRef(this):{deref:()=>this};return o._remove=(e=!1)=>{const t=l.deref();t&&(e?t.remove(o):t._remove(o))},o}addOnce(e){return this.add(e,void 0,void 0,void 0,!0)}remove(e){return!!e&&(e._remove=null,-1!==this._observers.indexOf(e)&&(this._deferUnregister(e),!0))}removeCallback(e,t){for(let i=0;i<this._observers.length;i++){const n=this._observers[i];if(!(n._willBeUnregistered||n.callback!==e||t&&t!==n.scope))return this._deferUnregister(n),!0}return!1}_deferUnregister(e){e._willBeUnregistered||(this._numObserversMarkedAsDeleted++,e.unregisterOnNextCall=!1,e._willBeUnregistered=!0,setTimeout(()=>{this._remove(e)},0))}_remove(e,t=!0){if(!e)return!1;const i=this._observers.indexOf(e);return-1!==i&&(t&&this._numObserversMarkedAsDeleted--,this._observers.splice(i,1),!0)}makeObserverTopPriority(e){this._remove(e,!1),this._observers.unshift(e)}makeObserverBottomPriority(e){this._remove(e,!1),this._observers.push(e)}notifyObservers(e,t=-1,i,n,r){if(this.notifyIfTriggered&&(this._hasNotified=!0,this._lastNotifiedValue=e),!this._observers.length)return!0;const s=this._eventState;s.mask=t,s.target=i,s.currentTarget=n,s.skipNextObservers=!1,s.lastReturnValue=e,s.userInfo=r;for(const i of this._observers)if(!i._willBeUnregistered&&(i.mask&t&&(i.unregisterOnNextCall&&this._deferUnregister(i),i.scope?s.lastReturnValue=i.callback.apply(i.scope,[e,s]):s.lastReturnValue=i.callback(e,s)),s.skipNextObservers))return!1;return!0}notifyObserver(e,t,i=-1){if(this.notifyIfTriggered&&(this._hasNotified=!0,this._lastNotifiedValue=t),e._willBeUnregistered)return;const n=this._eventState;n.mask=i,n.skipNextObservers=!1,e.unregisterOnNextCall&&this._deferUnregister(e),e.callback(t,n)}hasObservers(){return this._observers.length-this._numObserversMarkedAsDeleted>0}clear(){for(;this._observers.length;){const e=this._observers.pop();e&&(e._remove=null)}this._onObserverAdded=null,this._numObserversMarkedAsDeleted=0,this.cleanLastNotifiedState()}cleanLastNotifiedState(){this._hasNotified=!1,this._lastNotifiedValue=void 0}clone(){const e=new a;return e._observers=this._observers.slice(0),e}hasSpecificMask(e=-1){for(const t of this._observers)if(t.mask&e||t.mask===e)return!0;return!1}}const o=1/2.2,l=2.2,c=(1+Math.sqrt(5))/2;let h=.001;function u(e,t){const i=[];for(let n=0;n<e;++n)i.push(t());return i}function d(e,t){return u(e,t)}const f=["push","splice","pop","shift","unshift"];function p(e,t){const i=f.map(i=>function(e,t,i){const n=e[t];if("function"!=typeof n)return null;const r=function(){const n=e.length,s=r.previous.apply(e,arguments);return i(t,n),s};return n.next=r,r.previous=n,e[t]=r,()=>{const i=r.previous;if(!i)return;const n=r.next;n?(i.next=n,n.previous=i):(i.next=void 0,e[t]=i),r.next=void 0,r.previous=void 0}}(e,i,t));return()=>{for(const e of i)null==e||e()}}class m{static SetMatrixPrecision(e){if(m.MatrixTrackPrecisionChange=!1,e&&!m.MatrixUse64Bits&&m.MatrixTrackedMatrices)for(let e=0;e<m.MatrixTrackedMatrices.length;++e){const t=m.MatrixTrackedMatrices[e],i=t._m;t._m=new Array(16);for(let e=0;e<16;++e)t._m[e]=i[e]}m.MatrixUse64Bits=e,m.MatrixCurrentType=m.MatrixUse64Bits?Array:Float32Array,m.MatrixTrackedMatrices=null}}m.MatrixUse64Bits=!1,m.MatrixTrackPrecisionChange=!0,m.MatrixCurrentType=Float32Array,m.MatrixTrackedMatrices=[];class _{static get LastCreatedEngine(){return 0===this.Instances.length?null:this.Instances[this.Instances.length-1]}static get LastCreatedScene(){return this._LastCreatedScene}}function g(e){return parseInt(e.toString().replace(/\W/g,""))}function v(e,t,i=1401298e-51){return Math.abs(e-t)<=i}function T(e,t,i,n=1401298e-51){return e<t-n||e>i+n}function S(e,t){return e===t?e:Math.random()*(t-e)+e}function E(e,t,i){return e+(t-e)*i}function x(e,t,i){let n=M(t-e,360);return n>180&&(n-=360),e+n*C(i)}function y(e,t,i){let n;return n=e!=t?C((i-e)/(t-e)):0,n}function b(e,t,i,n,r){const s=r*r,a=r*s;return e*(2*a-3*s+1)+i*(-2*a+3*s)+t*(a-2*s+r)+n*(a-s)}function R(e,t,i,n,r){const s=r*r;return 6*(s-r)*e+(3*s-4*r+1)*t+6*(-s+r)*i+(3*s-2*r)*n}function C(e,t=0,i=1){return Math.min(i,Math.max(t,e))}function A(e){return e-2*Math.PI*Math.floor((e+Math.PI)/(2*Math.PI))}function P(e){const t=e.toString(16);return e<=15?("0"+t).toUpperCase():t.toUpperCase()}function I(e){if(Math.log2)return Math.floor(Math.log2(e));if(e<0)return NaN;if(0===e)return-1/0;let t=0;if(e<1){for(;e<1;)t++,e*=2;t=-t}else if(e>1)for(;e>1;)t++,e=Math.floor(e/2);return t}function M(e,t){return e-Math.floor(e/t)*t}function O(e,t,i){return(e-t)/(i-t)}function D(e,t,i){return e*(i-t)+t}function N(e,t){let i=M(t-e,360);return i>180&&(i-=360),i}function F(e,t){const i=M(e,2*t);return t-Math.abs(i-t)}function L(e,t,i){let n=C(i);return n=-2*n*n*n+3*n*n,t*n+e*(1-n)}function B(e,t,i){let n;return n=Math.abs(t-e)<=i?t:e+Math.sign(t-e)*i,n}function w(e,t,i){const n=N(e,t);let r;return r=-i<n&&n<i?t:B(e,t=e+n,i),r}function k(e,t,i){return(e-t)/(i-t)}function G(e,t,i){return(i-t)*e+t}function U(e,t){const i=e%t;return 0===i?t:U(t,i)}_.Instances=[],_.OnEnginesDisposedObservable=new a,_._LastCreatedScene=null,_.UseFallbackTexture=!0,_.FallbackTexture="";var V={__proto__:null,Clamp:C,DeltaAngle:N,Denormalize:D,ExtractAsInt:g,Hermite:b,Hermite1stDerivative:R,HighestCommonFactor:U,ILog2:I,InverseLerp:y,Lerp:E,LerpAngle:x,MoveTowards:B,MoveTowardsAngle:w,Normalize:O,NormalizeRadians:A,OutsideRange:T,PercentToRange:G,PingPong:F,RandomRange:S,RangeToPercent:k,Repeat:M,SmoothStep:L,ToHex:P,WithinEpsilon:v};class z{}function W(e,t,i,n,r,s,a,o,l,c,h,u,d,f,p,m,_){const g=e.asArray();g[0]=t,g[1]=i,g[2]=n,g[3]=r,g[4]=s,g[5]=a,g[6]=o,g[7]=l,g[8]=c,g[9]=h,g[10]=u,g[11]=d,g[12]=f,g[13]=p,g[14]=m,g[15]=_,H(e)}function H(e){e.updateFlag=z._UpdateFlagSeed++}function X(e){W(e,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)}function Y(e,t,i,n){W(n,1,0,0,0,0,1,0,0,0,0,1,0,e,t,i,1)}function j(e,t,i,n){W(n,e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1)}function $(e,t,i,n=0){const r=e.asArray(),s=t.asArray(),a=r[0],o=r[1],l=r[2],c=r[3],h=r[4],u=r[5],d=r[6],f=r[7],p=r[8],m=r[9],_=r[10],g=r[11],v=r[12],T=r[13],S=r[14],E=r[15],x=s[0],y=s[1],b=s[2],R=s[3],C=s[4],A=s[5],P=s[6],I=s[7],M=s[8],O=s[9],D=s[10],N=s[11],F=s[12],L=s[13],B=s[14],w=s[15];i[n]=a*x+o*C+l*M+c*F,i[n+1]=a*y+o*A+l*O+c*L,i[n+2]=a*b+o*P+l*D+c*B,i[n+3]=a*R+o*I+l*N+c*w,i[n+4]=h*x+u*C+d*M+f*F,i[n+5]=h*y+u*A+d*O+f*L,i[n+6]=h*b+u*P+d*D+f*B,i[n+7]=h*R+u*I+d*N+f*w,i[n+8]=p*x+m*C+_*M+g*F,i[n+9]=p*y+m*A+_*O+g*L,i[n+10]=p*b+m*P+_*D+g*B,i[n+11]=p*R+m*I+_*N+g*w,i[n+12]=v*x+T*C+S*M+E*F,i[n+13]=v*y+T*A+S*O+E*L,i[n+14]=v*b+T*P+S*D+E*B,i[n+15]=v*R+T*I+S*N+E*w}function q(e,t,i,n=0){$(e,t,i.asArray(),n),H(i)}function K(e,t){Z(e,t.asArray()),H(t)}function Z(e,t,i=0){const n=e.asArray();t[i]=n[0],t[i+1]=n[1],t[i+2]=n[2],t[i+3]=n[3],t[i+4]=n[4],t[i+5]=n[5],t[i+6]=n[6],t[i+7]=n[7],t[i+8]=n[8],t[i+9]=n[9],t[i+10]=n[10],t[i+11]=n[11],t[i+12]=n[12],t[i+13]=n[13],t[i+14]=n[14],t[i+15]=n[15]}function Q(e,t){const i=J(e,t.asArray());return i&&H(t),i}function J(e,t){const i=e.asArray(),n=i[0],r=i[1],s=i[2],a=i[3],o=i[4],l=i[5],c=i[6],h=i[7],u=i[8],d=i[9],f=i[10],p=i[11],m=i[12],_=i[13],g=i[14],v=i[15],T=f*v-g*p,S=d*v-_*p,E=d*g-_*f,x=u*v-m*p,y=u*g-f*m,b=u*_-m*d,R=+(l*T-c*S+h*E),C=-(o*T-c*x+h*y),A=+(o*S-l*x+h*b),P=-(o*E-l*y+c*b),I=n*R+r*C+s*A+a*P;if(0===I)return!1;const M=1/I,O=c*v-g*h,D=l*v-_*h,N=l*g-_*c,F=o*v-m*h,L=o*g-m*c,B=o*_-m*l,w=c*p-f*h,k=l*p-d*h,G=l*f-d*c,U=o*p-u*h,V=o*f-u*c,z=o*d-u*l,W=-(r*T-s*S+a*E),H=+(n*T-s*x+a*y),X=-(n*S-r*x+a*b),Y=+(n*E-r*y+s*b),j=+(r*O-s*D+a*N),$=-(n*O-s*F+a*L),q=+(n*D-r*F+a*B),K=-(n*N-r*L+s*B),Z=-(r*w-s*k+a*G),Q=+(n*w-s*U+a*V),J=-(n*k-r*U+a*z),ee=+(n*G-r*V+s*z);return t[0]=R*M,t[1]=W*M,t[2]=j*M,t[3]=Z*M,t[4]=C*M,t[5]=H*M,t[6]=$*M,t[7]=Q*M,t[8]=A*M,t[9]=X*M,t[10]=q*M,t[11]=J*M,t[12]=P*M,t[13]=Y*M,t[14]=K*M,t[15]=ee*M,!0}z._UpdateFlagSeed=0;const ee={};function te(e,t){ee[e]=t}function ie(e){return ee[e]}function ne(e){for(const t in ee)if(e instanceof ee[t]&&!t.includes("Abstract"))return t;return"Unknown"}const re=e=>parseInt(e.toString().replace(/\W/g,""));class se{constructor(e=0,t=0){this.x=e,this.y=t}toString(){return`{X: ${this.x} Y: ${this.y}}`}getClassName(){return"Vector2"}getHashCode(){let e=re(this.x);return e=397*e^re(this.y),e}toArray(e,t=0){return e[t]=this.x,e[t+1]=this.y,this}fromArray(e,t=0){return se.FromArrayToRef(e,t,this),this}asArray(){return[this.x,this.y]}copyFrom(e){return this.x=e.x,this.y=e.y,this}copyFromFloats(e,t){return this.x=e,this.y=t,this}set(e,t){return this.copyFromFloats(e,t)}setAll(e){return this.copyFromFloats(e,e)}add(e){return new se(this.x+e.x,this.y+e.y)}addToRef(e,t){return t.x=this.x+e.x,t.y=this.y+e.y,t}addInPlace(e){return this.x+=e.x,this.y+=e.y,this}addInPlaceFromFloats(e,t){return this.x+=e,this.y+=t,this}addVector3(e){return new se(this.x+e.x,this.y+e.y)}subtract(e){return new se(this.x-e.x,this.y-e.y)}subtractToRef(e,t){return t.x=this.x-e.x,t.y=this.y-e.y,t}subtractInPlace(e){return this.x-=e.x,this.y-=e.y,this}multiplyInPlace(e){return this.x*=e.x,this.y*=e.y,this}multiply(e){return new se(this.x*e.x,this.y*e.y)}multiplyToRef(e,t){return t.x=this.x*e.x,t.y=this.y*e.y,t}multiplyByFloats(e,t){return new se(this.x*e,this.y*t)}divide(e){return new se(this.x/e.x,this.y/e.y)}divideToRef(e,t){return t.x=this.x/e.x,t.y=this.y/e.y,t}divideInPlace(e){return this.x=this.x/e.x,this.y=this.y/e.y,this}minimizeInPlace(e){return this.minimizeInPlaceFromFloats(e.x,e.y)}maximizeInPlace(e){return this.maximizeInPlaceFromFloats(e.x,e.y)}minimizeInPlaceFromFloats(e,t){return this.x=Math.min(e,this.x),this.y=Math.min(t,this.y),this}maximizeInPlaceFromFloats(e,t){return this.x=Math.max(e,this.x),this.y=Math.max(t,this.y),this}subtractFromFloats(e,t){return new se(this.x-e,this.y-t)}subtractFromFloatsToRef(e,t,i){return i.x=this.x-e,i.y=this.y-t,i}negate(){return new se(-this.x,-this.y)}negateInPlace(){return this.x*=-1,this.y*=-1,this}negateToRef(e){return e.x=-this.x,e.y=-this.y,e}scaleInPlace(e){return this.x*=e,this.y*=e,this}scale(e){return new se(this.x*e,this.y*e)}scaleToRef(e,t){return t.x=this.x*e,t.y=this.y*e,t}scaleAndAddToRef(e,t){return t.x+=this.x*e,t.y+=this.y*e,t}equals(e){return e&&this.x===e.x&&this.y===e.y}equalsWithEpsilon(e,t=.001){return e&&v(this.x,e.x,t)&&v(this.y,e.y,t)}equalsToFloats(e,t){return this.x===e&&this.y===t}floor(){return new se(Math.floor(this.x),Math.floor(this.y))}floorToRef(e){return e.x=Math.floor(this.x),e.y=Math.floor(this.y),e}fract(){return new se(this.x-Math.floor(this.x),this.y-Math.floor(this.y))}fractToRef(e){return e.x=this.x-Math.floor(this.x),e.y=this.y-Math.floor(this.y),e}rotate(e){return this.rotateToRef(e,new se)}rotateToRef(e,t){const i=Math.cos(e),n=Math.sin(e);return t.x=i*this.x-n*this.y,t.y=n*this.x+i*this.y,t}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}lengthSquared(){return this.x*this.x+this.y*this.y}normalize(){return this.normalizeFromLength(this.length())}normalizeFromLength(e){return 0===e||1===e?this:this.scaleInPlace(1/e)}normalizeToNew(){const e=new se;return this.normalizeToRef(e),e}normalizeToRef(e){const t=this.length();return 0===t&&(e.x=this.x,e.y=this.y),this.scaleToRef(1/t,e)}clone(){return new se(this.x,this.y)}dot(e){return this.x*e.x+this.y*e.y}static Zero(){return new se(0,0)}static One(){return new se(1,1)}static Random(e=0,t=1){return new se(S(e,t),S(e,t))}static RandomToRef(e=0,t=1,i){return i.copyFromFloats(S(e,t),S(e,t))}static get ZeroReadOnly(){return se._ZeroReadOnly}static FromArray(e,t=0){return new se(e[t],e[t+1])}static FromArrayToRef(e,t,i){return i.x=e[t],i.y=e[t+1],i}static FromFloatsToRef(e,t,i){return i.copyFromFloats(e,t),i}static CatmullRom(e,t,i,n,r){const s=r*r,a=r*s,o=.5*(2*t.x+(-e.x+i.x)*r+(2*e.x-5*t.x+4*i.x-n.x)*s+(-e.x+3*t.x-3*i.x+n.x)*a),l=.5*(2*t.y+(-e.y+i.y)*r+(2*e.y-5*t.y+4*i.y-n.y)*s+(-e.y+3*t.y-3*i.y+n.y)*a);return new se(o,l)}static ClampToRef(e,t,i,n){return n.x=C(e.x,t.x,i.x),n.y=C(e.y,t.y,i.y),n}static Clamp(e,t,i){const n=C(e.x,t.x,i.x),r=C(e.y,t.y,i.y);return new se(n,r)}static Hermite(e,t,i,n,r){const s=r*r,a=r*s,o=2*a-3*s+1,l=-2*a+3*s,c=a-2*s+r,h=a-s,u=e.x*o+i.x*l+t.x*c+n.x*h,d=e.y*o+i.y*l+t.y*c+n.y*h;return new se(u,d)}static Hermite1stDerivative(e,t,i,n,r){return this.Hermite1stDerivativeToRef(e,t,i,n,r,new se)}static Hermite1stDerivativeToRef(e,t,i,n,r,s){const a=r*r;return s.x=6*(a-r)*e.x+(3*a-4*r+1)*t.x+6*(-a+r)*i.x+(3*a-2*r)*n.x,s.y=6*(a-r)*e.y+(3*a-4*r+1)*t.y+6*(-a+r)*i.y+(3*a-2*r)*n.y,s}static Lerp(e,t,i){return se.LerpToRef(e,t,i,new se)}static LerpToRef(e,t,i,n){return n.x=e.x+(t.x-e.x)*i,n.y=e.y+(t.y-e.y)*i,n}static Dot(e,t){return e.x*t.x+e.y*t.y}static Normalize(e){return se.NormalizeToRef(e,new se)}static NormalizeToRef(e,t){return e.normalizeToRef(t),t}static Minimize(e,t){const i=e.x<t.x?e.x:t.x,n=e.y<t.y?e.y:t.y;return new se(i,n)}static Maximize(e,t){const i=e.x>t.x?e.x:t.x,n=e.y>t.y?e.y:t.y;return new se(i,n)}static Transform(e,t){return se.TransformToRef(e,t,new se)}static TransformToRef(e,t,i){const n=t.m,r=e.x*n[0]+e.y*n[4]+n[12],s=e.x*n[1]+e.y*n[5]+n[13];return i.x=r,i.y=s,i}static PointInTriangle(e,t,i,n){const r=.5*(-i.y*n.x+t.y*(-i.x+n.x)+t.x*(i.y-n.y)+i.x*n.y),s=r<0?-1:1,a=(t.y*n.x-t.x*n.y+(n.y-t.y)*e.x+(t.x-n.x)*e.y)*s,o=(t.x*i.y-t.y*i.x+(t.y-i.y)*e.x+(i.x-t.x)*e.y)*s;return a>0&&o>0&&a+o<2*r*s}static Distance(e,t){return Math.sqrt(se.DistanceSquared(e,t))}static DistanceSquared(e,t){const i=e.x-t.x,n=e.y-t.y;return i*i+n*n}static Center(e,t){return se.CenterToRef(e,t,new se)}static CenterToRef(e,t,i){return i.copyFromFloats((e.x+t.x)/2,(e.y+t.y)/2)}static DistanceOfPointFromSegment(e,t,i){const n=se.DistanceSquared(t,i);if(0===n)return se.Distance(e,t);const r=i.subtract(t),s=Math.max(0,Math.min(1,se.Dot(e.subtract(t),r)/n)),a=t.add(r.multiplyByFloats(s,s));return se.Distance(e,a)}}se._V8PerformanceHack=new se(.5,.5),se._ZeroReadOnly=se.Zero();class ae{get x(){return this._x}set x(e){this._x=e,this._isDirty=!0}get y(){return this._y}set y(e){this._y=e,this._isDirty=!0}get z(){return this._z}set z(e){this._z=e,this._isDirty=!0}constructor(e=0,t=0,i=0){this._isDirty=!0,this._x=e,this._y=t,this._z=i}toString(){return`{X: ${this._x} Y: ${this._y} Z: ${this._z}}`}getClassName(){return"Vector3"}getHashCode(){let e=re(this._x);return e=397*e^re(this._y),e=397*e^re(this._z),e}asArray(){return[this._x,this._y,this._z]}toArray(e,t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,this}fromArray(e,t=0){return ae.FromArrayToRef(e,t,this),this}toQuaternion(){return le.RotationYawPitchRoll(this._y,this._x,this._z)}addInPlace(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._isDirty=!0,this}addInPlaceFromFloats(e,t,i){return this._x+=e,this._y+=t,this._z+=i,this._isDirty=!0,this}add(e){return new ae(this._x+e._x,this._y+e._y,this._z+e._z)}addToRef(e,t){return t._x=this._x+e._x,t._y=this._y+e._y,t._z=this._z+e._z,t._isDirty=!0,t}subtractInPlace(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._isDirty=!0,this}subtract(e){return new ae(this._x-e._x,this._y-e._y,this._z-e._z)}subtractToRef(e,t){return this.subtractFromFloatsToRef(e._x,e._y,e._z,t)}subtractFromFloats(e,t,i){return new ae(this._x-e,this._y-t,this._z-i)}subtractFromFloatsToRef(e,t,i,n){return n._x=this._x-e,n._y=this._y-t,n._z=this._z-i,n._isDirty=!0,n}negate(){return new ae(-this._x,-this._y,-this._z)}negateInPlace(){return this._x*=-1,this._y*=-1,this._z*=-1,this._isDirty=!0,this}negateToRef(e){return e._x=-1*this._x,e._y=-1*this._y,e._z=-1*this._z,e._isDirty=!0,e}scaleInPlace(e){return this._x*=e,this._y*=e,this._z*=e,this._isDirty=!0,this}scale(e){return new ae(this._x*e,this._y*e,this._z*e)}scaleToRef(e,t){return t._x=this._x*e,t._y=this._y*e,t._z=this._z*e,t._isDirty=!0,t}getNormalToRef(e){const t=this.length();let i=Math.acos(this._y/t);const n=Math.atan2(this._z,this._x);i>Math.PI/2?i-=Math.PI/2:i+=Math.PI/2;const r=t*Math.sin(i)*Math.cos(n),s=t*Math.cos(i),a=t*Math.sin(i)*Math.sin(n);return e.set(r,s,a),e}applyRotationQuaternionToRef(e,t){const i=this._x,n=this._y,r=this._z,s=e._x,a=e._y,o=e._z,l=e._w,c=2*(a*r-o*n),h=2*(o*i-s*r),u=2*(s*n-a*i);return t._x=i+l*c+a*u-o*h,t._y=n+l*h+o*c-s*u,t._z=r+l*u+s*h-a*c,t._isDirty=!0,t}applyRotationQuaternionInPlace(e){return this.applyRotationQuaternionToRef(e,this)}applyRotationQuaternion(e){return this.applyRotationQuaternionToRef(e,new ae)}scaleAndAddToRef(e,t){return t._x+=this._x*e,t._y+=this._y*e,t._z+=this._z*e,t._isDirty=!0,t}projectOnPlane(e,t){return this.projectOnPlaneToRef(e,t,new ae)}projectOnPlaneToRef(e,t,i){const n=e.normal,r=e.d,s=he.Vector3[0];this.subtractToRef(t,s),s.normalize();const a=ae.Dot(s,n);if(Math.abs(a)<1e-10)i.setAll(1/0);else{const e=-(ae.Dot(t,n)+r)/a,o=s.scaleInPlace(e);t.addToRef(o,i)}return i}equals(e){return e&&this._x===e._x&&this._y===e._y&&this._z===e._z}equalsWithEpsilon(e,t=.001){return e&&v(this._x,e._x,t)&&v(this._y,e._y,t)&&v(this._z,e._z,t)}equalsToFloats(e,t,i){return this._x===e&&this._y===t&&this._z===i}multiplyInPlace(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._isDirty=!0,this}multiply(e){return this.multiplyByFloats(e._x,e._y,e._z)}multiplyToRef(e,t){return t._x=this._x*e._x,t._y=this._y*e._y,t._z=this._z*e._z,t._isDirty=!0,t}multiplyByFloats(e,t,i){return new ae(this._x*e,this._y*t,this._z*i)}divide(e){return new ae(this._x/e._x,this._y/e._y,this._z/e._z)}divideToRef(e,t){return t._x=this._x/e._x,t._y=this._y/e._y,t._z=this._z/e._z,t._isDirty=!0,t}divideInPlace(e){return this._x=this._x/e._x,this._y=this._y/e._y,this._z=this._z/e._z,this._isDirty=!0,this}minimizeInPlace(e){return this.minimizeInPlaceFromFloats(e._x,e._y,e._z)}maximizeInPlace(e){return this.maximizeInPlaceFromFloats(e._x,e._y,e._z)}minimizeInPlaceFromFloats(e,t,i){return e<this._x&&(this.x=e),t<this._y&&(this.y=t),i<this._z&&(this.z=i),this}maximizeInPlaceFromFloats(e,t,i){return e>this._x&&(this.x=e),t>this._y&&(this.y=t),i>this._z&&(this.z=i),this}isNonUniformWithinEpsilon(e){const t=Math.abs(this._x),i=Math.abs(this._y);if(!v(t,i,e))return!0;const n=Math.abs(this._z);return!v(t,n,e)||!v(i,n,e)}get isNonUniform(){const e=Math.abs(this._x);return e!==Math.abs(this._y)||e!==Math.abs(this._z)}floorToRef(e){return e._x=Math.floor(this._x),e._y=Math.floor(this._y),e._z=Math.floor(this._z),e._isDirty=!0,e}floor(){return new ae(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z))}fractToRef(e){return e._x=this._x-Math.floor(this._x),e._y=this._y-Math.floor(this._y),e._z=this._z-Math.floor(this._z),e._isDirty=!0,e}fract(){return new ae(this._x-Math.floor(this._x),this._y-Math.floor(this._y),this._z-Math.floor(this._z))}length(){return Math.sqrt(this.lengthSquared())}lengthSquared(){return this._x*this._x+this._y*this._y+this._z*this._z}get hasAZeroComponent(){return this._x*this._y*this._z===0}normalize(){return this.normalizeFromLength(this.length())}reorderInPlace(e){if("xyz"===(e=e.toLowerCase()))return this;const t=he.Vector3[0].copyFrom(this);return this.x=t[e[0]],this.y=t[e[1]],this.z=t[e[2]],this}rotateByQuaternionToRef(e,t){return e.toRotationMatrix(he.Matrix[0]),ae.TransformCoordinatesToRef(this,he.Matrix[0],t),t}rotateByQuaternionAroundPointToRef(e,t,i){return this.subtractToRef(t,he.Vector3[0]),he.Vector3[0].rotateByQuaternionToRef(e,he.Vector3[0]),t.addToRef(he.Vector3[0],i),i}cross(e){return ae.CrossToRef(this,e,new ae)}normalizeFromLength(e){return 0===e||1===e?this:this.scaleInPlace(1/e)}normalizeToNew(){return this.normalizeToRef(new ae)}normalizeToRef(e){const t=this.length();return 0===t||1===t?(e._x=this._x,e._y=this._y,e._z=this._z,e._isDirty=!0,e):this.scaleToRef(1/t,e)}clone(){return new ae(this._x,this._y,this._z)}copyFrom(e){return this.copyFromFloats(e._x,e._y,e._z)}copyFromFloats(e,t,i){return this._x=e,this._y=t,this._z=i,this._isDirty=!0,this}set(e,t,i){return this.copyFromFloats(e,t,i)}setAll(e){return this._x=this._y=this._z=e,this._isDirty=!0,this}static GetClipFactor(e,t,i,n){const r=ae.Dot(e,i);return(r-n)/(r-ae.Dot(t,i))}static GetAngleBetweenVectors(e,t,i){const n=e.normalizeToRef(he.Vector3[1]),r=t.normalizeToRef(he.Vector3[2]);let s=ae.Dot(n,r);s=C(s,-1,1);const a=Math.acos(s),o=he.Vector3[3];return ae.CrossToRef(n,r,o),ae.Dot(o,i)>0?isNaN(a)?0:a:isNaN(a)?-Math.PI:-Math.acos(s)}static GetAngleBetweenVectorsOnPlane(e,t,i){he.Vector3[0].copyFrom(e);const n=he.Vector3[0];he.Vector3[1].copyFrom(t);const r=he.Vector3[1];he.Vector3[2].copyFrom(i);const s=he.Vector3[2],a=he.Vector3[3],o=he.Vector3[4];return n.normalize(),r.normalize(),s.normalize(),ae.CrossToRef(s,n,a),ae.CrossToRef(a,s,o),A(Math.atan2(ae.Dot(r,a),ae.Dot(r,o)))}static PitchYawRollToMoveBetweenPointsToRef(e,t,i){const n=ue.Vector3[0];return t.subtractToRef(e,n),i._y=Math.atan2(n.x,n.z)||0,i._x=Math.atan2(Math.sqrt(Math.pow(n.x,2)+Math.pow(n.z,2)),n.y)||0,i._z=0,i._isDirty=!0,i}static PitchYawRollToMoveBetweenPoints(e,t){const i=ae.Zero();return ae.PitchYawRollToMoveBetweenPointsToRef(e,t,i)}static SlerpToRef(e,t,i,n){i=C(i,0,1);const r=he.Vector3[0],s=he.Vector3[1];r.copyFrom(e);const a=r.length();r.normalizeFromLength(a),s.copyFrom(t);const o=s.length();s.normalizeFromLength(o);const l=ae.Dot(r,s);let c,h;if(l<.999){const e=Math.acos(l),t=1/Math.sin(e);c=Math.sin((1-i)*e)*t,h=Math.sin(i*e)*t}else c=1-i,h=i;return r.scaleInPlace(c),s.scaleInPlace(h),n.copyFrom(r).addInPlace(s),n.scaleInPlace(E(a,o,i)),n}static SmoothToRef(e,t,i,n,r){return ae.SlerpToRef(e,t,0===n?1:i/n,r),r}static FromArray(e,t=0){return new ae(e[t],e[t+1],e[t+2])}static FromFloatArray(e,t){return ae.FromArray(e,t)}static FromArrayToRef(e,t,i){return i._x=e[t],i._y=e[t+1],i._z=e[t+2],i._isDirty=!0,i}static FromFloatArrayToRef(e,t,i){return ae.FromArrayToRef(e,t,i)}static FromFloatsToRef(e,t,i,n){return n.copyFromFloats(e,t,i),n}static Zero(){return new ae(0,0,0)}static One(){return new ae(1,1,1)}static Up(){return new ae(0,1,0)}static get UpReadOnly(){return ae._UpReadOnly}static get DownReadOnly(){return ae._DownReadOnly}static get RightReadOnly(){return ae._RightReadOnly}static get LeftReadOnly(){return ae._LeftReadOnly}static get LeftHandedForwardReadOnly(){return ae._LeftHandedForwardReadOnly}static get RightHandedForwardReadOnly(){return ae._RightHandedForwardReadOnly}static get LeftHandedBackwardReadOnly(){return ae._LeftHandedBackwardReadOnly}static get RightHandedBackwardReadOnly(){return ae._RightHandedBackwardReadOnly}static get ZeroReadOnly(){return ae._ZeroReadOnly}static get OneReadOnly(){return ae._OneReadOnly}static Down(){return new ae(0,-1,0)}static Forward(e=!1){return new ae(0,0,e?-1:1)}static Backward(e=!1){return new ae(0,0,e?1:-1)}static Right(){return new ae(1,0,0)}static Left(){return new ae(-1,0,0)}static Random(e=0,t=1){return new ae(S(e,t),S(e,t),S(e,t))}static RandomToRef(e=0,t=1,i){return i.copyFromFloats(S(e,t),S(e,t),S(e,t))}static TransformCoordinates(e,t){const i=ae.Zero();return ae.TransformCoordinatesToRef(e,t,i),i}static TransformCoordinatesToRef(e,t,i){return ae.TransformCoordinatesFromFloatsToRef(e._x,e._y,e._z,t,i),i}static TransformCoordinatesFromFloatsToRef(e,t,i,n,r){const s=n.m,a=e*s[0]+t*s[4]+i*s[8]+s[12],o=e*s[1]+t*s[5]+i*s[9]+s[13],l=e*s[2]+t*s[6]+i*s[10]+s[14],c=1/(e*s[3]+t*s[7]+i*s[11]+s[15]);return r._x=a*c,r._y=o*c,r._z=l*c,r._isDirty=!0,r}static TransformNormal(e,t){const i=ae.Zero();return ae.TransformNormalToRef(e,t,i),i}static TransformNormalToRef(e,t,i){return this.TransformNormalFromFloatsToRef(e._x,e._y,e._z,t,i),i}static TransformNormalFromFloatsToRef(e,t,i,n,r){const s=n.m;return r._x=e*s[0]+t*s[4]+i*s[8],r._y=e*s[1]+t*s[5]+i*s[9],r._z=e*s[2]+t*s[6]+i*s[10],r._isDirty=!0,r}static CatmullRom(e,t,i,n,r){const s=r*r,a=r*s,o=.5*(2*t._x+(-e._x+i._x)*r+(2*e._x-5*t._x+4*i._x-n._x)*s+(-e._x+3*t._x-3*i._x+n._x)*a),l=.5*(2*t._y+(-e._y+i._y)*r+(2*e._y-5*t._y+4*i._y-n._y)*s+(-e._y+3*t._y-3*i._y+n._y)*a),c=.5*(2*t._z+(-e._z+i._z)*r+(2*e._z-5*t._z+4*i._z-n._z)*s+(-e._z+3*t._z-3*i._z+n._z)*a);return new ae(o,l,c)}static Clamp(e,t,i){const n=new ae;return ae.ClampToRef(e,t,i,n),n}static ClampToRef(e,t,i,n){let r=e._x;r=r>i._x?i._x:r,r=r<t._x?t._x:r;let s=e._y;s=s>i._y?i._y:s,s=s<t._y?t._y:s;let a=e._z;return a=a>i._z?i._z:a,a=a<t._z?t._z:a,n.copyFromFloats(r,s,a),n}static CheckExtends(e,t,i){t.minimizeInPlace(e),i.maximizeInPlace(e)}static Hermite(e,t,i,n,r){const s=r*r,a=r*s,o=2*a-3*s+1,l=-2*a+3*s,c=a-2*s+r,h=a-s,u=e._x*o+i._x*l+t._x*c+n._x*h,d=e._y*o+i._y*l+t._y*c+n._y*h,f=e._z*o+i._z*l+t._z*c+n._z*h;return new ae(u,d,f)}static Hermite1stDerivative(e,t,i,n,r){const s=new ae;return this.Hermite1stDerivativeToRef(e,t,i,n,r,s),s}static Hermite1stDerivativeToRef(e,t,i,n,r,s){const a=r*r;return s._x=6*(a-r)*e._x+(3*a-4*r+1)*t._x+6*(-a+r)*i._x+(3*a-2*r)*n._x,s._y=6*(a-r)*e._y+(3*a-4*r+1)*t._y+6*(-a+r)*i._y+(3*a-2*r)*n._y,s._z=6*(a-r)*e._z+(3*a-4*r+1)*t._z+6*(-a+r)*i._z+(3*a-2*r)*n._z,s._isDirty=!0,s}static Lerp(e,t,i){const n=new ae(0,0,0);return ae.LerpToRef(e,t,i,n),n}static LerpToRef(e,t,i,n){return n._x=e._x+(t._x-e._x)*i,n._y=e._y+(t._y-e._y)*i,n._z=e._z+(t._z-e._z)*i,n._isDirty=!0,n}static Dot(e,t){return e._x*t._x+e._y*t._y+e._z*t._z}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z}static Cross(e,t){const i=new ae;return ae.CrossToRef(e,t,i),i}static CrossToRef(e,t,i){const n=e._y*t._z-e._z*t._y,r=e._z*t._x-e._x*t._z,s=e._x*t._y-e._y*t._x;return i.copyFromFloats(n,r,s),i}static Normalize(e){const t=ae.Zero();return ae.NormalizeToRef(e,t),t}static NormalizeToRef(e,t){return e.normalizeToRef(t),t}static Project(e,t,i,n){const r=new ae;return ae.ProjectToRef(e,t,i,n,r),r}static ProjectToRef(e,t,i,n,r){var s;const a=n.width,o=n.height,l=n.x,c=n.y,h=he.Matrix[1],u=null===(s=_.LastCreatedEngine)||void 0===s?void 0:s.isNDCHalfZRange,d=u?1:.5,f=u?0:.5;ce.FromValuesToRef(a/2,0,0,0,0,-o/2,0,0,0,0,d,0,l+a/2,o/2+c,f,1,h);const p=he.Matrix[0];return t.multiplyToRef(i,p),p.multiplyToRef(h,p),ae.TransformCoordinatesToRef(e,p,r),r}static Reflect(e,t){return this.ReflectToRef(e,t,new ae)}static ReflectToRef(e,t,i){const n=ue.Vector3[0];return n.copyFrom(t).scaleInPlace(2*ae.Dot(e,t)),i.copyFrom(e).subtractInPlace(n)}static UnprojectFromTransform(e,t,i,n,r){return this.Unproject(e,t,i,n,r,ce.IdentityReadOnly)}static Unproject(e,t,i,n,r,s){const a=new ae;return ae.UnprojectToRef(e,t,i,n,r,s,a),a}static UnprojectToRef(e,t,i,n,r,s,a){return ae.UnprojectFloatsToRef(e._x,e._y,e._z,t,i,n,r,s,a),a}static UnprojectFloatsToRef(e,t,i,n,r,s,a,o,l){var c;const h=he.Matrix[0];s.multiplyToRef(a,h),h.multiplyToRef(o,h),h.invert();const u=he.Vector3[0];return u.x=e/n*2-1,u.y=-(t/r*2-1),(null===(c=_.LastCreatedEngine)||void 0===c?void 0:c.isNDCHalfZRange)?u.z=i:u.z=2*i-1,ae.TransformCoordinatesToRef(u,h,l),l}static Minimize(e,t){const i=new ae;return i.copyFrom(e),i.minimizeInPlace(t),i}static Maximize(e,t){const i=new ae;return i.copyFrom(e),i.maximizeInPlace(t),i}static Distance(e,t){return Math.sqrt(ae.DistanceSquared(e,t))}static DistanceSquared(e,t){const i=e._x-t._x,n=e._y-t._y,r=e._z-t._z;return i*i+n*n+r*r}static ProjectOnTriangleToRef(e,t,i,n,r){const s=he.Vector3[0],a=he.Vector3[1],o=he.Vector3[2],l=he.Vector3[3],c=he.Vector3[4];i.subtractToRef(t,s),n.subtractToRef(t,a),n.subtractToRef(i,o);const u=s.length(),d=a.length(),f=o.length();if(u<h||d<h||f<h)return r.copyFrom(t),ae.Distance(e,t);e.subtractToRef(t,c),ae.CrossToRef(s,a,l);const p=l.length();if(p<h)return r.copyFrom(t),ae.Distance(e,t);l.normalizeFromLength(p);let m=c.length();if(m<h)return r.copyFrom(t),0;c.normalizeFromLength(m);const _=ae.Dot(l,c),g=he.Vector3[5],v=he.Vector3[6];g.copyFrom(l).scaleInPlace(-m*_),v.copyFrom(e).addInPlace(g);const T=he.Vector3[4],S=he.Vector3[5],E=he.Vector3[7],x=he.Vector3[8];T.copyFrom(s).scaleInPlace(1/u),x.copyFrom(a).scaleInPlace(1/d),T.addInPlace(x).scaleInPlace(-1),S.copyFrom(s).scaleInPlace(-1/u),x.copyFrom(o).scaleInPlace(1/f),S.addInPlace(x).scaleInPlace(-1),E.copyFrom(o).scaleInPlace(-1/f),x.copyFrom(a).scaleInPlace(-1/d),E.addInPlace(x).scaleInPlace(-1);const y=he.Vector3[9];let b;y.copyFrom(v).subtractInPlace(t),ae.CrossToRef(T,y,x),b=ae.Dot(x,l);const R=b;y.copyFrom(v).subtractInPlace(i),ae.CrossToRef(S,y,x),b=ae.Dot(x,l);const A=b;y.copyFrom(v).subtractInPlace(n),ae.CrossToRef(E,y,x),b=ae.Dot(x,l);const P=b,I=he.Vector3[10];let M,O;R>0&&A<0?(I.copyFrom(s),M=t,O=i):A>0&&P<0?(I.copyFrom(o),M=i,O=n):(I.copyFrom(a).scaleInPlace(-1),M=n,O=t);const D=he.Vector3[9],N=he.Vector3[4];if(M.subtractToRef(v,x),O.subtractToRef(v,D),ae.CrossToRef(x,D,N),!(ae.Dot(N,l)<0))return r.copyFrom(v),Math.abs(m*_);const F=he.Vector3[5];ae.CrossToRef(I,N,F),F.normalize();const L=he.Vector3[9];L.copyFrom(M).subtractInPlace(v);const B=L.length();if(B<h)return r.copyFrom(M),ae.Distance(e,M);L.normalizeFromLength(B);const w=ae.Dot(F,L),k=he.Vector3[7];k.copyFrom(v).addInPlace(F.scaleInPlace(B*w)),x.copyFrom(k).subtractInPlace(M),m=I.length(),I.normalizeFromLength(m);let G=ae.Dot(x,I)/Math.max(m,h);return G=C(G,0,1),k.copyFrom(M).addInPlace(I.scaleInPlace(G*m)),r.copyFrom(k),ae.Distance(e,k)}static Center(e,t){return ae.CenterToRef(e,t,ae.Zero())}static CenterToRef(e,t,i){return i.copyFromFloats((e._x+t._x)/2,(e._y+t._y)/2,(e._z+t._z)/2)}static RotationFromAxis(e,t,i){const n=new ae;return ae.RotationFromAxisToRef(e,t,i,n),n}static RotationFromAxisToRef(e,t,i,n){const r=he.Quaternion[0];return le.RotationQuaternionFromAxisToRef(e,t,i,r),r.toEulerAnglesToRef(n),n}}ae._V8PerformanceHack=new ae(.5,.5,.5),ae._UpReadOnly=ae.Up(),ae._DownReadOnly=ae.Down(),ae._LeftHandedForwardReadOnly=ae.Forward(!1),ae._RightHandedForwardReadOnly=ae.Forward(!0),ae._LeftHandedBackwardReadOnly=ae.Backward(!1),ae._RightHandedBackwardReadOnly=ae.Backward(!0),ae._RightReadOnly=ae.Right(),ae._LeftReadOnly=ae.Left(),ae._ZeroReadOnly=ae.Zero(),ae._OneReadOnly=ae.One();class oe{get x(){return this._x}set x(e){this._x=e,this._isDirty=!0}get y(){return this._y}set y(e){this._y=e,this._isDirty=!0}get z(){return this._z}set z(e){this._z=e,this._isDirty=!0}get w(){return this._w}set w(e){this._w=e,this._isDirty=!0}constructor(e=0,t=0,i=0,n=0){this._isDirty=!0,this._x=e,this._y=t,this._z=i,this._w=n}toString(){return`{X: ${this._x} Y: ${this._y} Z: ${this._z} W: ${this._w}}`}getClassName(){return"Vector4"}getHashCode(){let e=re(this._x);return e=397*e^re(this._y),e=397*e^re(this._z),e=397*e^re(this._w),e}asArray(){return[this._x,this._y,this._z,this._w]}toArray(e,t){return void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,this}fromArray(e,t=0){return oe.FromArrayToRef(e,t,this),this}addInPlace(e){return this.x+=e._x,this.y+=e._y,this.z+=e._z,this.w+=e._w,this}addInPlaceFromFloats(e,t,i,n){return this.x+=e,this.y+=t,this.z+=i,this.w+=n,this}add(e){return new oe(this._x+e.x,this._y+e.y,this._z+e.z,this._w+e.w)}addToRef(e,t){return t.x=this._x+e.x,t.y=this._y+e.y,t.z=this._z+e.z,t.w=this._w+e.w,t}subtractInPlace(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subtract(e){return new oe(this._x-e.x,this._y-e.y,this._z-e.z,this._w-e.w)}subtractToRef(e,t){return t.x=this._x-e.x,t.y=this._y-e.y,t.z=this._z-e.z,t.w=this._w-e.w,t}subtractFromFloats(e,t,i,n){return new oe(this._x-e,this._y-t,this._z-i,this._w-n)}subtractFromFloatsToRef(e,t,i,n,r){return r.x=this._x-e,r.y=this._y-t,r.z=this._z-i,r.w=this._w-n,r}negate(){return new oe(-this._x,-this._y,-this._z,-this._w)}negateInPlace(){return this.x*=-1,this.y*=-1,this.z*=-1,this.w*=-1,this}negateToRef(e){return e.x=-this._x,e.y=-this._y,e.z=-this._z,e.w=-this._w,e}scaleInPlace(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}scale(e){return new oe(this._x*e,this._y*e,this._z*e,this._w*e)}scaleToRef(e,t){return t.x=this._x*e,t.y=this._y*e,t.z=this._z*e,t.w=this._w*e,t}scaleAndAddToRef(e,t){return t.x+=this._x*e,t.y+=this._y*e,t.z+=this._z*e,t.w+=this._w*e,t}equals(e){return e&&this._x===e.x&&this._y===e.y&&this._z===e.z&&this._w===e.w}equalsWithEpsilon(e,t=.001){return e&&v(this._x,e.x,t)&&v(this._y,e.y,t)&&v(this._z,e.z,t)&&v(this._w,e.w,t)}equalsToFloats(e,t,i,n){return this._x===e&&this._y===t&&this._z===i&&this._w===n}multiplyInPlace(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiply(e){return new oe(this._x*e.x,this._y*e.y,this._z*e.z,this._w*e.w)}multiplyToRef(e,t){return t.x=this._x*e.x,t.y=this._y*e.y,t.z=this._z*e.z,t.w=this._w*e.w,t}multiplyByFloats(e,t,i,n){return new oe(this._x*e,this._y*t,this._z*i,this._w*n)}divide(e){return new oe(this._x/e.x,this._y/e.y,this._z/e.z,this._w/e.w)}divideToRef(e,t){return t.x=this._x/e.x,t.y=this._y/e.y,t.z=this._z/e.z,t.w=this._w/e.w,t}divideInPlace(e){return this.divideToRef(e,this)}minimizeInPlace(e){return e.x<this._x&&(this.x=e.x),e.y<this._y&&(this.y=e.y),e.z<this._z&&(this.z=e.z),e.w<this._w&&(this.w=e.w),this}maximizeInPlace(e){return e.x>this._x&&(this.x=e.x),e.y>this._y&&(this.y=e.y),e.z>this._z&&(this.z=e.z),e.w>this._w&&(this.w=e.w),this}minimizeInPlaceFromFloats(e,t,i,n){return this.x=Math.min(e,this._x),this.y=Math.min(t,this._y),this.z=Math.min(i,this._z),this.w=Math.min(n,this._w),this}maximizeInPlaceFromFloats(e,t,i,n){return this.x=Math.max(e,this._x),this.y=Math.max(t,this._y),this.z=Math.max(i,this._z),this.w=Math.max(n,this._w),this}floorToRef(e){return e.x=Math.floor(this._x),e.y=Math.floor(this._y),e.z=Math.floor(this._z),e.w=Math.floor(this._w),e}floor(){return new oe(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z),Math.floor(this._w))}fractToRef(e){return e.x=this._x-Math.floor(this._x),e.y=this._y-Math.floor(this._y),e.z=this._z-Math.floor(this._z),e.w=this._w-Math.floor(this._w),e}fract(){return new oe(this._x-Math.floor(this._x),this._y-Math.floor(this._y),this._z-Math.floor(this._z),this._w-Math.floor(this._w))}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}lengthSquared(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}normalize(){return this.normalizeFromLength(this.length())}normalizeFromLength(e){return 0===e||1===e?this:this.scaleInPlace(1/e)}normalizeToNew(){return this.normalizeToRef(new oe)}normalizeToRef(e){const t=this.length();return 0===t||1===t?(e.x=this._x,e.y=this._y,e.z=this._z,e.w=this._w,e):this.scaleToRef(1/t,e)}toVector3(){return new ae(this._x,this._y,this._z)}clone(){return new oe(this._x,this._y,this._z,this._w)}copyFrom(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}copyFromFloats(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this}set(e,t,i,n){return this.copyFromFloats(e,t,i,n)}setAll(e){return this.x=this.y=this.z=this.w=e,this}dot(e){return this._x*e.x+this._y*e.y+this._z*e.z+this._w*e.w}static FromArray(e,t){return t||(t=0),new oe(e[t],e[t+1],e[t+2],e[t+3])}static FromArrayToRef(e,t,i){return i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i}static FromFloatArrayToRef(e,t,i){return oe.FromArrayToRef(e,t,i),i}static FromFloatsToRef(e,t,i,n,r){return r.x=e,r.y=t,r.z=i,r.w=n,r}static Zero(){return new oe(0,0,0,0)}static One(){return new oe(1,1,1,1)}static Random(e=0,t=1){return new oe(S(e,t),S(e,t),S(e,t),S(e,t))}static RandomToRef(e=0,t=1,i){return i.x=S(e,t),i.y=S(e,t),i.z=S(e,t),i.w=S(e,t),i}static Clamp(e,t,i){return oe.ClampToRef(e,t,i,new oe)}static ClampToRef(e,t,i,n){return n.x=C(e.x,t.x,i.x),n.y=C(e.y,t.y,i.y),n.z=C(e.z,t.z,i.z),n.w=C(e.w,t.w,i.w),n}static CheckExtends(e,t,i){t.minimizeInPlace(e),i.maximizeInPlace(e)}static get ZeroReadOnly(){return oe._ZeroReadOnly}static Normalize(e){return oe.NormalizeToRef(e,new oe)}static NormalizeToRef(e,t){return e.normalizeToRef(t),t}static Minimize(e,t){const i=new oe;return i.copyFrom(e),i.minimizeInPlace(t),i}static Maximize(e,t){const i=new oe;return i.copyFrom(e),i.maximizeInPlace(t),i}static Distance(e,t){return Math.sqrt(oe.DistanceSquared(e,t))}static DistanceSquared(e,t){const i=e.x-t.x,n=e.y-t.y,r=e.z-t.z,s=e.w-t.w;return i*i+n*n+r*r+s*s}static Center(e,t){return oe.CenterToRef(e,t,new oe)}static CenterToRef(e,t,i){return i.x=(e.x+t.x)/2,i.y=(e.y+t.y)/2,i.z=(e.z+t.z)/2,i.w=(e.w+t.w)/2,i}static TransformCoordinates(e,t){return oe.TransformCoordinatesToRef(e,t,new oe)}static TransformCoordinatesToRef(e,t,i){return oe.TransformCoordinatesFromFloatsToRef(e._x,e._y,e._z,t,i),i}static TransformCoordinatesFromFloatsToRef(e,t,i,n,r){const s=n.m,a=e*s[0]+t*s[4]+i