@needle-tools/engine 3.27.3-beta → 3.27.4-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4286,7 +4286,9 @@ irradiance += 0.;
4286
4286
  irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );
4287
4287
  #endif`);YA.lightmap.lightmapScaleOffset={value:new ee(1,1,0,0)};const v9=sA("debugplayerview");var an=(i=>(i.Browser="browser",i.Headset="headset",i.Handheld="handheld",i))(an||{});class TH{constructor(A,e){r(this,"userId");r(this,"context");r(this,"viewDevice","browser");r(this,"removed",!1);r(this,"_object");this.userId=A,this.context=e}get currentObject(){return this._object}set currentObject(A){this._object=A}get isConnected(){return this.context.connection.userIsInRoom(this.userId)}}class YH{constructor(A){r(this,"context");r(this,"playerViews",new Map);this.context=A}setPlayerView(A,e,t){let g=this.playerViews.get(A);g||(g=new TH(A,this.context),this.playerViews.set(A,g)),g.viewDevice=t,g.currentObject=e,g.removed=!1}getPlayerView(A){if(!A)return;if(!this.context.connection.userIsInRoom(A)){this.playerViews.delete(A);return}return this.playerViews.get(A)}removePlayerView(A,e){const t=this.playerViews.get(A);(t==null?void 0:t.viewDevice)===e&&(v9&&console.log("REMOVE",A),t.removed=!0,this.playerViews.delete(A))}}function*HH(i,A=null){const e=A?A.time:be.Current.time,t=e.time;for(;e.time-t<i;)yield}function*b9(i){for(let A=0;A<i;A++)yield}function*_H(i){let A=!0;for(i.then(()=>A=!1),i.catch(()=>A=!1);A;)yield}const Nf=new Map;function yy(i,A){Nf.has(A)||Nf.set(A,new Array),Nf.get(A).push(i)}function yr(i,A){const e=Nf.get(A);if(e&&e.length>0){let t=e;A===Bg.Start&&(t=[...e],e.length=0),L9(i,t)}}function L9(i,A){for(let e=A.length-1;e>=0;e--){const t=A[e];eB(t,i)}}const sa=sA("debugcontext"),x9=sA("stats"),T9=sA("debugactive"),Y9=sA("debugframerate"),H9=sA("debugcoroutine"),_9={};class O9{constructor(){r(this,"name");r(this,"alias");r(this,"hash");r(this,"runInBackground");r(this,"domElement");r(this,"renderer");r(this,"camera");r(this,"scene")}}var Bg=(i=>(i[i.Start=-1]="Start",i[i.EarlyUpdate=0]="EarlyUpdate",i[i.Update=1]="Update",i[i.LateUpdate=2]="LateUpdate",i[i.OnBeforeRender=3]="OnBeforeRender",i[i.OnAfterRender=4]="OnAfterRender",i[i.PrePhysicsStep=9]="PrePhysicsStep",i[i.PostPhysicsStep=10]="PostPhysicsStep",i[i.Undefined=-1]="Undefined",i))(Bg||{}),Nl=(i=>(i.ImmersiveVR="immersive-vr",i.ImmersiveAR="immersive-ar",i))(Nl||{});function Sy(i,A){if(!i)return;if(!i.isComponent){(_e()||sa)&&console.error(`Registered script is not a Needle Engine component.
4288
4288
  The script will be ignored. Please make sure your component extends "Behaviour" imported from "@needle-tools/engine"
4289
- `,i);return}const e=(A==null?void 0:A.new_scripts)??be.Current.new_scripts;e.includes(i)||e.push(i)}const ei=class{constructor(A){r(this,"name");r(this,"alias");r(this,"isManagedExternally",!1);r(this,"isPaused",!1);r(this,"runInBackground",!1);r(this,"targetFrameRate");r(this,"physicsSteps",1);r(this,"hash");r(this,"domElement");r(this,"_resolutionScaleFactor",1);r(this,"_boundingClientRectFrame",-1);r(this,"_boundingClientRect",null);r(this,"_domX");r(this,"_domY");r(this,"xrSessionMode");r(this,"_xrFrame",null);r(this,"_currentFrameEvent",-1);r(this,"scene");r(this,"renderer");r(this,"composer",null);r(this,"scripts",[]);r(this,"scripts_pausedChanged",[]);r(this,"scripts_earlyUpdate",[]);r(this,"scripts_update",[]);r(this,"scripts_lateUpdate",[]);r(this,"scripts_onBeforeRender",[]);r(this,"scripts_onAfterRender",[]);r(this,"scripts_WithCorroutines",[]);r(this,"coroutines",{});r(this,"mainCameraComponent");r(this,"_camera",null);r(this,"post_setup_callbacks",[]);r(this,"pre_update_callbacks",[]);r(this,"pre_render_callbacks",[]);r(this,"post_render_callbacks",[]);r(this,"new_scripts",[]);r(this,"new_script_start",[]);r(this,"new_scripts_pre_setup_callbacks",[]);r(this,"new_scripts_post_setup_callbacks",[]);r(this,"application");r(this,"time");r(this,"input");r(this,"physics");r(this,"connection");r(this,"assets");r(this,"mainLight",null);r(this,"sceneLighting");r(this,"addressables");r(this,"lightmaps");r(this,"players");r(this,"_sizeChanged",!1);r(this,"_isCreated",!1);r(this,"_isCreating",!1);r(this,"_isVisible",!1);r(this,"_stats",x9?new g9:null);r(this,"_intersectionObserver",null);r(this,"_disposeCallbacks",[]);r(this,"onUnhandledRejection",A=>{this.domElement.dispatchEvent(new CustomEvent("error",{detail:A.reason}))});r(this,"_cameraStack",[]);r(this,"_onBeforeRenderListeners",new Map);r(this,"_onAfterRenderListeners",new Map);r(this,"_requireDepthTexture",!1);r(this,"_requireColorTexture",!1);r(this,"_renderTarget");r(this,"_isRendering",!1);r(this,"_createId",0);r(this,"_renderlooperrors",0);r(this,"_lastTimestamp",0);r(this,"_accumulatedTime",0);r(this,"_dispatchReadyAfterFrame",!1);r(this,"_wasPaused",!1);this.name=(A==null?void 0:A.name)||"",this.alias=A==null?void 0:A.alias,this.domElement=(A==null?void 0:A.domElement)||document.body,this.hash=A==null?void 0:A.hash,A!=null&&A.renderer&&(this.renderer=A.renderer,this.isManagedExternally=!0),(A==null?void 0:A.runInBackground)!==void 0&&(this.runInBackground=A.runInBackground),A!=null&&A.scene?this.scene=A.scene:this.scene=new bI,A!=null&&A.camera&&(this._camera=A.camera),this.application=new KH(this),this.time=new DT,this.input=new lT(this),this.physics=new fT(this),this.connection=new dY(this),this.assets=new TY,this.sceneLighting=new FH(this),this.addressables=new RH(this),this.lightmaps=new q9(this),this.players=new YH(this);const e=()=>this._sizeChanged=!0;window.addEventListener("resize",e),this._disposeCallbacks.push(()=>window.removeEventListener("resize",e));const t=new ResizeObserver(g=>this._sizeChanged=!0);t.observe(this.domElement),this._disposeCallbacks.push(()=>t.disconnect()),this._intersectionObserver=new IntersectionObserver(g=>{this._isVisible=g[0].isIntersecting}),this._disposeCallbacks.push(()=>{var g;return(g=this._intersectionObserver)==null?void 0:g.disconnect()}),Ut.register(this)}static get DefaultTargetFrameRate(){return ei._defaultTargetFramerate.value}static set DefaultTargetFrameRate(A){ei._defaultTargetFramerate.value=A}static get DefaultWebGLRendererParameters(){return ei._defaultWebglRendererParameters}get version(){return en}static get Current(){return Ut.Current}static set Current(A){Ut.Current=A}appendHTMLElement(A){return this.domElement.shadowRoot?this.domElement.shadowRoot.appendChild(A):this.domElement.appendChild(A)}get resolutionScaleFactor(){return this._resolutionScaleFactor}set resolutionScaleFactor(A){if(A!==this._resolutionScaleFactor&&typeof A=="number"){if(A<=0){console.error("Invalid resolution scale factor",A);return}this._resolutionScaleFactor=A,this.updateSize()}}calculateBoundingClientRect(){if(this.isInAR){this._domX=0,this._domY=0;return}this._boundingClientRectFrame!==this.time.frame&&(this._boundingClientRectFrame=this.time.frame,this._boundingClientRect=this.domElement.getBoundingClientRect(),this._domX=this._boundingClientRect.x,this._domY=this._boundingClientRect.y)}get domWidth(){return this.isInAR?window.innerWidth:this.domElement.clientWidth}get domHeight(){return this.isInAR?window.innerHeight:this.domElement.clientHeight}get domX(){return this.calculateBoundingClientRect(),this._domX}get domY(){return this.calculateBoundingClientRect(),this._domY}get isInXR(){var A,e;return((e=(A=this.renderer)==null?void 0:A.xr)==null?void 0:e.isPresenting)||!1}get isInVR(){return this.xrSessionMode==="immersive-vr"}get isInAR(){return this.xrSessionMode==="immersive-ar"}get xrSession(){var A,e;return(e=(A=this.renderer)==null?void 0:A.xr)==null?void 0:e.getSession()}get xrFrame(){return this._xrFrame}get xrCamera(){var A,e;return(e=(A=this.renderer)==null?void 0:A.xr)==null?void 0:e.getCamera()}get arOverlayElement(){const A=this.domElement;return typeof A.getAROverlayContainer=="function"?A.getAROverlayContainer():this.domElement}get currentFrameEvent(){return this._currentFrameEvent}get mainCamera(){if(this._camera)return this._camera;if(this.mainCameraComponent){const A=this.mainCameraComponent;return A.cam||A.buildCamera(),A.cam}return null}set mainCamera(A){this._camera=A}get rendererData(){return this.sceneLighting}get isCreated(){return this._isCreated}createNewRenderer(){var e,t,g;(e=this.renderer)==null||e.dispose();const A=ei.DefaultWebGLRendererParameters;if(!A.canvas){const I=(g=(t=this.domElement)==null?void 0:t.shadowRoot)==null?void 0:g.querySelector("canvas");I&&(A.canvas=I)}this.renderer=new _a(A),this.renderer.debug.checkShaderErrors=_e()||sA("checkshadererrors")===!0,this.renderer.toneMappingExposure=1,this.renderer.toneMapping=EI,this.renderer.setClearColor(new yA("lightgrey"),0),this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=NM,this.renderer.setSize(this.domWidth,this.domHeight),this.renderer.outputColorSpace=ge,this.renderer.useLegacyLights=!1}internalOnUpdateVisible(){var A,e;(A=this._intersectionObserver)==null||A.disconnect(),(e=this._intersectionObserver)==null||e.observe(this.domElement)}updateSize(){var A,e,t;if(!this.isManagedExternally&&((A=this.renderer.xr)==null?void 0:A.isPresenting)===!1){this._sizeChanged=!1;const g=this.resolutionScaleFactor,I=this.domWidth*g,o=this.domHeight*g,s=this.mainCamera;this.updateAspect(s),this.renderer.setSize(I,o,!0),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.style.width="100%",this.renderer.domElement.style.height="100%",this.composer&&((e=this.composer.setSize)==null||e.call(this.composer,I,o),"setPixelRatio"in this.composer&&typeof this.composer.setPixelRatio=="function"&&((t=this.composer.setPixelRatio)==null||t.call(this.composer,window.devicePixelRatio)))}}updateAspect(A,e,t){if(!A)return;e===void 0&&(e=this.domWidth),t===void 0&&(t=this.domHeight);const g=A.aspect;A.aspect=e/t,g!==A.aspect&&A.updateProjectionMatrix()}async onCreate(A){return this.create(A)}async create(A){try{return this._isCreating=!0,window.addEventListener("unhandledrejection",this.onUnhandledRejection),await this.internalOnCreate(A)}finally{window.removeEventListener("unhandledrejection",this.onUnhandledRejection),this._isCreating=!1}}clear(){var A,e,t,g;Ut.dispatchCallback(ji.ContextClearing,this),cn(this.scene,!0,!0),this.scene=new bI,(A=this.addressables)==null||A.dispose(),(e=this.lightmaps)==null||e.clear(),(g=(t=this.physics)==null?void 0:t.engine)==null||g.clearCaches(),this.isManagedExternally||this.renderer&&(this.renderer.renderLists.dispose(),this.renderer.state.reset(),this.renderer.resetState()),Ut.dispatchCallback(ji.ContextCleared,this)}dispose(){this.internalOnDestroy()}onDestroy(){this.internalOnDestroy()}internalOnDestroy(){var A,e;this.clear(),(A=this.renderer)==null||A.setAnimationLoop(null),this.renderer&&(this.renderer.setClearAlpha(0),this.renderer.clear()),this.isManagedExternally||this.renderer.dispose(),this.scene=null,this.renderer=null,this.input.dispose();for(const t of this._disposeCallbacks)try{t()}catch(g){console.error("Error in on dispose callback:",g,t)}(e=this.domElement)!=null&&e.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Ut.dispatchCallback(ji.ContextDestroyed,this),Ut.unregister(this)}registerCoroutineUpdate(A,e,t){return this.coroutines[t]||(this.coroutines[t]=[]),this.coroutines[t].push({comp:A,main:e}),e}unregisterCoroutineUpdate(A,e){if(!this.coroutines[e])return;const t=this.coroutines[e].findIndex(g=>g.main===A);t>=0&&this.coroutines[e].splice(t,1)}stopAllCoroutinesFrom(A){for(const e in this.coroutines){const t=this.coroutines[e];for(let g=t.length-1;g>=0;g--)t[g].comp===A&&t.splice(g,1)}}setCurrentCamera(A){var g;if(!A)return;if(A.cam||A.buildCamera(),!A.cam){console.warn("Camera component is missing camera",A);return}const e=this._cameraStack.indexOf(A);e>=0&&this._cameraStack.splice(e,1),this._cameraStack.push(A),this.mainCameraComponent=A;const t=A.cam;t.isPerspectiveCamera&&this.updateAspect(t),(g=this.mainCameraComponent)==null||g.applyClearFlagsIfIsActiveCamera()}removeCamera(A){if(!A)return;const e=this._cameraStack.indexOf(A);if(e>=0&&this._cameraStack.splice(e,1),this.mainCameraComponent===A&&(this.mainCameraComponent=void 0,this._cameraStack.length>0)){const t=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(t)}}addBeforeRenderListener(A,e){this._onBeforeRenderListeners.has(A.uuid)||(this._onBeforeRenderListeners.set(A.uuid,[]),A.onBeforeRender=this._createRenderCallbackWrapper(A,this._onBeforeRenderListeners)),this._onBeforeRenderListeners.get(A.uuid).push(e)}removeBeforeRenderListener(A,e){if(this._onBeforeRenderListeners.has(A.uuid)){const t=this._onBeforeRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}addAfterRenderListener(A,e){var t;this._onAfterRenderListeners.has(A.uuid)||(this._onAfterRenderListeners.set(A.uuid,[]),A.onAfterRender=this._createRenderCallbackWrapper(A,this._onAfterRenderListeners)),(t=this._onAfterRenderListeners.get(A.uuid))==null||t.push(e)}removeAfterRenderListener(A,e){if(this._onAfterRenderListeners.has(A.uuid)){const t=this._onAfterRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}_createRenderCallbackWrapper(A,e){return(t,g,I,o,s,n)=>{const C=e.get(A.uuid);if(C)for(let a=0;a<C.length;a++){const B=C[a];B(t,g,I,o,s,n)}}}get isRendering(){return this._isRendering}setRequireDepth(A){this._requireDepthTexture=A}setRequireColor(A){this._requireColorTexture=A}get depthTexture(){var A;return((A=this._renderTarget)==null?void 0:A.depthTexture)||null}get opaqueColorTexture(){var A;return((A=this._renderTarget)==null?void 0:A.texture)||null}get isVisibleToUser(){if(this.isInXR)return!0;if(!this._isVisible)return!1;const A=getComputedStyle(this.domElement);return A.visibility!=="hidden"&&A.display!=="none"&&A.opacity!=="0"}async internalOnCreate(A){var o,s,n,C,a;const e=++this._createId;this.clear(),this.isManagedExternally===!1&&(this.createNewRenderer(),(o=this.renderer)==null||o.setAnimationLoop(null)),await Ka(1),ei.Current=this,await Ut.dispatchCallback(ji.ContextCreationStart,this);let t=!0,g;try{ei.Current=this,A?g=await this.internalLoadInitialContent(e,A):g=[]}catch(B){console.error(B),t=!1}if(!t||e!==this._createId)return!1;if(this.internalOnUpdateVisible(),!this.renderer)return sa&&console.warn("Context has no renderer (perhaps it was disconnected?",this.domElement.isConnected),!1;!this.isManagedExternally&&!this.domElement.shadowRoot&&this.domElement.prepend(this.renderer.domElement),ei.Current=this,ei.Current=this;for(let B=0;B<this.new_scripts.length;B++){const Q=this.new_scripts[B];if(Q.gameObject!==void 0&&Q.gameObject!==null){Q.gameObject.userData===void 0&&(Q.gameObject.userData={}),Q.gameObject.userData.components===void 0&&(Q.gameObject.userData.components=[]);const E=Q.gameObject.userData.components;E.includes(Q)||E.push(Q)}}if(this.post_setup_callbacks)for(let B=0;B<this.post_setup_callbacks.length;B++)ei.Current=this,await this.post_setup_callbacks[B](this);if(!this.mainCamera){ei.Current=this;let B=null;BB(this.scene,Q=>{const E=Q;if(E!=null&&E.isCamera){if(Wh(E.gameObject),!E.activeAndEnabled)return;if(E.tag==="MainCamera")return B=E,!0;B=E}}),B?this.setCurrentCamera(B):!Ut.dispatchCallback(ji.MissingCamera,this,{files:g})&&!this.mainCamera&&!this.isManagedExternally&&console.warn("Missing camera in main scene",this)}if(ei.Current=this,MD(this),this.physics.engine&&((s=this.physics.engine)==null||s.step(0),(n=this.physics.engine)==null||n.postStep()),!this.isManagedExternally&&this.composer&&this.mainCamera){const B=new fy(this.scene,this.mainCamera);this.renderer.setSize(this.domWidth,this.domHeight),this.composer.addPass(B),this.composer.setSize(this.domWidth,this.domHeight)}this._sizeChanged=!0,this._stats&&(this._stats.showPanel(0),(C=this.domElement.shadowRoot)==null||C.appendChild(this._stats.dom)),sa&&fD(this.scene,!0),this.targetFrameRate===void 0?(sa&&console.warn("No target framerate set, using default",ei.DefaultTargetFrameRate),this.targetFrameRate=ei._defaultTargetFramerate):sa&&console.log("Target framerate set to",this.targetFrameRate),this._dispatchReadyAfterFrame=!0;const I=Ut.dispatchCallback(ji.ContextCreated,this,{files:g});return I&&("internalSetLoadingMessage"in this.domElement&&typeof this.domElement.internalSetLoadingMessage=="function"&&((a=this.domElement)==null||a.internalSetLoadingMessage("finish loading")),await I),yr(this,ji.ContextCreated),this._isCreating=!1,this.isManagedExternally||this.restartRenderLoop(),I}async internalLoadInitialContent(A,e){var n,C;const t=new Array;if(e.files.length===0)return t;const g=[...e.files],I={name:"",progress:null,index:0,count:g.length},o=Ss();let s=0;this.hash&&(s=Number.parseInt(this.hash)??0);for(let a=0;a<g.length;a++){if(A!==this._createId){sa&&console.log("Aborting loading because create id changed",A,this._createId);break}const B=g[a];if(!B.includes(".glb")&&!B.includes(".gltf")){const E=`Needle Engine: found suspicious src "${B}"`;console.warn(E),lI()&&cg(E)}(n=e==null?void 0:e.onLoadingStart)==null||n.call(this,a,B);const Q=await o.loadSync(this,B,B,s,E=>{var c;I.name=B,I.progress=E,I.index=a,I.count=g.length,(c=e.onLoadingProgress)==null||c.call(this,I)});(C=e==null?void 0:e.onLoadingFinished)==null||C.call(this,a,B,Q??null),Q?t.push({src:B,file:Q}):console.warn("Could not load file: "+B)}if(A!==this._createId){for(const a of t)if(a&&a.file)for(const B of a.file.scenes)cn(B,!0,!0)}else for(const a of t)a&&a.file&&this.scene.add(a.file.scene);return t}restartRenderLoop(){return this.renderer?this._isCreating?(console.warn("Can not start render loop while creating context"),!1):(this.renderer.setAnimationLoop((A,e)=>{this.isManagedExternally||this.update(A,e)}),!0):(console.error("Can not start render loop without renderer"),!1)}update(A,e){if(e===void 0&&(e=null),_e()||sa||i5())try{this.internalStep(A,e),this._renderlooperrors=0}catch(t){this._renderlooperrors+=1,(_e()||sa)&&(t instanceof Error||t instanceof TypeError)&&ki("Caught unhandled exception during render-loop.<br/>Stopping renderloop...<br/>See console for details.",Wo.Error),console.error(t),this._renderlooperrors>10&&(console.warn("Stopping render loop due to error"),this.renderer.setAnimationLoop(null)),this.domElement.dispatchEvent(new CustomEvent("error",{detail:t}))}else this.internalStep(A,e)}updatePhysics(A){this.internalUpdatePhysics(A)}internalStep(A,e){this.internalOnBeforeRender(A,e)!==!1&&(this.internalOnRender(),this.internalOnAfterRender())}internalOnBeforeRender(A,e){var t;if(this._xrFrame=e,this._currentFrameEvent=-1,this.isManagedExternally===!1&&this.isInXR===!1&&this.targetFrameRate!==void 0){this._lastTimestamp===0&&(this._lastTimestamp=A),this._accumulatedTime+=(A-this._lastTimestamp)/1e3,this._lastTimestamp=A;let g=this.targetFrameRate;if(typeof g=="object"&&(g=g.value),this._accumulatedTime<1/(g+1))return!1;this._accumulatedTime=0}if((t=this._stats)==null||t.begin(),ei.Current=this,this.onHandlePaused())return!1;for(ei.Current=this,this.time.update(),Y9&&console.log("FPS",this.time.smoothedFps.toFixed(0)),MD(this),Rf(this.scene),eH(this),yr(this,-1);this._cameraStack.length>0&&(!this.mainCameraComponent||this.mainCameraComponent.destroyed);){this._cameraStack.splice(this._cameraStack.length-1,1);const g=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(g)}if(this.pre_update_callbacks)for(const g in this.pre_update_callbacks)this.pre_update_callbacks[g]();this._currentFrameEvent=0;for(let g=0;g<this.scripts_earlyUpdate.length;g++){const I=this.scripts_earlyUpdate[g];I.activeAndEnabled&&I.earlyUpdate!==void 0&&(ei.Current=this,I.earlyUpdate())}if(this.executeCoroutines(0),yr(this,0),this.onHandlePaused())return!1;this._currentFrameEvent=1;for(let g=0;g<this.scripts_update.length;g++){const I=this.scripts_update[g];I.activeAndEnabled&&I.update!==void 0&&(ei.Current=this,I.update())}if(this.executeCoroutines(1),yr(this,1),this.onHandlePaused())return!1;this._currentFrameEvent=2;for(let g=0;g<this.scripts_lateUpdate.length;g++){const I=this.scripts_lateUpdate[g];I.activeAndEnabled&&I.lateUpdate!==void 0&&(ei.Current=this,I.lateUpdate())}if(this.executeCoroutines(2),yr(this,2),this.onHandlePaused()||(this.physicsSteps===void 0&&(this.physicsSteps=1),this.physics.engine&&this.physicsSteps>0&&this.internalUpdatePhysics(this.physicsSteps),this.onHandlePaused()))return!1;if(this.isVisibleToUser||this.runInBackground){this._currentFrameEvent=3;for(let g=0;g<this.scripts_onBeforeRender.length;g++){const I=this.scripts_onBeforeRender[g];I.activeAndEnabled&&I.onBeforeRender!==void 0&&(ei.Current=this,I.onBeforeRender(e))}if(this.executeCoroutines(3),yr(this,3),this._sizeChanged&&this.updateSize(),this.pre_render_callbacks)for(const g in this.pre_render_callbacks)this.pre_render_callbacks[g]()}return!0}internalUpdatePhysics(A){if(!this.physics.engine)return!1;const e=A,t=this.time.deltaTime/e;for(let g=0;g<e;g++)this._currentFrameEvent=9,this.executeCoroutines(9),this.physics.engine.step(t),this._currentFrameEvent=10,this.executeCoroutines(10);return this.physics.engine.postStep(),!0}internalOnRender(){this.isManagedExternally||(o5(this),this._currentFrameEvent=-1,this.renderNow(),this._currentFrameEvent=4)}internalOnAfterRender(){if(this.isVisibleToUser||this.runInBackground){for(let A=0;A<this.scripts_onAfterRender.length;A++){const e=this.scripts_onAfterRender[A];e.activeAndEnabled&&e.onAfterRender!==void 0&&(ei.Current=this,e.onAfterRender())}if(this.executeCoroutines(4),yr(this,4),this.post_render_callbacks)for(const A in this.post_render_callbacks)this.post_render_callbacks[A]()}this._currentFrameEvent=-1,this.connection.sendBufferedMessagesNow(),this._stats&&(this._stats.end(),this.time.frameCount%150===0&&console.log({...this.renderer.info.memory},{...this.renderer.info.render})),this._dispatchReadyAfterFrame&&(this._dispatchReadyAfterFrame=!1,this.domElement.dispatchEvent(new CustomEvent("ready")),Ut.dispatchCallback(ji.ContextFirstFrameRendered,this))}renderNow(A){return!A&&(A=this.mainCamera,!A)?!1:(this._isRendering=!0,this.renderRequiredTextures(),this.composer&&!this.isInXR?this.composer.render(this.time.deltaTime):A&&this.renderer.render(this.scene,A),this._isRendering=!1,!0)}onHandlePaused(){const A=this.evaluatePaused();if(this._wasPaused!==A){T9&&console.log("Paused?",A,"context:"+this.alias);for(let e=0;e<this.scripts_pausedChanged.length;e++){const t=this.scripts_pausedChanged[e];t.activeAndEnabled&&t.onPausedChanged!==void 0&&(ei.Current=this,t.onPausedChanged(A,this._wasPaused))}}return this._wasPaused=A,A}evaluatePaused(){return this.isInXR?!1:this.isPaused?!0:this.runInBackground?!1:!this.isVisibleToUser}renderRequiredTextures(){if(!this.mainCamera||!this._requireDepthTexture&&!this._requireColorTexture)return;if(!this._renderTarget){if(this._renderTarget=new At(this.domWidth,this.domHeight),this._requireDepthTexture){const t=new cd(this.domWidth,this.domHeight);this._renderTarget.depthTexture=t}this._requireColorTexture&&(this._renderTarget.texture=new Le,this._renderTarget.texture.generateMipmaps=!1,this._renderTarget.texture.minFilter=Te,this._renderTarget.texture.magFilter=Te,this._renderTarget.texture.format=mt)}const A=this._renderTarget;A.texture&&(A.texture.colorSpace=this.renderer.outputColorSpace);const e=this.renderer.getRenderTarget();this.renderer.setRenderTarget(A),this.renderer.render(this.scene,this.mainCamera),this.renderer.setRenderTarget(e)}executeCoroutines(A){var t;if(this.coroutines[A]){const g=this.coroutines[A];for(let I=0;I<g.length;I++)try{const o=g[I];if(!o.comp||o.comp.destroyed||!o.main||o.comp.enabled===!1){H9&&console.log("Removing coroutine",o.comp,o.comp.enabled),g.splice(I,1),--I;continue}const n=o.chained;if(n&&n.length>0){const Q=n[n.length-1].next();if(Q.done&&n.pop(),e(Q)&&(o.chained||(o.chained=[]),o.chained.push(Q.value)),!Q.done)continue}const C=o.main.next();if(C.done===!0){g.splice(I,1),--I;continue}const a=C.value;if(e(a)){if(a.next().done)continue;o.chained||(o.chained=[]),o.chained.push(a)}else if(a instanceof Promise){const B=a;o.chained||(o.chained=[]);const Q=_H(B);(t=o.chained)==null||t.push(Q);continue}}catch(o){console.error(o)}}function e(g){return!!(g&&g.next&&g.return)}}};let be=ei;r(be,"_defaultTargetFramerate",{value:60}),r(be,"_defaultWebglRendererParameters",{antialias:!0,alpha:!1});const Xc=sA("debugoverlay"),OH="ar",P9="quit-ar";class W9{constructor(){r(this,"arContainer",null);r(this,"currentSession",null);r(this,"_createdAROnlyElements",[]);r(this,"_reparentedObjects",[]);r(this,"contentElement",null);r(this,"requestEndAR",()=>{this.onRequestedEndAR()})}get ARContainer(){return this.arContainer}onBegin(A,e,t){var g;if(this.currentSession=t,this.arContainer=e,hD()){const I=A.domElement.children;for(let o=0;o<(I==null?void 0:I.length);o++){const s=I[o];if(!s||s===this.arContainer)return;this._reparentedObjects.push({el:s,previousParent:s.parentElement}),(g=this.arContainer)==null||g.appendChild(s)}}this.ensureQuitARButton(this.arContainer)}onEnd(A){var e;for(const t of this._createdAROnlyElements)t.remove&&t.remove();for(const t of this._reparentedObjects){const g=t.el;(e=t.previousParent)==null||e.appendChild(g)}this._reparentedObjects.length=0,hD()&&setTimeout(()=>{var o;const t=A.renderer.domElement;t&&((o=A.domElement.shadowRoot)==null||o.prepend(t));const g=document.querySelectorAll("*");for(var I=0;I<g.length;I++){const s=g[I];s&&s._displayChanged!==void 0&&s._displayWas!==void 0&&(s.style.display=s._displayWas)}},10)}createOverlayContainer(A){if(this.contentElement)return this.contentElement;Xc&&console.log("Setup overlay container");const e=A.shadowRoot.querySelector(".content");this.contentElement=e;const t=A.shadowRoot.querySelector(".overlay-content");return t&&e.appendChild(t),Xc&&!FC()&&this.ensureQuitARButton(e),e}onRequestedEndAR(){this.currentSession&&(this.currentSession.end(),this.currentSession=null)}ensureQuitARButton(A){const e=document.createElement("slot");e.setAttribute("name","quit-ar"),this.appendElement(e,A),this._createdAROnlyElements.push(e),e.style.pointerEvents="auto";const t=document.querySelector(`.${P9}`);if(t){t.addEventListener("click",this.requestEndAR),Xc&&t.addEventListener("click",()=>console.log("Clicked quit-ar button"));return}e.addEventListener("click",this.requestEndAR),Xc&&e.addEventListener("click",()=>console.log("Clicked fallback close button"));const g=document.createElement("div");g.style.cssText=`
4289
+ `,i);return}const e=(A==null?void 0:A.new_scripts)??be.Current.new_scripts;e.includes(i)||e.push(i)}const ei=class{constructor(A){r(this,"name");r(this,"alias");r(this,"isManagedExternally",!1);r(this,"isPaused",!1);r(this,"runInBackground",!1);r(this,"targetFrameRate");r(this,"physicsSteps",1);r(this,"hash");r(this,"domElement");r(this,"_resolutionScaleFactor",1);r(this,"_boundingClientRectFrame",-1);r(this,"_boundingClientRect",null);r(this,"_domX");r(this,"_domY");r(this,"xrSessionMode");r(this,"_xrFrame",null);r(this,"_currentFrameEvent",-1);r(this,"scene");r(this,"renderer");r(this,"composer",null);r(this,"scripts",[]);r(this,"scripts_pausedChanged",[]);r(this,"scripts_earlyUpdate",[]);r(this,"scripts_update",[]);r(this,"scripts_lateUpdate",[]);r(this,"scripts_onBeforeRender",[]);r(this,"scripts_onAfterRender",[]);r(this,"scripts_WithCorroutines",[]);r(this,"coroutines",{});r(this,"mainCameraComponent");r(this,"_camera",null);r(this,"post_setup_callbacks",[]);r(this,"pre_update_callbacks",[]);r(this,"pre_render_callbacks",[]);r(this,"post_render_callbacks",[]);r(this,"new_scripts",[]);r(this,"new_script_start",[]);r(this,"new_scripts_pre_setup_callbacks",[]);r(this,"new_scripts_post_setup_callbacks",[]);r(this,"application");r(this,"time");r(this,"input");r(this,"physics");r(this,"connection");r(this,"assets");r(this,"mainLight",null);r(this,"sceneLighting");r(this,"addressables");r(this,"lightmaps");r(this,"players");r(this,"_sizeChanged",!1);r(this,"_isCreated",!1);r(this,"_isCreating",!1);r(this,"_isVisible",!1);r(this,"_stats",x9?new g9:null);r(this,"_intersectionObserver",null);r(this,"_disposeCallbacks",[]);r(this,"onUnhandledRejection",A=>{this.domElement.dispatchEvent(new CustomEvent("error",{detail:A.reason}))});r(this,"_cameraStack",[]);r(this,"_onBeforeRenderListeners",new Map);r(this,"_onAfterRenderListeners",new Map);r(this,"_requireDepthTexture",!1);r(this,"_requireColorTexture",!1);r(this,"_renderTarget");r(this,"_isRendering",!1);r(this,"_createId",0);r(this,"_renderlooperrors",0);r(this,"_lastTimestamp",0);r(this,"_accumulatedTime",0);r(this,"_dispatchReadyAfterFrame",!1);r(this,"_wasPaused",!1);this.name=(A==null?void 0:A.name)||"",this.alias=A==null?void 0:A.alias,this.domElement=(A==null?void 0:A.domElement)||document.body,this.hash=A==null?void 0:A.hash,A!=null&&A.renderer&&(this.renderer=A.renderer,this.isManagedExternally=!0),(A==null?void 0:A.runInBackground)!==void 0&&(this.runInBackground=A.runInBackground),A!=null&&A.scene?this.scene=A.scene:this.scene=new bI,A!=null&&A.camera&&(this._camera=A.camera),this.application=new KH(this),this.time=new DT,this.input=new lT(this),this.physics=new fT(this),this.connection=new dY(this),this.assets=new TY,this.sceneLighting=new FH(this),this.addressables=new RH(this),this.lightmaps=new q9(this),this.players=new YH(this);const e=()=>this._sizeChanged=!0;window.addEventListener("resize",e),this._disposeCallbacks.push(()=>window.removeEventListener("resize",e));const t=new ResizeObserver(g=>this._sizeChanged=!0);t.observe(this.domElement),this._disposeCallbacks.push(()=>t.disconnect()),this._intersectionObserver=new IntersectionObserver(g=>{this._isVisible=g[0].isIntersecting}),this._disposeCallbacks.push(()=>{var g;return(g=this._intersectionObserver)==null?void 0:g.disconnect()}),Ut.register(this)}static get DefaultTargetFrameRate(){return ei._defaultTargetFramerate.value}static set DefaultTargetFrameRate(A){ei._defaultTargetFramerate.value=A}static get DefaultWebGLRendererParameters(){return ei._defaultWebglRendererParameters}get version(){return en}static get Current(){return Ut.Current}static set Current(A){Ut.Current=A}appendHTMLElement(A){return this.domElement.shadowRoot?this.domElement.shadowRoot.appendChild(A):this.domElement.appendChild(A)}get resolutionScaleFactor(){return this._resolutionScaleFactor}set resolutionScaleFactor(A){if(A!==this._resolutionScaleFactor&&typeof A=="number"){if(A<=0){console.error("Invalid resolution scale factor",A);return}this._resolutionScaleFactor=A,this.updateSize()}}calculateBoundingClientRect(){if(this.isInAR){this._domX=0,this._domY=0;return}this._boundingClientRectFrame!==this.time.frame&&(this._boundingClientRectFrame=this.time.frame,this._boundingClientRect=this.domElement.getBoundingClientRect(),this._domX=this._boundingClientRect.x,this._domY=this._boundingClientRect.y)}get domWidth(){return this.isInAR?window.innerWidth:this.domElement.clientWidth}get domHeight(){return this.isInAR?window.innerHeight:this.domElement.clientHeight}get domX(){return this.calculateBoundingClientRect(),this._domX}get domY(){return this.calculateBoundingClientRect(),this._domY}get isInXR(){var A,e;return((e=(A=this.renderer)==null?void 0:A.xr)==null?void 0:e.isPresenting)||!1}get isInVR(){return this.xrSessionMode==="immersive-vr"}get isInAR(){return this.xrSessionMode==="immersive-ar"}get xrSession(){var A,e;return(e=(A=this.renderer)==null?void 0:A.xr)==null?void 0:e.getSession()}get xrFrame(){return this._xrFrame}get xrCamera(){var A,e;return(e=(A=this.renderer)==null?void 0:A.xr)==null?void 0:e.getCamera()}get arOverlayElement(){const A=this.domElement;return typeof A.getAROverlayContainer=="function"?A.getAROverlayContainer():this.domElement}get currentFrameEvent(){return this._currentFrameEvent}get mainCamera(){if(this._camera)return this._camera;if(this.mainCameraComponent){const A=this.mainCameraComponent;return A.cam||A.buildCamera(),A.cam}return null}set mainCamera(A){this._camera=A}get rendererData(){return this.sceneLighting}get isCreated(){return this._isCreated}createNewRenderer(){var e,t,g;(e=this.renderer)==null||e.dispose();const A=ei.DefaultWebGLRendererParameters;if(!A.canvas){const I=(g=(t=this.domElement)==null?void 0:t.shadowRoot)==null?void 0:g.querySelector("canvas");I&&(A.canvas=I)}this.renderer=new _a(A),this.renderer.debug.checkShaderErrors=_e()||sA("checkshadererrors")===!0,this.renderer.toneMappingExposure=1,this.renderer.toneMapping=EI,this.renderer.setClearColor(new yA("lightgrey"),0),this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=NM,this.renderer.setSize(this.domWidth,this.domHeight),this.renderer.outputColorSpace=ge,this.renderer.useLegacyLights=!1}internalOnUpdateVisible(){var A,e;(A=this._intersectionObserver)==null||A.disconnect(),(e=this._intersectionObserver)==null||e.observe(this.domElement)}updateSize(){var A,e,t;if(!this.isManagedExternally&&((A=this.renderer.xr)==null?void 0:A.isPresenting)===!1){this._sizeChanged=!1;const g=this.resolutionScaleFactor,I=this.domWidth*g,o=this.domHeight*g,s=this.mainCamera;this.updateAspect(s),this.renderer.setSize(I,o,!0),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.style.width="100%",this.renderer.domElement.style.height="100%",this.composer&&((e=this.composer.setSize)==null||e.call(this.composer,I,o),"setPixelRatio"in this.composer&&typeof this.composer.setPixelRatio=="function"&&((t=this.composer.setPixelRatio)==null||t.call(this.composer,window.devicePixelRatio)))}}updateAspect(A,e,t){if(!A)return;e===void 0&&(e=this.domWidth),t===void 0&&(t=this.domHeight);const g=A.aspect;A.aspect=e/t,g!==A.aspect&&A.updateProjectionMatrix()}async onCreate(A){return this.create(A)}async create(A){try{return this._isCreating=!0,window.addEventListener("unhandledrejection",this.onUnhandledRejection),await this.internalOnCreate(A)}finally{window.removeEventListener("unhandledrejection",this.onUnhandledRejection),this._isCreating=!1}}clear(){var A,e,t,g;Ut.dispatchCallback(ji.ContextClearing,this),cn(this.scene,!0,!0),this.scene=new bI,(A=this.addressables)==null||A.dispose(),(e=this.lightmaps)==null||e.clear(),(g=(t=this.physics)==null?void 0:t.engine)==null||g.clearCaches(),this.isManagedExternally||this.renderer&&(this.renderer.renderLists.dispose(),this.renderer.state.reset(),this.renderer.resetState()),Ut.dispatchCallback(ji.ContextCleared,this)}dispose(){this.internalOnDestroy()}onDestroy(){this.internalOnDestroy()}internalOnDestroy(){var A,e;this.clear(),(A=this.renderer)==null||A.setAnimationLoop(null),this.renderer&&(this.renderer.setClearAlpha(0),this.renderer.clear()),this.isManagedExternally||this.renderer.dispose(),this.scene=null,this.renderer=null,this.input.dispose();for(const t of this._disposeCallbacks)try{t()}catch(g){console.error("Error in on dispose callback:",g,t)}(e=this.domElement)!=null&&e.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Ut.dispatchCallback(ji.ContextDestroyed,this),Ut.unregister(this)}registerCoroutineUpdate(A,e,t){return typeof(e==null?void 0:e.next)!="function"?(console.error("Registered invalid coroutine function from "+A.name+`
4290
+ Coroutine functions must be generators: "*myCoroutine() {...}"
4291
+ Start a coroutine from a component by calling "this.startCoroutine(myCoroutine())"`),e):(this.coroutines[t]||(this.coroutines[t]=[]),this.coroutines[t].push({comp:A,main:e}),e)}unregisterCoroutineUpdate(A,e){if(!this.coroutines[e])return;const t=this.coroutines[e].findIndex(g=>g.main===A);t>=0&&this.coroutines[e].splice(t,1)}stopAllCoroutinesFrom(A){for(const e in this.coroutines){const t=this.coroutines[e];for(let g=t.length-1;g>=0;g--)t[g].comp===A&&t.splice(g,1)}}setCurrentCamera(A){var g;if(!A)return;if(A.cam||A.buildCamera(),!A.cam){console.warn("Camera component is missing camera",A);return}const e=this._cameraStack.indexOf(A);e>=0&&this._cameraStack.splice(e,1),this._cameraStack.push(A),this.mainCameraComponent=A;const t=A.cam;t.isPerspectiveCamera&&this.updateAspect(t),(g=this.mainCameraComponent)==null||g.applyClearFlagsIfIsActiveCamera()}removeCamera(A){if(!A)return;const e=this._cameraStack.indexOf(A);if(e>=0&&this._cameraStack.splice(e,1),this.mainCameraComponent===A&&(this.mainCameraComponent=void 0,this._cameraStack.length>0)){const t=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(t)}}addBeforeRenderListener(A,e){this._onBeforeRenderListeners.has(A.uuid)||(this._onBeforeRenderListeners.set(A.uuid,[]),A.onBeforeRender=this._createRenderCallbackWrapper(A,this._onBeforeRenderListeners)),this._onBeforeRenderListeners.get(A.uuid).push(e)}removeBeforeRenderListener(A,e){if(this._onBeforeRenderListeners.has(A.uuid)){const t=this._onBeforeRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}addAfterRenderListener(A,e){var t;this._onAfterRenderListeners.has(A.uuid)||(this._onAfterRenderListeners.set(A.uuid,[]),A.onAfterRender=this._createRenderCallbackWrapper(A,this._onAfterRenderListeners)),(t=this._onAfterRenderListeners.get(A.uuid))==null||t.push(e)}removeAfterRenderListener(A,e){if(this._onAfterRenderListeners.has(A.uuid)){const t=this._onAfterRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}_createRenderCallbackWrapper(A,e){return(t,g,I,o,s,n)=>{const C=e.get(A.uuid);if(C)for(let a=0;a<C.length;a++){const B=C[a];B(t,g,I,o,s,n)}}}get isRendering(){return this._isRendering}setRequireDepth(A){this._requireDepthTexture=A}setRequireColor(A){this._requireColorTexture=A}get depthTexture(){var A;return((A=this._renderTarget)==null?void 0:A.depthTexture)||null}get opaqueColorTexture(){var A;return((A=this._renderTarget)==null?void 0:A.texture)||null}get isVisibleToUser(){if(this.isInXR)return!0;if(!this._isVisible)return!1;const A=getComputedStyle(this.domElement);return A.visibility!=="hidden"&&A.display!=="none"&&A.opacity!=="0"}async internalOnCreate(A){var o,s,n,C,a;const e=++this._createId;this.clear(),this.isManagedExternally===!1&&(this.createNewRenderer(),(o=this.renderer)==null||o.setAnimationLoop(null)),await Ka(1),ei.Current=this,await Ut.dispatchCallback(ji.ContextCreationStart,this);let t=!0,g;try{ei.Current=this,A?g=await this.internalLoadInitialContent(e,A):g=[]}catch(B){console.error(B),t=!1}if(!t||e!==this._createId)return!1;if(this.internalOnUpdateVisible(),!this.renderer)return sa&&console.warn("Context has no renderer (perhaps it was disconnected?",this.domElement.isConnected),!1;!this.isManagedExternally&&!this.domElement.shadowRoot&&this.domElement.prepend(this.renderer.domElement),ei.Current=this,ei.Current=this;for(let B=0;B<this.new_scripts.length;B++){const Q=this.new_scripts[B];if(Q.gameObject!==void 0&&Q.gameObject!==null){Q.gameObject.userData===void 0&&(Q.gameObject.userData={}),Q.gameObject.userData.components===void 0&&(Q.gameObject.userData.components=[]);const E=Q.gameObject.userData.components;E.includes(Q)||E.push(Q)}}if(this.post_setup_callbacks)for(let B=0;B<this.post_setup_callbacks.length;B++)ei.Current=this,await this.post_setup_callbacks[B](this);if(!this.mainCamera){ei.Current=this;let B=null;BB(this.scene,Q=>{const E=Q;if(E!=null&&E.isCamera){if(Wh(E.gameObject),!E.activeAndEnabled)return;if(E.tag==="MainCamera")return B=E,!0;B=E}}),B?this.setCurrentCamera(B):!Ut.dispatchCallback(ji.MissingCamera,this,{files:g})&&!this.mainCamera&&!this.isManagedExternally&&console.warn("Missing camera in main scene",this)}if(ei.Current=this,MD(this),this.physics.engine&&((s=this.physics.engine)==null||s.step(0),(n=this.physics.engine)==null||n.postStep()),!this.isManagedExternally&&this.composer&&this.mainCamera){const B=new fy(this.scene,this.mainCamera);this.renderer.setSize(this.domWidth,this.domHeight),this.composer.addPass(B),this.composer.setSize(this.domWidth,this.domHeight)}this._sizeChanged=!0,this._stats&&(this._stats.showPanel(0),(C=this.domElement.shadowRoot)==null||C.appendChild(this._stats.dom)),sa&&fD(this.scene,!0),this.targetFrameRate===void 0?(sa&&console.warn("No target framerate set, using default",ei.DefaultTargetFrameRate),this.targetFrameRate=ei._defaultTargetFramerate):sa&&console.log("Target framerate set to",this.targetFrameRate),this._dispatchReadyAfterFrame=!0;const I=Ut.dispatchCallback(ji.ContextCreated,this,{files:g});return I&&("internalSetLoadingMessage"in this.domElement&&typeof this.domElement.internalSetLoadingMessage=="function"&&((a=this.domElement)==null||a.internalSetLoadingMessage("finish loading")),await I),yr(this,ji.ContextCreated),this._isCreating=!1,this.isManagedExternally||this.restartRenderLoop(),I}async internalLoadInitialContent(A,e){var n,C;const t=new Array;if(e.files.length===0)return t;const g=[...e.files],I={name:"",progress:null,index:0,count:g.length},o=Ss();let s=0;this.hash&&(s=Number.parseInt(this.hash)??0);for(let a=0;a<g.length;a++){if(A!==this._createId){sa&&console.log("Aborting loading because create id changed",A,this._createId);break}const B=g[a];if(!B.includes(".glb")&&!B.includes(".gltf")){const E=`Needle Engine: found suspicious src "${B}"`;console.warn(E),lI()&&cg(E)}(n=e==null?void 0:e.onLoadingStart)==null||n.call(this,a,B);const Q=await o.loadSync(this,B,B,s,E=>{var c;I.name=B,I.progress=E,I.index=a,I.count=g.length,(c=e.onLoadingProgress)==null||c.call(this,I)});(C=e==null?void 0:e.onLoadingFinished)==null||C.call(this,a,B,Q??null),Q?t.push({src:B,file:Q}):console.warn("Could not load file: "+B)}if(A!==this._createId){for(const a of t)if(a&&a.file)for(const B of a.file.scenes)cn(B,!0,!0)}else for(const a of t)a&&a.file&&this.scene.add(a.file.scene);return t}restartRenderLoop(){return this.renderer?this._isCreating?(console.warn("Can not start render loop while creating context"),!1):(this.renderer.setAnimationLoop((A,e)=>{this.isManagedExternally||this.update(A,e)}),!0):(console.error("Can not start render loop without renderer"),!1)}update(A,e){if(e===void 0&&(e=null),_e()||sa||i5())try{this.internalStep(A,e),this._renderlooperrors=0}catch(t){this._renderlooperrors+=1,(_e()||sa)&&(t instanceof Error||t instanceof TypeError)&&ki("Caught unhandled exception during render-loop.<br/>Stopping renderloop...<br/>See console for details.",Wo.Error),console.error(t),this._renderlooperrors>10&&(console.warn("Stopping render loop due to error"),this.renderer.setAnimationLoop(null)),this.domElement.dispatchEvent(new CustomEvent("error",{detail:t}))}else this.internalStep(A,e)}updatePhysics(A){this.internalUpdatePhysics(A)}internalStep(A,e){this.internalOnBeforeRender(A,e)!==!1&&(this.internalOnRender(),this.internalOnAfterRender())}internalOnBeforeRender(A,e){var t;if(this._xrFrame=e,this._currentFrameEvent=-1,this.isManagedExternally===!1&&this.isInXR===!1&&this.targetFrameRate!==void 0){this._lastTimestamp===0&&(this._lastTimestamp=A),this._accumulatedTime+=(A-this._lastTimestamp)/1e3,this._lastTimestamp=A;let g=this.targetFrameRate;if(typeof g=="object"&&(g=g.value),this._accumulatedTime<1/(g+1))return!1;this._accumulatedTime=0}if((t=this._stats)==null||t.begin(),ei.Current=this,this.onHandlePaused())return!1;for(ei.Current=this,this.time.update(),Y9&&console.log("FPS",this.time.smoothedFps.toFixed(0)),MD(this),Rf(this.scene),eH(this),yr(this,-1);this._cameraStack.length>0&&(!this.mainCameraComponent||this.mainCameraComponent.destroyed);){this._cameraStack.splice(this._cameraStack.length-1,1);const g=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(g)}if(this.pre_update_callbacks)for(const g in this.pre_update_callbacks)this.pre_update_callbacks[g]();this._currentFrameEvent=0;for(let g=0;g<this.scripts_earlyUpdate.length;g++){const I=this.scripts_earlyUpdate[g];I.activeAndEnabled&&I.earlyUpdate!==void 0&&(ei.Current=this,I.earlyUpdate())}if(this.executeCoroutines(0),yr(this,0),this.onHandlePaused())return!1;this._currentFrameEvent=1;for(let g=0;g<this.scripts_update.length;g++){const I=this.scripts_update[g];I.activeAndEnabled&&I.update!==void 0&&(ei.Current=this,I.update())}if(this.executeCoroutines(1),yr(this,1),this.onHandlePaused())return!1;this._currentFrameEvent=2;for(let g=0;g<this.scripts_lateUpdate.length;g++){const I=this.scripts_lateUpdate[g];I.activeAndEnabled&&I.lateUpdate!==void 0&&(ei.Current=this,I.lateUpdate())}if(this.executeCoroutines(2),yr(this,2),this.onHandlePaused()||(this.physicsSteps===void 0&&(this.physicsSteps=1),this.physics.engine&&this.physicsSteps>0&&this.internalUpdatePhysics(this.physicsSteps),this.onHandlePaused()))return!1;if(this.isVisibleToUser||this.runInBackground){this._currentFrameEvent=3;for(let g=0;g<this.scripts_onBeforeRender.length;g++){const I=this.scripts_onBeforeRender[g];I.activeAndEnabled&&I.onBeforeRender!==void 0&&(ei.Current=this,I.onBeforeRender(e))}if(this.executeCoroutines(3),yr(this,3),this._sizeChanged&&this.updateSize(),this.pre_render_callbacks)for(const g in this.pre_render_callbacks)this.pre_render_callbacks[g]()}return!0}internalUpdatePhysics(A){if(!this.physics.engine)return!1;const e=A,t=this.time.deltaTime/e;for(let g=0;g<e;g++)this._currentFrameEvent=9,this.executeCoroutines(9),this.physics.engine.step(t),this._currentFrameEvent=10,this.executeCoroutines(10);return this.physics.engine.postStep(),!0}internalOnRender(){this.isManagedExternally||(o5(this),this._currentFrameEvent=-1,this.renderNow(),this._currentFrameEvent=4)}internalOnAfterRender(){if(this.isVisibleToUser||this.runInBackground){for(let A=0;A<this.scripts_onAfterRender.length;A++){const e=this.scripts_onAfterRender[A];e.activeAndEnabled&&e.onAfterRender!==void 0&&(ei.Current=this,e.onAfterRender())}if(this.executeCoroutines(4),yr(this,4),this.post_render_callbacks)for(const A in this.post_render_callbacks)this.post_render_callbacks[A]()}this._currentFrameEvent=-1,this.connection.sendBufferedMessagesNow(),this._stats&&(this._stats.end(),this.time.frameCount%150===0&&console.log({...this.renderer.info.memory},{...this.renderer.info.render})),this._dispatchReadyAfterFrame&&(this._dispatchReadyAfterFrame=!1,this.domElement.dispatchEvent(new CustomEvent("ready")),Ut.dispatchCallback(ji.ContextFirstFrameRendered,this))}renderNow(A){return!A&&(A=this.mainCamera,!A)?!1:(this._isRendering=!0,this.renderRequiredTextures(),this.composer&&!this.isInXR?this.composer.render(this.time.deltaTime):A&&this.renderer.render(this.scene,A),this._isRendering=!1,!0)}onHandlePaused(){const A=this.evaluatePaused();if(this._wasPaused!==A){T9&&console.log("Paused?",A,"context:"+this.alias);for(let e=0;e<this.scripts_pausedChanged.length;e++){const t=this.scripts_pausedChanged[e];t.activeAndEnabled&&t.onPausedChanged!==void 0&&(ei.Current=this,t.onPausedChanged(A,this._wasPaused))}}return this._wasPaused=A,A}evaluatePaused(){return this.isInXR?!1:this.isPaused?!0:this.runInBackground?!1:!this.isVisibleToUser}renderRequiredTextures(){if(!this.mainCamera||!this._requireDepthTexture&&!this._requireColorTexture)return;if(!this._renderTarget){if(this._renderTarget=new At(this.domWidth,this.domHeight),this._requireDepthTexture){const t=new cd(this.domWidth,this.domHeight);this._renderTarget.depthTexture=t}this._requireColorTexture&&(this._renderTarget.texture=new Le,this._renderTarget.texture.generateMipmaps=!1,this._renderTarget.texture.minFilter=Te,this._renderTarget.texture.magFilter=Te,this._renderTarget.texture.format=mt)}const A=this._renderTarget;A.texture&&(A.texture.colorSpace=this.renderer.outputColorSpace);const e=this.renderer.getRenderTarget();this.renderer.setRenderTarget(A),this.renderer.render(this.scene,this.mainCamera),this.renderer.setRenderTarget(e)}executeCoroutines(A){var t;if(this.coroutines[A]){const g=this.coroutines[A];for(let I=0;I<g.length;I++)try{const o=g[I];if(!o.comp||o.comp.destroyed||!o.main||o.comp.enabled===!1){H9&&console.log("Removing coroutine",o.comp,o.comp.enabled),g.splice(I,1),--I;continue}const n=o.chained;if(n&&n.length>0){const Q=n[n.length-1].next();if(Q.done&&n.pop(),e(Q)&&(o.chained||(o.chained=[]),o.chained.push(Q.value)),!Q.done)continue}const C=o.main.next();if(C.done===!0){g.splice(I,1),--I;continue}const a=C.value;if(e(a)){if(a.next().done)continue;o.chained||(o.chained=[]),o.chained.push(a)}else if(a instanceof Promise){const B=a;o.chained||(o.chained=[]);const Q=_H(B);(t=o.chained)==null||t.push(Q);continue}}catch(o){console.error(o)}}function e(g){return!!(g&&g.next&&g.return)}}};let be=ei;r(be,"_defaultTargetFramerate",{value:60}),r(be,"_defaultWebglRendererParameters",{antialias:!0,alpha:!1});const Xc=sA("debugoverlay"),OH="ar",P9="quit-ar";class W9{constructor(){r(this,"arContainer",null);r(this,"currentSession",null);r(this,"_createdAROnlyElements",[]);r(this,"_reparentedObjects",[]);r(this,"contentElement",null);r(this,"requestEndAR",()=>{this.onRequestedEndAR()})}get ARContainer(){return this.arContainer}onBegin(A,e,t){var g;if(this.currentSession=t,this.arContainer=e,hD()){const I=A.domElement.children;for(let o=0;o<(I==null?void 0:I.length);o++){const s=I[o];if(!s||s===this.arContainer)return;this._reparentedObjects.push({el:s,previousParent:s.parentElement}),(g=this.arContainer)==null||g.appendChild(s)}}this.ensureQuitARButton(this.arContainer)}onEnd(A){var e;for(const t of this._createdAROnlyElements)t.remove&&t.remove();for(const t of this._reparentedObjects){const g=t.el;(e=t.previousParent)==null||e.appendChild(g)}this._reparentedObjects.length=0,hD()&&setTimeout(()=>{var o;const t=A.renderer.domElement;t&&((o=A.domElement.shadowRoot)==null||o.prepend(t));const g=document.querySelectorAll("*");for(var I=0;I<g.length;I++){const s=g[I];s&&s._displayChanged!==void 0&&s._displayWas!==void 0&&(s.style.display=s._displayWas)}},10)}createOverlayContainer(A){if(this.contentElement)return this.contentElement;Xc&&console.log("Setup overlay container");const e=A.shadowRoot.querySelector(".content");this.contentElement=e;const t=A.shadowRoot.querySelector(".overlay-content");return t&&e.appendChild(t),Xc&&!FC()&&this.ensureQuitARButton(e),e}onRequestedEndAR(){this.currentSession&&(this.currentSession.end(),this.currentSession=null)}ensureQuitARButton(A){const e=document.createElement("slot");e.setAttribute("name","quit-ar"),this.appendElement(e,A),this._createdAROnlyElements.push(e),e.style.pointerEvents="auto";const t=document.querySelector(`.${P9}`);if(t){t.addEventListener("click",this.requestEndAR),Xc&&t.addEventListener("click",()=>console.log("Clicked quit-ar button"));return}e.addEventListener("click",this.requestEndAR),Xc&&e.addEventListener("click",()=>console.log("Clicked fallback close button"));const g=document.createElement("div");g.style.cssText=`
4290
4292
  position: fixed;
4291
4293
  top: 0;
4292
4294
  right: 0;
@@ -4915,7 +4917,7 @@ void main() {
4915
4917
  `&&i.length>1&&w2([e],i[i.length-2]),A.offsetX}function _eA(i){if(!i[0])return 0;let A=[],e;for(let t=0;t<i.length;t++){const g=i[t];if(g.char&&mv[g.char]&&i.length>t){A.push(g),e=i[t+1];continue}break}y2(A,e),A=[],e=null;for(let t=i.length-1;t>0;t--){const g=i[t];if(g.char&&mv[g.char]&&t>0){A.push(g),e=i[t-1];continue}break}return w2(A,e),i[0].offsetX}function OeA(i){return i[0]?i[0].offsetX:0}function w2(i,A){if(A)for(let e=0;e<i.length;e++){const t=i[e];t.fontFactor=0,t.offsetX=A.offsetX+A.cumulativeWidth,t.cumulativeWidth=0}}function y2(i,A){if(A)for(let e=0;e<i.length;e++){const t=i[e];t.fontFactor=0,t.offsetX=A.offsetX,t.cumulativeWidth=0}}function S2(i,A,e,t){if(t=t||0,!i[A])return t;const g=i[A];return g.lineBreak?t+g.xadvance:S2(i,A+1,e,t+g.xadvance+g.xoffset+g.kerning+e.LETTERSPACING)}function PeA(i,A,e,t){return!i||!i.char||A+e<t.INNER_WIDTH?!1:t.BREAKON.indexOf(i.char)>-1}class k2 extends U_{constructor(){super(),this._input="inherit",this._allowsInherit=!1,this.computeOutputValue=this._computeFromInherited}_computeFromInherited(A){super._computeFromInherited(A),A._fontSize._needsProcess=!0,A._layouter._needsProcess=!0}}class m2 extends Xt{constructor(){super("fontSize","inherit",!0),this._allowsInherit=!1}computeOutputValue(A){this._value=this._inheritedInput,A._font._fontVariant&&(A._bounds._needsProcess=!0,A._layouter._needsProcess=!0)}process(A){if(!A._font._fontVariant||!A._font._fontVariant.isReady)return;const e=this._value/A._font._fontVariant.typographic.size,t=A._inlines._value;for(let g=0;g<t.length;g++){const I=t[g];I.resetOffsets(),I.fontSize=this._value,I.fontFactor=e}}get value(){return this._value}}class G2 extends F_{constructor(){super("segments",1,!1),this._notInheritedValue=void 0}update(A,e){this._notInheritedValue=this._value,this._notInheritedValue==="inherit"&&(this._notInheritedValue=this.getInheritedInput(A)),A._layouter._needsUpdate=!0}set value(A){this._value!==A&&(this._value=A,this._needsUpdate=!0)}get value(){return this._value==="inherit"?this._notInheritedValue:this._value}}class WeA extends G2{constructor(){super(),this._value="inherit"}}class VeA extends Ry{constructor(){super(),this._allowsInherit=!1,this.computeOutputValue=this._computeFromInherited}_computeFromInherited(A){super._computeFromInherited(A),A._parent._value._layouter._needsProcess=!1}process(A){if(this._value!=="none"){const e=A._whiteSpace._whiteSpacedContent,t=A._inlines._value;for(let g=1;g<t.length;g++){const I=e[g-1]+e[g];t[g].kerning=A._font._fontVariant.getKerningAmount(I)}}}}class M2 extends Dt{constructor(){super("children",null,!1),this._uis=[]}update(A,e){}process(A){}_compute(A){}dispose(){}}function zeA(i,A=!1){const e=i[0].index!==null,t=new Set(Object.keys(i[0].attributes)),g=new Set(Object.keys(i[0].morphAttributes)),I={},o={},s=i[0].morphTargetsRelative,n=new _A.BufferGeometry;let C=0;for(let a=0;a<i.length;++a){const B=i[a];let Q=0;if(e!==(B.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+a+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const E in B.attributes){if(!t.has(E))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+a+'. All geometries must have compatible attributes; make sure "'+E+'" attribute exists among all geometries, or in none of them.'),null;I[E]===void 0&&(I[E]=[]),I[E].push(B.attributes[E]),Q++}if(Q!==t.size)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+a+". Make sure all geometries have the same number of attributes."),null;if(s!==B.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+a+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const E in B.morphAttributes){if(!g.has(E))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+a+". .morphAttributes must be consistent throughout all geometries."),null;o[E]===void 0&&(o[E]=[]),o[E].push(B.morphAttributes[E])}if(n.userData.mergedUserData=n.userData.mergedUserData||[],n.userData.mergedUserData.push(B.userData),A){let E;if(e)E=B.index.count;else if(B.attributes.position!==void 0)E=B.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+a+". The geometry must have either an index or a position attribute"),null;n.addGroup(C,E,a),C+=E}}if(e){let a=0;const B=[];for(let Q=0;Q<i.length;++Q){const E=i[Q].index;for(let c=0;c<E.count;++c)B.push(E.getX(c)+a);a+=i[Q].attributes.position.count}n.setIndex(B)}for(const a in I){const B=Gv(I[a]);if(!B)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+a+" attribute."),null;n.setAttribute(a,B)}for(const a in o){const B=o[a][0].length;if(B===0)break;n.morphAttributes=n.morphAttributes||{},n.morphAttributes[a]=[];for(let Q=0;Q<B;++Q){const E=[];for(let l=0;l<o[a].length;++l)E.push(o[a][l][Q]);const c=Gv(E);if(!c)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+a+" morphAttribute."),null;n.morphAttributes[a].push(c)}}return n}function Gv(i){let A,e,t,g=0;for(let s=0;s<i.length;++s){const n=i[s];if(n.isInterleavedBufferAttribute)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported."),null;if(A===void 0&&(A=n.array.constructor),A!==n.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(e===void 0&&(e=n.itemSize),e!==n.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(t===void 0&&(t=n.normalized),t!==n.normalized)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;g+=n.array.length}const I=new A(g);let o=0;for(let s=0;s<i.length;++s)I.set(i[s].array,o),o+=i[s].array.length;return new _A.BufferAttribute(I,e,t)}class jeA extends Dt{constructor(){super("renderer")}render(A){if(!A._inlines._value||!A._inlines._value.length)return;const e=A._inlines._value.map(g=>A._font._fontVariant.getGeometricGlyph(g,A).translate(g.offsetX,g.offsetY,0)),t=zeA(e);A.setFontMesh(new _A.Mesh(t,A.fontMaterial)),A._fontMesh.renderOrder=1/0}}class ZeA extends GU{constructor(){super(),this._allowsInherit=!1,this._needsUpdate=!1}computeOutputValue(A){this._value=this._inheritedInput,A._layouter._needsProcess=!0}}class JE extends Td{constructor(e={}){const t={};JE.definePropertiesValues(t,e);super(t,e);r(this,"_rebuildParentUI",()=>{super._rebuildParentUI(),this._layouter._needsUpdate=!0});JE.init(this)}add(e){const t=[];for(let g=0;g<arguments.length;g++){const I=arguments[g];!I.isUI||I.isInline?(t.push(I),I.position.z=.005):console.warn("Block element can only contain Box elements.",I)}return super.add(...t)}set textContent(e){this._textContent.value=e}get textContent(){return this._textContent._value}set invertAlpha(e){this._invertAlpha.value=e}get invertAlpha(){return this._invertAlpha._value}static definePropertiesValues(e,t){e.children||(e.children=M2),e.textContent||(e.textContent=FeA),e.glyphs||(e.glyphs=KeA),e.inlines||(e.inlines=NeA),e.layouter||(e.layouter=d2),e.renderer||(e.renderer=jeA),e.fontFamily||(e.fontFamily=f2),e.fontWeight||(e.fontWeight=p2),e.fontStyle||(e.fontStyle=u2),e.fontSize||(e.fontSize=m2),e.color||(e.color=JeA),e.backgroundColor||(e.backgroundColor=qeA),e.lineBreak||(e.lineBreak=l2),e.letterSpacing||(e.letterSpacing=k2),e.whiteSpace||(e.whiteSpace=$U),e.segments||(e.segments=WeA),e.textAlign||(e.textAlign=ZeA),e.fontKerning||(e.fontKerning=VeA)}static init(e){Object.defineProperties(e,{isInline:{configurable:!1,enumerable:!0,value:!0}})}}class XeA extends u_{constructor(){super("textContent",null,!1),this._needsUpdate=!1}set value(A){this._value!==A&&(this._value=A,this._needsUpdate=!0)}update(A,e){this._needsUpdate=!1;for(let t=A.children.length-1;t>=0;t--){const g=A.children[t];g.isUI&&(A.remove(g),g.clear())}A._children._uis=[],this._value&&A.add(new JE({name:"anonymousInline",textContent:this._value}))}}class $eA extends Array{constructor(...A){super(...A),this.width=0,this.height=0}}class AtA extends Dt{constructor(){super("layouter",null,!1),this._value=null}update(A,e){}process(A){let e=A._width._value;A._width._auto?e=1/0:e=A._bounds._innerWidth;const t=A._lineHeight._value,g=new $eA(new kv);let I=0;A._children._inlines.forEach(B=>{if(!B._inlines.value)return;this._resetInlines(B);const Q=B._fontSize._value,E=B._letterSpacing._value*Q,c=B._whiteSpace._value,l=B._lineBreak._value,d={WHITESPACE:c,LETTERSPACING:E,BREAKON:l,INNER_WIDTH:e},h=B._whiteSpace._inlineWrapper;I+=B._margin._value.w+B._padding._value.w,B._inlines.value.forEach((p,u,f)=>{const k=g[g.length-1];if(h(f,u,I,d)){if(g.push(new kv(p)),p.offsetX=p.xoffset,p.width===0){I=0;return}p.cumulativeWidth=p.xadvance+E,I=p.cumulativeWidth;return}g[g.length-1].push(p),p.offsetX=I+p.xoffset+p.kerning,p.cumulativeWidth=p.xadvance+p.kerning+E,I+=p.cumulativeWidth,k.length-1===1&&k[k.length-2].width===0&&(p.offsetX-=p.xoffset,I-=p.xoffset)}),I+=B._margin._value.y+B._padding._value.y});const o=A._whiteSpace._inlineCollapser;let s=0,n=0,C=0;g.forEach((B,Q)=>{const E=o(B);let c=0,l=0;if(B.forEach(d=>{c=Math.max(c,d.lineHeight),l=Math.max(l,d.lineBase),d.offsetX-=E}),B.lineHeight=c,B.lineBase=l,Q===0?C=-(c*t-c)*.5:C-=g[Q-1].lineHeight*t,B.y=C,B.x=0,B.forEach(d=>{d.offsetY=C-d.anchor,d.lineHeight<B.lineHeight&&(d.offsetY-=B.lineBase-d.lineBase)}),n+=B.lineHeight*t,B.width=0,B[0]){const d=B[B.length-1];B.width=d.offsetX+d.cumulativeWidth+d.paddingRight+d.marginRight+B[0].offsetX,s=Math.max(s,B.width)}}),g.height=n,g.width=s,this._value=g,e===1/0&&A._bounds.setChildrenWidth(A,g.width),A._height._auto&&A._bounds.setChildrenHeight(A,g.height);const a=A._parent._value;a&&(a._autoSize._needsProcess=!0,a._flexDirection._needsProcess=!0),A._inlineJustificator._needsProcess=!0,A._textAlign._needsProcess=!0,A._overflow._needsUpdate=!0}_resetInlines(A){A._fontSize.process(A)}}class etA extends GU{constructor(){super(),this._allowsInherit=!1,this._needsUpdate=!0}computeOutputValue(A){this._value=this._inheritedInput,this._needsProcess=!0}process(A){ttA(A),A._renderer._needsRender=!0}}function ttA(i){const A=i._layouter._value,e=i._textAlign._value,t=i._bounds._innerWidth;for(let g=0;g<A.length;g++){const I=A[g],o=itA(i,I,g===A.length-1),s=i._padding._value,n=i._borderWidth._value,C=(-s.w+s.y)/2+(-n.w+n.y)/2;I.x+=o;for(let a=0;a<I.length;a++)I[a].offsetX+=o-C}if(e.indexOf("justify")===0)for(let g=0;g<A.length;g++){const I=A[g];if(e.indexOf("-")!==-1&&g===A.length-1)return;const o=t-I.width;if(o<=0)return;let s=0;for(let B=1;B<I.length-1;B++)s+=I[B].char===" "?1:0;const n=o/s;let C=1;e==="justify-right"&&(I.reverse(),C=-1);let a=0;for(let B=1;B<=I.length-1;B++){const Q=I[B];Q.offsetX+=a*C,a+=Q.char===" "?n:0}e==="justify-right"&&I.reverse()}}function itA(i,A,e){switch(i._textAlign._value){case"justify-left":case"justify":case"left":return-i._bounds._innerWidth/2;case"justify-right":case"right":return-A.width+i._bounds._innerWidth/2;case"center":return-A.width/2;case"justify-center":return e?-A.width/2:-i._bounds._innerWidth/2;default:console.warn(`textAlign: '${i._textAlign._value}' is not valid`)}}class gtA extends MU{constructor(){super(),this._value=this._input="column",this._allowsInherit=!1,this._needsUpdate=!0}computeOutputValue(A){this._value=this._inheritedInput}}class ItA extends M_{constructor(){super(),this._allowsInherit=!1,this.computeOutputValue=this._computeFromInherited}}class otA extends Ry{constructor(){super(),this._value=this._input=this.getDefaultValue(),this._allowsInherit=!1,this.computeOutputValue=this._computeFromInherited}_computeFromInherited(A){super._computeFromInherited(A)}}class stA extends E2{constructor(){super(),this._innerWidth=1/0,this._innerHeight=0}}class ntA extends Dt{constructor(){super("children",null,!1);r(this,"_sortOrder",(e,t)=>e._order._value<t._order._value?-1:e._order._value>t._order._value?1:this._uis.indexOf(e)<this._uis.indexOf(t)?-1:1);this._uis=[],this._inlines=[],this._boxes=[]}update(e,t){this._compute(e),this._needsProcess=!0}process(e){this._compute(e),e._overflow._needsRender=!0}_compute(e){this._uis=e.children.filter(t=>t.visible&&t.isUI),this._inlines=this._uis.filter(t=>t.isInline).sort(this._sortOrder)}dispose(){this._inlines=null}}class CtA extends Dt{constructor(){super("autosize")}process(A){if(A._layouter._value&&A._layouter._value.length){const e=A._layouter._value,t=A._padding._value,g=A._borderWidth._value;A._width._auto&&A._bounds.setOffsetWidth(A,e.width+t.w+t.y+g.w+g.y),A._height._auto&&A._bounds.setOffsetHeight(A,e.height+t.x+t.z+g.x+g.z)}}}class atA extends h2{constructor(){super("renderer"),this._needsUpdate=!1}render(A){super.render(A);for(const e of A._children._inlines)e._renderer.render(e);A.performAfterUpdate()}}class xl extends bl{constructor(A={},e={}){xl.definePropertiesValues(e,A),super(e,A),xl.init(this)}add(A){const e=[];let t=!1;for(let g=0;g<arguments.length;g++){const I=arguments[g];!I.isUI||I.isInline?(I.isInline&&(t=!0),e.push(I)):console.warn("Block element can only contain Box elements.",I)}return e.length>0&&super.add(...e),t&&(this._children._needsUpdate=!0,this._layouter._needsProcess=!0),this}set textContent(A){this._textContent.value=A}get textContent(){return super.textContent}set invertAlpha(A){this._invertAlpha.value=A}get invertAlpha(){return this._invertAlpha._value}get lines(){return this._layouter._value}static definePropertiesValues(A,e){A.flexDirection=gtA,A.justifyContent=RU,A.alignItems=mU,A.bounds=stA,A.autoSize=CtA,A.renderer=atA,A.children||(A.children=ntA),A.textContent||(A.textContent=XeA),A.layouter||(A.layouter=AtA),A.lineHeight||(A.lineHeight=ItA),A.textAlign||(A.textAlign=etA),A.whiteSpace||(A.whiteSpace=$U),A.fontKerning||(A.fontKerning=otA),A.segments||(A.segments=G2),e.width||(e.width="100%"),e.fontSide||(e.fontSide=0)}static init(A){Object.defineProperties(A,{isText:{configurable:!1,enumerable:!0,value:!0}})}}class rtA extends Dt{constructor(){super("inlines",null,!1),this._value=[]}process(A){this._value[0].paddingLeft=A._padding._value.w,this._value[0].marginLeft=A._margin._value.w;const e=this._value.length-1;this._value[e].paddingRight=A._padding._value.y,this._value[e].marginRight=A._margin._value.y}}class BtA extends Dt{constructor(){super("renderer")}render(A){A._backgroundMesh||A.setBackgroundMesh(new c2(A)),A._backgroundMesh.position.x=A._inlines._value[0].offsetX+A._inlines._value[0].width/2,A._backgroundMesh.position.y=A._inlines._value[0].offsetY+A._inlines._value[0].lineBase/2,A._bounds.render(A)}}class QtA extends Dt{constructor(){super("bounds",null,!1),this._size=new _A.Vector3(1,1,1),this._offsetWidth=0,this._offsetHeight=0,this._innerWidth=0,this._innerHeight=0}update(A,e){this.output(e),this._needsProcess=!0}process(A){this._offsetWidth=this._innerWidth=A._inlines._value[0].width,this._offsetHeight=this._innerHeight=A._inlines._value[0].height,this._needsRender=!0,A._borderWidth._needsRender=!0,A._borderRadius._needsRender=!0}render(A){this._size.x=this._offsetWidth,this._size.y=this._offsetHeight}output(A){A.size=this._size}}class Tl extends Td{constructor(A={}){const e={};Tl.definePropertiesValues(e,A),super(e,A),Tl.init(this)}clear(){for(const A of this._inlines._value)A.clear();return super.clear()}bindBackgroundMeshProperties(){this._backgroundMesh.raycast=()=>{},this._bounds._size=this._backgroundMesh.scale,this._bounds._needsUpdate=!0}unbindBackgroundMeshProperties(){this._bounds._size=new _A.Vector3(1,1,1),this._bounds._needsUpdate=!0}add(A){const e=[];for(let t=0;t<arguments.length;t++){const g=arguments[t];g.isUI?console.warn("ThreeMeshUI::InlineBlockElement cannot contains UI Elements.",g):(e.push(g),g.position.z=.005)}return super.add(...e)}static definePropertiesValues(A,e){A.children||(A.children=M2),A.bounds||(A.bounds=QtA),A.inlines||(A.inlines=rtA),A.layouter||(A.layouter=d2),A.renderer||(A.renderer=BtA),A.fontFamily||(A.fontFamily=f2),A.fontWeight||(A.fontWeight=p2),A.fontStyle||(A.fontStyle=u2),A.fontSize||(A.fontSize=m2),A.backgroundColor||(A.backgroundColor=h_),A.lineBreak||(A.lineBreak=l2),A.letterSpacing||(A.letterSpacing=k2),A.whiteSpace||(A.whiteSpace=$U),A.fontKerning||(A.fontKerning=Ry),e.backgroundSize||(e.backgroundSize="cover"),e.width||(e.width="100%"),e.height||(e.height="100%"),e.boxSizing||(e.boxSizing="border-box")}static init(A){Object.defineProperties(A,{isInline:{configurable:!1,enumerable:!0,value:!0},isInlineBlock:{configurable:!1,enumerable:!0,value:!0}}),A._inlines._value=[new EtA(A)],A.backgroundMaterial=new Q2,A._renderer.render(A)}}class EtA extends y_{constructor(A){super(),this._uiElement=A}get xadvance(){const A=this._uiElement._padding._value,e=this._uiElement._width;return e._relative?e._value*this._uiElement._fontSize.getInheritedInput(this._uiElement):A.w+A.y+e.value}get width(){const A=this._uiElement._width;return A._relative?A._value*this._uiElement._fontSize.getInheritedInput(this._uiElement):A.value}get height(){const A=this._uiElement._height;return A._relative?A._value*this._uiElement._fontSize.getInheritedInput(this._uiElement):A.value}get anchor(){return this.height}get lineHeight(){const A=this._uiElement._height;return A._relative?A._value*this._uiElement._fontSize.getInheritedInput(this._uiElement):A.value}get lineBase(){const A=this._uiElement._height;return A._relative?A._value*this._uiElement._fontSize.getInheritedInput(this._uiElement):A.value}clear(){this._uiElement=null}}class R2{constructor(A){this._subject=A}attach(){console.error(`Behavior::attach() - Is abstract and therefore should be overridden in ${this.constructor.name}`)}act(){throw new Error(`Behavior::act() - Is abstract and therefore should be overridden in ${this.constructor.name}`)}detach(){console.error(`Behavior::detach() - Is abstract and therefore should be overridden in ${this.constructor.name}`)}clear(){}}const U2=()=>YD.update(),F2={BaseProperty:Dt,Block:Ll,Text:xl,Inline:JE,InlineBlock:Tl,MeshUIBaseElement:Td,FontLibrary:QB,update:U2,MSDFFontMaterialUtils:bo,ShaderChunkUI:B2,Behavior:R2,FontVariant:vd};typeof global<"u"&&(global.ThreeMeshUI=F2);const ctA=F2;var htA=_i.w8,N2=_i.cg,AF=_i.gO,ltA=_i.wb,eM=_i.zV,dtA=_i.HS,utA=_i.Ec,bf=_i.gF,ptA=_i.ol,ftA=_i.pz,DtA=_i.tx,wtA=_i.hj,ytA=_i.FV,StA=_i.sV,eF=_i.xv,ktA=_i.mx,mtA=_i.gE,NQ=_i.ZP,K2=_i.Vx;const Nk=Object.freeze(Object.defineProperty({__proto__:null,BaseProperty:htA,Behavior:N2,Block:AF,DefaultValues:ltA,FontLibrary:eM,FontVariant:dtA,InheritableProperty:utA,Inline:bf,InlineBlock:ptA,InlineGlyph:ftA,MSDFFontMaterialUtils:DtA,MaterialTransformers:wtA,MeshUIBaseElement:ytA,ShaderChunkUI:StA,Text:eF,TypographicFont:ktA,TypographicGlyph:mtA,default:NQ,update:K2},Symbol.toStringTag,{value:"Module"})),gI=new w,Mv=new w,Rv=new MA,GtA=sA("debuggizmos"),bn=8947848;class tn{static DrawLabel(A,e,t=.1,g=9999,I,o,s){I||(I=bn);const n=Li.getTextLabel(g,e,t,I,o);return s instanceof SA&&s.add(n),n.position.x=A.x,n.position.y=A.y,n.position.z=A.z,n}static DrawRay(A,e,t=bn,g=0,I=!0){const o=Li.getLine(g),s=o.geometry.getAttribute("position");s.setXYZ(0,A.x,A.y,A.z),gI.set(e.x,e.y,e.z).multiplyScalar(999999999),s.setXYZ(1,A.x+gI.x,A.y+gI.y,A.z+gI.z),s.needsUpdate=!0,o.material.color.set(t),o.material.depthTest=I,o.material.depthWrite=!1}static DrawDirection(A,e,t=bn,g=0,I=!0,o=1){const s=Li.getLine(g),n=s.geometry.getAttribute("position");n.setXYZ(0,A.x,A.y,A.z),e.w!==void 0?(gI.set(0,0,-o),Rv.set(e.x,e.y,e.z,e.w),gI.applyQuaternion(Rv)):(gI.set(e.x,e.y,e.z),gI.multiplyScalar(o)),n.setXYZ(1,A.x+gI.x,A.y+gI.y,A.z+gI.z),n.needsUpdate=!0,s.material.color.set(t),s.material.depthTest=I,s.material.depthWrite=!1}static DrawLine(A,e,t=bn,g=0,I=!0){const o=Li.getLine(g),s=o.geometry.getAttribute("position");s.setXYZ(0,A.x,A.y,A.z),s.setXYZ(1,e.x,e.y,e.z),s.needsUpdate=!0,o.material.color.set(t),o.material.depthTest=I,o.material.depthWrite=!1}static DrawWireSphere(A,e,t=bn,g=0,I=!0){const o=Li.getSphere(e,g,!0);rB(o,A.x,A.y,A.z),o.material.color.set(t),o.material.depthTest=I,o.material.depthWrite=!1}static DrawSphere(A,e,t=bn,g=0,I=!0){const o=Li.getSphere(e,g,!1);rB(o,A.x,A.y,A.z),o.material.color.set(t),o.material.depthTest=I,o.material.depthWrite=!1}static DrawWireBox(A,e,t=bn,g=0,I=!0){const o=Li.getBox(g);o.position.set(A.x,A.y,A.z),o.scale.set(e.x,e.y,e.z),o.material.color.set(t),o.material.depthTest=I,o.material.wireframe=!0,o.material.depthWrite=!1}static DrawWireBox3(A,e=bn,t=0,g=!0){const I=Li.getBox(t);I.position.copy(A.getCenter(gI)),I.scale.copy(A.getSize(gI)),I.material.color.set(e),I.material.depthTest=g,I.material.wireframe=!0,I.material.depthWrite=!1}static DrawArrow(A,e,t=bn,g=0,I=!0,o=!1){const s=Li.getArrowHead(g);s.position.set(e.x,e.y,e.z),s.quaternion.setFromUnitVectors(this._up.set(0,1,0),gI.set(e.x,e.y,e.z).sub(Mv.set(A.x,A.y,A.z)).normalize());const C=gI.set(e.x,e.y,e.z).sub(Mv.set(A.x,A.y,A.z)).length()*.1;s.scale.set(C,C,C),s.material.color.set(t),s.material.depthTest=I,s.material.wireframe=o,this.DrawLine(A,e,t,g,I)}}r(tn,"_up",new w(0,1,0));const MtA=new Jt(1,1,1);function J2(i=null){const A=new yA(i??14540253),e=new hR(MtA);return new Eo(e,new Ui({color:A}))}const Uv=Symbol("GizmoCache");class Li{static ensureFont(){let A=NQ.FontLibrary.getFontFamily(this.familyName);if(!A){A=NQ.FontLibrary.addFontFamily(this.familyName);const e=A.addVariant("normal","normal","./include/needle/arial-msdf.json","./include/needle/arial.png");e==null||e.addEventListener("ready",()=>{NQ.update()})}}static getTextLabel(A,e,t,g,I){this.ensureFont();let o=this.textLabelCache.pop(),s=1;I&&typeof I=="string"&&(I==null?void 0:I.length)>=8&&I.startsWith("#")?(s=parseInt(I.substring(7),16)/255,I=I.substring(0,7),GtA&&console.log(I,s)):typeof I=="object"&&I.a!==void 0&&(s=I.a);const n={boxSizing:"border-box",fontFamily:this.familyName,width:"auto",fontSize:t,color:g,lineHeight:.75,backgroundColor:I??void 0,backgroundOpacity:s,textContent:e,borderRadius:1*t,padding:1*t};if(o)o.set(n);else{o=new eF(n);const C=this,a=o;a.setText=function(B){this.set({textContent:B,whiteSpace:"pre"}),C.tmuiNeedsUpdate=!0}}return this.tmuiNeedsUpdate=!0,o.layers.disableAll(),o.layers.enable(2),this.registerTimedObject(be.Current,o,A,this.textLabelCache),o}static getBox(A){let e=this.boxesCache.pop();if(!e){const t=new Jt(1,1,1);e=new pA(t)}return this.registerTimedObject(be.Current,e,A,this.boxesCache),e}static getLine(A){let e=this.linesCache.pop();if(!e){e=new wi;let t=e.geometry.getAttribute("position");t||(t=new $A(new Float32Array(2*3),3),e.geometry.setAttribute("position",t))}return this.registerTimedObject(be.Current,e,A,this.linesCache),e}static getSphere(A,e,t){let g=this.spheresCache.pop();return g||(g=new pA(new Xo(1,8,8))),g.scale.set(A,A,A),g.material.wireframe=t,this.registerTimedObject(be.Current,g,e,this.spheresCache),g}static getArrowHead(A){let e=this.arrowHeadsCache.pop();return e||(e=new pA(new di(0,.5,1,8))),this.registerTimedObject(be.Current,e,A,this.arrowHeadsCache),e}static registerTimedObject(A,e,t,g){if(!this.contextPostRenderCallbacks.get(A)){const I=()=>{this.onPostRender(A,this.timedObjectsBuffer,this.timesBuffer)};this.contextPostRenderCallbacks.set(A,I),A.post_render_callbacks.push(I)}if(!this.contextBeforeRenderCallbacks.get(A)){const I=()=>{this.onBeforeRender(A,this.timedObjectsBuffer)};this.contextBeforeRenderCallbacks.set(A,I),A.pre_render_callbacks.push(I)}e.layers.disableAll(),e.layers.enable(2),e[Uv]=g,this.timedObjectsBuffer.push(e),this.timesBuffer.push(be.Current.time.time+t),A.scene.add(e)}static onBeforeRender(A,e){this.tmuiNeedsUpdate&&NQ.update();for(let t=0;t<e.length;t++){const g=e[t];if(A.mainCamera&&g instanceof NQ.MeshUIBaseElement){const I=A.isInVR,o=I,s=!I;vR(g,A.mainCamera,o,s)}}}static onPostRender(A,e,t){const g=A.time.time;for(let I=0;I<e.length;I++){const o=e[I];g>t[I]&&(o[Uv].push(o),o.removeFromParent(),e.splice(I,1),t.splice(I,1))}}}r(Li,"familyName","needle-gizmos"),r(Li,"linesCache",[]),r(Li,"spheresCache",[]),r(Li,"boxesCache",[]),r(Li,"arrowHeadsCache",[]),r(Li,"textLabelCache",[]),r(Li,"timedObjectsBuffer",new Array),r(Li,"timesBuffer",new Array),r(Li,"contextPostRenderCallbacks",new Map),r(Li,"contextBeforeRenderCallbacks",new Map),r(Li,"tmuiNeedsUpdate",!1);const RtA=sA("gizmos"),UtA=sA("debugboxhelper"),Ko=class extends NA{constructor(){super(...arguments);r(this,"box",null);r(this,"_lastMatrixUpdateFrame",-1);r(this,"_helper",null);r(this,"_color",null)}isInBox(e,t){var I;if(!e)return;if(this.box||(this.box=new Yi),e.type==="Mesh")Ko.testBox.setFromObject(e);else if(e.type==="Group"){if(Ko.testBox.makeEmpty(),e.children.length>0)for(let o=0;o<e.children.length;o++)e.children[o].type==="Mesh"&&Ko.testBox.expandByObject(e)}else{const o=ce(e,Ko._position),s=ag(e,Ko._size);t!==void 0&&s.multiplyScalar(t),Ko.testBox.setFromCenterAndSize(o,s)}this.updateBox();const g=(I=this.box)==null?void 0:I.intersectsBox(Ko.testBox);return g&&UtA&&tn.DrawWireBox3(Ko.testBox,16711680,5),g}intersects(e){return e?this.updateBox(!1).intersectsBox(e):!1}updateBox(e=!1){if(this.box||(this.box=new Yi),e||this.context.time.frameCount!=this._lastMatrixUpdateFrame){const t=this._lastMatrixUpdateFrame<0;this._lastMatrixUpdateFrame=this.context.time.frameCount;const g=t,I=ce(this.gameObject,Ko._position,g),o=ag(this.gameObject,Ko._size);this.box.setFromCenterAndSize(I,o)}return this.box}awake(){this._helper=null,this._color=null,this.box=null}showHelper(e=null,t=!1){var g;if(!(!RtA&&!t)){if(this._helper){e&&((g=this._color)==null||g.set(e)),this.gameObject.add(this._helper);return}this._helper=J2(e),this.gameObject.add(this._helper)}}};let xo=Ko;r(xo,"testBox",new Yi),r(xo,"_position",new w),r(xo,"_size",new w(.01,.01,.01));var FtA=Object.defineProperty,NtA=Object.getOwnPropertyDescriptor,q2=(i,A,e,t)=>{for(var g=t>1?void 0:t?NtA(A,e):A,I=i.length-1,o;I>=0;I--)(o=i[I])&&(g=(t?o(A,e,g):o(g))||g);return t&&g&&FtA(A,e,g),g};const ih=sA("debugreflectionprobe"),Fv=sA("noreflectionprobe"),KtA=Symbol("reflectionProbeKey"),JtA=Symbol("original material");var Cf;const Tn=(Cf=class extends NA{constructor(){var A;super();r(this,"_texture");r(this,"center");r(this,"size");r(this,"_boxHelper");Tn._probes.has(this.context)||Tn._probes.set(this.context,[]),(A=Tn._probes.get(this.context))==null||A.push(this)}static get(A,e,t,g){if(!A||A.isObject3D!==!0||Fv)return null;const I=Tn._probes.get(e);if(I){for(const o of I)if(o.__didAwake||o.__internalAwake(),o.enabled){if(g){if(o.gameObject===g)return o}else if(o.isInBox(A,void 0))return ih&&console.log("Found reflection probe",A.name,o.name),o}}return ih&&console.debug("Did not find reflection probe",A.name,t,A),null}set texture(A){if(A&&!(A instanceof Le)){console.error("ReflectionProbe.texture must be a Texture",A);return}this._texture=A,A&&(A.mapping=Oo,A.colorSpace=ge,A.needsUpdate=!0)}get texture(){return this._texture}isInBox(A,e){var t;return(t=this._boxHelper)==null?void 0:t.isInBox(A,e)}awake(){this._boxHelper=this.gameObject.addNewComponent(xo),this._boxHelper.updateBox(!0),ih&&this._boxHelper.showHelper(5592320,!0),this.texture&&(this.texture.mapping=Oo,this.texture.colorSpace=ge,this.texture.needsUpdate=!0)}onDestroy(){const A=Tn._probes.get(this.context);if(A){const e=A.indexOf(this);e>=0&&A.splice(e,1)}}onSet(A){var t;if(Fv||!this.enabled||((t=A.sharedMaterials)==null?void 0:t.length)<=0||!this.texture)return;let e=Tn._rendererMaterialsCache.get(A);e||(e=[],Tn._rendererMaterialsCache.set(A,e));for(let g=0;g<A.sharedMaterials.length;g++){const I=A.sharedMaterials[g];if(!I||I.envMap===void 0)continue;let o=e[g];const s=I===(o==null?void 0:o.copy),n=!o||o.material.uuid!==I.uuid||o.copy.version!==I.version;if(!s&&n){if(ih){let B="";o?o.material!==I?B="reference changed; cached instance?: "+s:o.copy.version!==I.version&&(B="version changed"):B="not cached",console.warn("Cloning material",I.name,I.version,"Reason:",B,`
4916
4918
  `,I.uuid,`
4917
4919
  `,o==null?void 0:o.copy.uuid,`
4918
- `,A.name)}const a=I.clone();a.version=I.version,o?(o.copy=a,o.material=I):(o={material:I,copy:a},e.push(o)),a[KtA]=this,a[JtA]=I,ih&&console.log("Set reflection",A.name,A.guid)}const C=o==null?void 0:o.copy;C.envMap=this.texture,A.sharedMaterials[g]=C}}onUnset(A){const e=Tn._rendererMaterialsCache.get(A);if(e)for(let t=0;t<e.length;t++){const g=e[t];A.sharedMaterials[t]=g.material}}},r(Cf,"_probes",new Map),r(Cf,"_rendererMaterialsCache",new Map),Cf);let Ic=Tn;q2([D(w)],Ic.prototype,"center",2);q2([D(w)],Ic.prototype,"size",2);const v2=Symbol("customVisibilityFlag");function Lf(i,A){i.layers[v2]=A}const Nv=Symbol("DidPatchLayers");function qtA(){const i=Vg.prototype;if(i[Nv])return;i[Nv]=!0;const A=i.test;i.test=function(e){return this[v2]===!1?!1:A.call(this,e)}}qtA();var vtA=Object.defineProperty,btA=Object.getOwnPropertyDescriptor,JC=(i,A,e,t)=>{for(var g=t>1?void 0:t?btA(A,e):A,I=i.length-1,o;I>=0;I--)(o=i[I])&&(g=(t?o(A,e,g):o(g))||g);return t&&g&&vtA(A,e,g),g};const xf=sA("debugrenderer"),LtA=sA("debugskinnedmesh"),Kv=sA("noInstancing"),tM=sA("debuginstancing"),xtA=sA("debugprogressive"),TtA=sA("noprogressive"),YtA=sA("wireframe");class tF{constructor(){r(this,"path",null);r(this,"asset",null);r(this,"default")}}class HtA{constructor(A,e){r(this,"_renderer");r(this,"_targets",[]);r(this,"_indexMapMaxIndex");r(this,"_indexMap");r(this,"_changed",!1);this._renderer=A;const t=this.setMaterial.bind(this),g=this.getMaterial.bind(this),I=A.gameObject;if(this._targets=[],I)switch(I.type){case"Group":this._targets=[...I.children];break;case"SkinnedMesh":case"Mesh":this._targets.push(I);break}let o=!1,s,n=0;for(let C=0;C<this._targets.length;C++){const a=this._targets[C];if(!a)continue;const B=a.material;if(B){B.shadowSide=B.side;for(let Q=0;Q<e.length;Q++){const E=e[Q];if(!E){o=!0;continue}if(B.name===E.name){s===void 0&&(s=new Map),s.set(Q,C),n=Math.max(n,Q);break}}}}if(o){this._indexMapMaxIndex=n,this._indexMap=s;const C=`Renderer ${A.name} was initialized with missing materials - this may lead to unexpected behaviour when trying to access sharedMaterials by index.`;console.warn(C),lI()&&cg("Found renderer with missing materials: please check the console for details.")}return new Proxy(this,{get(C,a){if(typeof a=="string"){const B=parseInt(a);if(!isNaN(B))return g(B)}return C[a]},set(C,a,B){return typeof a=="string"&&t(B,Number.parseInt(a)),Reflect.set(C,a,B)?(B instanceof xe&&(C.changed=!0),!0):!1}})}get changed(){return this._changed}set changed(A){A===!0&&xf&&console.warn("SharedMaterials have changed: "+this._renderer.name,this),this._changed=A}is(A){return this._renderer===A}get length(){return this._indexMapMaxIndex!==void 0?this._indexMapMaxIndex+1:this._targets.length}*[Symbol.iterator](){for(let A=0;A<this.length;A++)yield this.getMaterial(A)}resolveIndex(A){const e=this._indexMap;return e&&e.has(A)?e.get(A):A}setMaterial(A,e){if(e=this.resolveIndex(e),e<0||e>=this._targets.length)return;const t=this._targets[e];!t||t.material===void 0||(t.material=A,this.changed=!0)}getMaterial(A){if(A=this.resolveIndex(A),A<0)return null;const e=this._targets;if(A>=e.length)return null;const t=e[A];return t?t.material:null}}const b2=class extends NA{constructor(){super(...arguments);r(this,"receiveShadows",!1);r(this,"shadowCastingMode",0);r(this,"lightmapIndex",-1);r(this,"lightmapScaleOffset",new ee(1,1,0,0));r(this,"enableInstancing");r(this,"renderOrder");r(this,"allowOcclusionWhenDynamic",!0);r(this,"probeAnchor");r(this,"reflectionProbeUsage",0);r(this,"_lightmaps");r(this,"_sharedMaterials");r(this,"_originalMaterials");r(this,"_lightmapTextureOverride");r(this,"allowProgressiveLoading",!0);r(this,"_isInstancingEnabled",!1);r(this,"handles");r(this,"prevLayers");r(this,"onBeforeRenderThree",(A,e,t,g,I,o)=>{var s;if(I.envMapIntensity!==void 0){const n=this.hasLightmap?Math.PI:1,C=((s=this.context.mainCameraComponent)==null?void 0:s.environmentIntensity)??1;I.envMapIntensity=Math.max(0,C*this.context.sceneLighting.environmentIntensity/n)}if(this._lightmaps)for(const n of this._lightmaps)n.updateLightmapUniforms(I)});r(this,"_reflectionProbe",null)}static setVisible(A,e){Lf(A,e)}get sharedMesh(){if(this.gameObject.type==="Mesh")return this.gameObject;if(this.gameObject.type==="SkinnesMesh")return this.gameObject;if(this.gameObject.type==="Group")return this.gameObject.children[0]}get sharedMaterial(){return this.sharedMaterials[0]}set sharedMaterial(A){this.sharedMaterials[0]!==A&&(this.sharedMaterials[0]=A,this.applyLightmapping())}get material(){return this.sharedMaterials[0]}set material(A){this.sharedMaterial=A}set sharedMaterials(A){if(!this._originalMaterials)this._originalMaterials=A;else if(A){let e=!1;for(let t=0;t<this._sharedMaterials.length;t++){const g=t<A.length?A[t]:null;g&&g instanceof xe?this.sharedMaterials[t]=g:e||(e=!0,console.warn("Can not assign null as material: "+this.name,g))}}}get sharedMaterials(){return(!this._sharedMaterials||!this._sharedMaterials.is(this))&&(this._originalMaterials||(this._originalMaterials=[]),this._sharedMaterials=new HtA(this,this._originalMaterials)),this._sharedMaterials}static get shouldSuppressInstancing(){return Kv}get lightmap(){var A;return(A=this._lightmaps)!=null&&A.length?this._lightmaps[0].lightmap:null}set lightmap(A){var e;if(this._lightmapTextureOverride=A,A===void 0&&(A=this.context.lightmaps.tryGetLightmap(this.sourceId,this.lightmapIndex)),(e=this._lightmaps)!=null&&e.length)for(const t of this._lightmaps)t.lightmap=A}get hasLightmap(){const A=this.lightmap;return A!=null}registering(){this.enabled||this.setVisibility(!1)}awake(){if(xf&&console.log("Renderer ",this.name,this),this.clearInstancingState(),this.probeAnchor&&xf&&this.probeAnchor.add(new WE(.2)),this._reflectionProbe=null,this.isMultiMaterialObject(this.gameObject)){for(const A of this.gameObject.children)this.context.addBeforeRenderListener(A,this.onBeforeRenderThree),A.layers.mask=this.gameObject.layers.mask;if(this.renderOrder!==void 0){let A=0;for(let e=0;e<this.gameObject.children.length;e++){const t=this.gameObject.children[e];if(!(!this.isMeshOrSkinnedMesh(t)||IA.getComponent(t,b2))){if(this.renderOrder.length<=A){console.warn("Incorrect renderOrder element count",this,this.renderOrder.length+" but expected "+this.gameObject.children.length,"Index: "+A,"ChildElement:",t);continue}t.renderOrder=this.renderOrder[A],A+=1}}}}else this.isMeshOrSkinnedMesh(this.gameObject)?(this.context.addBeforeRenderListener(this.gameObject,this.onBeforeRenderThree),this.renderOrder!==void 0&&this.renderOrder.length>0&&(this.gameObject.renderOrder=this.renderOrder[0])):this.context.addBeforeRenderListener(this.gameObject,this.onBeforeRenderThree);if(this.applyLightmapping(),YtA)for(let A=0;A<this.sharedMaterials.length;A++){const e=this.sharedMaterials[A];e&&(e.wireframe=!0)}}applyLightmapping(){var A;if(this.lightmapIndex>=0){const e=this.gameObject.type,t=this._lightmapTextureOverride!==void 0?this._lightmapTextureOverride:this.context.lightmaps.tryGetLightmap(this.sourceId,this.lightmapIndex);if(t){if(this._lightmaps||(this._lightmaps=[]),e==="Mesh"){const g=this.gameObject.material;if(g!=null&&g.isMeshBasicMaterial)g&&console.warn("Lightmapping is not supported on MeshBasicMaterial",g.name);else{if(this._lightmaps.length<=0){const o=new Kl(this.gameObject,this.context);this._lightmaps.push(o)}this._lightmaps[0].init(this.lightmapIndex,this.lightmapScaleOffset,t)}}else if(this.isMultiMaterialObject(this.gameObject)&&this.sharedMaterials.length>0)for(let g=0;g<this.gameObject.children.length;g++){const I=this.gameObject.children[g];if(!((A=I.material)!=null&&A.isMeshBasicMaterial)){let o;g>=this._lightmaps.length?(o=new Kl(I,this.context),this._lightmaps.push(o)):o=this._lightmaps[g],o.init(this.lightmapIndex,this.lightmapScaleOffset,t)}}}else xf&&console.warn("Lightmap not found",this.sourceId,this.lightmapIndex)}}clearInstancingState(){this._isInstancingEnabled=!1,this.handles=void 0,this.prevLayers=void 0}setInstancingEnabled(A){if(this._isInstancingEnabled===A)return A&&(this.handles===void 0||this.handles!=null&&this.handles.length>0);if(this._isInstancingEnabled=A,A){if(this.handles===void 0){if(this.handles=OtA.setup(this,this.gameObject,this.context,null,{rend:this,foundMeshes:0,useMatrixWorldAutoUpdate:this.useInstanceMatrixWorldAutoUpdate()}),this.handles)return IA.markAsInstancedRendered(this.gameObject,!0),!0}else if(this.handles!==null){for(const e of this.handles)e.updateInstanceMatrix(!0),e.add();return IA.markAsInstancedRendered(this.gameObject,!0),!0}}else{if(this.handles)for(const e of this.handles)e.remove();return!0}return!1}useInstanceMatrixWorldAutoUpdate(){return!0}start(){if(this.enableInstancing&&!Kv&&(this.setInstancingEnabled(!0),jg.markDirty(this.gameObject)),this.gameObject.frustumCulled=this.allowOcclusionWhenDynamic,this.isMultiMaterialObject(this.gameObject))for(let A=0;A<this.gameObject.children.length;A++){const e=this.gameObject.children[A];e.frustumCulled=this.allowOcclusionWhenDynamic}}onEnable(){this.setVisibility(!0),this._isInstancingEnabled?this.setInstancingEnabled(!0):this.enabled&&this.applyStencil(),this.updateReflectionProbe()}onDisable(){this.setVisibility(!1),this.handles&&this.handles.length>0&&this.setInstancingEnabled(!1)}onDestroy(){if(this.handles=null,this.isMultiMaterialObject(this.gameObject))for(const A of this.gameObject.children)this.context.removeBeforeRenderListener(A,this.onBeforeRenderThree);else this.context.removeBeforeRenderListener(this.gameObject,this.onBeforeRenderThree)}applyStencil(){Zh.applyStencil(this)}onBeforeRender(){var A,e;if(this.gameObject){if(this.isMultiMaterialObject(this.gameObject)&&((A=this.gameObject.children)==null?void 0:A.length)>0)for(const t of this.gameObject.children)this.applySettings(t);else this.applySettings(this.gameObject);if(this.sharedMaterials.changed&&(this.sharedMaterials.changed=!1,this.applyLightmapping()),(e=this.handles)!=null&&e.length&&this.gameObject[Rl]===!0){tM&&console.log("UPDATE INSTANCED MATRICES",this.context.time.frame),this.gameObject[Rl]=!1;for(let g=this.handles.length-1;g>=0;g--)this.handles[g].updateInstanceMatrix();this.gameObject.matrixWorldNeedsUpdate=!1}if(this.handles&&this.handles.length<=0&&IA.markAsInstancedRendered(this.gameObject,!1),this._isInstancingEnabled&&this.handles)for(let t=0;t<this.handles.length;t++){const g=this.handles[t];this.prevLayers||(this.prevLayers=[]);const I=g.object.layers.mask;t>=this.prevLayers.length?this.prevLayers.push(I):this.prevLayers[t]=I,g.object.layers.disableAll()}for(const t of this.sharedMaterials)t&&this.loadProgressiveTextures(t);this.reflectionProbeUsage!==0&&this._reflectionProbe&&this._reflectionProbe.onSet(this)}}onAfterRender(){if(this._isInstancingEnabled&&this.handles&&this.prevLayers&&this.prevLayers.length>=this.handles.length)for(let A=0;A<this.handles.length;A++){const e=this.handles[A];e.object.layers.mask=this.prevLayers[A]}this.reflectionProbeUsage!==0&&this._reflectionProbe&&this._reflectionProbe.onUnset(this)}loadProgressiveTextures(A){return!TtA&&A&&A._didRequestTextureLOD===void 0&&this.allowProgressiveLoading?(A._didRequestTextureLOD=0,xtA&&console.log("Load material LOD",A.name),Ao.assignTextureLOD(this.context,this.sourceId,A)):Promise.resolve(!0)}applySettings(A){A.receiveShadow=this.receiveShadows,this.shadowCastingMode==1?A.castShadow=!0:A.castShadow=!1}updateReflectionProbe(){if(this._reflectionProbe=null,this.reflectionProbeUsage!==0){if(!this.probeAnchor)return;this.startCoroutine(this._updateReflectionProbe(),Bg.LateUpdate)}}*_updateReflectionProbe(){const A=this.probeAnchor||this.gameObject,e=!!this.probeAnchor;this._reflectionProbe=Ic.get(A,this.context,e,this.probeAnchor)}setVisibility(A){if(!this.isMultiMaterialObject(this.gameObject))Lf(this.gameObject,A);else for(const e of this.gameObject.children)this.isMeshOrSkinnedMesh(e)&&Lf(e,A)}isMultiMaterialObject(A){return A.type==="Group"}isMeshOrSkinnedMesh(A){return A.type==="Mesh"||A.type==="SkinnedMesh"}};let Fi=b2;JC([D()],Fi.prototype,"receiveShadows",2);JC([D()],Fi.prototype,"shadowCastingMode",2);JC([D()],Fi.prototype,"lightmapIndex",2);JC([D(ee)],Fi.prototype,"lightmapScaleOffset",2);JC([D()],Fi.prototype,"enableInstancing",2);JC([D()],Fi.prototype,"renderOrder",2);JC([D()],Fi.prototype,"allowOcclusionWhenDynamic",2);JC([D(SA)],Fi.prototype,"probeAnchor",2);JC([D()],Fi.prototype,"reflectionProbeUsage",2);class Jy extends Fi{}class iF extends Jy{awake(){var A;super.awake(),this.allowOcclusionWhenDynamic=!1,(A=this.gameObject.parent)==null||A.updateWorldMatrix(!1,!0)}onBeforeRender(){if(super.onBeforeRender(),LtA&&this.gameObject instanceof Ds&&this.gameObject.boundingSphere){const A=Dd(this.gameObject.boundingSphere.center).applyMatrix4(this.gameObject.matrixWorld);tn.DrawWireSphere(A,this.gameObject.boundingSphere.radius,"red")}}}class _tA{constructor(){r(this,"objs",[])}setup(A,e,t,g,I,o=0){A.applySettings(e);const s=this.tryCreateOrAddInstance(e,t,I);if(s)A.loadProgressiveTextures(s.instancer.material),g===null&&(g=[]),g.push(s);else if(o<=0&&e.type!=="Mesh"){const n=o+1;for(const C of e.children)g=this.setup(A,C,t,g,I,n)}return o===0&&I.useMatrixWorldAutoUpdate&&g&&g.length>=0&&this.autoUpdateInstanceMatrix(e),g}tryCreateOrAddInstance(A,e,t){if(A.type==="Mesh"){const g=t.foundMeshes;if(t.foundMeshes+=1,!t.rend.enableInstancing||g>=t.rend.enableInstancing.length||!t.rend.enableInstancing[g])return null;const I=A,o=I.geometry,s=I.material;for(const a of this.objs)if(!a.isFull()&&a.geo===o&&a.material===s)return a.addInstance(I);const n=new Tf(A.name,o,s,200,e);return this.objs.push(n),n.addInstance(I)}return null}autoUpdateInstanceMatrix(A){const e=A.matrixWorld.multiplyMatrices.bind(A.matrixWorld),t=A.matrixWorld.clone(),g=(I,o)=>{const s=e(I,o);return(A[Rl]||t.equals(s)===!1)&&(t.copy(s),A[Rl]=!0),s};A.matrixWorld.multiplyMatrices=g}}const OtA=new _tA;class PtA{constructor(A,e,t){r(this,"instanceIndex",-1);r(this,"object");r(this,"instancer");this.instanceIndex=A,this.object=e,this.instancer=t,e[JY]=t,IA.markAsInstancedRendered(e,!0)}get name(){return this.object.name}updateInstanceMatrix(A=!1){this.instanceIndex<0||(this.object.updateWorldMatrix(!0,A),this.instancer.updateInstance(this.object.matrixWorld,this.instanceIndex))}setMatrix(A){this.instanceIndex<0||this.instancer.updateInstance(A,this.instanceIndex)}add(){this.instanceIndex>=0||this.instancer.add(this)}remove(){this.instanceIndex<0||this.instancer.remove(this)}}const _N=class{constructor(A,e,t,g,I){r(this,"name","");r(this,"geo");r(this,"material");r(this,"context");r(this,"inst");r(this,"handles",[]);r(this,"maxCount");r(this,"_needUpdateBounds",!1);this.name=A,this.geo=e,this.material=t,this.context=I,this.maxCount=g,tM&&(t=new at({color:this.randomColor()})),this.inst=new Fw(e,t,g),this.inst[SG]=!0,this.inst.onBeforeRender=()=>{this._needUpdateBounds&&this.inst[SG]===!0&&(tM&&console.log("Update instancing bounds",this.name),this.updateBounds())},this.inst.count=0,this.inst.layers.set(2),this.inst.visible=!0,this.context.scene.add(this.inst)}get mesh(){return this.inst}get visible(){return this.inst.visible}set visible(A){this.inst.visible=A}get castShadow(){return this.inst.castShadow}set castShadow(A){this.inst.castShadow=A}set receiveShadow(A){this.inst.receiveShadow=A}updateBounds(A=!0,e=!0){this._needUpdateBounds=!1,A&&this.inst.computeBoundingBox(),e&&this.inst.computeBoundingSphere()}get currentCount(){return this.inst.count}isFull(){return this.currentCount>=this.maxCount}randomColor(){return new yA(Math.random(),Math.random(),Math.random())}addInstance(A){if(this.currentCount>=this.maxCount)return console.error("TOO MANY INSTANCES - resize is not yet implemented!",this.inst.count),null;const e=new PtA(-1,A,this);return A.castShadow===!0&&this.inst.castShadow===!1&&(this.inst.castShadow=!0),A.receiveShadow===!0&&this.inst.receiveShadow===!1&&(this.inst.receiveShadow=!0),this.add(e),e}add(A){A.instanceIndex<0&&(A.instanceIndex=this.currentCount,A.instanceIndex>=this.handles.length?this.handles.push(A):this.handles[A.instanceIndex]=A),A.object.updateWorldMatrix(!0,!0),this.inst.setMatrixAt(A.instanceIndex,A.object.matrixWorld),this.inst.instanceMatrix.needsUpdate=!0,this.inst.count+=1,this._needUpdateBounds=!0,this.inst.count>0&&(this.inst.visible=!0)}remove(A){if(!A||A.instanceIndex<0||A.instanceIndex>=this.handles.length||this.inst.count<=0)return;if(this.handles[A.instanceIndex]!==A){console.error("instance handle is not part of renderer, was it removed before?",A.instanceIndex,this.name);const t=this.handles.indexOf(A);if(t<0)return;A.instanceIndex=t}if(this.handles[A.instanceIndex]=null,this.inst.setMatrixAt(A.instanceIndex,_N.nullMatrix),!(A.instanceIndex>=this.currentCount-1)&&this.currentCount>0){const t=this.handles[this.currentCount-1];t&&(t.instanceIndex=A.instanceIndex,t.updateInstanceMatrix(),this.handles[A.instanceIndex]=t,this.handles[this.currentCount-1]=null)}this.inst.count>0&&(this.inst.count-=1),A.instanceIndex=-1,this._needUpdateBounds=!0,this.inst.count<=0&&(this.inst.visible=!1),this.inst.instanceMatrix.needsUpdate=!0}updateInstance(A,e){this.inst.setMatrixAt(e,A),this.inst.instanceMatrix.needsUpdate=!0,this._needUpdateBounds=!0}};let Tf=_N;r(Tf,"nullMatrix",new FA);function qy(i){return i=i.replace(/[^a-zA-Z0-9_]/g,""),i.match(/^[a-zA-Z_]/)||(i="_"+i),i}function L2(i){if(i.length===0)return null;const A=i.map(t=>{const g=new Array;for(;t.parent;)g.unshift(t.parent),t=t.parent;return g});return A[0].findLast(t=>A.every(g=>g.includes(t)))||null}function x2(i){const A=L2(i),e=new Set;for(const t of i){let g=t.parent;for(;g&&g!==A;)i.includes(g)||e.add(g),g=g.parent}return e}const Hr=class{constructor(A,e,t,g=null,I=null,o=null,s=null,n=null){r(this,"uuid");r(this,"name");r(this,"matrix");r(this,"_isDynamic");r(this,"geometry");r(this,"material");r(this,"camera");r(this,"parent");r(this,"skinnedMesh");r(this,"children",[]);r(this,"animations");r(this,"_eventListeners");this.uuid=A,this.name=qy(e),this.matrix=t,this.geometry=g,this.material=I,this.camera=o,this.parent=null,this.children=[],this._eventListeners={},this._isDynamic=!1,this.skinnedMesh=s,this.animations=n}get isDynamic(){return this._isDynamic}set isDynamic(A){this._isDynamic=A}static createEmptyParent(A){const e=new Hr(Sg.generateUUID(),A.name+"_empty_"+Hr.USDObject_export_id++,A.matrix);return A.parent.add(e),e.add(A),e.isDynamic=!0,A.matrix=new FA().identity(),e}static createEmpty(){const A=new Hr(Sg.generateUUID(),"Empty_"+Hr.USDObject_export_id++,new FA);return A.isDynamic=!0,A}is(A){return A?this.uuid===A.uuid:!1}isEmpty(){return!this.geometry}clone(){const A=new Hr(Sg.generateUUID(),this.name,this.matrix,this.geometry,this.material);return A.isDynamic=this.isDynamic,A}getPath(){let A=this.parent,e=this.name;for(;A;)e=(A.parent?A.name:A.name+"/Scenes/Scene")+"/"+e,A=A.parent;return"</"+e+">"}add(A){A.parent&&A.parent.remove(A),A.parent=this,this.children.push(A)}remove(A){const e=this.children.indexOf(A);e>=0&&(A.parent===this&&(A.parent=null),this.children.splice(e,1))}addEventListener(A,e){this._eventListeners[A]||(this._eventListeners[A]=[]),this._eventListeners[A].push(e)}removeEventListener(A,e){if(!this._eventListeners[A])return;const t=this._eventListeners[A].indexOf(e);t>=0&&this._eventListeners[A].splice(t,1)}onSerialize(A,e){const t=this._eventListeners.serialize;t&&t.forEach(g=>g(A,e))}};let JI=Hr;r(JI,"USDObject_export_id",0);class T2 extends JI{constructor(){super(void 0,"StageRoot",new FA,null,null,null);r(this,"stageLength");this.children=[],this.stageLength=200}get isDocumentRoot(){return!0}get isDynamic(){return!1}add(e){e.parent=this,this.children.push(e)}remove(e){const t=this.children.indexOf(e);t>=0&&(e.parent===this&&(e.parent=null),this.children.splice(t,1))}traverse(e,t=null){if(t!==null?e(t):t=this,t.children)for(const g of t.children)this.traverse(e,g)}findById(e){let t=!1;function g(I){if(!t){if(I.uuid===e)return t=!0,I;if(I.children)for(const o of I.children){const s=g(o);if(s)return s}}}return g(this)}buildHeader(e){return`#usda 1.0
4920
+ `,A.name)}const a=I.clone();a.version=I.version,o?(o.copy=a,o.material=I):(o={material:I,copy:a},e.push(o)),a[KtA]=this,a[JtA]=I,ih&&console.log("Set reflection",A.name,A.guid)}const C=o==null?void 0:o.copy;C.envMap=this.texture,A.sharedMaterials[g]=C}}onUnset(A){const e=Tn._rendererMaterialsCache.get(A);if(e)for(let t=0;t<e.length;t++){const g=e[t];A.sharedMaterials[t]=g.material}}},r(Cf,"_probes",new Map),r(Cf,"_rendererMaterialsCache",new Map),Cf);let Ic=Tn;q2([D(w)],Ic.prototype,"center",2);q2([D(w)],Ic.prototype,"size",2);const v2=Symbol("customVisibilityFlag");function Lf(i,A){i.layers[v2]=A}const Nv=Symbol("DidPatchLayers");function qtA(){const i=Vg.prototype;if(i[Nv])return;i[Nv]=!0;const A=i.test;i.test=function(e){return this[v2]===!1?!1:A.call(this,e)}}qtA();var vtA=Object.defineProperty,btA=Object.getOwnPropertyDescriptor,JC=(i,A,e,t)=>{for(var g=t>1?void 0:t?btA(A,e):A,I=i.length-1,o;I>=0;I--)(o=i[I])&&(g=(t?o(A,e,g):o(g))||g);return t&&g&&vtA(A,e,g),g};const xf=sA("debugrenderer"),LtA=sA("debugskinnedmesh"),Kv=sA("noInstancing"),tM=sA("debuginstancing"),xtA=sA("debugprogressive"),TtA=sA("noprogressive"),YtA=sA("wireframe");class tF{constructor(){r(this,"path",null);r(this,"asset",null);r(this,"default")}}class HtA{constructor(A,e){r(this,"_renderer");r(this,"_targets",[]);r(this,"_indexMapMaxIndex");r(this,"_indexMap");r(this,"_changed",!1);this._renderer=A;const t=this.setMaterial.bind(this),g=this.getMaterial.bind(this),I=A.gameObject;if(this._targets=[],I)switch(I.type){case"Group":this._targets=[...I.children];break;case"SkinnedMesh":case"Mesh":this._targets.push(I);break}let o=!1,s,n=0;for(let C=0;C<this._targets.length;C++){const a=this._targets[C];if(!a)continue;const B=a.material;if(B){B.shadowSide=B.side;for(let Q=0;Q<e.length;Q++){const E=e[Q];if(!E){o=!0;continue}if(B.name===E.name){s===void 0&&(s=new Map),s.set(Q,C),n=Math.max(n,Q);break}}}}if(o){this._indexMapMaxIndex=n,this._indexMap=s;const C=`Renderer ${A.name} was initialized with missing materials - this may lead to unexpected behaviour when trying to access sharedMaterials by index.`;console.warn(C),lI()&&cg("Found renderer with missing materials: please check the console for details.")}return new Proxy(this,{get(C,a){if(typeof a=="string"){const B=parseInt(a);if(!isNaN(B))return g(B)}return C[a]},set(C,a,B){return typeof a=="string"&&t(B,Number.parseInt(a)),Reflect.set(C,a,B)?(B instanceof xe&&(C.changed=!0),!0):!1}})}get changed(){return this._changed}set changed(A){A===!0&&xf&&console.warn("SharedMaterials have changed: "+this._renderer.name,this),this._changed=A}is(A){return this._renderer===A}get length(){return this._indexMapMaxIndex!==void 0?this._indexMapMaxIndex+1:this._targets.length}*[Symbol.iterator](){for(let A=0;A<this.length;A++)yield this.getMaterial(A)}resolveIndex(A){const e=this._indexMap;return e&&e.has(A)?e.get(A):A}setMaterial(A,e){if(e=this.resolveIndex(e),e<0||e>=this._targets.length)return;const t=this._targets[e];!t||t.material===void 0||(t.material=A,this.changed=!0)}getMaterial(A){if(A=this.resolveIndex(A),A<0)return null;const e=this._targets;if(A>=e.length)return null;const t=e[A];return t?t.material:null}}const b2=class extends NA{constructor(){super(...arguments);r(this,"receiveShadows",!1);r(this,"shadowCastingMode",0);r(this,"lightmapIndex",-1);r(this,"lightmapScaleOffset",new ee(1,1,0,0));r(this,"enableInstancing");r(this,"renderOrder");r(this,"allowOcclusionWhenDynamic",!0);r(this,"probeAnchor");r(this,"reflectionProbeUsage",0);r(this,"_lightmaps");r(this,"_sharedMaterials");r(this,"_originalMaterials");r(this,"_lightmapTextureOverride");r(this,"allowProgressiveLoading",!0);r(this,"_isInstancingEnabled",!1);r(this,"handles");r(this,"prevLayers");r(this,"onBeforeRenderThree",(A,e,t,g,I,o)=>{var s;if(I.envMapIntensity!==void 0){const n=this.hasLightmap?Math.PI:1,C=((s=this.context.mainCameraComponent)==null?void 0:s.environmentIntensity)??1;I.envMapIntensity=Math.max(0,C*this.context.sceneLighting.environmentIntensity/n)}if(this._lightmaps)for(const n of this._lightmaps)n.updateLightmapUniforms(I)});r(this,"_reflectionProbe",null)}static setVisible(A,e){Lf(A,e)}get sharedMesh(){if(this.gameObject.type==="Mesh")return this.gameObject;if(this.gameObject.type==="SkinnesMesh")return this.gameObject;if(this.gameObject.type==="Group")return this.gameObject.children[0]}get sharedMaterial(){return this.sharedMaterials[0]}set sharedMaterial(A){this.sharedMaterials[0]!==A&&(this.sharedMaterials[0]=A,this.applyLightmapping())}get material(){return this.sharedMaterials[0]}set material(A){this.sharedMaterial=A}set sharedMaterials(A){if(!this._originalMaterials)this._originalMaterials=A;else if(A){let e=!1;for(let t=0;t<this._sharedMaterials.length;t++){const g=t<A.length?A[t]:null;g&&g instanceof xe?this.sharedMaterials[t]=g:e||(e=!0,console.warn("Can not assign null as material: "+this.name,g))}}}get sharedMaterials(){return(!this._sharedMaterials||!this._sharedMaterials.is(this))&&(this._originalMaterials||(this._originalMaterials=[]),this._sharedMaterials=new HtA(this,this._originalMaterials)),this._sharedMaterials}static get shouldSuppressInstancing(){return Kv}get lightmap(){var A;return(A=this._lightmaps)!=null&&A.length?this._lightmaps[0].lightmap:null}set lightmap(A){var e;if(this._lightmapTextureOverride=A,A===void 0&&(A=this.context.lightmaps.tryGetLightmap(this.sourceId,this.lightmapIndex)),(e=this._lightmaps)!=null&&e.length)for(const t of this._lightmaps)t.lightmap=A}get hasLightmap(){const A=this.lightmap;return A!=null}registering(){this.enabled||this.setVisibility(!1)}awake(){if(xf&&console.log("Renderer ",this.name,this),this.clearInstancingState(),this.probeAnchor&&xf&&this.probeAnchor.add(new WE(.2)),this._reflectionProbe=null,this.isMultiMaterialObject(this.gameObject)){for(const A of this.gameObject.children)this.context.addBeforeRenderListener(A,this.onBeforeRenderThree),A.layers.mask=this.gameObject.layers.mask;if(this.renderOrder!==void 0){let A=0;for(let e=0;e<this.gameObject.children.length;e++){const t=this.gameObject.children[e];if(!(!this.isMeshOrSkinnedMesh(t)||IA.getComponent(t,b2))){if(this.renderOrder.length<=A){console.warn("Incorrect renderOrder element count",this,this.renderOrder.length+" but expected "+this.gameObject.children.length,"Index: "+A,"ChildElement:",t);continue}t.renderOrder=this.renderOrder[A],A+=1}}}}else this.isMeshOrSkinnedMesh(this.gameObject)?(this.context.addBeforeRenderListener(this.gameObject,this.onBeforeRenderThree),this.renderOrder!==void 0&&this.renderOrder.length>0&&(this.gameObject.renderOrder=this.renderOrder[0])):this.context.addBeforeRenderListener(this.gameObject,this.onBeforeRenderThree);if(this.applyLightmapping(),YtA)for(let A=0;A<this.sharedMaterials.length;A++){const e=this.sharedMaterials[A];e&&(e.wireframe=!0)}}applyLightmapping(){var A;if(this.lightmapIndex>=0){const e=this.gameObject.type,t=this._lightmapTextureOverride!==void 0?this._lightmapTextureOverride:this.context.lightmaps.tryGetLightmap(this.sourceId,this.lightmapIndex);if(t){if(this._lightmaps||(this._lightmaps=[]),e==="Mesh"){const g=this.gameObject.material;if(g!=null&&g.isMeshBasicMaterial)g&&console.warn("Lightmapping is not supported on MeshBasicMaterial",g.name);else{if(this._lightmaps.length<=0){const o=new Kl(this.gameObject,this.context);this._lightmaps.push(o)}this._lightmaps[0].init(this.lightmapIndex,this.lightmapScaleOffset,t)}}else if(this.isMultiMaterialObject(this.gameObject)&&this.sharedMaterials.length>0)for(let g=0;g<this.gameObject.children.length;g++){const I=this.gameObject.children[g];if(!((A=I.material)!=null&&A.isMeshBasicMaterial)){let o;g>=this._lightmaps.length?(o=new Kl(I,this.context),this._lightmaps.push(o)):o=this._lightmaps[g],o.init(this.lightmapIndex,this.lightmapScaleOffset,t)}}}else xf&&console.warn("Lightmap not found",this.sourceId,this.lightmapIndex)}}clearInstancingState(){this._isInstancingEnabled=!1,this.handles=void 0,this.prevLayers=void 0}setInstancingEnabled(A){if(this._isInstancingEnabled===A)return A&&(this.handles===void 0||this.handles!=null&&this.handles.length>0);if(this._isInstancingEnabled=A,A){if(this.handles===void 0){if(this.handles=OtA.setup(this,this.gameObject,this.context,null,{rend:this,foundMeshes:0,useMatrixWorldAutoUpdate:this.useInstanceMatrixWorldAutoUpdate()}),this.handles)return IA.markAsInstancedRendered(this.gameObject,!0),!0}else if(this.handles!==null){for(const e of this.handles)e.updateInstanceMatrix(!0),e.add();return IA.markAsInstancedRendered(this.gameObject,!0),!0}}else{if(this.handles)for(const e of this.handles)e.remove();return!0}return!1}useInstanceMatrixWorldAutoUpdate(){return!0}start(){if(this.enableInstancing&&!Kv&&(this.setInstancingEnabled(!0),jg.markDirty(this.gameObject)),this.gameObject.frustumCulled=this.allowOcclusionWhenDynamic,this.isMultiMaterialObject(this.gameObject))for(let A=0;A<this.gameObject.children.length;A++){const e=this.gameObject.children[A];e.frustumCulled=this.allowOcclusionWhenDynamic}}onEnable(){this.setVisibility(!0),this._isInstancingEnabled?this.setInstancingEnabled(!0):this.enabled&&this.applyStencil(),this.updateReflectionProbe()}onDisable(){this.setVisibility(!1),this.handles&&this.handles.length>0&&this.setInstancingEnabled(!1)}onDestroy(){if(this.handles=null,this.isMultiMaterialObject(this.gameObject))for(const A of this.gameObject.children)this.context.removeBeforeRenderListener(A,this.onBeforeRenderThree);else this.context.removeBeforeRenderListener(this.gameObject,this.onBeforeRenderThree)}applyStencil(){Zh.applyStencil(this)}onBeforeRender(){var A,e;if(this.gameObject){if(this.isMultiMaterialObject(this.gameObject)&&((A=this.gameObject.children)==null?void 0:A.length)>0)for(const t of this.gameObject.children)this.applySettings(t);else this.applySettings(this.gameObject);if(this.sharedMaterials.changed&&(this.sharedMaterials.changed=!1,this.applyLightmapping()),(e=this.handles)!=null&&e.length&&this.gameObject[Rl]===!0){tM&&console.log("UPDATE INSTANCED MATRICES",this.context.time.frame),this.gameObject[Rl]=!1;for(let g=this.handles.length-1;g>=0;g--)this.handles[g].updateInstanceMatrix();this.gameObject.matrixWorldNeedsUpdate=!1}if(this.handles&&this.handles.length<=0&&IA.markAsInstancedRendered(this.gameObject,!1),this._isInstancingEnabled&&this.handles)for(let t=0;t<this.handles.length;t++){const g=this.handles[t];this.prevLayers||(this.prevLayers=[]);const I=g.object.layers.mask;t>=this.prevLayers.length?this.prevLayers.push(I):this.prevLayers[t]=I,g.object.layers.disableAll()}for(const t of this.sharedMaterials)t&&this.loadProgressiveTextures(t);this.reflectionProbeUsage!==0&&this._reflectionProbe&&this._reflectionProbe.onSet(this)}}onAfterRender(){if(this._isInstancingEnabled&&this.handles&&this.prevLayers&&this.prevLayers.length>=this.handles.length)for(let A=0;A<this.handles.length;A++){const e=this.handles[A];e.object.layers.mask=this.prevLayers[A]}this.reflectionProbeUsage!==0&&this._reflectionProbe&&this._reflectionProbe.onUnset(this)}loadProgressiveTextures(A){return!TtA&&A&&A._didRequestTextureLOD===void 0&&this.allowProgressiveLoading?(A._didRequestTextureLOD=0,xtA&&console.log("Load material LOD",A.name),Ao.assignTextureLOD(this.context,this.sourceId,A)):Promise.resolve(!0)}applySettings(A){A.receiveShadow=this.receiveShadows,this.shadowCastingMode==1?A.castShadow=!0:A.castShadow=!1}updateReflectionProbe(){if(this._reflectionProbe=null,this.reflectionProbeUsage!==0){if(!this.probeAnchor)return;this.startCoroutine(this._updateReflectionProbe(),Bg.LateUpdate)}}*_updateReflectionProbe(){const A=this.probeAnchor||this.gameObject,e=!!this.probeAnchor;this._reflectionProbe=Ic.get(A,this.context,e,this.probeAnchor)}setVisibility(A){if(!this.isMultiMaterialObject(this.gameObject))Lf(this.gameObject,A);else for(const e of this.gameObject.children)this.isMeshOrSkinnedMesh(e)&&Lf(e,A)}isMultiMaterialObject(A){return A.type==="Group"}isMeshOrSkinnedMesh(A){return A.type==="Mesh"||A.type==="SkinnedMesh"}};let Fi=b2;JC([D()],Fi.prototype,"receiveShadows",2);JC([D()],Fi.prototype,"shadowCastingMode",2);JC([D()],Fi.prototype,"lightmapIndex",2);JC([D(ee)],Fi.prototype,"lightmapScaleOffset",2);JC([D()],Fi.prototype,"enableInstancing",2);JC([D()],Fi.prototype,"renderOrder",2);JC([D()],Fi.prototype,"allowOcclusionWhenDynamic",2);JC([D(SA)],Fi.prototype,"probeAnchor",2);JC([D()],Fi.prototype,"reflectionProbeUsage",2);class Jy extends Fi{}class iF extends Jy{awake(){var A;super.awake(),this.allowOcclusionWhenDynamic=!1,(A=this.gameObject.parent)==null||A.updateWorldMatrix(!1,!0)}onBeforeRender(){if(super.onBeforeRender(),LtA&&this.gameObject instanceof Ds&&this.gameObject.boundingSphere){const A=Dd(this.gameObject.boundingSphere.center).applyMatrix4(this.gameObject.matrixWorld);tn.DrawWireSphere(A,this.gameObject.boundingSphere.radius,"red")}}}class _tA{constructor(){r(this,"objs",[])}setup(A,e,t,g,I,o=0){A.applySettings(e);const s=this.tryCreateOrAddInstance(e,t,I);if(s)A.loadProgressiveTextures(s.instancer.material),g===null&&(g=[]),g.push(s);else if(o<=0&&e.type!=="Mesh"){const n=o+1;for(const C of e.children)g=this.setup(A,C,t,g,I,n)}return o===0&&I.useMatrixWorldAutoUpdate&&g&&g.length>=0&&this.autoUpdateInstanceMatrix(e),g}tryCreateOrAddInstance(A,e,t){if(A.type==="Mesh"){const g=t.foundMeshes;if(t.foundMeshes+=1,!t.rend.enableInstancing||g>=t.rend.enableInstancing.length||!t.rend.enableInstancing[g])return null;const I=A,o=I.geometry,s=I.material;for(const a of this.objs)if(!a.isFull()&&a.geo===o&&a.material===s)return a.addInstance(I);const n=new Tf(A.name,o,s,200,e);return this.objs.push(n),n.addInstance(I)}return null}autoUpdateInstanceMatrix(A){const e=A.matrixWorld.multiplyMatrices.bind(A.matrixWorld),t=A.matrixWorld.clone(),g=(I,o)=>{const s=e(I,o);return(A[Rl]||t.equals(s)===!1)&&(t.copy(s),A[Rl]=!0),s};A.matrixWorld.multiplyMatrices=g}}const OtA=new _tA;class PtA{constructor(A,e,t){r(this,"instanceIndex",-1);r(this,"object");r(this,"instancer");this.instanceIndex=A,this.object=e,this.instancer=t,e[JY]=t,IA.markAsInstancedRendered(e,!0)}get name(){return this.object.name}updateInstanceMatrix(A=!1){this.instanceIndex<0||(this.object.updateWorldMatrix(!0,A),this.instancer.updateInstance(this.object.matrixWorld,this.instanceIndex))}setMatrix(A){this.instanceIndex<0||this.instancer.updateInstance(A,this.instanceIndex)}add(){this.instanceIndex>=0||this.instancer.add(this)}remove(){this.instanceIndex<0||this.instancer.remove(this)}}const _N=class{constructor(A,e,t,g,I){r(this,"name","");r(this,"geo");r(this,"material");r(this,"context");r(this,"inst");r(this,"handles",[]);r(this,"maxCount");r(this,"_needUpdateBounds",!1);r(this,"onBeforeRender",()=>{this._needUpdateBounds&&this.inst[SG]===!0&&(tM&&console.log("Update instancing bounds",this.name,this.inst.matrixWorldNeedsUpdate),this.updateBounds())});this.name=A,this.geo=e,this.material=t,this.context=I,this.maxCount=g,tM&&(t=new at({color:this.randomColor()})),this.inst=new Fw(e,t,g),this.inst[SG]=!0,this.inst.count=0,this.inst.layers.set(2),this.inst.visible=!0,this.context.scene.add(this.inst),I.pre_render_callbacks.push(this.onBeforeRender)}get mesh(){return this.inst}get visible(){return this.inst.visible}set visible(A){this.inst.visible=A}get castShadow(){return this.inst.castShadow}set castShadow(A){this.inst.castShadow=A}set receiveShadow(A){this.inst.receiveShadow=A}updateBounds(A=!0,e=!0){this._needUpdateBounds=!1,A&&this.inst.computeBoundingBox(),e&&this.inst.computeBoundingSphere()}get currentCount(){return this.inst.count}isFull(){return this.currentCount>=this.maxCount}randomColor(){return new yA(Math.random(),Math.random(),Math.random())}addInstance(A){if(this.currentCount>=this.maxCount)return console.error("TOO MANY INSTANCES - resize is not yet implemented!",this.inst.count),null;const e=new PtA(-1,A,this);return A.castShadow===!0&&this.inst.castShadow===!1&&(this.inst.castShadow=!0),A.receiveShadow===!0&&this.inst.receiveShadow===!1&&(this.inst.receiveShadow=!0),this.add(e),e}add(A){A.instanceIndex<0&&(A.instanceIndex=this.currentCount,A.instanceIndex>=this.handles.length?this.handles.push(A):this.handles[A.instanceIndex]=A),A.object.updateWorldMatrix(!0,!0),this.inst.setMatrixAt(A.instanceIndex,A.object.matrixWorld),this.inst.instanceMatrix.needsUpdate=!0,this.inst.count+=1,this._needUpdateBounds=!0,this.inst.count>0&&(this.inst.visible=!0)}remove(A){if(!A||A.instanceIndex<0||A.instanceIndex>=this.handles.length||this.inst.count<=0)return;if(this.handles[A.instanceIndex]!==A){console.error("instance handle is not part of renderer, was it removed before?",A.instanceIndex,this.name);const t=this.handles.indexOf(A);if(t<0)return;A.instanceIndex=t}if(this.handles[A.instanceIndex]=null,this.inst.setMatrixAt(A.instanceIndex,_N.nullMatrix),!(A.instanceIndex>=this.currentCount-1)&&this.currentCount>0){const t=this.handles[this.currentCount-1];t&&(t.instanceIndex=A.instanceIndex,t.updateInstanceMatrix(),this.handles[A.instanceIndex]=t,this.handles[this.currentCount-1]=null)}this.inst.count>0&&(this.inst.count-=1),A.instanceIndex=-1,this._needUpdateBounds=!0,this.inst.count<=0&&(this.inst.visible=!1),this.inst.instanceMatrix.needsUpdate=!0}updateInstance(A,e){this.inst.setMatrixAt(e,A),this.inst.instanceMatrix.needsUpdate=!0,this._needUpdateBounds=!0}};let Tf=_N;r(Tf,"nullMatrix",new FA);function qy(i){return i=i.replace(/[^a-zA-Z0-9_]/g,""),i.match(/^[a-zA-Z_]/)||(i="_"+i),i}function L2(i){if(i.length===0)return null;const A=i.map(t=>{const g=new Array;for(;t.parent;)g.unshift(t.parent),t=t.parent;return g});return A[0].findLast(t=>A.every(g=>g.includes(t)))||null}function x2(i){const A=L2(i),e=new Set;for(const t of i){let g=t.parent;for(;g&&g!==A;)i.includes(g)||e.add(g),g=g.parent}return e}const Hr=class{constructor(A,e,t,g=null,I=null,o=null,s=null,n=null){r(this,"uuid");r(this,"name");r(this,"matrix");r(this,"_isDynamic");r(this,"geometry");r(this,"material");r(this,"camera");r(this,"parent");r(this,"skinnedMesh");r(this,"children",[]);r(this,"animations");r(this,"_eventListeners");this.uuid=A,this.name=qy(e),this.matrix=t,this.geometry=g,this.material=I,this.camera=o,this.parent=null,this.children=[],this._eventListeners={},this._isDynamic=!1,this.skinnedMesh=s,this.animations=n}get isDynamic(){return this._isDynamic}set isDynamic(A){this._isDynamic=A}static createEmptyParent(A){const e=new Hr(Sg.generateUUID(),A.name+"_empty_"+Hr.USDObject_export_id++,A.matrix);return A.parent.add(e),e.add(A),e.isDynamic=!0,A.matrix=new FA().identity(),e}static createEmpty(){const A=new Hr(Sg.generateUUID(),"Empty_"+Hr.USDObject_export_id++,new FA);return A.isDynamic=!0,A}is(A){return A?this.uuid===A.uuid:!1}isEmpty(){return!this.geometry}clone(){const A=new Hr(Sg.generateUUID(),this.name,this.matrix,this.geometry,this.material);return A.isDynamic=this.isDynamic,A}getPath(){let A=this.parent,e=this.name;for(;A;)e=(A.parent?A.name:A.name+"/Scenes/Scene")+"/"+e,A=A.parent;return"</"+e+">"}add(A){A.parent&&A.parent.remove(A),A.parent=this,this.children.push(A)}remove(A){const e=this.children.indexOf(A);e>=0&&(A.parent===this&&(A.parent=null),this.children.splice(e,1))}addEventListener(A,e){this._eventListeners[A]||(this._eventListeners[A]=[]),this._eventListeners[A].push(e)}removeEventListener(A,e){if(!this._eventListeners[A])return;const t=this._eventListeners[A].indexOf(e);t>=0&&this._eventListeners[A].splice(t,1)}onSerialize(A,e){const t=this._eventListeners.serialize;t&&t.forEach(g=>g(A,e))}};let JI=Hr;r(JI,"USDObject_export_id",0);class T2 extends JI{constructor(){super(void 0,"StageRoot",new FA,null,null,null);r(this,"stageLength");this.children=[],this.stageLength=200}get isDocumentRoot(){return!0}get isDynamic(){return!1}add(e){e.parent=this,this.children.push(e)}remove(e){const t=this.children.indexOf(e);t>=0&&(e.parent===this&&(e.parent=null),this.children.splice(t,1))}traverse(e,t=null){if(t!==null?e(t):t=this,t.children)for(const g of t.children)this.traverse(e,g)}findById(e){let t=!1;function g(I){if(!t){if(I.uuid===e)return t=!0,I;if(I.children)for(const o of I.children){const s=g(o);if(s)return s}}}return g(this)}buildHeader(e){return`#usda 1.0
4919
4921
  (
4920
4922
  customLayerData = {
4921
4923
  string creator = "Needle Engine USDZExporter"
@@ -452,6 +452,10 @@ export class Context {
452
452
  ContextRegistry.unregister(this);
453
453
  }
454
454
  registerCoroutineUpdate(script, coroutine, evt) {
455
+ if (typeof coroutine?.next !== "function") {
456
+ console.error("Registered invalid coroutine function from " + script.name + "\nCoroutine functions must be generators: \"*myCoroutine() {...}\"\nStart a coroutine from a component by calling \"this.startCoroutine(myCoroutine())\"");
457
+ return coroutine;
458
+ }
455
459
  if (!this.coroutines[evt])
456
460
  this.coroutines[evt] = [];
457
461
  this.coroutines[evt].push({ comp: script, main: coroutine });
@@ -1 +1 @@
1
- {"version":3,"file":"engine_context.js","sourceRoot":"","sources":["../../src/engine/engine_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_context.js","sourceRoot":"","sources":["../../src/engine/engine_context.ts"],"names":[],"mappings":"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"}
@@ -153,6 +153,8 @@ export declare class Component implements IComponent, EventTarget {
153
153
  * @param field the name of the field that was changed
154
154
  */
155
155
  onValidate?(prop?: string): void;
156
+ /** Called for all scripts when the context gets paused or unpaused */
157
+ onPausedChanged?(isPaused: boolean, wasPaused: boolean): void;
156
158
  start?(): void;
157
159
  earlyUpdate?(): void;
158
160
  update?(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/engine-components/Component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/engine-components/Component.ts"],"names":[],"mappings":"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"}