@needle-tools/engine 4.5.6-next.9964a29 → 4.5.7-next.029f239

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.
@@ -130,7 +130,7 @@ Open this page to get the console: `+e.toString())}const n=Q.isMobileDevice()||Q
130
130
  #__vconsole .vc-mask {
131
131
  overflow: hidden;
132
132
  }
133
- `,qi?.prepend(s),n===!0&&Wm()<=0&&Tb(),console.log("\u{1F335} Debug console has loaded")}},e.onerror=()=>{console.warn("\u{1F335} Debug console failed to load."+(window.crossOriginIsolated?"This page is using cross-origin isolation, so external scripts can't be loaded.":"")),Jl=!1,ei=null},e.src="https://cdn.jsdelivr.net/npm/vconsole@3.9.1/dist/vconsole.min.js",document.body.appendChild(e)}function kk(){if(!globalThis.VConsole)return;const n=new VConsole.VConsolePlugin("needle-console","\u{1F335} Inspect glTF"),e=()=>document.querySelector("#__vc_plug_"+n._id+" iframe");return n.on("renderTab",function(t){const s=globalThis["needle:codegen_files"];if(!s||s.length===0)return;let o=globalThis["needle:codegen_files"][0];const r=o.indexOf("?");r>-1&&(o=o.substring(0,r));const l=location.protocol+"//"+location.host+location.pathname+"/"+o,c=encodeURIComponent(l);n.fullUrl="https://viewer.needle.tools?inspect&file="+c;var h='<iframe src="" style="width: 100%; height: 99%; border: none;"></iframe>';t(h)}),n.on("show",function(){const t=e();t&&t.src!==n.fullUrl&&(t.src=n.fullUrl)}),n.on("hide",function(){const t=e();t&&(t.src="")}),n.on("addTopBar",function(t){var s=new Array;s.push({name:"Open in new window \u2197",onClick:function(o){window.open(n.fullUrl,"_blank"),ei?.hide()}}),s.push({name:"Reload",onClick:function(o){const r=e();r&&(r.src=n.fullUrl)}}),s.push({name:"Fullscreen",onClick:function(o){const r=e();r.requestFullscreen?r.requestFullscreen():r.webkitRequestFullscreen instanceof Function&&r.webkitRequestFullscreen()}}),t(s)}),n}function Mk(){return document.querySelector("#__vconsole .vc-switch")||null}function Rk(){return document.querySelector("#__vconsole")||null}const Lb=C("debugdefines");go('if(!globalThis["NEEDLE_ENGINE_VERSION"]) globalThis["NEEDLE_ENGINE_VERSION"] = "0.0.0";'),go('if(!globalThis["NEEDLE_ENGINE_GENERATOR"]) globalThis["NEEDLE_ENGINE_GENERATOR"] = "unknown";'),go('if(!globalThis["NEEDLE_PROJECT_BUILD_TIME"]) globalThis["NEEDLE_PROJECT_BUILD_TIME"] = "unknown";'),go('if(!globalThis["NEEDLE_PUBLIC_KEY"]) globalThis["NEEDLE_PUBLIC_KEY"] = "unknown";'),go('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.5.6";'),go('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";'),go('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Thu Jun 05 2025 14:46:33 GMT+0000 (Coordinated Universal Time)";'),go('globalThis["__NEEDLE_PUBLIC_KEY__"] = "'+NEEDLE_PUBLIC_KEY+'";');const bs="4.5.6",Sd="undefined",ag="Thu Jun 05 2025 14:46:33 GMT+0000 (Coordinated Universal Time)";Lb&&console.log(`Engine version: ${bs} (generator: ${Sd})
133
+ `,qi?.prepend(s),n===!0&&Wm()<=0&&Tb(),console.log("\u{1F335} Debug console has loaded")}},e.onerror=()=>{console.warn("\u{1F335} Debug console failed to load."+(window.crossOriginIsolated?"This page is using cross-origin isolation, so external scripts can't be loaded.":"")),Jl=!1,ei=null},e.src="https://cdn.jsdelivr.net/npm/vconsole@3.9.1/dist/vconsole.min.js",document.body.appendChild(e)}function kk(){if(!globalThis.VConsole)return;const n=new VConsole.VConsolePlugin("needle-console","\u{1F335} Inspect glTF"),e=()=>document.querySelector("#__vc_plug_"+n._id+" iframe");return n.on("renderTab",function(t){const s=globalThis["needle:codegen_files"];if(!s||s.length===0)return;let o=globalThis["needle:codegen_files"][0];const r=o.indexOf("?");r>-1&&(o=o.substring(0,r));const l=location.protocol+"//"+location.host+location.pathname+"/"+o,c=encodeURIComponent(l);n.fullUrl="https://viewer.needle.tools?inspect&file="+c;var h='<iframe src="" style="width: 100%; height: 99%; border: none;"></iframe>';t(h)}),n.on("show",function(){const t=e();t&&t.src!==n.fullUrl&&(t.src=n.fullUrl)}),n.on("hide",function(){const t=e();t&&(t.src="")}),n.on("addTopBar",function(t){var s=new Array;s.push({name:"Open in new window \u2197",onClick:function(o){window.open(n.fullUrl,"_blank"),ei?.hide()}}),s.push({name:"Reload",onClick:function(o){const r=e();r&&(r.src=n.fullUrl)}}),s.push({name:"Fullscreen",onClick:function(o){const r=e();r.requestFullscreen?r.requestFullscreen():r.webkitRequestFullscreen instanceof Function&&r.webkitRequestFullscreen()}}),t(s)}),n}function Mk(){return document.querySelector("#__vconsole .vc-switch")||null}function Rk(){return document.querySelector("#__vconsole")||null}const Lb=C("debugdefines");go('if(!globalThis["NEEDLE_ENGINE_VERSION"]) globalThis["NEEDLE_ENGINE_VERSION"] = "0.0.0";'),go('if(!globalThis["NEEDLE_ENGINE_GENERATOR"]) globalThis["NEEDLE_ENGINE_GENERATOR"] = "unknown";'),go('if(!globalThis["NEEDLE_PROJECT_BUILD_TIME"]) globalThis["NEEDLE_PROJECT_BUILD_TIME"] = "unknown";'),go('if(!globalThis["NEEDLE_PUBLIC_KEY"]) globalThis["NEEDLE_PUBLIC_KEY"] = "unknown";'),go('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.5.7";'),go('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";'),go('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Tue Jun 10 2025 10:04:56 GMT+0000 (Coordinated Universal Time)";'),go('globalThis["__NEEDLE_PUBLIC_KEY__"] = "'+NEEDLE_PUBLIC_KEY+'";');const bs="4.5.7",Sd="undefined",ag="Tue Jun 10 2025 10:04:56 GMT+0000 (Coordinated Universal Time)";Lb&&console.log(`Engine version: ${bs} (generator: ${Sd})
134
134
  Project built at ${ag}`);const Ca=NEEDLE_PUBLIC_KEY,Mn="needle_isActiveInHierarchy",gr="builtin_components",tc="needle_editor_guid";function go(n){try{(0,eval)(n)}catch(e){Lb&&console.error(e)}}let jb,Db=null;function _s(){return jb}function lg(n){if(n==null){console.warn("Oh no: someone tried registering a non-existend gltf-loader. When you see this log it might mean that needle-engine is being imported multiple times. Please check your project setup.");return}Db!==n&&(Db=n,jb=new n)}const Ci=Symbol("shadowDomOwner"),Tk=C("debugpatch");function Cd(n,e,t,s){const o=Tk===e;if(!t&&!s)return;const r=e+"___needle";Ak(n,e,t,s);const l=Object.getOwnPropertyDescriptor(n,e),c=n[e];o&&console.log("Patch",n.constructor.name,e,l,c),l?(o&&console.log("Apply patch with existing descriptor",n.constructor.name,e,l),typeof l.value=="function"&&(n[e]=Fb(l.value,n,e))):(o&&console.log("Create patch with new property",n.constructor.name,e,l),Object.defineProperty(n,e,{set:function(h){if(typeof h=="function")this[r]=Fb(h,n,e);else{const d=this[r];zb(n,e,this,d,h),this[r]=h,Ub(n,e,this,d,h)}},get:function(){const h=this[r];return typeof h=="function"&&h[r]?h[r]:h}}))}function Ek(n,e,t){const s=hg(n,e);if(s)for(let o=s.length-1;o>=0;o--){const r=s[o];r.prefix===t&&(r.prefix=null),r.postfix===t&&(r.postfix=null),!r.prefix&&!r.postfix&&s.splice(o,1)}}const Bb=Symbol("Needle:Patches:WrappedFunction");function Fb(n,e,t){if(n[Bb])return n;const s=function(...o){zb(e,t,this,...o);const r=n.apply(this,o);return Ub(e,t,this,r,...o),r};return s[Bb]=!0,s}const Pd="Needle:Patches";function cg(){return globalThis[Pd]||(globalThis[Pd]=new WeakMap),globalThis[Pd]}function hg(n,e){const t=cg().get(n);return t?t.get(e):null}function Ak(n,e,t,s){let o=cg().get(n);o||(o=new Map,cg().set(n,o));let r=o.get(e);r||(r=[],o.set(e,r)),r.push({prefix:t,postfix:s})}function zb(n,e,t,...s){var o;if(!t)return;const r=hg(n,e);if(r)for(const l of r)(o=l.prefix)==null||o.call(t,...s)}function Ub(n,e,t,s,...o){var r;if(!t)return;const l=hg(n,e);if(l)for(const c of l)(r=c.postfix)==null||r.call(t,s,...o)}const Pa=[];function Od(n){Pa.indexOf(n)===-1&&Pa.push(n)}function Ik(n){const e=Pa.indexOf(n);e!==-1&&Pa.splice(e,1)}const Oa=[];function dg(n){Oa.indexOf(n)===-1&&Oa.push(n)}function Lk(n){const e=Oa.indexOf(n);e!==-1&&Oa.splice(e,1)}function Nb(n){globalThis.dispatchEvent(new CustomEvent("needle-xrsession-start",{detail:n}));for(let e=0;e<Pa.length;e++)Pa[e](n)}function Wb(n){globalThis.dispatchEvent(new CustomEvent("needle-xrsession-end",{detail:n}));for(let e=0;e<Oa.length;e++)Oa[e](n)}const lt=C("debuginput");var kd=(n=>(n.Mouse="mouse",n.Touch="touch",n.Controller="controller",n.Hand="hand",n))(kd||{}),Be=(n=>(n.PointerDown="pointerdown",n.PointerUp="pointerup",n.PointerMove="pointermove",n.KeyDown="keydown",n.KeyUp="keyup",n.KeyPressed="keypress",n))(Be||{});class Rn extends PointerEvent{constructor(e,t,s){super(e,s),a(this,"clientZ"),a(this,"deviceIndex"),a(this,"origin"),a(this,"source"),a(this,"mode"),a(this,"_ray"),a(this,"space"),a(this,"isClick",!1),a(this,"isDoubleClick",!1),a(this,"_used",!1),a(this,"_pointerid"),a(this,"_pointerType"),a(this,"_type"),a(this,"metadata",{}),a(this,"intersections",new Array),a(this,"_immediatePropagationStopped",!1),a(this,"_propagationStopped",!1),this.clientZ=s.clientZ,this._pointerid=s.pointerId,this._pointerType=s.pointerType,this._type=e,this.deviceIndex=s.deviceIndex,this.origin=s.origin,this.source=t,this.mode=s.mode,this._ray=s.ray,this.space=s.device}get isSpatial(){return this.mode!="screen"}get ray(){return this._ray||(this._ray=new lo(this.space.worldPosition.clone(),this.space.worldForward.clone())),this._ray}set ray(e){this._ray=e}get hasRay(){return this._ray!==void 0}get used(){return this._used}use(){this._used=!0}get pointerId(){return this._pointerid}get pointerType(){return this._pointerType}get type(){return this._type}get immediatePropagationStopped(){return this._immediatePropagationStopped}get propagationStopped(){return this._immediatePropagationStopped||this._propagationStopped}stopImmediatePropagation(){var e;this._immediatePropagationStopped=!0,super.stopImmediatePropagation(),(e=this.source)==null||e.stopImmediatePropagation()}stopPropagation(){var e;this._propagationStopped=!0,super.stopPropagation(),(e=this.source)==null||e.stopPropagation(),lt&&console.warn("Stop propagation...",this.pointerId,this.pointerType)}}class ic extends KeyboardEvent{constructor(e,t,s){super(e,s),a(this,"source"),this.source=t}stopImmediatePropagation(){var e;super.stopImmediatePropagation(),(e=this.source)==null||e.stopImmediatePropagation()}}class jk{constructor(e){a(this,"key"),a(this,"keyType"),a(this,"source"),this.key=e.key,this.keyType=e.type,this.source=e}}var ti=(n=>(n[n.Early=-100]="Early",n[n.Default=0]="Default",n[n.Late=100]="Late",n))(ti||{});class Vb{constructor(e){a(this,"_eventListeners",{}),a(this,"_doubleClickTimeThreshold",.2),a(this,"_longPressTimeThreshold",1),a(this,"_setCursorTypes",[]),a(this,"context"),a(this,"_pointerDown",[!1]),a(this,"_pointerUp",[!1]),a(this,"_pointerClick",[!1]),a(this,"_pointerDoubleClick",[!1]),a(this,"_pointerPressed",[!1]),a(this,"_pointerPositions",[new re]),a(this,"_pointerPositionsLastFrame",[new re]),a(this,"_pointerPositionsDelta",[new re]),a(this,"_pointerPositionsRC",[new re]),a(this,"_pointerPositionDown",[new S]),a(this,"_pointerDownTime",[]),a(this,"_pointerUpTime",[]),a(this,"_pointerUpTimestamp",[]),a(this,"_pointerIds",[]),a(this,"_pointerTypes",[""]),a(this,"_mouseWheelChanged",[!1]),a(this,"_mouseWheelDeltaY",[0]),a(this,"_pointerEvent",[]),a(this,"_pointerEventsPressed",[]),a(this,"_pointerSpace",[]),a(this,"_pressedStack",new Map),a(this,"_htmlEventSource"),a(this,"onLostFocus",()=>{for(const t in this.keysPressed)this.keysPressed[t].pressed=!1}),a(this,"_receivedPointerMoveEventsThisFrame",new Array),a(this,"onEndOfFrame",()=>{this._receivedPointerMoveEventsThisFrame.length=0;for(let t=0;t<this._pointerUp.length;t++)this._pointerUp[t]=!1;for(let t=0;t<this._pointerDown.length;t++)this._pointerDown[t]=!1;for(let t=0;t<this._pointerClick.length;t++)this._pointerClick[t]=!1;for(let t=0;t<this._pointerDoubleClick.length;t++)this._pointerDoubleClick[t]=!1;for(const t of this._pointerPositionsDelta)t.set(0,0);for(let t=0;t<this._mouseWheelChanged.length;t++)this._mouseWheelChanged[t]=!1;for(let t=0;t<this._mouseWheelDeltaY.length;t++)this._mouseWheelDeltaY[t]=0}),a(this,"onContextMenu",t=>{this.canReceiveInput(t)!==!1&&t instanceof PointerEvent&&t.pointerType}),a(this,"keysPressed",{}),a(this,"onKeyDown",t=>{if(lt&&console.log(`key down ${t.code}, ${this.context.application.hasFocus}`,t),!this.context.application.hasFocus)return;const s=this.keysPressed[t.code];if(s&&s.pressed)return;this.keysPressed[t.code]={pressed:!0,frame:this.context.time.frameCount+1,startFrame:this.context.time.frameCount+1,key:t.key,code:t.code};const o=new ic("keydown",t,t);this.onDispatchEvent(o)}),a(this,"onKeyPressed",t=>{if(!this.context.application.hasFocus)return;const s=this.keysPressed[t.code];if(!s)return;s.pressed=!0,s.frame=this.context.time.frameCount+1;const o=new ic("keypress",t,t);this.onDispatchEvent(o)}),a(this,"onKeyUp",t=>{if(!this.context.application.hasFocus)return;const s=this.keysPressed[t.code];if(!s)return;s.pressed=!1,s.frame=this.context.time.frameCount+1;const o=new ic("keyup",t,t);this.onDispatchEvent(o)}),a(this,"onWheelWindow",t=>{document.pointerLockElement&&this.onMouseWheel(t)}),a(this,"onMouseWheel",t=>{if(this.canReceiveInput(t)===!1)return;this._mouseWheelDeltaY.length<=0&&this._mouseWheelDeltaY.push(0),this._mouseWheelChanged.length<=0&&this._mouseWheelChanged.push(!1),this._mouseWheelChanged[0]=!0;const s=this._mouseWheelDeltaY[0];this._mouseWheelDeltaY[0]=s+t.deltaY}),a(this,"onPointerDown",t=>{if(this.context.isInAR||this.canReceiveInput(t)===!1)return;t.target instanceof HTMLElement&&t.target.setPointerCapture(t.pointerId);const s=this.getPointerId(t);lt&&De(`pointer down #${s}, identifier:${t.pointerId}`);const o=this.getAndUpdateSpatialObjectForScreenPosition(s,t.clientX,t.clientY),r=new Rn("pointerdown",t,{origin:this,mode:"screen",deviceIndex:0,pointerId:s,button:t.button,clientX:t.clientX,clientY:t.clientY,pointerType:t.pointerType,buttonName:this.getButtonName(t),device:o,pressure:t.pressure});this.onDown(r)}),a(this,"onPointerMove",t=>{if(this.context.isInAR||this._receivedPointerMoveEventsThisFrame.includes(t.pointerId))return;this._receivedPointerMoveEventsThisFrame.push(t.pointerId);let s=t.button;t.pointerType==="mouse"&&(s=this.getFirstPressedButtonForPointer(0)??0);const o=this.getPointerId(t,s);s===-1&&(s=o);const r=this.getAndUpdateSpatialObjectForScreenPosition(o,t.clientX,t.clientY),l=new Rn("pointermove",t,{origin:this,mode:"screen",deviceIndex:0,pointerId:o,button:s,clientX:t.clientX,clientY:t.clientY,pointerType:t.pointerType,buttonName:this.getButtonName(t),device:r,pressure:t.pressure});this.onMove(l)}),a(this,"onPointerCancel",t=>{this.context.isInAR||(lt&&console.log("Pointer cancel",t),this.onPointerUp(t))}),a(this,"onPointerUp",t=>{if(this.context.isInAR)return;t.target instanceof HTMLElement&&t.target.releasePointerCapture(t.pointerId);const s=this.getPointerId(t),o=new Rn("pointerup",t,{origin:this,mode:"screen",deviceIndex:0,pointerId:s,button:t.button,clientX:t.clientX,clientY:t.clientY,pointerType:t.pointerType,buttonName:this.getButtonName(t),device:this.getAndUpdateSpatialObjectForScreenPosition(s,t.clientX,t.clientY),pressure:t.pressure});this.onUp(o),this._pointerIds[s]=-1,lt&&console.log("ID="+s,"PointerId="+t.pointerId,"ALL:",[...this._pointerIds])}),a(this,"onTouchStart",t=>{if(this.context.isInAR)for(let s=0;s<t.changedTouches.length;s++){const o=t.changedTouches[s],r=this.getPointerIndex(o.identifier),l=this.getAndUpdateSpatialObjectForScreenPosition(r,o.clientX,o.clientY),c=new Rn("pointerdown",t,{origin:this,mode:"screen",deviceIndex:0,pointerId:r,button:0,clientX:o.clientX,clientY:o.clientY,pointerType:"touch",buttonName:"unknown",device:l,pressure:o.force});this.onDown(c)}}),a(this,"onTouchMove",t=>{if(this.context.isInAR)for(let s=0;s<t.changedTouches.length;s++){const o=t.changedTouches[s],r=this.getPointerIndex(o.identifier),l=this.getAndUpdateSpatialObjectForScreenPosition(r,o.clientX,o.clientY),c=new Rn("pointermove",t,{origin:this,mode:"screen",deviceIndex:0,pointerId:r,button:0,clientX:o.clientX,clientY:o.clientY,pointerType:"touch",buttonName:"unknown",device:l,pressure:o.force});this.onMove(c)}}),a(this,"onTouchEnd",t=>{if(this.context.isInAR)for(let s=0;s<t.changedTouches.length;s++){const o=t.changedTouches[s],r=this.getPointerIndex(o.identifier),l=new Rn("pointerup",t,{origin:this,mode:"screen",deviceIndex:0,pointerId:r,button:0,clientX:o.clientX,clientY:o.clientY,pointerType:"touch",buttonName:"unknown",device:this.getAndUpdateSpatialObjectForScreenPosition(r,o.clientX,o.clientY),pressure:o.force});this.onUp(l),this._pointerIds[r]=-1}}),a(this,"tempNearPlaneVector",new S),a(this,"tempFarPlaneVector",new S),a(this,"tempLookMatrix",new se),this.context=e,this.context.post_render_callbacks.push(this.onEndOfFrame)}addEventListener(e,t,s){if(this._eventListeners[e]||(this._eventListeners[e]=[]),!t||typeof t!="function"){console.error("Invalid call to addEventListener: callback is required and must be a function!");return}s?s={...s}:s={};let o=0;s?.queue!=null&&(o=s.queue);const r=this._eventListeners[e],l=r.find(c=>c.priority===o);l?l.listeners.push({callback:t,options:s}):(r.push({priority:o,listeners:[{callback:t,options:s}]}),r.sort((c,h)=>c.priority-h.priority))}removeEventListener(e,t,s){if(!this._eventListeners[e]||!t)return;const o=this._eventListeners[e];if(s?.queue!=null){const r=o.find(c=>c.priority===s.queue);if(!r)return;const l=r.listeners.findIndex(c=>c.callback===t);l>=0&&r.listeners.splice(l,1)}else for(const r of o){const l=r.listeners.findIndex(c=>c.callback===t);l>=0&&r.listeners.splice(l,1)}}dispatchEvent(e){var t,s,o,r;let l=!1;if(e instanceof ic){const c=this._eventListeners[e.type];if(c)for(const h of c)for(let d=0;d<h.listeners.length;d++){const u=h.listeners[d];if((s=(t=u.options)==null?void 0:t.signal)!=null&&s.aborted){h.listeners.splice(d,1),d--;continue}u.options.once&&(h.listeners.splice(d,1),d--),u.callback(e)}}if(e instanceof Rn){const c=this._eventListeners[e.type];if(c)for(const h of c){if(l)break;for(let d=0;d<h.listeners.length;d++){const u=h.listeners[d];if((r=(o=u.options)==null?void 0:o.signal)!=null&&r.aborted){h.listeners.splice(d,1),d--;continue}if(e.immediatePropagationStopped){l=!0,lt&&console.log("immediatePropagationStopped",e.type);break}else e.propagationStopped&&(l=!0,lt&&console.log("propagationStopped",e.type));u.options.once&&(h.listeners.splice(d,1),d--),u.callback(e)}}}}get mousePosition(){return this._pointerPositions[0]}get mousePositionRC(){return this._pointerPositionsRC[0]}get mouseDown(){return this._pointerDown[0]}get mouseUp(){return this._pointerUp[0]}get mouseClick(){return this._pointerClick[0]}get mouseDoubleClick(){return this._pointerDoubleClick[0]}get mousePressed(){return this._pointerPressed[0]}get mouseWheelChanged(){return this.getMouseWheelChanged(0)}get click(){return this._pointerClick[0]}get doubleClick(){return this._pointerDoubleClick[0]}getGamepad(e=0){return typeof navigator<"u"&&"getGamepads"in navigator&&navigator.getGamepads()[e]||null}setCursorPointer(){this.setCursor("pointer")}setCursorNormal(){this.unsetCursor("pointer")}setCursor(e){this._setCursorTypes.push(e),this._setCursorTypes.length>10&&this._setCursorTypes.shift(),this.updateCursor()}unsetCursor(e){for(let t=this._setCursorTypes.length-1;t>=0;t--)if(this._setCursorTypes[t]===e){this._setCursorTypes.splice(t,1),this.updateCursor();break}}updateCursor(){var e;((e=this._setCursorTypes)==null?void 0:e.length)==0?this.context.domElement.style.cursor="default":this.context.domElement.style.cursor=this._setCursorTypes[this._setCursorTypes.length-1]}getIsPointerIdInUse(e){for(const t of this._pointerEventsPressed)if(t.pointerId===e&&t.used)return!0;return!1}getPointerPressedCount(){let e=0;for(let t=0;t<this._pointerPressed.length;t++)this._pointerPressed[t]&&e++;return e}getPointerPosition(e){return e>=this._pointerPositions.length?null:this._pointerPositions[e]}getPointerPositionLastFrame(e){return e>=this._pointerPositionsLastFrame.length?null:this._pointerPositionsLastFrame[e]}getPointerPositionDelta(e){return e>=this._pointerPositionsDelta.length?null:this._pointerPositionsDelta[e]}getPointerPositionRC(e){return e>=this._pointerPositionsRC.length?null:this._pointerPositionsRC[e]}getPointerDown(e){return e>=this._pointerDown.length?!1:this._pointerDown[e]}getPointerUp(e){return e>=this._pointerUp.length?!1:this._pointerUp[e]}getPointerPressed(e){return e>=this._pointerPressed.length?!1:this._pointerPressed[e]}getPointerClicked(e){return e>=this._pointerClick.length?!1:this._pointerClick[e]}getPointerDoubleClicked(e){return e>=this._pointerDoubleClick.length?!1:this._pointerDoubleClick[e]}getPointerDownTime(e){return e>=this._pointerDownTime.length?-1:this._pointerDownTime[e]}getPointerUpTime(e){return e>=this._pointerUpTime.length?-1:this._pointerUpTime[e]}getPointerLongPress(e){return e>=this._pointerDownTime.length?!1:this.getPointerPressed(e)&&this.context.time.time-this._pointerDownTime[e]>this._longPressTimeThreshold}getIsMouse(e){return e<0||e>=this._pointerTypes.length?!1:this._pointerTypes[e]==="mouse"}getIsTouch(e){return e<0||e>=this._pointerTypes.length?!1:this._pointerTypes[e]==="touch"}getTouchesPressedCount(){let e=0;for(let t=0;t<this._pointerPressed.length;t++)this._pointerPressed[t]&&this.getIsTouch(t)&&e++;return e}getMouseWheelChanged(e=0){return e>=this._mouseWheelChanged.length?!1:this._mouseWheelChanged[e]}getMouseWheelDeltaY(e=0){return e>=this._mouseWheelDeltaY.length?0:this._mouseWheelDeltaY[e]}getPointerEvent(e){if(!(e>=this._pointerEvent.length))return this._pointerEvent[e]??void 0}*foreachPointerId(e){for(let t=0;t<this._pointerTypes.length;t++)if(this._pointerIsActive(t)){if(e!==void 0){const s=this._pointerTypes[t];if(Array.isArray(e)){let o=!1;for(const r of e)if(s===r){o=!0;break}if(!o)continue}else if(e!==s)continue}yield t}}*foreachTouchId(){for(let e=0;e<this._pointerTypes.length;e++)this._pointerTypes[e]==="touch"&&this._pointerIsActive[e]&&(yield e)}_pointerIsActive(e){return e<0?!1:this._pointerPressed[e]||this._pointerDown[e]||this._pointerUp[e]}onDownButton(e,t){let s=this._pressedStack.get(e);s||(s=[],this._pressedStack.set(e,s)),s.push(t)}onReleaseButton(e,t){const s=this._pressedStack.get(e);if(!s)return;const o=s.indexOf(t);o>=0&&s.splice(o,1)}getFirstPressedButtonForPointer(e){const t=this._pressedStack.get(e);if(t)return t[0]}getLatestPressedButtonForPointer(e){const t=this._pressedStack.get(e);if(t)return t[t.length-1]}getKeyDown(e){if(e!==void 0)return this.isKeyDown(e);for(const t in this.keysPressed){const s=this.keysPressed[t];if(s.startFrame===this.context.time.frameCount)return s.key}return null}getKeyPressed(e){if(e!==void 0)return this.isKeyPressed(e);for(const t in this.keysPressed){const s=this.keysPressed[t];if(s.pressed)return s.key}return null}getKeyUp(e){if(e!==void 0)return this.isKeyUp(e);for(const t in this.keysPressed){const s=this.keysPressed[t];return s.pressed===!1&&s.frame===this.context.time.frameCount}return null}isKeyDown(e){if(!this.context.application.isVisible||!this.context.application.hasFocus)return!1;const t=this.getCodeForCommonKeyName(e);if(t!==null){for(const o of t)if(this.isKeyDown(o))return!0;return!1}const s=this.keysPressed[e];return s?s.startFrame===this.context.time.frameCount&&s.pressed:!1}isKeyUp(e){if(!this.context.application.isVisible||!this.context.application.hasFocus)return!1;const t=this.getCodeForCommonKeyName(e);if(t!==null){for(const o of t)if(this.isKeyUp(o))return!0;return!1}const s=this.keysPressed[e];return s?s.frame===this.context.time.frameCount&&s.pressed===!1:!1}isKeyPressed(e){if(!this.context.application.isVisible||!this.context.application.hasFocus)return!1;const t=this.getCodeForCommonKeyName(e);if(t!==null){for(const o of t)if(this.isKeyPressed(o))return!0;return!1}const s=this.keysPressed[e];return s&&s.pressed||!1}getCodeForCommonKeyName(e){if(e.length===1){if(e>="0"&&e<="9")return["Digit"+e];if(e>="a"&&e<="z")return["Key"+e.toUpperCase()];if(e==" ")return["Space"]}switch(e){case"shift":case"Shift":return["ShiftLeft","ShiftRight"];case"control":case"Control":return["ControlLeft","ControlRight"];case"alt":case"Alt":return["AltLeft","AltRight"]}return null}createInputEvent(e){switch(e.type){case"pointerdown":lt&&De("Create Pointer down"),this.onDownButton(e.deviceIndex,e.button),this.onDown(e);break;case"pointermove":lt&&De("Create Pointer move"),this.onMove(e);break;case"pointerup":lt&&De("Create Pointer up"),this.onUp(e),this.onReleaseButton(e.deviceIndex,e.button);break}}convertScreenspaceToRaycastSpace(e){return e.x=(e.x-this.context.domX)/this.context.domWidth*2-1,e.y=-((e.y-this.context.domY)/this.context.domHeight)*2+1,e}bindEvents(){this.unbindEvents(),this._htmlEventSource=this.context.renderer.domElement,window.addEventListener("contextmenu",this.onContextMenu),this._htmlEventSource.addEventListener("pointerdown",this.onPointerDown,{passive:!0}),window.addEventListener("pointermove",this.onPointerMove,{passive:!0,capture:!0}),window.addEventListener("pointerup",this.onPointerUp,{passive:!0}),window.addEventListener("pointercancel",this.onPointerCancel,{passive:!0}),window.addEventListener("touchstart",this.onTouchStart,{passive:!0}),window.addEventListener("touchmove",this.onTouchMove,{passive:!0}),window.addEventListener("touchend",this.onTouchEnd,{passive:!0}),this._htmlEventSource.addEventListener("wheel",this.onMouseWheel,{passive:!0}),window.addEventListener("wheel",this.onWheelWindow,{passive:!0}),window.addEventListener("keydown",this.onKeyDown,!1),window.addEventListener("keypress",this.onKeyPressed,!1),window.addEventListener("keyup",this.onKeyUp,!1),window.addEventListener("blur",this.onLostFocus)}unbindEvents(){var e,t;window.removeEventListener("contextmenu",this.onContextMenu),(e=this._htmlEventSource)==null||e.removeEventListener("pointerdown",this.onPointerDown),window.removeEventListener("pointermove",this.onPointerMove),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("pointercancel",this.onPointerCancel),window.removeEventListener("touchstart",this.onTouchStart),window.removeEventListener("touchmove",this.onTouchMove),window.removeEventListener("touchend",this.onTouchEnd),(t=this._htmlEventSource)==null||t.removeEventListener("wheel",this.onMouseWheel,!1),window.removeEventListener("wheel",this.onWheelWindow,!1),window.removeEventListener("keydown",this.onKeyDown,!1),window.removeEventListener("keypress",this.onKeyPressed,!1),window.removeEventListener("keyup",this.onKeyUp,!1),window.removeEventListener("blur",this.onLostFocus)}dispose(){const e=this.context.post_render_callbacks.indexOf(this.onEndOfFrame);e>=0&&this.context.post_render_callbacks.splice(e,1),this.unbindEvents()}canReceiveInput(e){var t;return e.target===((t=this.context.renderer)==null?void 0:t.domElement)||e.target===this.context.domElement||this.context.isInAR||this.context.isInAR&&e.target===document.body&&Q.isMozillaXR()?!0:(lt&&console.warn("CanReceiveInput:False for",e.target),!1)}getPointerId(e,t){return e.pointerType==="mouse"?0+(t??e.button):this.getPointerIndex(e.pointerId)}getButtonName(e){const t=e.button;if(e.pointerType==="mouse")switch(t){case 0:return"left";case 1:return"middle";case 2:return"right"}return"unknown"}getAndUpdateSpatialObjectForScreenPosition(e,t,s){let o=this._pointerSpace[e];o||(o=new A,this._pointerSpace[e]=o),this._pointerSpace[e]=o;const r=this.context.mainCamera;if(r){const l=this.tempNearPlaneVector.set(t,s,-1);this.convertScreenspaceToRaycastSpace(l);const c=this.tempFarPlaneVector.set(l.x,l.y,1);l.unproject(r),c.unproject(r);const h=r.worldUp||q(0,1,0).applyQuaternion(Se(r));this.tempLookMatrix.lookAt(c,l,h),o.position.set(l.x,l.y,l.z),o.quaternion.setFromRotationMatrix(this.tempLookMatrix)}return o}isInRect(e){if(this.context.isInXR)return!0;const t=this.context.domElement.getBoundingClientRect(),s=e.clientX,o=e.clientY,r=s>=t.x&&s<=t.right&&o>=t.y&&o<=t.bottom;return lt&&!r&&console.log("Not in rect",t,s,o),r}onDown(e){const t=e.pointerId;if(this.getPointerPressed(t)&&console.warn(`Received pointerDown for pointerId that is already pressed: ${t}`,lt?e:""),lt&&console.log(e.pointerType,"DOWN",t),!!this.isInRect(e)){for(this.setPointerState(t,this._pointerPressed,!0),this.setPointerState(t,this._pointerDown,!0),this.setPointerStateT(t,this._pointerEvent,e.source);t>=this._pointerTypes.length;)this._pointerTypes.push(e.pointerType);for(this._pointerTypes[t]=e.pointerType;t>=this._pointerPositionDown.length;)this._pointerPositionDown.push(new S);for(this._pointerPositionDown[t].set(e.clientX,e.clientY,e.clientZ??0);t>=this._pointerPositions.length;)this._pointerPositions.push(new re);this._pointerPositions[t].set(e.clientX,e.clientY),t>=this._pointerDownTime.length&&this._pointerDownTime.push(0),this._pointerDownTime[t]=this.context.time.realtimeSinceStartup,this.updatePointerPosition(e),this._pointerEventsPressed.push(e),this.onDispatchEvent(e)}}onMove(e){const t=e.pointerId,s=this.getPointerPressed(t);s===!1&&!this.isInRect(e)||e.pointerType==="touch"&&!s||(this.updatePointerPosition(e),this.setPointerStateT(t,this._pointerEvent,e.source),this.onDispatchEvent(e))}onUp(e){const t=e.pointerId;if(!this.getPointerPressed(t)){lt&&console.log(e.pointerType,"UP",t,"was not down");return}lt&&console.log(e.pointerType,"UP",t),this.setPointerState(t,this._pointerPressed,!1),this.setPointerStateT(t,this._pointerEvent,e.source),this.setPointerState(t,this._pointerUp,!0),this.updatePointerPosition(e);for(let c=this._pointerEventsPressed.length-1;c>=0;c--)if(this._pointerEventsPressed[c].pointerId===t){this._pointerEventsPressed.splice(c,1);break}if(!this._pointerPositionDown[t]){lt&&be("Received pointer up event without matching down event for button: "+t),console.warn("Received pointer up event without matching down event for button: "+t);return}const s=this._pointerUpTime[t],o=this._pointerDownTime[t],r=this.context.time.realtimeSinceStartup,l=r-o;if(t>=this._pointerUpTime.length&&this._pointerUpTime.push(-99),this._pointerUpTime[t]=r,l<1){let c=e.clientX-this._pointerPositionDown[t].x,h=e.clientY-this._pointerPositionDown[t].y,d=0;if(e.isSpatial&&e.clientZ!=null&&(d=e.clientZ-this._pointerPositionDown[t].z,c*=200,h*=200,d*=200),Math.abs(c)<5&&Math.abs(h)<5&&Math.abs(d)<5){this.setPointerState(t,this._pointerClick,!0),e.isClick=!0;const u=r-s;lt&&console.log("CLICK",t,c,h,d,u),u<this._doubleClickTimeThreshold&&u>0&&(this.setPointerState(t,this._pointerDoubleClick,!0),e.isDoubleClick=!0)}}this.onDispatchEvent(e)}updatePointerPosition(e){const t=e.pointerId;for(;t>=this._pointerPositions.length;)this._pointerPositions.push(new re);for(;t>=this._pointerPositionsLastFrame.length;)this._pointerPositionsLastFrame.push(new re);for(;t>=this._pointerPositionsDelta.length;)this._pointerPositionsDelta.push(new re);const s=this._pointerPositionsLastFrame[t];s.copy(this._pointerPositions[t]);const o=this._pointerPositionsDelta[t];let r=e.clientX-s.x,l=e.clientY-s.y;if(e.source instanceof MouseEvent||e.source instanceof TouchEvent){const u=e.source;r===0&&u.movementX!==0&&(r=u.movementX||0),l===0&&u.movementY!==0&&(l=u.movementY||0)}o.x+=r,o.y+=l,this._pointerPositions[t].x=e.clientX,this._pointerPositions[t].y=e.clientY;const c=e.clientX,h=e.clientY;for(;t>=this._pointerPositionsRC.length;)this._pointerPositionsRC.push(new re);const d=this._pointerPositionsRC[t];d.set(c,h),this.convertScreenspaceToRaycastSpace(d)}getPointerIndex(e){let t=-1;for(let s=0;s<this._pointerIds.length;s++){if(this._pointerIds[s]===e)return s;t===-1&&this._pointerIds[s]===-1&&(t=s)}return t!==-1?(this._pointerIds[t]=e,t):(lt&&console.log("PUSH pointerId:",e),this._pointerIds.push(e),this._pointerIds.length-1)}setPointerState(e,t,s){t[e]=s}setPointerStateT(e,t,s){return t[e]=s,s}onDispatchEvent(e){const t=J.Current;try{J.Current=this.context,this.dispatchEvent(e)}finally{J.Current=t}}}const ka=new se().makeRotationY(Math.PI),Xi=new V().setFromAxisAngle(new S(0,1,0),Math.PI),Dk=C("debugwebxr");class Bk{constructor(){if(a(this,"priority",-1e5),a(this,"gameObject"),this.gameObject=new A,this.gameObject.name="Implicit XR Rig",Dk){const e=Tg(16733661);e.position.y+=.5,this.gameObject.add(e)}}isXRRig(){return!0}get isActive(){return this.gameObject.visible}}const Tn=C("debugwebxr"),Md=C("debugcustomgesture"),Fk="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",zk="generic-trigger",Uk=new V().setFromEuler(new It(_n.degToRad(0),_n.degToRad(-90),_n.degToRad(-90))),Nk=new S(.04,-.04,0);class ug{constructor(e,t,s){a(this,"xr"),a(this,"inputSource"),a(this,"index",0),a(this,"emitEvents",!0),a(this,"_connected",!0),a(this,"_isTracking",!1),a(this,"__gamepad"),a(this,"__hand"),a(this,"__side"),a(this,"_hitTestSource"),a(this,"_hasSelectEvent",!1),a(this,"_isMxInk",!1),a(this,"_isMetaQuestTouchController",!1),a(this,"_handJointPoses",new Map),a(this,"_gripMatrix",new se),a(this,"_gripPosition",new S),a(this,"_gripQuaternion",new V),a(this,"_linearVelocity",new S),a(this,"_rayPositionRaw",new S),a(this,"_rayRotationRaw",new V),a(this,"_rayMatrix",new se),a(this,"_rayPosition",new S),a(this,"_rayQuaternion",new V),a(this,"_gripWorldPosition",new S),a(this,"_gripWorldQuaternion",new V),a(this,"_rayWorldPosition",new S),a(this,"_rayWorldQuaternion",new V),a(this,"_pinchPosition",new S),a(this,"_ray"),a(this,"_hand_wristDotUp"),a(this,"_object"),a(this,"_gripSpaceObject"),a(this,"_raySpaceObject"),a(this,"model",null),a(this,"_debugAxesHelper",new _i(.15)),a(this,"_debugGripAxesHelper",new _i(.07)),a(this,"_debugRayAxesHelper",new _i(.07)),a(this,"_hitTestSourcePromise",null),a(this,"onPointerHits",o=>{}),a(this,"_needleGamepadButtons",{}),a(this,"_buttonMap",new Map),a(this,"_motioncontroller"),a(this,"_layout"),a(this,"getMotionController"),a(this,"emitPointerDownEvent",!0),a(this,"emitPointerUpEvent",!0),a(this,"emitPointerMoveEvent",!0),a(this,"pointerMoveDistanceThreshold",.03),a(this,"pointerMoveAngleThreshold",.05),a(this,"_selectButtonIndex"),a(this,"_squeezeButtonIndex"),a(this,"onSelectStart",o=>{var r,l,c,h;if(!this.emitPointerDownEvent||this.inputSource!==o.inputSource)return;this.onUpdateFrame(o.frame),this._hasSelectEvent=!0;const d=(r=this._layout)==null?void 0:r.selectComponentId,u=(h=(c=(l=this._layout)==null?void 0:l.components[d])==null?void 0:c.gamepadIndices)==null?void 0:h.button;u!==void 0&&(this._selectButtonIndex=u),!Md&&(Tn&&$.DrawDirection(this.rayWorldPosition,q(0,.01,1).applyQuaternion(this.rayWorldQuaternion),16711680,10),this.emitPointerEvent(Be.PointerDown,this._selectButtonIndex||0,"xr-standard-trigger",!0,o))}),a(this,"onSelectEnd",o=>{this.emitPointerUpEvent&&(Md||this.inputSource===o.inputSource&&this.emitPointerEvent(Be.PointerUp,this._selectButtonIndex||0,"xr-standard-trigger",!0,o))}),a(this,"onSequeezeStart",o=>{var r,l,c;this.emitPointerDownEvent&&this.inputSource===o.inputSource&&(this._squeezeButtonIndex=(c=(l=(r=this._layout)==null?void 0:r.components["xr-standard-squeeze"])==null?void 0:l.gamepadIndices)==null?void 0:c.button,this._squeezeButtonIndex!==void 0&&(Tn&&$.DrawDirection(this.rayWorldPosition,q(0,.01,1).applyQuaternion(this.rayWorldQuaternion),255,10),this.emitPointerEvent(Be.PointerDown,this._squeezeButtonIndex||0,"xr-standard-squeeze",!0,o)))}),a(this,"onSequeezeEnd",o=>{this.emitPointerUpEvent&&this.inputSource===o.inputSource&&this._squeezeButtonIndex!==void 0&&this.emitPointerEvent(Be.PointerUp,this._squeezeButtonIndex||0,"xr-standard-squeeze",!0,o)}),a(this,"states",{}),a(this,"_didMoveLastFrame",!1),a(this,"_lastPointerMovePosition",new S),a(this,"_lastPointerMoveQuaternion",new V),a(this,"pointerInit"),this.xr=e,this.inputSource=t,this.index=s,this._object=new A,this._object.name=`NeedleXRController_${s}`,Tn&&(this._object.add(this._debugAxesHelper),this._gripSpaceObject=new A,this._raySpaceObject=new A,this._gripSpaceObject.name=`NeedleXRController_${s}_gripSpace`,this._raySpaceObject.name=`NeedleXRController_${s}_raySpace`,this._gripSpaceObject.add(this._debugGripAxesHelper),this._raySpaceObject.add(this._debugRayAxesHelper),this.xr.context.scene.add(this._gripSpaceObject),this.xr.context.scene.add(this._raySpaceObject)),this.xr.context.scene.add(this._object),this._ray=new lo,this.pointerInit={origin:this,pointerType:this.hand?"hand":"controller",deviceIndex:this.index,pointerId:-1,mode:this.inputSource.targetRayMode,ray:this._ray,device:this._object,buttonName:"none"},this.initialize(),this.subscribeEvents()}get context(){return this.xr.context}get connected(){return this._connected}get isTracking(){return this._isTracking}get gamepad(){return this.__gamepad??(this.__gamepad=this.inputSource.gamepad)}get isHand(){return this.hand!=null}get hand(){return this.__hand??(this.__hand=this.inputSource.hand)}get handObject(){return this.context.renderer.xr.getHand(this.index)}get profiles(){return this.inputSource.profiles}get layout(){return this._layout}get targetRayMode(){return this.inputSource.targetRayMode}get targetRaySpace(){return this.inputSource.targetRaySpace}get gripSpace(){return this.inputSource.gripSpace}get side(){return this.__side??(this.__side=this.inputSource.handedness)}get isRight(){return this.side==="right"}get isLeft(){return this.side==="left"}get isStylus(){return this._isMxInk}getHitTestSource(){return this._hitTestSource||this._requestHitTestSource(),this._hitTestSource}get hasHitTestSource(){return this._hitTestSource}cancelHitTestSource(){this._hitTestSource&&(this._hitTestSource.cancel(),this._hitTestSource=void 0)}get hasSelectEvent(){return this._hasSelectEvent}getHitTest(){return this.xr.getHitTest(this)}getHandJointPose(e,t){var s;if(t=t||this.xr.frame,!this.hand||!(t!=null&&t.getJointPose)||!this.xr.referenceSpace)return null;let o=(s=this._handJointPoses)==null?void 0:s.get(e);return o||(o=t.getJointPose(e,this.xr.referenceSpace),o&&this._handJointPoses.set(e,o),o)}get gripPosition(){return q(this._gripPosition)}get gripQuaternion(){return ys(this._gripQuaternion)}get gripMatrix(){return this._gripMatrix}get gripLinearVelocity(){return q(this._linearVelocity).applyQuaternion(Xi)}get rayPosition(){return q(this._rayPosition)}get rayQuaternion(){return ys(this._rayQuaternion)}get gripWorldPosition(){return q(this._gripWorldPosition)}get gripWorldQuaternion(){return ys(this._gripWorldQuaternion)}get rayWorldPosition(){return q(this._rayWorldPosition)}updateRayWorldPosition(){var e;const t=(e=this.xr.context.mainCamera)==null?void 0:e.parent;this._rayWorldPosition.copy(this._rayPositionRaw),t&&this._rayWorldPosition.applyMatrix4(t.matrixWorld)}get rayWorldQuaternion(){return ys(this._rayWorldQuaternion)}get pinchPosition(){return q(this._pinchPosition)}updateRayWorldQuaternion(){var e;const t=(e=this.xr.context.mainCamera)==null?void 0:e.parent,s=t?Se(t):void 0;this._rayWorldQuaternion.copy(this._rayRotationRaw).multiply(Xi),s&&this._rayWorldQuaternion.premultiply(s)}get ray(){return this._ray.origin.copy(this.rayWorldPosition),this._ray.direction.copy(q(0,0,1).applyQuaternion(this.rayWorldQuaternion)),this._ray}get handWristDotUp(){var e;if(this._hand_wristDotUp!==void 0)return this._hand_wristDotUp;const t=(e=this.handObject)==null?void 0:e.joints.wrist;if(t){const s=q(0,1,0).applyQuaternion(t.quaternion),o=q(0,1,0).dot(s);return this._hand_wristDotUp=o}}get isHandUpsideDown(){return this.handWristDotUp!==void 0?this.handWristDotUp<-.7:!1}get isTeleportGesture(){var e;return this.isHandUpsideDown&&((e=this.getGesture("pinch"))==null?void 0:e.isDown)}get object(){return this._object}async getModelUrl(){var e;return(e=this.getMotionController)==null?void 0:e.then(t=>t?.assetUrl||null)}_requestHitTestSource(){var e;return this._hitTestSourcePromise?this._hitTestSourcePromise:this.xr.mode==="immersive-ar"&&this.inputSource.targetRayMode==="tracked-pointer"&&this.xr.session.requestHitTestSourceForTransientInput?this._hitTestSourcePromise=((e=this.xr.session.requestHitTestSourceForTransientInput({profile:this.inputSource.profiles[0],offsetRay:new XRRay}))==null?void 0:e.then(t=>(this._hitTestSourcePromise=null,this.connected?this._hitTestSource=t:(t.cancel(),null))))??null:null}onUpdate(e){this.onUpdateFrame(e),this.updateInputEvents(),this.onUpdateMove()}onRenderDebug(){var e;$.DrawSphere(this.rayWorldPosition,.003),$.DrawDirection(this.rayWorldPosition,q(0,0,10).applyQuaternion(this.rayWorldQuaternion));const t=(this.inputSource.gripSpace?this.gripWorldPosition:this.object.worldPosition).sub(this.object.worldForward.multiplyScalar(.1)),s=this.inputSource.profiles.join(`
135
135
  `);let o=`Controller[${this.index}] (${this.inputSource.targetRayMode}, ${this.side})
136
136
  C:${this.connected?"x":"-"} T:${this.isTracking?"x":"-"} Hand:${this.inputSource.hand?"x":"-"} Pen: ${this._isMxInk?"x":"-"}`;if(this.inputSource.hand&&(o+=`
@@ -176,7 +176,7 @@ Please use the component type instead. This may keep working in local developmen
176
176
 
177
177
  You can import other modules your main module to get access to types
178
178
  or if you use npmdefs you can make types available globally using globalThis:
179
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis`,e))),J_()&&console.log("[onGetComponent] FIND",e),e==null))return null;for(let o=0;o<n.userData.components.length;o++){const r=n.userData.components[o];let l=Object.getPrototypeOf(r);for(;l;){if(l===e.prototype)if(J_()&&console.log("[onGetComponent] MATCH BY PROTOYPE",l),t)t.push(r);else return r;l=Object.getPrototypeOf(l)}}return t||null}function xr(n,e){const t=sw(n,e);return t?Array.isArray(t)?t[0]:t:null}function gc(n,e,t,s=!0){return t||(t=[]),s&&(t.length=0),sw(n,e,t),t}function fc(n,e,t){var s;if(t===!1&&n[Mn]===!1)return null;const o=xr(n,e);if(t===!1&&o?.enabled===!1)return null;if(o)return o;for(let r=0;r<((s=n?.children)==null?void 0:s.length);r++){const l=fc(n.children[r],e);if(l)return l}return null}function ja(n,e,t,s=!0){var o;t||(t=[]),s&&(t.length=0),gc(n,e,t,!1);for(let r=0;r<((o=n?.children)==null?void 0:o.length);r++)ja(n.children[r],e,t,!1);return t}function yc(n,e){if(!n)return null;if(Array.isArray(n)){for(let s=0;s<n.length;s++){const o=HM(n[s]),r=yc(o,e);if(r)return r}return null}return xr(n,e)||(n.parent?yc(n.parent,e):null)}function Gd(n,e,t,s=!0){return t||(t=[]),s&&(t.length=0),n?(gc(n,e,t,!1),n.parent?Gd(n.parent,e,t,!1):t):t}function vc(n,e=void 0,t=!0){if(!n)return null;if(!e&&(e=J.Current,!e))return console.error("Can not search object without any needle context or scene!!!"),null;let s=e;return s.isScene||(s=e?.scene),s&&fc(s,n,t)||null}function nw(n,e,t=void 0){if(!n)return e??[];if(e||(e=[]),e.length=0,!t&&(t=J.Current,!t))return console.error("Can not search object without any needle context or scene!!!"),e;"scene"in t&&(t=t.scene);const s=t;return s&&ja(s,n,e,!1),e}function qd(n){n&&n.isObject3D===!0&&K_(n,A)}A.prototype.SetActive=function(n){this.visible=n},A.prototype.setActive=function(n){this.visible=n},A.prototype.destroy=function(){Mi(this)},A.prototype.addComponent=function(n,e){return ki(this,n,e)},A.prototype.addNewComponent=function(n,e){return ki(this,n,e)},A.prototype.removeComponent=function(n){return ef(this,n)},A.prototype.getOrAddComponent=function(n,e){return mc(this,n,e)},A.prototype.getComponent=function(n){return xr(this,n)},A.prototype.getComponents=function(n,e){return gc(this,n,e)},A.prototype.getComponentInChildren=function(n){return fc(this,n)},A.prototype.getComponentsInChildren=function(n,e){return ja(this,n,e)},A.prototype.getComponentInParent=function(n){return yc(this,n)},A.prototype.getComponentsInParent=function(n,e){return Gd(this,n,e)},Object.getOwnPropertyDescriptor(A.prototype,"activeSelf")||Object.defineProperty(A.prototype,"activeSelf",{get:function(){return Da(this)},set:function(n){bc(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldPosition")||Object.defineProperty(A.prototype,"worldPosition",{get:function(){return this instanceof Tv?ee(this.object):ee(this)},set:function(n){at(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldQuaternion")||Object.defineProperty(A.prototype,"worldQuaternion",{get:function(){return this instanceof Tv?Se(this.object):Se(this)},set:function(n){$i(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldRotation")||Object.defineProperty(A.prototype,"worldRotation",{get:function(){return _d(this)},set:function(n){wb(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldScale")||Object.defineProperty(A.prototype,"worldScale",{get:function(){return Ge(this)},set:function(n){Sa(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldForward")||Object.defineProperty(A.prototype,"worldForward",{get:function(){return q().set(0,0,1).applyQuaternion(Se(this))}}),Object.getOwnPropertyDescriptor(A.prototype,"worldRight")||Object.defineProperty(A.prototype,"worldRight",{get:function(){return q().set(1,0,0).applyQuaternion(Se(this))}}),Object.getOwnPropertyDescriptor(A.prototype,"worldUp")||Object.defineProperty(A.prototype,"worldUp",{get:function(){return q().set(0,1,0).applyQuaternion(Se(this))}}),Z_(A);class ce extends ae{constructor(e,t,s,o){super(),a(this,"alpha",1),typeof e=="number"&&typeof t=="number"&&typeof s=="number"?(this.set(e,t,s),this.alpha=typeof o=="number"?o:1):e!==void 0&&(this.set(e),this.alpha=1)}get isRGBAColor(){return!0}set a(e){this.alpha=e}get a(){return this.alpha}clone(){const e=super.clone();return e.alpha=this.alpha,e}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,"alpha"in e&&typeof e.alpha=="number"?this.alpha=e.alpha:typeof e.a=="number"&&(this.alpha=e.a),this}lerp(e,t){const s=e;return s.alpha!=null&&(this.alpha=N.lerp(this.alpha,s.alpha,t)),super.lerp(e,t)}lerpColors(e,t,s){const o=e,r=t;return o.alpha!=null&&r.alpha!=null&&(this.alpha=N.lerp(o.alpha,r.alpha,s)),super.lerpColors(e,t,s)}multiply(e){const t=e;return t.alpha!=null&&(this.alpha=this.alpha*t.alpha),super.multiply(e)}fromArray(e,t=0){return this.alpha=e[t+3],super.fromArray(e,t)}static fromColorRepresentation(e){if(typeof e=="string"){if(e.trim()==="transparent")return new ce(0,0,0,0);if(e.startsWith("#")&&e.length===9){const t=parseInt(e.slice(1,9),16),s=t>>24&255,o=t>>16&255,r=t>>8&255,l=t>>0&255;return new ce(s/255,o/255,r/255,l/255)}else if(e.startsWith("#")){const t=parseInt(e.slice(1),16),s=t>>16&255,o=t>>8&255,r=t>>0&255;return new ce(s/255,o/255,r/255,1)}else if(e.startsWith("rgba")){const t=e.slice(5,-1).split(",").map(Number);return new ce(t[0]/255,t[1]/255,t[2]/255,t[3])}else if(e.startsWith("rgb")){const t=e.slice(4,-1).split(",").map(Number);return new ce(t[0]/255,t[1]/255,t[2]/255,1)}}else if(Array.isArray(e)){if(e.length===4)return new ce(e[0],e[1],e[2],e[3]);if(e.length===3)return new ce(e[0],e[1],e[2],1);console.error("Invalid color array length. Expected 3 or 4, got "+e.length)}return new ce(e)}}const Xd=C("debuggetcomponent"),Sr=C("debuginstantiate");class Bs{constructor(){a(this,"idProvider"),a(this,"parent"),a(this,"keepWorldPosition"),a(this,"position"),a(this,"rotation"),a(this,"scale"),a(this,"visible"),a(this,"context"),a(this,"components")}clone(){var e,t,s;const o=new Bs;return o.idProvider=this.idProvider,o.parent=this.parent,o.keepWorldPosition=this.keepWorldPosition,o.position=(e=this.position)==null?void 0:e.clone(),o.rotation=(t=this.rotation)==null?void 0:t.clone(),o.scale=(s=this.scale)==null?void 0:s.clone(),o.visible=this.visible,o.context=this.context,o.components=this.components,o}cloneAssign(e){var t,s,o;this.idProvider=e.idProvider,this.parent=e.parent,this.keepWorldPosition=e.keepWorldPosition,this.position=(t=e.position)==null?void 0:t.clone(),this.rotation=(s=e.rotation)==null?void 0:s.clone(),this.scale=(o=e.scale)==null?void 0:o.clone(),this.visible=e.visible,this.context=e.context,this.components=e.components}}function Da(n){return n.visible}function bc(n,e){return typeof e=="number"&&(e=e>.5),n.visible=e,n.visible}function ow(n){return n[Mn]||Qd(n)}function rw(n,e){n[k_]=e}function Qd(n){return cs.isUsingInstancing(n)}function tf(n,e){return wa(n,e,!0,!0)}const aw=Symbol("isDestroyed");function Cr(n){return n[aw]}function lw(n,e){n[aw]=e}const sf=Symbol("isDontDestroy");function Ba(n,e=!0){n[sf]=e}const Yd=[],Kd=[];function Mi(n,e=!0,t=!1){Yd.length=0,Kd.length=0,nf(n,e,!0);for(const s of Yd)s.gameObject=null,s.context=null;for(const s of Kd)lw(s,!0),t&&Te(s),P_(s);Kd.length=0,Yd.length=0}function nf(n,e=!0,t=!0){var s;if(n==null)return;const o=n;if(o.isComponent){if(o[sf])return;Yd.push(o);const c=o.gameObject;o.__internalDisable(),o.__internalDestroy(),o.gameObject=c;return}if(n[sf])return;const r=n;Xd&&console.log(r),Kd.push(r);const l=(s=r.userData)==null?void 0:s.components;if(l!=null&&Array.isArray(l)){let c=l.length;for(let h=0;h<l.length;h++){const d=l[h];nf(d,e,!1),l.length<c&&(c=l.length,h--)}}if(e&&r.children)for(const c of r.children)nf(c,e,!1);t&&r.removeFromParent()}function Pr(n,e,t=!0){return cw(n,e,t)}function*Zd(n,e,t=!1,s=999,o=0){if(n!=null&&n.userData.components&&!(o>s)){for(const r of n.userData.components)e&&r?.isComponent===!0&&r instanceof e?yield r:yield r;if(t===!0)for(const r of n.children)yield*Zd(r,e,!0,s,o+1)}}function cw(n,e,t,s=0){var o;if(n){if(n.isObject3D,s>1e3){console.warn("Failed to iterate components: too many levels");return}if((o=n.userData)!=null&&o.components)for(let r=0;r<n.userData.components.length;r++){const l=n.userData.components[r];if(l?.isComponent===!0){const c=e(l);if(c!==void 0)return c}}if(t&&n.children){const r=s+1;for(let l=0;l<n.children.length;l++){const c=n.children[l];if(!c)continue;const h=cw(c,e,t,r);if(h!==void 0)return h}}}}function Fa(n,e){if("isAssetReference"in n)return n.instantiate(e??void 0);let t=null;e!=null&&(e.x!==void 0?(t=new Bs,t.position=e):t=e);let s=J.Current;t!=null&&t.context&&(s=t.context),Xd&&s.alias&&console.log("context",s.alias),t&&!t.idProvider&&(t.idProvider=new At(Date.now()));const o=[],r={},l={},c=hw(s,n,t,o,r,l);c&&(GM(r),$M(l,r)),Xd&&(wd(n,!0),wd(c,!0));const h={};if(t?.components!==!1){for(const d in o){const u=o[d],p=u.guid;t&&t.idProvider&&(u.guid=t.idProvider.generateUUID(),h[p]=u.guid,Xd&&console.log(u.name,u.guid)),au(u,s),u.__internalNewInstanceCreated&&u.__internalNewInstanceCreated()}for(const d in o){const u=o[d];u.resolveGuids&&u.resolveGuids(h),u.enabled!==!1&&(u.enabled=!0)}zd(s)}return c}function hw(n,e,t,s,o,r){var l;if(!e||e[Ci])return null;const c=e.userData;e.userData={};const h=e.children;e.children=[];const d=e.clone(!1);if(qd(d),e.userData=c,e.children=h,o[e.uuid]={original:e,clone:d},Sr&&console.log("ADD",e,d),e.type==="SkinnedMesh"&&(r[e.uuid]={original:e,clone:d}),t?.visible!==void 0&&(d.visible=t.visible),t!=null&&t.idProvider){d.uuid=t.idProvider.generateUUID();const p=d;p&&(p.guid=d.uuid)}e.animations&&e.animations.length>0&&(d.animations=[...e.animations]);const u=e.parent;if(u&&u.add(d),t!=null&&t.position?at(d,t.position):d.position.copy(e.position),t!=null&&t.rotation?$i(d,t.rotation):d.quaternion.copy(e.quaternion),t!=null&&t.scale?d.scale.copy(t.scale):d.scale.copy(e.scale),t!=null&&t.parent&&t.parent!=="scene"){let p=null;if(typeof t.parent=="string"?p=wa(t.parent,n.scene,!0):p=t.parent,p){const g=t.keepWorldPosition===!0?p.attach:p.add;g?g.call(p,d):console.error("Invalid parent object",p,"received when instantiating:",e)}else console.warn("could not find parent:",t.parent)}for(const[p,g]of Object.entries(e.userData))p!=="components"&&(d.userData[p]=g);if((l=e.userData)!=null&&l.components){const p=e.userData.components,g=[];d.userData.components=g;for(let f=0;f<p.length;f++){const y=p[f],v=new y.constructor;La(v,y,void 0,{}),y[tc]!==void 0&&(v[tc]=y[tc]),g.push(v),v.gameObject=d,s.push(v),o[y.guid]={original:y,clone:v},lc.dispatchComponentLifecycleEvent("component-added",v)}}t&&(t.position=void 0,t.rotation=void 0,t.scale=void 0,t.parent=void 0);for(const p in e.children){const g=e.children[p],f=hw(n,g,t,s,o,r);f&&d.add(f)}return d}function $M(n,e){for(const t in n){const s=n[t],o=s.original,r=o.skeleton,l=s.clone;if(!r){console.warn("Skinned mesh has no skeleton?",s);continue}const c=r.bones,h=l.skeleton.clone();l.skeleton=h,l.bindMatrix.clone().copy(o.bindMatrix),l.bindMatrixInverse.copy(o.bindMatrixInverse);const d=[];h.bones=d;for(let u=0;u<c.length;u++){const p=c[u],g=e[p.uuid].clone;d.push(g)}}for(const t in n){const s=n[t].clone;s.skeleton.update(),s.bind(s.skeleton,s.bindMatrix),s.updateMatrixWorld(!0)}}function GM(n){var e;for(const t in n){const s=n[t].clone;if(s!=null&&s.isObject3D&&(e=s?.userData)!=null&&e.components)for(let o=0;o<s.userData.components.length;o++){const r=s.userData.components[o],l=Object.entries(r);for(const[c,h]of l)if(Array.isArray(h)){const d=[];r[c]=d;for(let u=0;u<h.length;u++){const p=h[u];if(typeof p!="object"){d.push(p);continue}const g=dw(r,c,p,n);g!==void 0?(Sr&&console.log("Found new instance for",c,p,"->",g),d.push(g)):(Sr&&console.warn("Could not find new instance for",c,p),d.push(p))}}else if(typeof h=="object"){const d=dw(r,c,h,n);d!==void 0?r[c]=d:Sr&&console.warn("Could not find new instance for",c,h)}}}}function dw(n,e,t,s){var o,r;if(t!=null)if(t.isComponent===!0){const l=t.gameObject;if(l){const c=l.uuid,h=(o=s[c])==null?void 0:o.clone;if(!h){Sr&&console.log("reference did not change",e,n,t);return}const d=l.userData.components.indexOf(t);if(d>=0&&h.isObject3D)return Sr&&console.log(e,c),h.userData.components[d];console.warn("could not find component",e,t)}}else if(t.isObject3D===!0){if(e==="gameObject")return;const l=t;if(l){const c=l.uuid,h=(r=s[c])==null?void 0:r.clone;if(h)return Sr&&console.log(e,"old",t,"new",h),h}}else{if(t.isVector4||t.isVector3||t.isVector2||t.isQuaternion||t.isEuler||t.isColor===!0)return t.clone();if(t.isEventList===!0)return t.__internalOnInstantiate(s)}}var Or;(n=>{n.baseUrl="https://networking.needle.tools";function e(h){return Bv(new Uint8Array(h))}n.hashMD5=e;function t(h){const d=Bv(new Uint8Array(h),{encoding:"binary",asBytes:!0});return btoa(String.fromCharCode(...d))}n.hashMD5_Base64=t;function s(h){const d=new Uint8Array(h);return crypto.subtle.digest("SHA-256",d).then(u=>btoa(String.fromCharCode(...new Uint8Array(u))))}n.hashSha256=s;function o(h){const d=h.filesize/1024/1024;return Qs()?d<50:d<5}n.canUpload=o;async function r(h,d){var u;const p=n.baseUrl;if(p){if(!h.name)return console.error("Upload: file name is missing"),null}else return console.error("Blob storage base url is not set"),null;let g=null;h instanceof File?g=await h.arrayBuffer():g=h.data;const f=g.byteLength,y=f/1024/1024;if(y>50)return d?.silent!==!0&&be(`File (${y.toFixed(1)}MB) is too large for uploading (see console for details)`),console.warn(`Your file is too large for uploading (${y.toFixed(1)}MB). Max allowed size is 50MB`),null;if(!Qs()&&y>5)return d?.silent!==!0&&be('File is too large for uploading. Please get a <a href="https://needle.tools/pricing" target="_blank">commercial license</a> to upload files larger than 5MB'),console.warn(`Your file is too large for uploading (${y.toFixed(1)}MB). Max size is 5MB for non-commercial users. Please get a commercial license at https://needle.tools/pricing for larger files (up to 50MB)`),null;if(f<1)return console.warn(`Your file is too small for uploading (${y.toFixed(1)}MB). Min size is 1 byte`),null;const v=t(g),b={filename:h.name,"Content-Md5":v,"Content-Type":h.type||"application/octet-stream",FileSize:f.toString(),"Content-Disposition":`attachment; filename="${h.name}"`,"x-amz-server-side-encryption":"AES256"},_=await fetch(p+"/api/needle/blob",{method:"POST",headers:b,signal:d?.abort}).then(w=>w.json()).catch(w=>(console.error(w),null));if(_==null)return console.warn("Upload failed..."),null;if("error"in _)return console.error(_.error),null;if("upload"in _&&_.upload){let w=function(k){var T;return(T=d?.onProgress)==null||T.call(null,{progress01:0,state:"inprogress"}),fetch(k,{method:"PUT",headers:b,body:g,signal:d?.abort}).then(E=>{var I;return(I=d?.onProgress)==null||I.call(null,{progress01:1,state:"finished"}),E}).catch(E=>E)};console.debug("Uploading file",_.upload);let x=!1,M=null;for(let k=0;k<3;k++)try{if(x)break;if((u=d?.abort)!=null&&u.aborted)return console.debug("Aborted upload"),null;const T=await w(_.upload);T instanceof Error?(M=T,await fs(1e3*k)):T.ok&&(console.debug("File uploaded successfully"),x=!0)}catch(T){console.error(T)}if(!x)return console.error(M?.message||"Failed to upload file"),null}if("download"in _){const w=p+_.download;return console.debug("File found in blob storage",w),{key:_.key,success:!0,download_url:w}}return null}n.upload=r;function l(h){return`${n.baseUrl}/api/needle/blob/${h}`}n.getBlobUrlForKey=l;async function c(h,d){const u=new vm;u.setResponseType("arraybuffer");const p=await u.loadAsync(h,g=>{d&&d.call(null,g)});return p instanceof ArrayBuffer?new Uint8Array(p):(console.error("Download failed, no arraybuffer returned"),null)}n.download=c})(Or||(Or={}));const vo=C("debugaddressables");class uw{constructor(e){a(this,"_context"),a(this,"_assetReferences",{}),a(this,"preUpdate",()=>{}),this._context=e,this._context.pre_update_callbacks.push(this.preUpdate)}dispose(){const e=this._context.pre_update_callbacks.indexOf(this.preUpdate);e>=0&&this._context.pre_update_callbacks.splice(e,1);for(const t in this._assetReferences){const s=this._assetReferences[t];s?.unload()}this._assetReferences={}}findAssetReference(e){return this._assetReferences[e]||null}registerAssetReference(e){return e.url&&(this._assetReferences[e.url]?console.warn("Asset reference already registered",e):this._assetReferences[e.url]=e),e}unregisterAssetReference(e){e.url&&delete this._assetReferences[e.url]}}const of=Symbol("assetReference"),pw=class Al{constructor(e,t,s=null){a(this,"_loading"),a(this,"_asset"),a(this,"_glbRoot"),a(this,"_url"),a(this,"_urlName"),a(this,"_progressListeners",[]),a(this,"_hash"),a(this,"_hashedUri"),a(this,"_isLoadingRawBinary",!1),a(this,"_rawBinary"),this._url=e;const o=e.lastIndexOf("/");if(o>=0){this._urlName=e.substring(o+1);const r=this._urlName.lastIndexOf(".");r>=0&&(this._urlName=this._urlName.substring(0,r))}else this._urlName=e;this._hash=t,e.includes("?v=")?this._hashedUri=e:this._hashedUri=t?e+"?v="+t:e,s!==null&&(this.asset=s),z_(this._url,this.onResolvePrefab.bind(this))}static getOrCreateFromUrl(e,t){if(!t&&(t=J.Current,!t))throw new Error('Context is required when sourceId is a string. When you call this method from a component you can call it with "getOrCreate(this, url)" where "this" is the component.');const s=t.addressables,o=s.findAssetReference(e);if(o)return o;const r=new Al(e,t.hash);return s.registerAssetReference(r),r}static getOrCreate(e,t,s){if(typeof e=="string"){if(!s&&(s=J.Current,!s))throw new Error('Context is required when sourceId is a string. When you call this method from a component you can call it with "getOrCreate(this, url)" where "this" is the component.')}else s=e.context,e=e.sourceId;const o=po(e,t);vo&&console.log("GetOrCreate Addressable from",e,t,"FinalPath=",o);const r=s.addressables,l=r.findAssetReference(o);if(l)return l;const c=new Al(o,s.hash);return r.registerAssetReference(c),c}get isAssetReference(){return!0}get asset(){return this._glbRoot??this._asset}set asset(e){this._asset=e}get uri(){return this._url}get url(){return this._url}get urlName(){return this._urlName}get hasUrl(){return this._url!==void 0&&(this._url.startsWith("http")||this._url.startsWith("blob:")||this._url.startsWith("www.")||this._url.includes("/"))}get rawAsset(){return this._asset}async onResolvePrefab(e){return e===this.url&&(this.mustLoad&&await this.loadAssetAsync(),this.asset)?this.asset:null}get mustLoad(){return!this.asset||this.asset.__destroyed===!0||Cr(this.asset)===!0}isLoaded(){return this._rawBinary||this.asset!==void 0}unload(){this.asset&&(vo&&console.log("Unload",this.asset),"scene"in this.asset&&this.asset.scene&&Mi(this.asset.scene,!0,!0),Mi(this.asset,!0,!0)),this.asset=null,this._rawBinary=void 0,this._glbRoot=null,this._loading=void 0,J.Current&&J.Current.addressables.unregisterAssetReference(this)}async preload(){if(!this.mustLoad||this._isLoadingRawBinary)return null;if(this._rawBinary!==void 0)return this._rawBinary;this._isLoadingRawBinary=!0,vo&&console.log("Preload",this._hashedUri);const e=await Or.download(this._hashedUri,t=>{this.raiseProgressEvent(t)});return this._rawBinary=e?.buffer??null,this._isLoadingRawBinary=!1,this._rawBinary}async loadAssetAsync(e){if(vo&&console.log("loadAssetAsync",this.url),!this.mustLoad)return this.asset;if(e&&this._progressListeners.push(e),this._loading!==void 0)return this._loading.then(o=>this.asset);const t=J.Current;if(this._rawBinary){if(!(this._rawBinary instanceof ArrayBuffer))return console.error("Invalid raw binary data",this._rawBinary),null;this._loading=_s().parseSync(t,this._rawBinary,this.url,null),this.raiseProgressEvent(new ProgressEvent("progress",{loaded:this._rawBinary.byteLength,total:this._rawBinary.byteLength}))}else vo&&console.log("Load async",this.url),this._loading=_s().loadSync(t,this._hashedUri,this.url,null,o=>{this.raiseProgressEvent(o)});const s=await this._loading;return this._progressListeners.length=0,this._glbRoot=this.tryGetActualGameObjectRoot(s),this._loading=void 0,s?(s[of]=this,this._glbRoot&&(this._glbRoot[of]=this),this.asset&&(this.asset[of]=this),zd(t),s.scene!==void 0&&(this.asset=s),this.asset):null}async instantiate(e){return this.onInstantiate(e,!1)}async instantiateSynced(e,t=!0){return this.onInstantiate(e,!0,t)}beginListenDownload(e){this._progressListeners.indexOf(e)<0&&this._progressListeners.push(e)}endListenDownload(e){const t=this._progressListeners.indexOf(e);t>=0&&this._progressListeners.splice(t,1)}raiseProgressEvent(e){for(const t of this._progressListeners)t(this,e)}async onInstantiate(e,t=!1,s){const o=J.Current,r=new Bs;if(e instanceof A?r.parent=e:e&&(Object.assign(r,e),r.cloneAssign(e)),r.parent||(r.parent=o.scene),this.mustLoad&&await this.loadAssetAsync(),vo&&console.log("Instantiate",this.url,"parent:",e),this.asset){vo&&console.log("Add to scene",this.asset);let l=Al.currentlyInstantiating.get(this.url);if(l!==void 0&&l>=1e4)return console.error("Recursive or too many instantiations of "+this.url+" in the same frame ("+l+")"),null;try{if(l===void 0&&(l=0),l+=1,Al.currentlyInstantiating.set(this.url,l),t){r.context=o;const c=this.asset;c.guid=this.url;const h=$g(c,r,void 0,s);if(h)return h}else{const c=Fa(this.asset,r);if(c)return c}}finally{o.post_render_callbacks.push(()=>{l===void 0||l<0?l=0:l-=1,Al.currentlyInstantiating.set(this.url,l)})}}else vo&&console.warn("Failed to load asset",this.url);return null}tryGetActualGameObjectRoot(e){if(e&&e.scene){const t=e.scene;return t.isGroup&&t.children.length===1&&t.children[0].name+"glb"===t.name?t.children[0]:t}return null}};a(pw,"currentlyInstantiating",new Map);let le=pw;class qM extends Yi{constructor(){super([le],"AssetReferenceSerializer")}onSerialize(e,t){if(e&&e.uri!==void 0&&typeof e.uri=="string")return e.uri}onDeserialize(e,t){if(typeof e=="string")return t.context?t.gltfId?le.getOrCreate(t.gltfId,e,t.context):(console.error("Missing source id"),null):(console.error("Missing context"),null);if(e instanceof A){if(!t.context)return console.error("Missing context"),null;if(!t.gltfId)return console.error("Missing source id"),null;const s=e,o=t.context,r=s.guid??s.uuid,l=o.addressables.findAssetReference(r);if(l)return l;const c=new le(r,void 0,s);return o.addressables.registerAssetReference(c),c}return null}}new qM;const XM=Promise.resolve(null),mw=class om{constructor(e){a(this,"url"),a(this,"_bitmap"),a(this,"_bitmapObject"),a(this,"loader",null),this.url=e}static getOrCreate(e){let t=om.imageReferences.get(e);return t||(t=new om(e),om.imageReferences.set(e,t)),t}dispose(){this._bitmapObject&&this._bitmapObject.close(),this._bitmap=void 0}createHTMLImage(){const e=new Image;return e.src=this.url,e}createTexture(){return this.url?(this.loader||(this.loader=new fa),this.loader.setCrossOrigin("anonymous"),this.loader.loadAsync(this.url).then(e=>{var t;return e&&!((t=e.name)!=null&&t.length)&&(e.name=this.url.split("/").pop()??this.url),e})):(console.error("Can not load texture without url"),XM)}getBitmap(){return this._bitmap?this._bitmap:(this._bitmap=new Promise((e,t)=>{const s=document.createElement("img");s.addEventListener("load",()=>{this._bitmap=createImageBitmap(s).then(o=>(this._bitmapObject=o,e(o),o))}),s.addEventListener("error",o=>{console.error("Failed to load image:"+this.url,o),e(null)}),s.src=this.url}),this._bitmap)}};a(mw,"imageReferences",new Map);let rf=mw;class gw extends Yi{constructor(){super([rf],"ImageReferenceSerializer")}onSerialize(e,t){return null}onDeserialize(e,t){if(typeof e=="string"){const s=po(t.gltfId,e);return rf.getOrCreate(s)}}}new gw;const fw=class rm{constructor(e){a(this,"url"),a(this,"res"),this.url=e}static getOrCreate(e){let t=rm.cache.get(e);return t||(t=new rm(e),rm.cache.set(e,t)),t}async loadRaw(){return this.res||(this.res=fetch(this.url)),this.res.then(e=>e.blob())}async loadText(){return this.res||(this.res=fetch(this.url)),this.res.then(e=>e.text())}};a(fw,"cache",new Map);let af=fw;class yw extends Yi{constructor(){super([af],"FileReferenceSerializer")}onSerialize(e,t){return null}onDeserialize(e,t){if(typeof e=="string"){const s=po(t.gltfId,e);return af.getOrCreate(s)}}}new yw;class QM{constructor(e){a(this,"context"),a(this,"mixers",[]),this.context=e}onDestroy(){this.mixers.forEach(e=>e.stopAllAction()),this.mixers.length=0}registerAnimationMixer(e){if(!e){console.warn("AnimationsRegistry.registerAnimationMixer called with null or undefined mixer");return}this.mixers.includes(e)||this.mixers.push(e)}unregisterAnimationMixer(e){if(!e){console.warn("AnimationsRegistry.unregisterAnimationMixer called with null or undefined mixer");return}const t=this.mixers.indexOf(e);t!==-1&&this.mixers.splice(t,1)}}class za{static tryGetActionsFromMixer(e){return e._actions||null}static tryGetAnimationClipsFromObjectHierarchy(e,t){if(t||(t=new Array),e)e.animations&&t.push(...e.animations);else return t;if(e.children)for(const s of e.children)this.tryGetAnimationClipsFromObjectHierarchy(s,t);return t}static assignAnimationsFromFile(e,t){if(!e||!e.animations){console.debug("No animations found in file");return}for(let o=0;o<e.animations.length;o++){const r=e.animations[o];if(!r.tracks||r.tracks.length<=0){console.warn("Animation has no tracks");continue}for(const l in r.tracks){const c=r.tracks[l],h=ya.parseTrackName(c.name);let d=ya.findNode(e.scene,h.nodeName);if(!d){const p=c.__objectName??c.name.substring(0,c.name.indexOf("."));if(d=e.scene.getObjectByProperty("uuid",p),!d)continue}let u=s(d);if(!u){if(!(t!=null&&t.createAnimationComponent)){console.warn("No AnimationComponent found in parent hierarchy of object and no 'createAnimationComponent' callback was provided in options.");continue}u=t.createAnimationComponent(e.scene,r)}u.addClip&&u.addClip(r)}}function s(o){var r;if(!o)return null;const l=(r=o.userData)==null?void 0:r.components;if(l&&l.length>0){for(let c=0;c<l.length;c++)if(l[c].isAnimationComponent===!0)return o}return s(o.parent)}}}function*lf(n,e=null){const t=e?e.time:J.Current.time,s=t.time;for(;t.time-s<n;)yield}function*YM(n){for(let e=0;e<n;e++)yield}function*vw(n){let e=!0;for(n.then(()=>e=!1),n.catch(()=>e=!1);e;)yield}const bw="NEEDLE_lightmaps",_c=C("debuglightmapsextension")||C("debuglightmaps");var bo=(n=>(n[n.Lightmap=0]="Lightmap",n[n.Skybox=1]="Skybox",n[n.Reflection=2]="Reflection",n))(bo||{});class KM{constructor(e,t,s){a(this,"parser"),a(this,"registry"),a(this,"source"),this.parser=e,this.registry=t,this.source=s}get name(){return bw}afterRoot(e){const t=this.parser.json.extensions;if(t){const s=t[bw];if(s){const o=s.textures;return o!=null&&o.length?(_c&&console.log(s),new Promise(async(r,l)=>{const c=[];for(const d of o)if(d.pointer){_c&&console.log(d);let u=null;if(d.pointer.startsWith("/textures/"))_c&&console.log("Load texture from gltf",d.pointer),u=Xg(this.parser,d.pointer).then(p=>this.resolveTexture(d,p));else if(typeof d.pointer=="string"){_c&&console.log("Load texture from path",d.pointer);const p=po(this.source,d.pointer);let g;p.endsWith(".exr")?g=new ud(this.parser.options.manager):p.endsWith(".hdr")?g=new Rm(this.parser.options.manager):g=new fa(this.parser.options.manager),u=g.loadAsync(p,void 0).then(f=>this.resolveTexture(d,f))}else d.pointer;u&&c.push(u)}const h=await Um(c);h!=null&&h.anyFailed&&B()&&console.error("Failed to load lightmap extension",h),r()})):null}}return null}resolveTexture(e,t){const s=t;_c&&console.log("Lightmap loaded:",s),s!=null&&s.isTexture&&(this.registry?(s.colorSpace=xn,this.registry.registerTexture(this.source,e.type,s,e.index)):console.log(bo[e.type],e.pointer,s))}}const _w=!!C("debuglightmaps");class ZM{constructor(e){a(this,"_context"),a(this,"_lightmaps",new Map),this._context=e}clear(){this._lightmaps.clear()}registerTexture(e,t,s,o){_w&&console.log("Registering ",bo[t]+' "'+e+'"',s),this._lightmaps.has(e)||this._lightmaps.set(e,new Map);const r=this._lightmaps.get(e),l=r?.get(t)??[];l.length<o&&(l.length=o+1),l[o]=s,r?.set(t,l)}tryGetLightmap(e,t=0){return this.tryGet(e,bo.Lightmap,t)}tryGetSkybox(e){return this.tryGet(e,bo.Skybox,0)}tryGetReflection(e){return this.tryGet(e,bo.Reflection,0)}tryGet(e,t,s){if(!e)return _w&&console.warn("Missing source id"),null;const o=this._lightmaps.get(e);if(!o)return null;const r=o.get(t);return r===void 0||!(r!=null&&r.length)||r.length<=s?null:r[s]}}Vt.lights_fragment_maps=Vt.lights_fragment_maps.replace("vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );",`
179
+ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis`,e))),J_()&&console.log("[onGetComponent] FIND",e),e==null))return null;for(let o=0;o<n.userData.components.length;o++){const r=n.userData.components[o];let l=Object.getPrototypeOf(r);for(;l;){if(l===e.prototype)if(J_()&&console.log("[onGetComponent] MATCH BY PROTOYPE",l),t)t.push(r);else return r;l=Object.getPrototypeOf(l)}}return t||null}function xr(n,e){const t=sw(n,e);return t?Array.isArray(t)?t[0]:t:null}function gc(n,e,t,s=!0){return t||(t=[]),s&&(t.length=0),sw(n,e,t),t}function fc(n,e,t){var s;if(t===!1&&n[Mn]===!1)return null;const o=xr(n,e);if(t===!1&&o?.enabled===!1)return null;if(o)return o;for(let r=0;r<((s=n?.children)==null?void 0:s.length);r++){const l=fc(n.children[r],e);if(l)return l}return null}function ja(n,e,t,s=!0){var o;t||(t=[]),s&&(t.length=0),gc(n,e,t,!1);for(let r=0;r<((o=n?.children)==null?void 0:o.length);r++)ja(n.children[r],e,t,!1);return t}function yc(n,e){if(!n)return null;if(Array.isArray(n)){for(let s=0;s<n.length;s++){const o=HM(n[s]),r=yc(o,e);if(r)return r}return null}return xr(n,e)||(n.parent?yc(n.parent,e):null)}function Gd(n,e,t,s=!0){return t||(t=[]),s&&(t.length=0),n?(gc(n,e,t,!1),n.parent?Gd(n.parent,e,t,!1):t):t}function vc(n,e=void 0,t=!0){if(!n)return null;if(!e&&(e=J.Current,!e))return console.error("Can not search object without any needle context or scene!!!"),null;let s=e;return s.isScene||(s=e?.scene),s&&fc(s,n,t)||null}function nw(n,e,t=void 0){if(!n)return e??[];if(e||(e=[]),e.length=0,!t&&(t=J.Current,!t))return console.error("Can not search object without any needle context or scene!!!"),e;"scene"in t&&(t=t.scene);const s=t;return s&&ja(s,n,e,!1),e}function qd(n){n&&n.isObject3D===!0&&K_(n,A)}A.prototype.SetActive=function(n){this.visible=n},A.prototype.setActive=function(n){this.visible=n},A.prototype.destroy=function(){Mi(this)},A.prototype.addComponent=function(n,e){return ki(this,n,e)},A.prototype.addNewComponent=function(n,e){return ki(this,n,e)},A.prototype.removeComponent=function(n){return ef(this,n)},A.prototype.getOrAddComponent=function(n,e){return mc(this,n,e)},A.prototype.getComponent=function(n){return xr(this,n)},A.prototype.getComponents=function(n,e){return gc(this,n,e)},A.prototype.getComponentInChildren=function(n){return fc(this,n)},A.prototype.getComponentsInChildren=function(n,e){return ja(this,n,e)},A.prototype.getComponentInParent=function(n){return yc(this,n)},A.prototype.getComponentsInParent=function(n,e){return Gd(this,n,e)},Object.getOwnPropertyDescriptor(A.prototype,"activeSelf")||Object.defineProperty(A.prototype,"activeSelf",{get:function(){return Da(this)},set:function(n){bc(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldPosition")||Object.defineProperty(A.prototype,"worldPosition",{get:function(){return this instanceof Tv?ee(this.object):ee(this)},set:function(n){at(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldQuaternion")||Object.defineProperty(A.prototype,"worldQuaternion",{get:function(){return this instanceof Tv?Se(this.object):Se(this)},set:function(n){$i(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldRotation")||Object.defineProperty(A.prototype,"worldRotation",{get:function(){return _d(this)},set:function(n){wb(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldScale")||Object.defineProperty(A.prototype,"worldScale",{get:function(){return Ge(this)},set:function(n){Sa(this,n)}}),Object.getOwnPropertyDescriptor(A.prototype,"worldForward")||Object.defineProperty(A.prototype,"worldForward",{get:function(){return q().set(0,0,1).applyQuaternion(Se(this))}}),Object.getOwnPropertyDescriptor(A.prototype,"worldRight")||Object.defineProperty(A.prototype,"worldRight",{get:function(){return q().set(1,0,0).applyQuaternion(Se(this))}}),Object.getOwnPropertyDescriptor(A.prototype,"worldUp")||Object.defineProperty(A.prototype,"worldUp",{get:function(){return q().set(0,1,0).applyQuaternion(Se(this))}}),Z_(A);class ce extends ae{constructor(e,t,s,o){super(),a(this,"alpha",1),typeof e=="number"&&typeof t=="number"&&typeof s=="number"?(this.set(e,t,s),this.alpha=typeof o=="number"?o:1):e!==void 0&&(this.set(e),this.alpha=1)}get isRGBAColor(){return!0}set a(e){this.alpha=e}get a(){return this.alpha}clone(){const e=super.clone();return e.alpha=this.alpha,e}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,"alpha"in e&&typeof e.alpha=="number"?this.alpha=e.alpha:typeof e.a=="number"&&(this.alpha=e.a),this}lerp(e,t){const s=e;return s.alpha!=null&&(this.alpha=N.lerp(this.alpha,s.alpha,t)),super.lerp(e,t)}lerpColors(e,t,s){const o=e,r=t;return o.alpha!=null&&r.alpha!=null&&(this.alpha=N.lerp(o.alpha,r.alpha,s)),super.lerpColors(e,t,s)}multiply(e){const t=e;return t.alpha!=null&&(this.alpha=this.alpha*t.alpha),super.multiply(e)}fromArray(e,t=0){return this.alpha=e[t+3],super.fromArray(e,t)}static fromColorRepresentation(e){if(typeof e=="string"){if(e.trim()==="transparent")return new ce(0,0,0,0);if(e.startsWith("#")&&e.length===9){const t=parseInt(e.slice(1,9),16),s=t>>24&255,o=t>>16&255,r=t>>8&255,l=t>>0&255;return new ce(s/255,o/255,r/255,l/255)}else if(e.startsWith("#")){const t=parseInt(e.slice(1),16),s=t>>16&255,o=t>>8&255,r=t>>0&255;return new ce(s/255,o/255,r/255,1)}else if(e.startsWith("rgba")){const t=e.slice(5,-1).split(",").map(Number);return new ce(t[0]/255,t[1]/255,t[2]/255,t[3])}else if(e.startsWith("rgb")){const t=e.slice(4,-1).split(",").map(Number);return new ce(t[0]/255,t[1]/255,t[2]/255,1)}}else if(Array.isArray(e)){if(e.length===4)return new ce(e[0],e[1],e[2],e[3]);if(e.length===3)return new ce(e[0],e[1],e[2],1);console.error("Invalid color array length. Expected 3 or 4, got "+e.length)}return new ce(e)}}const Xd=C("debuggetcomponent"),Sr=C("debuginstantiate");class Bs{constructor(){a(this,"idProvider"),a(this,"parent"),a(this,"keepWorldPosition"),a(this,"position"),a(this,"rotation"),a(this,"scale"),a(this,"visible"),a(this,"context"),a(this,"components")}clone(){var e,t,s;const o=new Bs;return o.idProvider=this.idProvider,o.parent=this.parent,o.keepWorldPosition=this.keepWorldPosition,o.position=(e=this.position)==null?void 0:e.clone(),o.rotation=(t=this.rotation)==null?void 0:t.clone(),o.scale=(s=this.scale)==null?void 0:s.clone(),o.visible=this.visible,o.context=this.context,o.components=this.components,o}cloneAssign(e){var t,s,o;this.idProvider=e.idProvider,this.parent=e.parent,this.keepWorldPosition=e.keepWorldPosition,this.position=(t=e.position)==null?void 0:t.clone(),this.rotation=(s=e.rotation)==null?void 0:s.clone(),this.scale=(o=e.scale)==null?void 0:o.clone(),this.visible=e.visible,this.context=e.context,this.components=e.components}}function Da(n){return n.visible}function bc(n,e){return typeof e=="number"&&(e=e>.5),n.visible=e,n.visible}function ow(n){return n[Mn]||Qd(n)}function rw(n,e){n[k_]=e}function Qd(n){return cs.isUsingInstancing(n)}function tf(n,e){return wa(n,e,!0,!0)}const aw=Symbol("isDestroyed");function Cr(n){return n[aw]}function lw(n,e){n[aw]=e}const sf=Symbol("isDontDestroy");function Ba(n,e=!0){n[sf]=e}const Yd=[],Kd=[];function Mi(n,e=!0,t=!1){Yd.length=0,Kd.length=0,nf(n,e,!0);for(const s of Yd)s.gameObject=null,s.context=null;for(const s of Kd)lw(s,!0),t&&Te(s),P_(s);Kd.length=0,Yd.length=0}function nf(n,e=!0,t=!0){var s;if(n==null)return;const o=n;if(o.isComponent){if(o[sf])return;Yd.push(o);const c=o.gameObject;o.__internalDisable(),o.__internalDestroy(),o.gameObject=c;return}if(n[sf])return;const r=n;Xd&&console.log(r),Kd.push(r);const l=(s=r.userData)==null?void 0:s.components;if(l!=null&&Array.isArray(l)){let c=l.length;for(let h=0;h<l.length;h++){const d=l[h];nf(d,e,!1),l.length<c&&(c=l.length,h--)}}if(e&&r.children)for(const c of r.children)nf(c,e,!1);t&&r.removeFromParent()}function Pr(n,e,t=!0){return cw(n,e,t)}function*Zd(n,e,t=!1,s=999,o=0){if(n!=null&&n.userData.components&&!(o>s)){for(const r of n.userData.components)e&&r?.isComponent===!0&&r instanceof e?yield r:yield r;if(t===!0)for(const r of n.children)yield*Zd(r,e,!0,s,o+1)}}function cw(n,e,t,s=0){var o;if(n){if(n.isObject3D,s>1e3){console.warn("Failed to iterate components: too many levels");return}if((o=n.userData)!=null&&o.components)for(let r=0;r<n.userData.components.length;r++){const l=n.userData.components[r];if(l?.isComponent===!0){const c=e(l);if(c!==void 0)return c}}if(t&&n.children){const r=s+1;for(let l=0;l<n.children.length;l++){const c=n.children[l];if(!c)continue;const h=cw(c,e,t,r);if(h!==void 0)return h}}}}function Fa(n,e){if("isAssetReference"in n)return n.instantiate(e??void 0);let t=null;e!=null&&(e.x!==void 0?(t=new Bs,t.position=e):t=e);let s=J.Current;t!=null&&t.context&&(s=t.context),Xd&&s.alias&&console.log("context",s.alias),t&&!t.idProvider&&(t.idProvider=new At(Date.now()));const o=[],r={},l={},c=hw(s,n,t,o,r,l);c&&(GM(r),$M(l,r)),Xd&&(wd(n,!0),wd(c,!0));const h={};if(t?.components!==!1){for(const d in o){const u=o[d],p=u.guid;t&&t.idProvider&&(u.guid=t.idProvider.generateUUID(),h[p]=u.guid,Xd&&console.log(u.name,u.guid)),au(u,s),u.__internalNewInstanceCreated&&u.__internalNewInstanceCreated()}for(const d in o){const u=o[d];u.resolveGuids&&u.resolveGuids(h),u.enabled!==!1&&(u.enabled=!0)}zd(s)}return c}function hw(n,e,t,s,o,r){var l;if(!e||e[Ci])return null;const c=e.userData;e.userData={};const h=e.children;e.children=[];const d=e.clone(!1);if(qd(d),e.userData=c,e.children=h,o[e.uuid]={original:e,clone:d},Sr&&console.log("ADD",e,d),e.type==="SkinnedMesh"&&(r[e.uuid]={original:e,clone:d}),t?.visible!==void 0&&(d.visible=t.visible),t!=null&&t.idProvider){d.uuid=t.idProvider.generateUUID();const p=d;p&&(p.guid=d.uuid)}e.animations&&e.animations.length>0&&(d.animations=[...e.animations]);const u=e.parent;if(u&&u.add(d),t!=null&&t.position?at(d,t.position):d.position.copy(e.position),t!=null&&t.rotation?$i(d,t.rotation):d.quaternion.copy(e.quaternion),t!=null&&t.scale?d.scale.copy(t.scale):d.scale.copy(e.scale),t!=null&&t.parent&&t.parent!=="scene"){let p=null;if(typeof t.parent=="string"?p=wa(t.parent,n.scene,!0):p=t.parent,p){const g=t.keepWorldPosition===!0?p.attach:p.add;g?g.call(p,d):console.error("Invalid parent object",p,"received when instantiating:",e)}else console.warn("could not find parent:",t.parent)}for(const[p,g]of Object.entries(e.userData))p!=="components"&&(d.userData[p]=g);if((l=e.userData)!=null&&l.components){const p=e.userData.components,g=[];d.userData.components=g;for(let f=0;f<p.length;f++){const y=p[f],v=new y.constructor;La(v,y,void 0,{}),y[tc]!==void 0&&(v[tc]=y[tc]),g.push(v),v.gameObject=d,s.push(v),o[y.guid]={original:y,clone:v},lc.dispatchComponentLifecycleEvent("component-added",v)}}t&&(t.position=void 0,t.rotation=void 0,t.scale=void 0,t.parent=void 0,t.visible=void 0);for(const p in e.children){const g=e.children[p],f=hw(n,g,t,s,o,r);f&&(o[f.uuid]={original:g,clone:f},d.add(f))}return d}function $M(n,e){for(const t in n){const s=n[t],o=s.original,r=o.skeleton,l=s.clone;if(!r){console.warn("Skinned mesh has no skeleton?",s);continue}const c=r.bones,h=l.skeleton.clone();l.skeleton=h,l.bindMatrix.clone().copy(o.bindMatrix),l.bindMatrixInverse.copy(o.bindMatrixInverse);const d=[];h.bones=d;for(let u=0;u<c.length;u++){const p=c[u],g=e[p.uuid].clone;d.push(g)}}for(const t in n){const s=n[t].clone;s.skeleton.update(),s.bind(s.skeleton,s.bindMatrix),s.updateMatrixWorld(!0)}}function GM(n){var e;for(const t in n){const s=n[t].clone;if(s!=null&&s.isObject3D&&(e=s?.userData)!=null&&e.components)for(let o=0;o<s.userData.components.length;o++){const r=s.userData.components[o],l=Object.entries(r);for(const[c,h]of l)if(Array.isArray(h)){const d=[];r[c]=d;for(let u=0;u<h.length;u++){const p=h[u];if(typeof p!="object"){d.push(p);continue}const g=dw(r,c,p,n);g!==void 0?(Sr&&console.log("Found new instance for",c,p,"->",g),d.push(g)):(Sr&&console.warn("Could not find new instance for",c,p),d.push(p))}}else if(typeof h=="object"){const d=dw(r,c,h,n);d!==void 0?r[c]=d:Sr&&console.warn("Could not find new instance for",c,h)}}}}function dw(n,e,t,s){var o,r;if(t!=null)if(t.isComponent===!0){const l=t.gameObject;if(l){const c=l.uuid,h=(o=s[c])==null?void 0:o.clone;if(!h){Sr&&console.log("reference did not change",e,n,t);return}const d=l.userData.components.indexOf(t);if(d>=0&&h.isObject3D)return Sr&&console.log(e,c),h.userData.components[d];console.warn("could not find component",e,t)}}else if(t.isObject3D===!0){if(e==="gameObject")return;const l=t;if(l){const c=l.uuid,h=(r=s[c])==null?void 0:r.clone;if(h)return Sr&&console.log(e,"old",t,"new",h),h}}else{if(t.isVector4||t.isVector3||t.isVector2||t.isQuaternion||t.isEuler||t.isColor===!0)return t.clone();if(t.isEventList===!0)return t.__internalOnInstantiate(s)}}var Or;(n=>{n.baseUrl="https://networking.needle.tools";function e(h){return Bv(new Uint8Array(h))}n.hashMD5=e;function t(h){const d=Bv(new Uint8Array(h),{encoding:"binary",asBytes:!0});return btoa(String.fromCharCode(...d))}n.hashMD5_Base64=t;function s(h){const d=new Uint8Array(h);return crypto.subtle.digest("SHA-256",d).then(u=>btoa(String.fromCharCode(...new Uint8Array(u))))}n.hashSha256=s;function o(h){const d=h.filesize/1024/1024;return Qs()?d<50:d<5}n.canUpload=o;async function r(h,d){var u;const p=n.baseUrl;if(p){if(!h.name)return console.error("Upload: file name is missing"),null}else return console.error("Blob storage base url is not set"),null;let g=null;h instanceof File?g=await h.arrayBuffer():g=h.data;const f=g.byteLength,y=f/1024/1024;if(y>50)return d?.silent!==!0&&be(`File (${y.toFixed(1)}MB) is too large for uploading (see console for details)`),console.warn(`Your file is too large for uploading (${y.toFixed(1)}MB). Max allowed size is 50MB`),null;if(!Qs()&&y>5)return d?.silent!==!0&&be('File is too large for uploading. Please get a <a href="https://needle.tools/pricing" target="_blank">commercial license</a> to upload files larger than 5MB'),console.warn(`Your file is too large for uploading (${y.toFixed(1)}MB). Max size is 5MB for non-commercial users. Please get a commercial license at https://needle.tools/pricing for larger files (up to 50MB)`),null;if(f<1)return console.warn(`Your file is too small for uploading (${y.toFixed(1)}MB). Min size is 1 byte`),null;const v=t(g),b={filename:h.name,"Content-Md5":v,"Content-Type":h.type||"application/octet-stream",FileSize:f.toString(),"Content-Disposition":`attachment; filename="${h.name}"`,"x-amz-server-side-encryption":"AES256"},_=await fetch(p+"/api/needle/blob",{method:"POST",headers:b,signal:d?.abort}).then(w=>w.json()).catch(w=>(console.error(w),null));if(_==null)return console.warn("Upload failed..."),null;if("error"in _)return console.error(_.error),null;if("upload"in _&&_.upload){let w=function(k){var T;return(T=d?.onProgress)==null||T.call(null,{progress01:0,state:"inprogress"}),fetch(k,{method:"PUT",headers:b,body:g,signal:d?.abort}).then(E=>{var I;return(I=d?.onProgress)==null||I.call(null,{progress01:1,state:"finished"}),E}).catch(E=>E)};console.debug("Uploading file",_.upload);let x=!1,M=null;for(let k=0;k<3;k++)try{if(x)break;if((u=d?.abort)!=null&&u.aborted)return console.debug("Aborted upload"),null;const T=await w(_.upload);T instanceof Error?(M=T,await fs(1e3*k)):T.ok&&(console.debug("File uploaded successfully"),x=!0)}catch(T){console.error(T)}if(!x)return console.error(M?.message||"Failed to upload file"),null}if("download"in _){const w=p+_.download;return console.debug("File found in blob storage",w),{key:_.key,success:!0,download_url:w}}return null}n.upload=r;function l(h){return`${n.baseUrl}/api/needle/blob/${h}`}n.getBlobUrlForKey=l;async function c(h,d){const u=new vm;u.setResponseType("arraybuffer");const p=await u.loadAsync(h,g=>{d&&d.call(null,g)});return p instanceof ArrayBuffer?new Uint8Array(p):(console.error("Download failed, no arraybuffer returned"),null)}n.download=c})(Or||(Or={}));const vo=C("debugaddressables");class uw{constructor(e){a(this,"_context"),a(this,"_assetReferences",{}),a(this,"preUpdate",()=>{}),this._context=e,this._context.pre_update_callbacks.push(this.preUpdate)}dispose(){const e=this._context.pre_update_callbacks.indexOf(this.preUpdate);e>=0&&this._context.pre_update_callbacks.splice(e,1);for(const t in this._assetReferences){const s=this._assetReferences[t];s?.unload()}this._assetReferences={}}findAssetReference(e){return this._assetReferences[e]||null}registerAssetReference(e){return e.url&&(this._assetReferences[e.url]?console.warn("Asset reference already registered",e):this._assetReferences[e.url]=e),e}unregisterAssetReference(e){e.url&&delete this._assetReferences[e.url]}}const of=Symbol("assetReference"),pw=class Al{constructor(e,t,s=null){a(this,"_loading"),a(this,"_asset"),a(this,"_glbRoot"),a(this,"_url"),a(this,"_urlName"),a(this,"_progressListeners",[]),a(this,"_hash"),a(this,"_hashedUri"),a(this,"_isLoadingRawBinary",!1),a(this,"_rawBinary"),this._url=e;const o=e.lastIndexOf("/");if(o>=0){this._urlName=e.substring(o+1);const r=this._urlName.lastIndexOf(".");r>=0&&(this._urlName=this._urlName.substring(0,r))}else this._urlName=e;this._hash=t,e.includes("?v=")?this._hashedUri=e:this._hashedUri=t?e+"?v="+t:e,s!==null&&(this.asset=s),z_(this._url,this.onResolvePrefab.bind(this))}static getOrCreateFromUrl(e,t){if(!t&&(t=J.Current,!t))throw new Error('Context is required when sourceId is a string. When you call this method from a component you can call it with "getOrCreate(this, url)" where "this" is the component.');const s=t.addressables,o=s.findAssetReference(e);if(o)return o;const r=new Al(e,t.hash);return s.registerAssetReference(r),r}static getOrCreate(e,t,s){if(typeof e=="string"){if(!s&&(s=J.Current,!s))throw new Error('Context is required when sourceId is a string. When you call this method from a component you can call it with "getOrCreate(this, url)" where "this" is the component.')}else s=e.context,e=e.sourceId;const o=po(e,t);vo&&console.log("GetOrCreate Addressable from",e,t,"FinalPath=",o);const r=s.addressables,l=r.findAssetReference(o);if(l)return l;const c=new Al(o,s.hash);return r.registerAssetReference(c),c}get isAssetReference(){return!0}get asset(){return this._glbRoot??this._asset}set asset(e){this._asset=e}get uri(){return this._url}get url(){return this._url}get urlName(){return this._urlName}get hasUrl(){return this._url!==void 0&&(this._url.startsWith("http")||this._url.startsWith("blob:")||this._url.startsWith("www.")||this._url.includes("/"))}get rawAsset(){return this._asset}async onResolvePrefab(e){return e===this.url&&(this.mustLoad&&await this.loadAssetAsync(),this.asset)?this.asset:null}get mustLoad(){return!this.asset||this.asset.__destroyed===!0||Cr(this.asset)===!0}isLoaded(){return this._rawBinary||this.asset!==void 0}unload(){this.asset&&(vo&&console.log("Unload",this.asset),"scene"in this.asset&&this.asset.scene&&Mi(this.asset.scene,!0,!0),Mi(this.asset,!0,!0)),this.asset=null,this._rawBinary=void 0,this._glbRoot=null,this._loading=void 0,J.Current&&J.Current.addressables.unregisterAssetReference(this)}async preload(){if(!this.mustLoad||this._isLoadingRawBinary)return null;if(this._rawBinary!==void 0)return this._rawBinary;this._isLoadingRawBinary=!0,vo&&console.log("Preload",this._hashedUri);const e=await Or.download(this._hashedUri,t=>{this.raiseProgressEvent(t)});return this._rawBinary=e?.buffer??null,this._isLoadingRawBinary=!1,this._rawBinary}async loadAssetAsync(e){if(vo&&console.log("loadAssetAsync",this.url),!this.mustLoad)return this.asset;if(e&&this._progressListeners.push(e),this._loading!==void 0)return this._loading.then(o=>this.asset);const t=J.Current;if(this._rawBinary){if(!(this._rawBinary instanceof ArrayBuffer))return console.error("Invalid raw binary data",this._rawBinary),null;this._loading=_s().parseSync(t,this._rawBinary,this.url,null),this.raiseProgressEvent(new ProgressEvent("progress",{loaded:this._rawBinary.byteLength,total:this._rawBinary.byteLength}))}else vo&&console.log("Load async",this.url),this._loading=_s().loadSync(t,this._hashedUri,this.url,null,o=>{this.raiseProgressEvent(o)});const s=await this._loading;return this._progressListeners.length=0,this._glbRoot=this.tryGetActualGameObjectRoot(s),this._loading=void 0,s?(s[of]=this,this._glbRoot&&(this._glbRoot[of]=this),this.asset&&(this.asset[of]=this),zd(t),s.scene!==void 0&&(this.asset=s),this.asset):null}instantiate(e){return this.onInstantiate(e,!1)}instantiateSynced(e,t=!0){return this.onInstantiate(e,!0,t)}beginListenDownload(e){this._progressListeners.indexOf(e)<0&&this._progressListeners.push(e)}endListenDownload(e){const t=this._progressListeners.indexOf(e);t>=0&&this._progressListeners.splice(t,1)}raiseProgressEvent(e){for(const t of this._progressListeners)t(this,e)}async onInstantiate(e,t=!1,s){const o=J.Current,r=new Bs;if(e instanceof A?r.parent=e:e&&(Object.assign(r,e),r.cloneAssign(e)),r.parent===void 0&&(r.parent=o.scene),this.mustLoad&&await this.loadAssetAsync(),vo&&console.log("Instantiate",this.url,"parent:",e),this.asset){vo&&console.log("Add to scene",this.asset);let l=Al.currentlyInstantiating.get(this.url);if(l!==void 0&&l>=1e4)return console.error("Recursive or too many instantiations of "+this.url+" in the same frame ("+l+")"),null;try{if(l===void 0&&(l=0),l+=1,Al.currentlyInstantiating.set(this.url,l),t){r.context=o;const c=this.asset;c.guid=this.url;const h=$g(c,r,void 0,s);if(h)return h}else{const c=Fa(this.asset,r);if(c)return c}}finally{o.post_render_callbacks.push(()=>{l===void 0||l<0?l=0:l-=1,Al.currentlyInstantiating.set(this.url,l)})}}else vo&&console.warn("Failed to load asset",this.url);return null}tryGetActualGameObjectRoot(e){if(e&&e.scene){const t=e.scene;return t.isGroup&&t.children.length===1&&t.children[0].name+"glb"===t.name?t.children[0]:t}return null}};a(pw,"currentlyInstantiating",new Map);let le=pw;class qM extends Yi{constructor(){super([le],"AssetReferenceSerializer")}onSerialize(e,t){if(e&&e.uri!==void 0&&typeof e.uri=="string")return e.uri}onDeserialize(e,t){if(typeof e=="string")return t.context?t.gltfId?le.getOrCreate(t.gltfId,e,t.context):(console.error("Missing source id"),null):(console.error("Missing context"),null);if(e instanceof A){if(!t.context)return console.error("Missing context"),null;if(!t.gltfId)return console.error("Missing source id"),null;const s=e,o=t.context,r=s.guid??s.uuid,l=o.addressables.findAssetReference(r);if(l)return l;const c=new le(r,void 0,s);return o.addressables.registerAssetReference(c),c}return null}}new qM;const XM=Promise.resolve(null),mw=class om{constructor(e){a(this,"url"),a(this,"_bitmap"),a(this,"_bitmapObject"),a(this,"loader",null),this.url=e}static getOrCreate(e){let t=om.imageReferences.get(e);return t||(t=new om(e),om.imageReferences.set(e,t)),t}dispose(){this._bitmapObject&&this._bitmapObject.close(),this._bitmap=void 0}createHTMLImage(){const e=new Image;return e.src=this.url,e}createTexture(){return this.url?(this.loader||(this.loader=new fa),this.loader.setCrossOrigin("anonymous"),this.loader.loadAsync(this.url).then(e=>{var t;return e&&!((t=e.name)!=null&&t.length)&&(e.name=this.url.split("/").pop()??this.url),e})):(console.error("Can not load texture without url"),XM)}getBitmap(){return this._bitmap?this._bitmap:(this._bitmap=new Promise((e,t)=>{const s=document.createElement("img");s.addEventListener("load",()=>{this._bitmap=createImageBitmap(s).then(o=>(this._bitmapObject=o,e(o),o))}),s.addEventListener("error",o=>{console.error("Failed to load image:"+this.url,o),e(null)}),s.src=this.url}),this._bitmap)}};a(mw,"imageReferences",new Map);let rf=mw;class gw extends Yi{constructor(){super([rf],"ImageReferenceSerializer")}onSerialize(e,t){return null}onDeserialize(e,t){if(typeof e=="string"){const s=po(t.gltfId,e);return rf.getOrCreate(s)}}}new gw;const fw=class rm{constructor(e){a(this,"url"),a(this,"res"),this.url=e}static getOrCreate(e){let t=rm.cache.get(e);return t||(t=new rm(e),rm.cache.set(e,t)),t}async loadRaw(){return this.res||(this.res=fetch(this.url)),this.res.then(e=>e.blob())}async loadText(){return this.res||(this.res=fetch(this.url)),this.res.then(e=>e.text())}};a(fw,"cache",new Map);let af=fw;class yw extends Yi{constructor(){super([af],"FileReferenceSerializer")}onSerialize(e,t){return null}onDeserialize(e,t){if(typeof e=="string"){const s=po(t.gltfId,e);return af.getOrCreate(s)}}}new yw;class QM{constructor(e){a(this,"context"),a(this,"mixers",[]),this.context=e}onDestroy(){this.mixers.forEach(e=>e.stopAllAction()),this.mixers.length=0}registerAnimationMixer(e){if(!e){console.warn("AnimationsRegistry.registerAnimationMixer called with null or undefined mixer");return}this.mixers.includes(e)||this.mixers.push(e)}unregisterAnimationMixer(e){if(!e){console.warn("AnimationsRegistry.unregisterAnimationMixer called with null or undefined mixer");return}const t=this.mixers.indexOf(e);t!==-1&&this.mixers.splice(t,1)}}class za{static tryGetActionsFromMixer(e){return e._actions||null}static tryGetAnimationClipsFromObjectHierarchy(e,t){if(t||(t=new Array),e)e.animations&&t.push(...e.animations);else return t;if(e.children)for(const s of e.children)this.tryGetAnimationClipsFromObjectHierarchy(s,t);return t}static assignAnimationsFromFile(e,t){if(!e||!e.animations){console.debug("No animations found in file");return}for(let o=0;o<e.animations.length;o++){const r=e.animations[o];if(!r.tracks||r.tracks.length<=0){console.warn("Animation has no tracks");continue}for(const l in r.tracks){const c=r.tracks[l],h=ya.parseTrackName(c.name);let d=ya.findNode(e.scene,h.nodeName);if(!d){const p=c.__objectName??c.name.substring(0,c.name.indexOf("."));if(d=e.scene.getObjectByProperty("uuid",p),!d)continue}let u=s(d);if(!u){if(!(t!=null&&t.createAnimationComponent)){console.warn("No AnimationComponent found in parent hierarchy of object and no 'createAnimationComponent' callback was provided in options.");continue}u=t.createAnimationComponent(e.scene,r)}u.addClip&&u.addClip(r)}}function s(o){var r;if(!o)return null;const l=(r=o.userData)==null?void 0:r.components;if(l&&l.length>0){for(let c=0;c<l.length;c++)if(l[c].isAnimationComponent===!0)return o}return s(o.parent)}}}function*lf(n,e=null){const t=e?e.time:J.Current.time,s=t.time;for(;t.time-s<n;)yield}function*YM(n){for(let e=0;e<n;e++)yield}function*vw(n){let e=!0;for(n.then(()=>e=!1),n.catch(()=>e=!1);e;)yield}const bw="NEEDLE_lightmaps",_c=C("debuglightmapsextension")||C("debuglightmaps");var bo=(n=>(n[n.Lightmap=0]="Lightmap",n[n.Skybox=1]="Skybox",n[n.Reflection=2]="Reflection",n))(bo||{});class KM{constructor(e,t,s){a(this,"parser"),a(this,"registry"),a(this,"source"),this.parser=e,this.registry=t,this.source=s}get name(){return bw}afterRoot(e){const t=this.parser.json.extensions;if(t){const s=t[bw];if(s){const o=s.textures;return o!=null&&o.length?(_c&&console.log(s),new Promise(async(r,l)=>{const c=[];for(const d of o)if(d.pointer){_c&&console.log(d);let u=null;if(d.pointer.startsWith("/textures/"))_c&&console.log("Load texture from gltf",d.pointer),u=Xg(this.parser,d.pointer).then(p=>this.resolveTexture(d,p));else if(typeof d.pointer=="string"){_c&&console.log("Load texture from path",d.pointer);const p=po(this.source,d.pointer);let g;p.endsWith(".exr")?g=new ud(this.parser.options.manager):p.endsWith(".hdr")?g=new Rm(this.parser.options.manager):g=new fa(this.parser.options.manager),u=g.loadAsync(p,void 0).then(f=>this.resolveTexture(d,f))}else d.pointer;u&&c.push(u)}const h=await Um(c);h!=null&&h.anyFailed&&B()&&console.error("Failed to load lightmap extension",h),r()})):null}}return null}resolveTexture(e,t){const s=t;_c&&console.log("Lightmap loaded:",s),s!=null&&s.isTexture&&(this.registry?(s.colorSpace=xn,this.registry.registerTexture(this.source,e.type,s,e.index)):console.log(bo[e.type],e.pointer,s))}}const _w=!!C("debuglightmaps");class ZM{constructor(e){a(this,"_context"),a(this,"_lightmaps",new Map),this._context=e}clear(){this._lightmaps.clear()}registerTexture(e,t,s,o){_w&&console.log("Registering ",bo[t]+' "'+e+'"',s),this._lightmaps.has(e)||this._lightmaps.set(e,new Map);const r=this._lightmaps.get(e),l=r?.get(t)??[];l.length<o&&(l.length=o+1),l[o]=s,r?.set(t,l)}tryGetLightmap(e,t=0){return this.tryGet(e,bo.Lightmap,t)}tryGetSkybox(e){return this.tryGet(e,bo.Skybox,0)}tryGetReflection(e){return this.tryGet(e,bo.Reflection,0)}tryGet(e,t,s){if(!e)return _w&&console.warn("Missing source id"),null;const o=this._lightmaps.get(e);if(!o)return null;const r=o.get(t);return r===void 0||!(r!=null&&r.length)||r.length<=s?null:r[s]}}Vt.lights_fragment_maps=Vt.lights_fragment_maps.replace("vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );",`
180
180
  vec2 lUv = vLightMapUv.xy * lightmapScaleOffset.xy + vec2(lightmapScaleOffset.z, (1. - (lightmapScaleOffset.y + lightmapScaleOffset.w)));
181
181
  vec4 lightMapTexel = texture2D( lightMap, lUv);
182
182
  // The range of RGBM lightmaps goes from 0 to 34.49 (5^2.2) in linear space, and from 0 to 5 in gamma space.
@@ -1,5 +1,5 @@
1
- import { GameObject as r, onClear as a, onDestroy as s, onInitialized as l, onAfterRender as d, onBeforeRender as c, onUpdate as m, onStart as g, loadAsset as p, NeedleXRSession as u, Context as S, VERSION as C, Component as y, Components as E } from "./needle-engine.bundle-CZmu3wcW.js";
2
- import { $physicsKey as T, ActionBuilder as A, ActionCollection as b, ActionModel as M, Addressables as I, AlignmentConstraint as D, AmbientMode as O, Animation as x, AnimationCurve as k, AnimationExtension as L, AnimationTrackHandler as N, AnimationUtils as B, Animator as F, AnimatorConditionMode as U, AnimatorController as w, AnimatorControllerParameterType as G, AnimatorStateInfo as W, Antialiasing as H, Application as X, AssetDatabase as z, AssetReference as V, AudioExtension as _, AudioListener as j, AudioSource as K, AudioTrackHandler as Z, Avatar as Q, AvatarBlink_Simple as Y, AvatarEyeLook_Rotation as $, AvatarLoader as J, AvatarMarker as q, AvatarModel as ee, Avatar_Brain_LookAt as te, Avatar_MouthShapes as oe, Avatar_MustacheShake as re, Avatar_POI as ne, Axes as ie, AxesHelper as ae, BUILD_TIME as se, BaseUIComponent as le, BasicIKConstraint as de, BehaviorExtension as ce, BehaviorModel as me, Component$1 as ge, BlobStorage as pe, BloomEffect as ue, BoxCollider as Se, BoxGizmo as Ce, BoxHelperComponent as ye, Button as Ee, ButtonsFactory as Re, CallDirection as he, CallInfo as fe, Camera as ve, CameraTargetReachedEvent as Pe, Canvas as Te, CanvasGroup as Ae, CapsuleCollider as be, ChangeMaterialOnClick as Me, ChangeTransformOnClick as Ie, CharacterController as De, CharacterControllerInput as Oe, ChromaticAberration as xe, CircularBuffer as ke, ClearFlags as Le, ClipExtrapolation as Ne, Collider as Be, Collision as Fe, CollisionDetectionMode as Ue, ColorAdjustments as we, ColorBySpeedModule as Ge, ColorOverLifetimeModule as We, Component$1 as He, ComponentLifecycleEvents as Xe, ConnectionEvents as ze, ContactPoint as Ve, ContactShadows as _e, ContextArgs as je, ContextEvent as Ke, ContextRegistry as Ze, ControlTrackHandler as Qe, CustomBranding as Ye, CustomShader as $e, DefaultReflectionMode as Je, Deletable as qe, DeleteBox as et, DepthOfField as tt, DeviceFlag as ot, DeviceUtilities as rt, DocumentExtension as nt, DragControls as it, DragMode as at, DropListener as st, Duplicatable as lt, EffectWrapper as dt, EmissionModule as ct, EmphasizeOnClick as mt, EngineLoadingView as gt, EnvironmentScene as pt, EventList as ut, EventListEvent as St, EventSystem as Ct, EventTrigger as yt, FieldWithDefault as Et, FileReference as Rt, FileReferenceSerializer as ht, FileSpawnModel as ft, File_Event as vt, FixedJoint as Pt, Fog as Tt, FrameEvent as At, GENERATOR as bt, Gizmos as Mt, GltfExport as It, GltfExportBox as Dt, Gradient as Ot, Graphic as xt, GraphicRaycaster as kt, Graphics as Lt, GridHelper as Nt, GridLayoutGroup as Bt, GroundProjectedEnv as Ft, GroupActionModel as Ut, HideFlags as wt, HideOnStart as Gt, HingeJoint as Wt, HorizontalLayoutGroup as Ht, HostData as Xt, Image as zt, ImageReference as Vt, ImageReferenceSerializer as _t, InheritVelocityModule as jt, Input as Kt, InputEventQueue as Zt, InputEvents as Qt, InputField as Yt, InstanceHandle as $t, InstancingHandler as Jt, InstancingUtil as qt, InstantiateEvent as eo, InstantiateIdProvider as to, InstantiateOptions as oo, Interactable as ro, InternalScreenshotUtils as no, JoinedRoomResponse as io, KeyEventArgs as ao, Keyframe as so, LODGroup as lo, LODModel as co, LeftRoomResponse as mo, Light as go, LightData as po, LimitVelocityOverLifetimeModule as uo, LoadingElementOptions as So, LogStats as Co, LogType as yo, LookAt as Eo, LookAtConstraint as Ro, MainModule as ho, MarkerType as fo, MaskableGraphic as vo, Mathf as Po, MeshCollider as To, MeshRenderer as Ao, MinMaxCurve as bo, MinMaxGradient as Mo, MODULES as Io, NEKeyboardEvent as Do, NEPointerEvent as Oo, NeedleButtonElement as xo, ContextRegistry as ko, NeedleEngineHTMLElement as Lo, NeedleEngineModelLoader as No, NeedleMenu as Bo, NeedlePatchesKey as Fo, USDZExporter$1 as Uo, NeedleXRController as wo, NeedleXRSync as Go, NeedleXRUtils as Wo, NestedGltf as Ho, NetworkConnection as Xo, NetworkedStreamEvents as zo, NetworkedStreams as Vo, Networking as _o, NewInstanceModel as jo, NoiseModule as Ko, ObjectRaycaster as Zo, ObjectUtils as Qo, OffsetConstraint as Yo, OneEuroFilter as $o, OneEuroFilterXYZ as Jo, OpenURL as qo, OrbitControls as er, Outline as tr, OwnershipEvent as or, OwnershipModel as rr, PUBLIC_KEY as nr, Padding as ir, ParticleBurst as ar, ParticleSubEmitter as sr, ParticleSystem as lr, ParticleSystemBaseBehaviour as dr, ParticleSystemRenderer as cr, ParticleSystemShapeType as mr, PeerHandle as gr, PeerNetworking as pr, Physics as ur, PhysicsExtension as Sr, PhysicsMaterialCombine as Cr, PixelationEffect as yr, PlayAnimationOnClick as Er, PlayAudioOnClick as Rr, PlayableDirector as hr, PlayerColor as fr, PlayerState as vr, PlayerStateEvent as Pr, PlayerSync as Tr, PlayerView as Ar, PlayerViewManager as br, PointerEventData as Mr, PointerType as Ir, PostProcessingEffect as Dr, PostProcessingHandler as Or, Volume as xr, PreliminaryAction as kr, PreliminaryTrigger as Lr, PreviewHelper as Nr, PrimitiveType as Br, Progress as Fr, PromiseAllWithErrors as Ur, PromiseErrorResult as wr, RGBAColor as Gr, RapierPhysics as Wr, RawImage as Hr, RaycastOptions as Xr, Rect as zr, RectTransform as Vr, ReflectionProbe as _r, RegisteredAnimationInfo as jr, RemoteSkybox as Kr, RenderTexture as Zr, RenderTextureSerializer as Qr, Renderer as Yr, RendererData as $r, RendererLightmap as Jr, Rigidbody as qr, RigidbodyConstraints as en, RoomEvents as tn, RotationBySpeedModule as on, RotationOverLifetimeModule as rn, SceneLightSettings as nn, SceneSwitcher as an, ScreenCapture as sn, ScreenSpaceAmbientOcclusion as ln, ScreenSpaceAmbientOcclusionN8 as dn, SendQueue as cn, SerializationContext as mn, SetActiveOnClick as gn, ShadowCatcher as pn, ShapeModule as un, SharpeningEffect as Sn, SignalAsset as Cn, SignalReceiver as yn, SignalReceiverEvent as En, SignalTrackHandler as Rn, Size as hn, SizeBySpeedModule as fn, SizeOverLifetimeModule as vn, SkinnedMeshRenderer as Pn, SmoothFollow as Tn, SpatialGrabRaycaster as An, SpatialHtml as bn, SpatialTrigger as Mn, SpatialTriggerReceiver as In, SpectatorCamera as Dn, SphereCollider as On, SphereIntersection as xn, SphereOverlapResult as kn, Sprite as Ln, SpriteData as Nn, SpriteRenderer as Bn, SpriteSheet as Fn, StateMachineBehaviour as Un, StreamEndedEvent as wn, StreamReceivedEvent as Gn, SubEmitterSystem as Wn, SyncedCamera as Hn, SyncedRoom as Xn, SyncedTransform as zn, TapGestureTrigger as Vn, TeleportTarget as _n, TestRunner as jn, TestSceneUtils as Kn, TestSimulateUserData as Zn, Text as Qn, TextBuilder as Yn, TextExtension as $n, TextureSheetAnimationModule as Jn, TiltShiftEffect as qn, Time as ei, ToneMappingEffect as ti, TrackHandler as oi, TrackType as ri, TrailModule as ni, TransformData as ii, TransformGizmo as ai, TriggerBuilder as si, TriggerModel as li, TypeStore as di, UIRaycastUtils as ci, UIRootComponent as mi, USDDocument as gi, USDObject as pi, USDWriter as ui, USDZExporter as Si, USDZText as Ci, USDZUIExtension as yi, UriSerializer as Ei, UsageMarker as Ri, UserJoinedOrLeftRoomModel as hi, VariantAction as fi, VelocityOverLifetimeModule as vi, VerticalLayoutGroup as Pi, VideoPlayer as Ti, ViewDevice as Ai, Vignette as bi, VisibilityAction as Mi, Voip as Ii, Volume as Di, VolumeParameter as Oi, VolumeProfile as xi, WaitForFrames as ki, WaitForPromise as Li, WaitForSeconds as Ni, Watch as Bi, WebARCameraBackground as Fi, WebARSessionRoot as Ui, WebXR as wi, WebXRButtonFactory as Gi, WebXRImageTracking as Wi, WebXRImageTrackingModel as Hi, WebXRPlaneTracking as Xi, WebXRTrackedImage as zi, XRControllerFollow as Vi, XRControllerModel as _i, XRControllerMovement as ji, XRFlag as Ki, XRRig as Zi, XRState as Qi, XRStateFlag as Yi, __Ignore as $i, __internalNotifyObjectDestroyed as Ji, activeInHierarchyFieldName as qi, addAttributeChangeCallback as ea, addComponent as ta, addCustomExtensionPlugin as oa, addNewComponent as ra, addPatch as na, apply as ia, applyHMRChanges as aa, applyPrototypeExtensions as sa, beginListenDestroy as la, beginListenInstantiate as da, binaryIdentifierCasts as ca, build_scene_functions as ma, builtinComponentKeyName as ga, calculateProgress01 as pa, clearMessages as ua, clearMessages as Sa, colorSerializer as Ca, compareAssociation as ya, componentSerializer as Ea, copyTexture as Ra, createMotion as ha, debugNet as fa, debugOwner as va, decompressGpuTexture as Pa, deepClone as Ta, delay as Aa, delayForFrames as ba, deserializeObject as Ma, destroy as Ia, destroyComponentInstance as Da, determineMimeTypeFromExtension as Oa, disposeObjectResources as xa, disposeStream as ka, editorGuidKeyName as La, enableSpatialConsole as Na, euler as Ba, eventListSerializer as Fa, exportAsGLTF as Ua, findByGuid as wa, findObjectOfType as Ga, findObjectsOfType as Wa, findResourceUsers as Ha, fitObjectIntoVolume as Xa, foreachComponent as za, foreachComponentEnumerator as Va, forward as _a, generateQRCode as ja, generateSeed as Ka, getBoundingBox as Za, getCameraController as Qa, getComponent as Ya, getComponentInChildren as $a, getComponentInParent as Ja, getComponents as qa, getComponentsInChildren as es, getComponentsInParent as ts, getFormattedDate as os, getIconElement as rs, getIconTexture as ns, getLoader as is, getOrAddComponent as as, getParam as ss, getParentHierarchyPath as ls, getPath as ds, getPeerOptions as cs, getPeerjsInstance as ms, getResourceUserCount as gs, getTempColor as ps, getTempQuaternion as us, getTempVector as Ss, getUrlParams as Cs, getVisibleInCustomShadowRendering as ys, getWorldDirection as Es, getWorldEuler as Rs, getWorldPosition as hs, getWorldQuaternion as fs, getWorldRotation as vs, getWorldScale as Ps, hasCommercialLicense as Ts, hasIndieLicense as As, hasPointerEventComponent as bs, hasProLicense as Ms, hideDebugConsole as Is, imageToCanvas as Ds, instantiate as Os, invokeLoadedImportPluginHooks as xs, invokeXRSessionEnd as ks, invokeXRSessionStart as Ls, isActiveInHierarchy as Ns, isActiveSelf as Bs, isAndroidDevice as Fs, isAnimationAction as Us, isComponent as ws, isDebugMode as Gs, isDesktop as Ws, isDestroyed as Hs, isDevEnvironment as Xs, isDisposed as zs, isExporting as Vs, isGLTFModel as _s, isHostedOnGlitch as js, isHotReloadEnabled as Ks, isHotReloading as Zs, isIPad as Qs, isIconElement as Ys, isLocalNetwork as $s, isMacOS as Js, isMobileDevice as qs, isMozillaXR as el, isQuest as tl, isResourceTrackingEnabled as ol, isSafari as rl, isUsingInstancing as nl, isiOS as il, isiPad as al, loadSync as sl, logHierarchy as ll, lookAtInverse as dl, lookAtObject as cl, lookAtScreenPoint as ml, makeId as gl, makeIdFromRandomWords as pl, makeNameSafe as ul, markAsInstancedRendered as Sl, microphonePermissionsGranted as Cl, nameof as yl, nameofFactory as El, objectSerializer as Rl, offXRSessionEnd as hl, offXRSessionStart as fl, onXRSessionEnd as vl, onXRSessionStart as Pl, parseSync as Tl, placeOnSurface as Al, postprocessFBXMaterials as bl, prefix as Ml, pushState as Il, randomNumber as Dl, registerBinaryType as Ol, registerComponent as xl, registerComponentExtension as kl, registerCustomEffectType as Ll, registerExportExtensions as Nl, registerExtensions as Bl, registerHotReloadType as Fl, registerLoader as Ul, registerPrefabProvider as wl, registerPrototypeExtensions as Gl, registerType as Wl, relativePathPrefix as Hl, removeAttributeChangeCallback as Xl, removeComponent as zl, removeCustomImportExtensionType as Vl, removePatch as _l, resolveUrl as jl, sanitizeString as Kl, saveImage as Zl, screenshot as Ql, screenshot2 as Yl, sendDestroyed as $l, serializable as Jl, serializeObject as ql, serializeable as ed, setActive as td, setAllowBalloonMessages as od, setAllowOverlayMessages as rd, setAutoFitEnabled as nd, setCameraController as id, setDestroyed as ad, setDevEnvironment as sd, setDisposable as ld, setDontDestroy as dd, setOrAddParamsToUrl as cd, setParam as md, setParamWithoutReload as gd, setPeerOptions as pd, setResourceTrackingEnabled as ud, setState as Sd, setVisibleInCustomShadowRendering as Cd, setWorldEuler as yd, setWorldPosition as Ed, setWorldPositionXYZ as Rd, setWorldQuaternion as hd, setWorldQuaternionXYZW as fd, setWorldRotation as vd, setWorldRotationXYZ as Pd, setWorldScale as Td, showBalloonError as Ad, showBalloonMessage as bd, showBalloonWarning as Md, showDebugConsole as Id, slerp as Dd, syncDestroy as Od, syncField as xd, syncInstantiate as kd, textureToCanvas as Ld, tryCastBinary as Nd, tryDetermineMimetypeFromBinary as Bd, tryDetermineMimetypeFromURL as Fd, tryFindObject as Ud, tryGetGuid as wd, unregisterHotReloadType as Gd, unwatchWrite as Wd, useForAutoFit as Hd, validate as Xd, watchWrite as zd } from "./needle-engine.bundle-CZmu3wcW.js";
1
+ import { GameObject as r, onClear as a, onDestroy as s, onInitialized as l, onAfterRender as d, onBeforeRender as c, onUpdate as m, onStart as g, loadAsset as p, NeedleXRSession as u, Context as S, VERSION as C, Component as y, Components as E } from "./needle-engine.bundle-CqkJzUmA.js";
2
+ import { $physicsKey as T, ActionBuilder as A, ActionCollection as b, ActionModel as M, Addressables as I, AlignmentConstraint as D, AmbientMode as O, Animation as x, AnimationCurve as k, AnimationExtension as L, AnimationTrackHandler as N, AnimationUtils as B, Animator as F, AnimatorConditionMode as U, AnimatorController as w, AnimatorControllerParameterType as G, AnimatorStateInfo as W, Antialiasing as H, Application as X, AssetDatabase as z, AssetReference as V, AudioExtension as _, AudioListener as j, AudioSource as K, AudioTrackHandler as Z, Avatar as Q, AvatarBlink_Simple as Y, AvatarEyeLook_Rotation as $, AvatarLoader as J, AvatarMarker as q, AvatarModel as ee, Avatar_Brain_LookAt as te, Avatar_MouthShapes as oe, Avatar_MustacheShake as re, Avatar_POI as ne, Axes as ie, AxesHelper as ae, BUILD_TIME as se, BaseUIComponent as le, BasicIKConstraint as de, BehaviorExtension as ce, BehaviorModel as me, Component$1 as ge, BlobStorage as pe, BloomEffect as ue, BoxCollider as Se, BoxGizmo as Ce, BoxHelperComponent as ye, Button as Ee, ButtonsFactory as Re, CallDirection as he, CallInfo as fe, Camera as ve, CameraTargetReachedEvent as Pe, Canvas as Te, CanvasGroup as Ae, CapsuleCollider as be, ChangeMaterialOnClick as Me, ChangeTransformOnClick as Ie, CharacterController as De, CharacterControllerInput as Oe, ChromaticAberration as xe, CircularBuffer as ke, ClearFlags as Le, ClipExtrapolation as Ne, Collider as Be, Collision as Fe, CollisionDetectionMode as Ue, ColorAdjustments as we, ColorBySpeedModule as Ge, ColorOverLifetimeModule as We, Component$1 as He, ComponentLifecycleEvents as Xe, ConnectionEvents as ze, ContactPoint as Ve, ContactShadows as _e, ContextArgs as je, ContextEvent as Ke, ContextRegistry as Ze, ControlTrackHandler as Qe, CustomBranding as Ye, CustomShader as $e, DefaultReflectionMode as Je, Deletable as qe, DeleteBox as et, DepthOfField as tt, DeviceFlag as ot, DeviceUtilities as rt, DocumentExtension as nt, DragControls as it, DragMode as at, DropListener as st, Duplicatable as lt, EffectWrapper as dt, EmissionModule as ct, EmphasizeOnClick as mt, EngineLoadingView as gt, EnvironmentScene as pt, EventList as ut, EventListEvent as St, EventSystem as Ct, EventTrigger as yt, FieldWithDefault as Et, FileReference as Rt, FileReferenceSerializer as ht, FileSpawnModel as ft, File_Event as vt, FixedJoint as Pt, Fog as Tt, FrameEvent as At, GENERATOR as bt, Gizmos as Mt, GltfExport as It, GltfExportBox as Dt, Gradient as Ot, Graphic as xt, GraphicRaycaster as kt, Graphics as Lt, GridHelper as Nt, GridLayoutGroup as Bt, GroundProjectedEnv as Ft, GroupActionModel as Ut, HideFlags as wt, HideOnStart as Gt, HingeJoint as Wt, HorizontalLayoutGroup as Ht, HostData as Xt, Image as zt, ImageReference as Vt, ImageReferenceSerializer as _t, InheritVelocityModule as jt, Input as Kt, InputEventQueue as Zt, InputEvents as Qt, InputField as Yt, InstanceHandle as $t, InstancingHandler as Jt, InstancingUtil as qt, InstantiateEvent as eo, InstantiateIdProvider as to, InstantiateOptions as oo, Interactable as ro, InternalScreenshotUtils as no, JoinedRoomResponse as io, KeyEventArgs as ao, Keyframe as so, LODGroup as lo, LODModel as co, LeftRoomResponse as mo, Light as go, LightData as po, LimitVelocityOverLifetimeModule as uo, LoadingElementOptions as So, LogStats as Co, LogType as yo, LookAt as Eo, LookAtConstraint as Ro, MainModule as ho, MarkerType as fo, MaskableGraphic as vo, Mathf as Po, MeshCollider as To, MeshRenderer as Ao, MinMaxCurve as bo, MinMaxGradient as Mo, MODULES as Io, NEKeyboardEvent as Do, NEPointerEvent as Oo, NeedleButtonElement as xo, ContextRegistry as ko, NeedleEngineHTMLElement as Lo, NeedleEngineModelLoader as No, NeedleMenu as Bo, NeedlePatchesKey as Fo, USDZExporter$1 as Uo, NeedleXRController as wo, NeedleXRSync as Go, NeedleXRUtils as Wo, NestedGltf as Ho, NetworkConnection as Xo, NetworkedStreamEvents as zo, NetworkedStreams as Vo, Networking as _o, NewInstanceModel as jo, NoiseModule as Ko, ObjectRaycaster as Zo, ObjectUtils as Qo, OffsetConstraint as Yo, OneEuroFilter as $o, OneEuroFilterXYZ as Jo, OpenURL as qo, OrbitControls as er, Outline as tr, OwnershipEvent as or, OwnershipModel as rr, PUBLIC_KEY as nr, Padding as ir, ParticleBurst as ar, ParticleSubEmitter as sr, ParticleSystem as lr, ParticleSystemBaseBehaviour as dr, ParticleSystemRenderer as cr, ParticleSystemShapeType as mr, PeerHandle as gr, PeerNetworking as pr, Physics as ur, PhysicsExtension as Sr, PhysicsMaterialCombine as Cr, PixelationEffect as yr, PlayAnimationOnClick as Er, PlayAudioOnClick as Rr, PlayableDirector as hr, PlayerColor as fr, PlayerState as vr, PlayerStateEvent as Pr, PlayerSync as Tr, PlayerView as Ar, PlayerViewManager as br, PointerEventData as Mr, PointerType as Ir, PostProcessingEffect as Dr, PostProcessingHandler as Or, Volume as xr, PreliminaryAction as kr, PreliminaryTrigger as Lr, PreviewHelper as Nr, PrimitiveType as Br, Progress as Fr, PromiseAllWithErrors as Ur, PromiseErrorResult as wr, RGBAColor as Gr, RapierPhysics as Wr, RawImage as Hr, RaycastOptions as Xr, Rect as zr, RectTransform as Vr, ReflectionProbe as _r, RegisteredAnimationInfo as jr, RemoteSkybox as Kr, RenderTexture as Zr, RenderTextureSerializer as Qr, Renderer as Yr, RendererData as $r, RendererLightmap as Jr, Rigidbody as qr, RigidbodyConstraints as en, RoomEvents as tn, RotationBySpeedModule as on, RotationOverLifetimeModule as rn, SceneLightSettings as nn, SceneSwitcher as an, ScreenCapture as sn, ScreenSpaceAmbientOcclusion as ln, ScreenSpaceAmbientOcclusionN8 as dn, SendQueue as cn, SerializationContext as mn, SetActiveOnClick as gn, ShadowCatcher as pn, ShapeModule as un, SharpeningEffect as Sn, SignalAsset as Cn, SignalReceiver as yn, SignalReceiverEvent as En, SignalTrackHandler as Rn, Size as hn, SizeBySpeedModule as fn, SizeOverLifetimeModule as vn, SkinnedMeshRenderer as Pn, SmoothFollow as Tn, SpatialGrabRaycaster as An, SpatialHtml as bn, SpatialTrigger as Mn, SpatialTriggerReceiver as In, SpectatorCamera as Dn, SphereCollider as On, SphereIntersection as xn, SphereOverlapResult as kn, Sprite as Ln, SpriteData as Nn, SpriteRenderer as Bn, SpriteSheet as Fn, StateMachineBehaviour as Un, StreamEndedEvent as wn, StreamReceivedEvent as Gn, SubEmitterSystem as Wn, SyncedCamera as Hn, SyncedRoom as Xn, SyncedTransform as zn, TapGestureTrigger as Vn, TeleportTarget as _n, TestRunner as jn, TestSceneUtils as Kn, TestSimulateUserData as Zn, Text as Qn, TextBuilder as Yn, TextExtension as $n, TextureSheetAnimationModule as Jn, TiltShiftEffect as qn, Time as ei, ToneMappingEffect as ti, TrackHandler as oi, TrackType as ri, TrailModule as ni, TransformData as ii, TransformGizmo as ai, TriggerBuilder as si, TriggerModel as li, TypeStore as di, UIRaycastUtils as ci, UIRootComponent as mi, USDDocument as gi, USDObject as pi, USDWriter as ui, USDZExporter as Si, USDZText as Ci, USDZUIExtension as yi, UriSerializer as Ei, UsageMarker as Ri, UserJoinedOrLeftRoomModel as hi, VariantAction as fi, VelocityOverLifetimeModule as vi, VerticalLayoutGroup as Pi, VideoPlayer as Ti, ViewDevice as Ai, Vignette as bi, VisibilityAction as Mi, Voip as Ii, Volume as Di, VolumeParameter as Oi, VolumeProfile as xi, WaitForFrames as ki, WaitForPromise as Li, WaitForSeconds as Ni, Watch as Bi, WebARCameraBackground as Fi, WebARSessionRoot as Ui, WebXR as wi, WebXRButtonFactory as Gi, WebXRImageTracking as Wi, WebXRImageTrackingModel as Hi, WebXRPlaneTracking as Xi, WebXRTrackedImage as zi, XRControllerFollow as Vi, XRControllerModel as _i, XRControllerMovement as ji, XRFlag as Ki, XRRig as Zi, XRState as Qi, XRStateFlag as Yi, __Ignore as $i, __internalNotifyObjectDestroyed as Ji, activeInHierarchyFieldName as qi, addAttributeChangeCallback as ea, addComponent as ta, addCustomExtensionPlugin as oa, addNewComponent as ra, addPatch as na, apply as ia, applyHMRChanges as aa, applyPrototypeExtensions as sa, beginListenDestroy as la, beginListenInstantiate as da, binaryIdentifierCasts as ca, build_scene_functions as ma, builtinComponentKeyName as ga, calculateProgress01 as pa, clearMessages as ua, clearMessages as Sa, colorSerializer as Ca, compareAssociation as ya, componentSerializer as Ea, copyTexture as Ra, createMotion as ha, debugNet as fa, debugOwner as va, decompressGpuTexture as Pa, deepClone as Ta, delay as Aa, delayForFrames as ba, deserializeObject as Ma, destroy as Ia, destroyComponentInstance as Da, determineMimeTypeFromExtension as Oa, disposeObjectResources as xa, disposeStream as ka, editorGuidKeyName as La, enableSpatialConsole as Na, euler as Ba, eventListSerializer as Fa, exportAsGLTF as Ua, findByGuid as wa, findObjectOfType as Ga, findObjectsOfType as Wa, findResourceUsers as Ha, fitObjectIntoVolume as Xa, foreachComponent as za, foreachComponentEnumerator as Va, forward as _a, generateQRCode as ja, generateSeed as Ka, getBoundingBox as Za, getCameraController as Qa, getComponent as Ya, getComponentInChildren as $a, getComponentInParent as Ja, getComponents as qa, getComponentsInChildren as es, getComponentsInParent as ts, getFormattedDate as os, getIconElement as rs, getIconTexture as ns, getLoader as is, getOrAddComponent as as, getParam as ss, getParentHierarchyPath as ls, getPath as ds, getPeerOptions as cs, getPeerjsInstance as ms, getResourceUserCount as gs, getTempColor as ps, getTempQuaternion as us, getTempVector as Ss, getUrlParams as Cs, getVisibleInCustomShadowRendering as ys, getWorldDirection as Es, getWorldEuler as Rs, getWorldPosition as hs, getWorldQuaternion as fs, getWorldRotation as vs, getWorldScale as Ps, hasCommercialLicense as Ts, hasIndieLicense as As, hasPointerEventComponent as bs, hasProLicense as Ms, hideDebugConsole as Is, imageToCanvas as Ds, instantiate as Os, invokeLoadedImportPluginHooks as xs, invokeXRSessionEnd as ks, invokeXRSessionStart as Ls, isActiveInHierarchy as Ns, isActiveSelf as Bs, isAndroidDevice as Fs, isAnimationAction as Us, isComponent as ws, isDebugMode as Gs, isDesktop as Ws, isDestroyed as Hs, isDevEnvironment as Xs, isDisposed as zs, isExporting as Vs, isGLTFModel as _s, isHostedOnGlitch as js, isHotReloadEnabled as Ks, isHotReloading as Zs, isIPad as Qs, isIconElement as Ys, isLocalNetwork as $s, isMacOS as Js, isMobileDevice as qs, isMozillaXR as el, isQuest as tl, isResourceTrackingEnabled as ol, isSafari as rl, isUsingInstancing as nl, isiOS as il, isiPad as al, loadSync as sl, logHierarchy as ll, lookAtInverse as dl, lookAtObject as cl, lookAtScreenPoint as ml, makeId as gl, makeIdFromRandomWords as pl, makeNameSafe as ul, markAsInstancedRendered as Sl, microphonePermissionsGranted as Cl, nameof as yl, nameofFactory as El, objectSerializer as Rl, offXRSessionEnd as hl, offXRSessionStart as fl, onXRSessionEnd as vl, onXRSessionStart as Pl, parseSync as Tl, placeOnSurface as Al, postprocessFBXMaterials as bl, prefix as Ml, pushState as Il, randomNumber as Dl, registerBinaryType as Ol, registerComponent as xl, registerComponentExtension as kl, registerCustomEffectType as Ll, registerExportExtensions as Nl, registerExtensions as Bl, registerHotReloadType as Fl, registerLoader as Ul, registerPrefabProvider as wl, registerPrototypeExtensions as Gl, registerType as Wl, relativePathPrefix as Hl, removeAttributeChangeCallback as Xl, removeComponent as zl, removeCustomImportExtensionType as Vl, removePatch as _l, resolveUrl as jl, sanitizeString as Kl, saveImage as Zl, screenshot as Ql, screenshot2 as Yl, sendDestroyed as $l, serializable as Jl, serializeObject as ql, serializeable as ed, setActive as td, setAllowBalloonMessages as od, setAllowOverlayMessages as rd, setAutoFitEnabled as nd, setCameraController as id, setDestroyed as ad, setDevEnvironment as sd, setDisposable as ld, setDontDestroy as dd, setOrAddParamsToUrl as cd, setParam as md, setParamWithoutReload as gd, setPeerOptions as pd, setResourceTrackingEnabled as ud, setState as Sd, setVisibleInCustomShadowRendering as Cd, setWorldEuler as yd, setWorldPosition as Ed, setWorldPositionXYZ as Rd, setWorldQuaternion as hd, setWorldQuaternionXYZW as fd, setWorldRotation as vd, setWorldRotationXYZ as Pd, setWorldScale as Td, showBalloonError as Ad, showBalloonMessage as bd, showBalloonWarning as Md, showDebugConsole as Id, slerp as Dd, syncDestroy as Od, syncField as xd, syncInstantiate as kd, textureToCanvas as Ld, tryCastBinary as Nd, tryDetermineMimetypeFromBinary as Bd, tryDetermineMimetypeFromURL as Fd, tryFindObject as Ud, tryGetGuid as wd, unregisterHotReloadType as Gd, unwatchWrite as Wd, useForAutoFit as Hd, validate as Xd, watchWrite as zd } from "./needle-engine.bundle-CqkJzUmA.js";
3
3
  import { NEEDLE_progressive as _d } from "./gltf-progressive-D8GP6sjZ.js";
4
4
  import { THREE as R } from "./three-1JG7vpNC.js";
5
5
  const t = {
@@ -1 +1 @@
1
- import{GameObject as s,onClear as o,onDestroy as r,onInitialized as n,onAfterRender as i,onBeforeRender as l,onUpdate as d,onStart as c,loadAsset as m,NeedleXRSession as p,Context as g,VERSION as u,Component as y,Components as R}from"./needle-engine.bundle-DUlN8wdu.min.js";import{$physicsKey as E,ActionBuilder as h,ActionCollection as v,ActionModel as f,Addressables as P,AlignmentConstraint as A,AmbientMode as T,Animation as b,AnimationCurve as M,AnimationExtension as I,AnimationTrackHandler as O,AnimationUtils as D,Animator as x,AnimatorConditionMode as L,AnimatorController as k,AnimatorControllerParameterType as B,AnimatorStateInfo as F,Antialiasing as N,Application as U,AssetDatabase as w,AssetReference as W,AudioExtension as G,AudioListener as H,AudioSource as X,AudioTrackHandler as z,Avatar as V,AvatarBlink_Simple as _,AvatarEyeLook_Rotation as j,AvatarLoader as K,AvatarMarker as Q,AvatarModel as Z,Avatar_Brain_LookAt as Y,Avatar_MouthShapes as J,Avatar_MustacheShake as $,Avatar_POI as q,Axes as ee,AxesHelper as ae,BUILD_TIME as se,BaseUIComponent as te,BasicIKConstraint as oe,BehaviorExtension as re,BehaviorModel as ne,Component$1 as ie,BlobStorage as le,BloomEffect as de,BoxCollider as ce,BoxGizmo as me,BoxHelperComponent as pe,Button as ge,ButtonsFactory as ue,CallDirection as Se,CallInfo as Ce,Camera as ye,CameraTargetReachedEvent as Re,Canvas as Ee,CanvasGroup as he,CapsuleCollider as ve,ChangeMaterialOnClick as fe,ChangeTransformOnClick as Pe,CharacterController as Ae,CharacterControllerInput as Te,ChromaticAberration as be,CircularBuffer as Me,ClearFlags as Ie,ClipExtrapolation as Oe,Collider as De,Collision as xe,CollisionDetectionMode as Le,ColorAdjustments as ke,ColorBySpeedModule as Be,ColorOverLifetimeModule as Fe,Component$1 as Ne,ComponentLifecycleEvents as Ue,ConnectionEvents as we,ContactPoint as We,ContactShadows as Ge,ContextArgs as He,ContextEvent as Xe,ContextRegistry as ze,ControlTrackHandler as Ve,CustomBranding as _e,CustomShader as je,DefaultReflectionMode as Ke,Deletable as Qe,DeleteBox as Ze,DepthOfField as Ye,DeviceFlag as Je,DeviceUtilities as $e,DocumentExtension as qe,DragControls as ea,DragMode as aa,DropListener as sa,Duplicatable as ta,EffectWrapper as oa,EmissionModule as ra,EmphasizeOnClick as na,EngineLoadingView as ia,EnvironmentScene as la,EventList as da,EventListEvent as ca,EventSystem as ma,EventTrigger as pa,FieldWithDefault as ga,FileReference as ua,FileReferenceSerializer as Sa,FileSpawnModel as Ca,File_Event as ya,FixedJoint as Ra,Fog as Ea,FrameEvent as ha,GENERATOR as va,Gizmos as fa,GltfExport as Pa,GltfExportBox as Aa,Gradient as Ta,Graphic as ba,GraphicRaycaster as Ma,Graphics as Ia,GridHelper as Oa,GridLayoutGroup as Da,GroundProjectedEnv as xa,GroupActionModel as La,HideFlags as ka,HideOnStart as Ba,HingeJoint as Fa,HorizontalLayoutGroup as Na,HostData as Ua,Image as wa,ImageReference as Wa,ImageReferenceSerializer as Ga,InheritVelocityModule as Ha,Input as Xa,InputEventQueue as za,InputEvents as Va,InputField as _a,InstanceHandle as ja,InstancingHandler as Ka,InstancingUtil as Qa,InstantiateEvent as Za,InstantiateIdProvider as Ya,InstantiateOptions as Ja,Interactable as $a,InternalScreenshotUtils as qa,JoinedRoomResponse as es,KeyEventArgs as as,Keyframe as ss,LODGroup as ts,LODModel as os,LeftRoomResponse as rs,Light as ns,LightData as is,LimitVelocityOverLifetimeModule as ls,LoadingElementOptions as ds,LogStats as cs,LogType as ms,LookAt as ps,LookAtConstraint as gs,MainModule as us,MarkerType as Ss,MaskableGraphic as Cs,Mathf as ys,MeshCollider as Rs,MeshRenderer as Es,MinMaxCurve as hs,MinMaxGradient as vs,MODULES as fs,NEKeyboardEvent as Ps,NEPointerEvent as As,NeedleButtonElement as Ts,ContextRegistry as bs,NeedleEngineHTMLElement as Ms,NeedleEngineModelLoader as Is,NeedleMenu as Os,NeedlePatchesKey as Ds,USDZExporter$1 as xs,NeedleXRController as Ls,NeedleXRSync as ks,NeedleXRUtils as Bs,NestedGltf as Fs,NetworkConnection as Ns,NetworkedStreamEvents as Us,NetworkedStreams as ws,Networking as Ws,NewInstanceModel as Gs,NoiseModule as Hs,ObjectRaycaster as Xs,ObjectUtils as zs,OffsetConstraint as Vs,OneEuroFilter as _s,OneEuroFilterXYZ as js,OpenURL as Ks,OrbitControls as Qs,Outline as Zs,OwnershipEvent as Ys,OwnershipModel as Js,PUBLIC_KEY as $s,Padding as qs,ParticleBurst as et,ParticleSubEmitter as at,ParticleSystem as st,ParticleSystemBaseBehaviour as tt,ParticleSystemRenderer as ot,ParticleSystemShapeType as rt,PeerHandle as nt,PeerNetworking as it,Physics as lt,PhysicsExtension as dt,PhysicsMaterialCombine as ct,PixelationEffect as mt,PlayAnimationOnClick as pt,PlayAudioOnClick as gt,PlayableDirector as ut,PlayerColor as St,PlayerState as Ct,PlayerStateEvent as yt,PlayerSync as Rt,PlayerView as Et,PlayerViewManager as ht,PointerEventData as vt,PointerType as ft,PostProcessingEffect as Pt,PostProcessingHandler as At,Volume as Tt,PreliminaryAction as bt,PreliminaryTrigger as Mt,PreviewHelper as It,PrimitiveType as Ot,Progress as Dt,PromiseAllWithErrors as xt,PromiseErrorResult as Lt,RGBAColor as kt,RapierPhysics as Bt,RawImage as Ft,RaycastOptions as Nt,Rect as Ut,RectTransform as wt,ReflectionProbe as Wt,RegisteredAnimationInfo as Gt,RemoteSkybox as Ht,RenderTexture as Xt,RenderTextureSerializer as zt,Renderer as Vt,RendererData as _t,RendererLightmap as jt,Rigidbody as Kt,RigidbodyConstraints as Qt,RoomEvents as Zt,RotationBySpeedModule as Yt,RotationOverLifetimeModule as Jt,SceneLightSettings as $t,SceneSwitcher as qt,ScreenCapture as eo,ScreenSpaceAmbientOcclusion as ao,ScreenSpaceAmbientOcclusionN8 as so,SendQueue as to,SerializationContext as oo,SetActiveOnClick as ro,ShadowCatcher as no,ShapeModule as io,SharpeningEffect as lo,SignalAsset as co,SignalReceiver as mo,SignalReceiverEvent as po,SignalTrackHandler as go,Size as uo,SizeBySpeedModule as So,SizeOverLifetimeModule as Co,SkinnedMeshRenderer as yo,SmoothFollow as Ro,SpatialGrabRaycaster as Eo,SpatialHtml as ho,SpatialTrigger as vo,SpatialTriggerReceiver as fo,SpectatorCamera as Po,SphereCollider as Ao,SphereIntersection as To,SphereOverlapResult as bo,Sprite as Mo,SpriteData as Io,SpriteRenderer as Oo,SpriteSheet as Do,StateMachineBehaviour as xo,StreamEndedEvent as Lo,StreamReceivedEvent as ko,SubEmitterSystem as Bo,SyncedCamera as Fo,SyncedRoom as No,SyncedTransform as Uo,TapGestureTrigger as wo,TeleportTarget as Wo,TestRunner as Go,TestSceneUtils as Ho,TestSimulateUserData as Xo,Text as zo,TextBuilder as Vo,TextExtension as _o,TextureSheetAnimationModule as jo,TiltShiftEffect as Ko,Time as Qo,ToneMappingEffect as Zo,TrackHandler as Yo,TrackType as Jo,TrailModule as $o,TransformData as qo,TransformGizmo as er,TriggerBuilder as ar,TriggerModel as sr,TypeStore as tr,UIRaycastUtils as or,UIRootComponent as rr,USDDocument as nr,USDObject as ir,USDWriter as lr,USDZExporter as dr,USDZText as cr,USDZUIExtension as mr,UriSerializer as pr,UsageMarker as gr,UserJoinedOrLeftRoomModel as ur,VariantAction as Sr,VelocityOverLifetimeModule as Cr,VerticalLayoutGroup as yr,VideoPlayer as Rr,ViewDevice as Er,Vignette as hr,VisibilityAction as vr,Voip as fr,Volume as Pr,VolumeParameter as Ar,VolumeProfile as Tr,WaitForFrames as br,WaitForPromise as Mr,WaitForSeconds as Ir,Watch as Or,WebARCameraBackground as Dr,WebARSessionRoot as xr,WebXR as Lr,WebXRButtonFactory as kr,WebXRImageTracking as Br,WebXRImageTrackingModel as Fr,WebXRPlaneTracking as Nr,WebXRTrackedImage as Ur,XRControllerFollow as wr,XRControllerModel as Wr,XRControllerMovement as Gr,XRFlag as Hr,XRRig as Xr,XRState as zr,XRStateFlag as Vr,__Ignore as _r,__internalNotifyObjectDestroyed as jr,activeInHierarchyFieldName as Kr,addAttributeChangeCallback as Qr,addComponent as Zr,addCustomExtensionPlugin as Yr,addNewComponent as Jr,addPatch as $r,apply as qr,applyHMRChanges as en,applyPrototypeExtensions as an,beginListenDestroy as sn,beginListenInstantiate as tn,binaryIdentifierCasts as on,build_scene_functions as rn,builtinComponentKeyName as nn,calculateProgress01 as ln,clearMessages as dn,clearMessages as cn,colorSerializer as mn,compareAssociation as pn,componentSerializer as gn,copyTexture as un,createMotion as Sn,debugNet as Cn,debugOwner as yn,decompressGpuTexture as Rn,deepClone as En,delay as hn,delayForFrames as vn,deserializeObject as fn,destroy as Pn,destroyComponentInstance as An,determineMimeTypeFromExtension as Tn,disposeObjectResources as bn,disposeStream as Mn,editorGuidKeyName as In,enableSpatialConsole as On,euler as Dn,eventListSerializer as xn,exportAsGLTF as Ln,findByGuid as kn,findObjectOfType as Bn,findObjectsOfType as Fn,findResourceUsers as Nn,fitObjectIntoVolume as Un,foreachComponent as wn,foreachComponentEnumerator as Wn,forward as Gn,generateQRCode as Hn,generateSeed as Xn,getBoundingBox as zn,getCameraController as Vn,getComponent as _n,getComponentInChildren as jn,getComponentInParent as Kn,getComponents as Qn,getComponentsInChildren as Zn,getComponentsInParent as Yn,getFormattedDate as Jn,getIconElement as $n,getIconTexture as qn,getLoader as ei,getOrAddComponent as ai,getParam as si,getParentHierarchyPath as ti,getPath as oi,getPeerOptions as ri,getPeerjsInstance as ni,getResourceUserCount as ii,getTempColor as li,getTempQuaternion as di,getTempVector as ci,getUrlParams as mi,getVisibleInCustomShadowRendering as pi,getWorldDirection as gi,getWorldEuler as ui,getWorldPosition as Si,getWorldQuaternion as Ci,getWorldRotation as yi,getWorldScale as Ri,hasCommercialLicense as Ei,hasIndieLicense as hi,hasPointerEventComponent as vi,hasProLicense as fi,hideDebugConsole as Pi,imageToCanvas as Ai,instantiate as Ti,invokeLoadedImportPluginHooks as bi,invokeXRSessionEnd as Mi,invokeXRSessionStart as Ii,isActiveInHierarchy as Oi,isActiveSelf as Di,isAndroidDevice as xi,isAnimationAction as Li,isComponent as ki,isDebugMode as Bi,isDesktop as Fi,isDestroyed as Ni,isDevEnvironment as Ui,isDisposed as wi,isExporting as Wi,isGLTFModel as Gi,isHostedOnGlitch as Hi,isHotReloadEnabled as Xi,isHotReloading as zi,isIPad as Vi,isIconElement as _i,isLocalNetwork as ji,isMacOS as Ki,isMobileDevice as Qi,isMozillaXR as Zi,isQuest as Yi,isResourceTrackingEnabled as Ji,isSafari as $i,isUsingInstancing as qi,isiOS as el,isiPad as al,loadSync as sl,logHierarchy as tl,lookAtInverse as ol,lookAtObject as rl,lookAtScreenPoint as nl,makeId as il,makeIdFromRandomWords as ll,makeNameSafe as dl,markAsInstancedRendered as cl,microphonePermissionsGranted as ml,nameof as pl,nameofFactory as gl,objectSerializer as ul,offXRSessionEnd as Sl,offXRSessionStart as Cl,onXRSessionEnd as yl,onXRSessionStart as Rl,parseSync as El,placeOnSurface as hl,postprocessFBXMaterials as vl,prefix as fl,pushState as Pl,randomNumber as Al,registerBinaryType as Tl,registerComponent as bl,registerComponentExtension as Ml,registerCustomEffectType as Il,registerExportExtensions as Ol,registerExtensions as Dl,registerHotReloadType as xl,registerLoader as Ll,registerPrefabProvider as kl,registerPrototypeExtensions as Bl,registerType as Fl,relativePathPrefix as Nl,removeAttributeChangeCallback as Ul,removeComponent as wl,removeCustomImportExtensionType as Wl,removePatch as Gl,resolveUrl as Hl,sanitizeString as Xl,saveImage as zl,screenshot as Vl,screenshot2 as _l,sendDestroyed as jl,serializable as Kl,serializeObject as Ql,serializeable as Zl,setActive as Yl,setAllowBalloonMessages as Jl,setAllowOverlayMessages as $l,setAutoFitEnabled as ql,setCameraController as ed,setDestroyed as ad,setDevEnvironment as sd,setDisposable as td,setDontDestroy as od,setOrAddParamsToUrl as rd,setParam as nd,setParamWithoutReload as id,setPeerOptions as ld,setResourceTrackingEnabled as dd,setState as cd,setVisibleInCustomShadowRendering as md,setWorldEuler as pd,setWorldPosition as gd,setWorldPositionXYZ as ud,setWorldQuaternion as Sd,setWorldQuaternionXYZW as Cd,setWorldRotation as yd,setWorldRotationXYZ as Rd,setWorldScale as Ed,showBalloonError as hd,showBalloonMessage as vd,showBalloonWarning as fd,showDebugConsole as Pd,slerp as Ad,syncDestroy as Td,syncField as bd,syncInstantiate as Md,textureToCanvas as Id,tryCastBinary as Od,tryDetermineMimetypeFromBinary as Dd,tryDetermineMimetypeFromURL as xd,tryFindObject as Ld,tryGetGuid as kd,unregisterHotReloadType as Bd,unwatchWrite as Fd,useForAutoFit as Nd,validate as Ud,watchWrite as wd}from"./needle-engine.bundle-DUlN8wdu.min.js";import{NEEDLE_progressive as Wd}from"./gltf-progressive-Bx_ZJgfQ.min.js";import{THREE as Gd}from"./three-CFtLGNtV.min.js";const a={VERSION:u,Context:g,NeedleXRSession:p,assets:{loadFromURL:m},onStart:c,onUpdate:d,onBeforeRender:l,onAfterRender:i,onInitializedContext:n,onDestroyContext:r,onClearContext:o};var S;((S=globalThis.Needle)==null?void 0:S.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function C(e){for(const t in e)a[t]=e[t]}C(y),C(R);for(const e of Object.getOwnPropertyNames(s))switch(e){case"prototype":case"constructor":case"length":case"name":continue;default:a[e]=s[e];break}if(!globalThis.Needle)globalThis.Needle=a;else for(const e in a)globalThis.Needle[e]=a[e];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=Gd;export{E as $physicsKey,h as ActionBuilder,v as ActionCollection,f as ActionModel,P as Addressables,A as AlignmentConstraint,T as AmbientMode,b as Animation,M as AnimationCurve,I as AnimationExtension,O as AnimationTrackHandler,D as AnimationUtils,x as Animator,L as AnimatorConditionMode,k as AnimatorController,B as AnimatorControllerParameterType,F as AnimatorStateInfo,N as Antialiasing,U as Application,w as AssetDatabase,W as AssetReference,G as AudioExtension,H as AudioListener,X as AudioSource,z as AudioTrackHandler,V as Avatar,_ as AvatarBlink_Simple,j as AvatarEyeLook_Rotation,K as AvatarLoader,Q as AvatarMarker,Z as AvatarModel,Y as Avatar_Brain_LookAt,J as Avatar_MouthShapes,$ as Avatar_MustacheShake,q as Avatar_POI,ee as Axes,ae as AxesHelper,se as BUILD_TIME,te as BaseUIComponent,oe as BasicIKConstraint,re as BehaviorExtension,ne as BehaviorModel,ie as Behaviour,le as BlobStorage,de as BloomEffect,ce as BoxCollider,me as BoxGizmo,pe as BoxHelperComponent,ge as Button,ue as ButtonsFactory,Se as CallDirection,Ce as CallInfo,ye as Camera,Re as CameraTargetReachedEvent,Ee as Canvas,he as CanvasGroup,ve as CapsuleCollider,fe as ChangeMaterialOnClick,Pe as ChangeTransformOnClick,Ae as CharacterController,Te as CharacterControllerInput,be as ChromaticAberration,Me as CircularBuffer,Ie as ClearFlags,Oe as ClipExtrapolation,De as Collider,xe as Collision,Le as CollisionDetectionMode,ke as ColorAdjustments,Be as ColorBySpeedModule,Fe as ColorOverLifetimeModule,Ne as Component,Ue as ComponentLifecycleEvents,we as ConnectionEvents,We as ContactPoint,Ge as ContactShadows,g as Context,He as ContextArgs,Xe as ContextEvent,ze as ContextRegistry,Ve as ControlTrackHandler,_e as CustomBranding,je as CustomShader,Ke as DefaultReflectionMode,Qe as Deletable,Ze as DeleteBox,Ye as DepthOfField,Je as DeviceFlag,$e as DeviceUtilities,qe as DocumentExtension,ea as DragControls,aa as DragMode,sa as DropListener,ta as Duplicatable,oa as EffectWrapper,ra as EmissionModule,na as EmphasizeOnClick,ia as EngineLoadingView,la as EnvironmentScene,da as EventList,ca as EventListEvent,ma as EventSystem,pa as EventTrigger,ga as FieldWithDefault,ua as FileReference,Sa as FileReferenceSerializer,Ca as FileSpawnModel,ya as File_Event,Ra as FixedJoint,Ea as Fog,ha as FrameEvent,va as GENERATOR,s as GameObject,fa as Gizmos,Pa as GltfExport,Aa as GltfExportBox,Ta as Gradient,ba as Graphic,Ma as GraphicRaycaster,Ia as Graphics,Oa as GridHelper,Da as GridLayoutGroup,xa as GroundProjectedEnv,La as GroupActionModel,ka as HideFlags,Ba as HideOnStart,Fa as HingeJoint,Na as HorizontalLayoutGroup,Ua as HostData,wa as Image,Wa as ImageReference,Ga as ImageReferenceSerializer,Ha as InheritVelocityModule,Xa as Input,za as InputEventQueue,Va as InputEvents,_a as InputField,ja as InstanceHandle,Ka as InstancingHandler,Qa as InstancingUtil,Za as InstantiateEvent,Ya as InstantiateIdProvider,Ja as InstantiateOptions,$a as Interactable,qa as InternalScreenshotUtils,es as JoinedRoomResponse,as as KeyEventArgs,ss as Keyframe,ts as LODGroup,os as LODModel,rs as LeftRoomResponse,ns as Light,is as LightData,ls as LimitVelocityOverLifetimeModule,ds as LoadingElementOptions,cs as LogStats,ms as LogType,ps as LookAt,gs as LookAtConstraint,us as MainModule,Ss as MarkerType,Cs as MaskableGraphic,ys as Mathf,Rs as MeshCollider,Es as MeshRenderer,hs as MinMaxCurve,vs as MinMaxGradient,fs as NEEDLE_ENGINE_MODULES,Wd as NEEDLE_progressive,Ps as NEKeyboardEvent,As as NEPointerEvent,Ts as NeedleButtonElement,bs as NeedleEngine,Ms as NeedleEngineHTMLElement,Is as NeedleEngineModelLoader,Os as NeedleMenu,Ds as NeedlePatchesKey,xs as NeedleUSDZExporter,Ls as NeedleXRController,p as NeedleXRSession,ks as NeedleXRSync,Bs as NeedleXRUtils,Fs as NestedGltf,Ns as NetworkConnection,Us as NetworkedStreamEvents,ws as NetworkedStreams,Ws as Networking,Gs as NewInstanceModel,Hs as NoiseModule,Xs as ObjectRaycaster,zs as ObjectUtils,Vs as OffsetConstraint,_s as OneEuroFilter,js as OneEuroFilterXYZ,Ks as OpenURL,Qs as OrbitControls,Zs as Outline,Ys as OwnershipEvent,Js as OwnershipModel,$s as PUBLIC_KEY,qs as Padding,et as ParticleBurst,at as ParticleSubEmitter,st as ParticleSystem,tt as ParticleSystemBaseBehaviour,ot as ParticleSystemRenderer,rt as ParticleSystemShapeType,nt as PeerHandle,it as PeerNetworking,lt as Physics,dt as PhysicsExtension,ct as PhysicsMaterialCombine,mt as PixelationEffect,pt as PlayAnimationOnClick,gt as PlayAudioOnClick,ut as PlayableDirector,St as PlayerColor,Ct as PlayerState,yt as PlayerStateEvent,Rt as PlayerSync,Et as PlayerView,ht as PlayerViewManager,vt as PointerEventData,ft as PointerType,Pt as PostProcessingEffect,At as PostProcessingHandler,Tt as PostProcessingManager,bt as PreliminaryAction,Mt as PreliminaryTrigger,It as PreviewHelper,Ot as PrimitiveType,Dt as Progress,xt as PromiseAllWithErrors,Lt as PromiseErrorResult,kt as RGBAColor,Bt as RapierPhysics,Ft as RawImage,Nt as RaycastOptions,Ut as Rect,wt as RectTransform,Wt as ReflectionProbe,Gt as RegisteredAnimationInfo,Ht as RemoteSkybox,Xt as RenderTexture,zt as RenderTextureSerializer,Vt as Renderer,_t as RendererData,jt as RendererLightmap,Kt as Rigidbody,Qt as RigidbodyConstraints,Zt as RoomEvents,Yt as RotationBySpeedModule,Jt as RotationOverLifetimeModule,$t as SceneLightSettings,qt as SceneSwitcher,eo as ScreenCapture,ao as ScreenSpaceAmbientOcclusion,so as ScreenSpaceAmbientOcclusionN8,to as SendQueue,oo as SerializationContext,ro as SetActiveOnClick,no as ShadowCatcher,io as ShapeModule,lo as SharpeningEffect,co as SignalAsset,mo as SignalReceiver,po as SignalReceiverEvent,go as SignalTrackHandler,uo as Size,So as SizeBySpeedModule,Co as SizeOverLifetimeModule,yo as SkinnedMeshRenderer,Ro as SmoothFollow,Eo as SpatialGrabRaycaster,ho as SpatialHtml,vo as SpatialTrigger,fo as SpatialTriggerReceiver,Po as SpectatorCamera,Ao as SphereCollider,To as SphereIntersection,bo as SphereOverlapResult,Mo as Sprite,Io as SpriteData,Oo as SpriteRenderer,Do as SpriteSheet,xo as StateMachineBehaviour,Lo as StreamEndedEvent,ko as StreamReceivedEvent,Bo as SubEmitterSystem,Fo as SyncedCamera,No as SyncedRoom,Uo as SyncedTransform,wo as TapGestureTrigger,Wo as TeleportTarget,Go as TestRunner,Ho as TestSceneUtils,Xo as TestSimulateUserData,zo as Text,Vo as TextBuilder,_o as TextExtension,jo as TextureSheetAnimationModule,Ko as TiltShiftEffect,Qo as Time,Zo as ToneMappingEffect,Yo as TrackHandler,Jo as TrackType,$o as TrailModule,qo as TransformData,er as TransformGizmo,ar as TriggerBuilder,sr as TriggerModel,tr as TypeStore,or as UIRaycastUtils,rr as UIRootComponent,nr as USDDocument,ir as USDObject,lr as USDWriter,dr as USDZExporter,cr as USDZText,mr as USDZUIExtension,pr as UriSerializer,gr as UsageMarker,ur as UserJoinedOrLeftRoomModel,u as VERSION,Sr as VariantAction,Cr as VelocityOverLifetimeModule,yr as VerticalLayoutGroup,Rr as VideoPlayer,Er as ViewDevice,hr as Vignette,vr as VisibilityAction,fr as Voip,Pr as Volume,Ar as VolumeParameter,Tr as VolumeProfile,br as WaitForFrames,Mr as WaitForPromise,Ir as WaitForSeconds,Or as Watch,Dr as WebARCameraBackground,xr as WebARSessionRoot,Lr as WebXR,kr as WebXRButtonFactory,Br as WebXRImageTracking,Fr as WebXRImageTrackingModel,Nr as WebXRPlaneTracking,Ur as WebXRTrackedImage,wr as XRControllerFollow,Wr as XRControllerModel,Gr as XRControllerMovement,Hr as XRFlag,Xr as XRRig,zr as XRState,Vr as XRStateFlag,_r as __Ignore,jr as __internalNotifyObjectDestroyed,Kr as activeInHierarchyFieldName,Qr as addAttributeChangeCallback,Zr as addComponent,Yr as addCustomExtensionPlugin,Jr as addNewComponent,$r as addPatch,qr as apply,en as applyHMRChanges,an as applyPrototypeExtensions,sn as beginListenDestroy,tn as beginListenInstantiate,on as binaryIdentifierCasts,rn as build_scene_functions,nn as builtinComponentKeyName,ln as calculateProgress01,dn as clearBalloonMessages,cn as clearOverlayMessages,mn as colorSerializer,pn as compareAssociation,gn as componentSerializer,un as copyTexture,Sn as createMotion,Cn as debugNet,yn as debugOwner,Rn as decompressGpuTexture,En as deepClone,hn as delay,vn as delayForFrames,fn as deserializeObject,Pn as destroy,An as destroyComponentInstance,Tn as determineMimeTypeFromExtension,bn as disposeObjectResources,Mn as disposeStream,In as editorGuidKeyName,On as enableSpatialConsole,Dn as euler,xn as eventListSerializer,Ln as exportAsGLTF,kn as findByGuid,Bn as findObjectOfType,Fn as findObjectsOfType,Nn as findResourceUsers,Un as fitObjectIntoVolume,wn as foreachComponent,Wn as foreachComponentEnumerator,Gn as forward,Hn as generateQRCode,Xn as generateSeed,zn as getBoundingBox,Vn as getCameraController,_n as getComponent,jn as getComponentInChildren,Kn as getComponentInParent,Qn as getComponents,Zn as getComponentsInChildren,Yn as getComponentsInParent,Jn as getFormattedDate,$n as getIconElement,qn as getIconTexture,ei as getLoader,ai as getOrAddComponent,si as getParam,ti as getParentHierarchyPath,oi as getPath,ri as getPeerOptions,ni as getPeerjsInstance,ii as getResourceUserCount,li as getTempColor,di as getTempQuaternion,ci as getTempVector,mi as getUrlParams,pi as getVisibleInCustomShadowRendering,gi as getWorldDirection,ui as getWorldEuler,Si as getWorldPosition,Ci as getWorldQuaternion,yi as getWorldRotation,Ri as getWorldScale,Ei as hasCommercialLicense,hi as hasIndieLicense,vi as hasPointerEventComponent,fi as hasProLicense,Pi as hideDebugConsole,Ai as imageToCanvas,Ti as instantiate,bi as invokeLoadedImportPluginHooks,Mi as invokeXRSessionEnd,Ii as invokeXRSessionStart,Oi as isActiveInHierarchy,Di as isActiveSelf,xi as isAndroidDevice,Li as isAnimationAction,ki as isComponent,Bi as isDebugMode,Fi as isDesktop,Ni as isDestroyed,Ui as isDevEnvironment,wi as isDisposed,Wi as isExporting,Gi as isGLTFModel,Hi as isHostedOnGlitch,Xi as isHotReloadEnabled,zi as isHotReloading,Vi as isIPad,_i as isIconElement,ji as isLocalNetwork,Ki as isMacOS,Qi as isMobileDevice,Zi as isMozillaXR,Yi as isQuest,Ji as isResourceTrackingEnabled,$i as isSafari,qi as isUsingInstancing,el as isiOS,al as isiPad,m as loadAsset,sl as loadSync,tl as logHierarchy,ol as lookAtInverse,rl as lookAtObject,nl as lookAtScreenPoint,il as makeId,ll as makeIdFromRandomWords,dl as makeNameSafeForUSD,cl as markAsInstancedRendered,ml as microphonePermissionsGranted,pl as nameof,gl as nameofFactory,ul as objectSerializer,Sl as offXRSessionEnd,Cl as offXRSessionStart,i as onAfterRender,l as onBeforeRender,o as onClear,r as onDestroy,n as onInitialized,c as onStart,d as onUpdate,yl as onXRSessionEnd,Rl as onXRSessionStart,El as parseSync,hl as placeOnSurface,vl as postprocessFBXMaterials,fl as prefix,Pl as pushState,Al as randomNumber,Tl as registerBinaryType,bl as registerComponent,Ml as registerComponentExtension,Il as registerCustomEffectType,Ol as registerExportExtensions,Dl as registerExtensions,xl as registerHotReloadType,Ll as registerLoader,kl as registerPrefabProvider,Bl as registerPrototypeExtensions,Fl as registerType,Nl as relativePathPrefix,Ul as removeAttributeChangeCallback,wl as removeComponent,Wl as removeCustomImportExtensionType,Gl as removePatch,Hl as resolveUrl,Xl as sanitizeString,zl as saveImage,Vl as screenshot,_l as screenshot2,jl as sendDestroyed,Kl as serializable,Ql as serializeObject,Zl as serializeable,Yl as setActive,Jl as setAllowBalloonMessages,$l as setAllowOverlayMessages,ql as setAutoFitEnabled,ed as setCameraController,ad as setDestroyed,sd as setDevEnvironment,td as setDisposable,od as setDontDestroy,rd as setOrAddParamsToUrl,nd as setParam,id as setParamWithoutReload,ld as setPeerOptions,dd as setResourceTrackingEnabled,cd as setState,md as setVisibleInCustomShadowRendering,pd as setWorldEuler,gd as setWorldPosition,ud as setWorldPositionXYZ,Sd as setWorldQuaternion,Cd as setWorldQuaternionXYZW,yd as setWorldRotation,Rd as setWorldRotationXYZ,Ed as setWorldScale,hd as showBalloonError,vd as showBalloonMessage,fd as showBalloonWarning,Pd as showDebugConsole,Ad as slerp,Td as syncDestroy,bd as syncField,Md as syncInstantiate,Id as textureToCanvas,Od as tryCastBinary,Dd as tryDetermineMimetypeFromBinary,xd as tryDetermineMimetypeFromURL,Ld as tryFindObject,kd as tryGetGuid,Bd as unregisterHotReloadType,Fd as unwatchWrite,Nd as useForAutoFit,Ud as validate,wd as watchWrite};
1
+ import{GameObject as s,onClear as o,onDestroy as r,onInitialized as n,onAfterRender as i,onBeforeRender as l,onUpdate as d,onStart as c,loadAsset as m,NeedleXRSession as p,Context as g,VERSION as u,Component as y,Components as R}from"./needle-engine.bundle-D3-SYyvs.min.js";import{$physicsKey as E,ActionBuilder as h,ActionCollection as v,ActionModel as f,Addressables as P,AlignmentConstraint as A,AmbientMode as T,Animation as b,AnimationCurve as M,AnimationExtension as I,AnimationTrackHandler as O,AnimationUtils as D,Animator as x,AnimatorConditionMode as L,AnimatorController as k,AnimatorControllerParameterType as B,AnimatorStateInfo as F,Antialiasing as N,Application as U,AssetDatabase as w,AssetReference as W,AudioExtension as G,AudioListener as H,AudioSource as X,AudioTrackHandler as z,Avatar as V,AvatarBlink_Simple as _,AvatarEyeLook_Rotation as j,AvatarLoader as K,AvatarMarker as Q,AvatarModel as Z,Avatar_Brain_LookAt as Y,Avatar_MouthShapes as J,Avatar_MustacheShake as $,Avatar_POI as q,Axes as ee,AxesHelper as ae,BUILD_TIME as se,BaseUIComponent as te,BasicIKConstraint as oe,BehaviorExtension as re,BehaviorModel as ne,Component$1 as ie,BlobStorage as le,BloomEffect as de,BoxCollider as ce,BoxGizmo as me,BoxHelperComponent as pe,Button as ge,ButtonsFactory as ue,CallDirection as Se,CallInfo as Ce,Camera as ye,CameraTargetReachedEvent as Re,Canvas as Ee,CanvasGroup as he,CapsuleCollider as ve,ChangeMaterialOnClick as fe,ChangeTransformOnClick as Pe,CharacterController as Ae,CharacterControllerInput as Te,ChromaticAberration as be,CircularBuffer as Me,ClearFlags as Ie,ClipExtrapolation as Oe,Collider as De,Collision as xe,CollisionDetectionMode as Le,ColorAdjustments as ke,ColorBySpeedModule as Be,ColorOverLifetimeModule as Fe,Component$1 as Ne,ComponentLifecycleEvents as Ue,ConnectionEvents as we,ContactPoint as We,ContactShadows as Ge,ContextArgs as He,ContextEvent as Xe,ContextRegistry as ze,ControlTrackHandler as Ve,CustomBranding as _e,CustomShader as je,DefaultReflectionMode as Ke,Deletable as Qe,DeleteBox as Ze,DepthOfField as Ye,DeviceFlag as Je,DeviceUtilities as $e,DocumentExtension as qe,DragControls as ea,DragMode as aa,DropListener as sa,Duplicatable as ta,EffectWrapper as oa,EmissionModule as ra,EmphasizeOnClick as na,EngineLoadingView as ia,EnvironmentScene as la,EventList as da,EventListEvent as ca,EventSystem as ma,EventTrigger as pa,FieldWithDefault as ga,FileReference as ua,FileReferenceSerializer as Sa,FileSpawnModel as Ca,File_Event as ya,FixedJoint as Ra,Fog as Ea,FrameEvent as ha,GENERATOR as va,Gizmos as fa,GltfExport as Pa,GltfExportBox as Aa,Gradient as Ta,Graphic as ba,GraphicRaycaster as Ma,Graphics as Ia,GridHelper as Oa,GridLayoutGroup as Da,GroundProjectedEnv as xa,GroupActionModel as La,HideFlags as ka,HideOnStart as Ba,HingeJoint as Fa,HorizontalLayoutGroup as Na,HostData as Ua,Image as wa,ImageReference as Wa,ImageReferenceSerializer as Ga,InheritVelocityModule as Ha,Input as Xa,InputEventQueue as za,InputEvents as Va,InputField as _a,InstanceHandle as ja,InstancingHandler as Ka,InstancingUtil as Qa,InstantiateEvent as Za,InstantiateIdProvider as Ya,InstantiateOptions as Ja,Interactable as $a,InternalScreenshotUtils as qa,JoinedRoomResponse as es,KeyEventArgs as as,Keyframe as ss,LODGroup as ts,LODModel as os,LeftRoomResponse as rs,Light as ns,LightData as is,LimitVelocityOverLifetimeModule as ls,LoadingElementOptions as ds,LogStats as cs,LogType as ms,LookAt as ps,LookAtConstraint as gs,MainModule as us,MarkerType as Ss,MaskableGraphic as Cs,Mathf as ys,MeshCollider as Rs,MeshRenderer as Es,MinMaxCurve as hs,MinMaxGradient as vs,MODULES as fs,NEKeyboardEvent as Ps,NEPointerEvent as As,NeedleButtonElement as Ts,ContextRegistry as bs,NeedleEngineHTMLElement as Ms,NeedleEngineModelLoader as Is,NeedleMenu as Os,NeedlePatchesKey as Ds,USDZExporter$1 as xs,NeedleXRController as Ls,NeedleXRSync as ks,NeedleXRUtils as Bs,NestedGltf as Fs,NetworkConnection as Ns,NetworkedStreamEvents as Us,NetworkedStreams as ws,Networking as Ws,NewInstanceModel as Gs,NoiseModule as Hs,ObjectRaycaster as Xs,ObjectUtils as zs,OffsetConstraint as Vs,OneEuroFilter as _s,OneEuroFilterXYZ as js,OpenURL as Ks,OrbitControls as Qs,Outline as Zs,OwnershipEvent as Ys,OwnershipModel as Js,PUBLIC_KEY as $s,Padding as qs,ParticleBurst as et,ParticleSubEmitter as at,ParticleSystem as st,ParticleSystemBaseBehaviour as tt,ParticleSystemRenderer as ot,ParticleSystemShapeType as rt,PeerHandle as nt,PeerNetworking as it,Physics as lt,PhysicsExtension as dt,PhysicsMaterialCombine as ct,PixelationEffect as mt,PlayAnimationOnClick as pt,PlayAudioOnClick as gt,PlayableDirector as ut,PlayerColor as St,PlayerState as Ct,PlayerStateEvent as yt,PlayerSync as Rt,PlayerView as Et,PlayerViewManager as ht,PointerEventData as vt,PointerType as ft,PostProcessingEffect as Pt,PostProcessingHandler as At,Volume as Tt,PreliminaryAction as bt,PreliminaryTrigger as Mt,PreviewHelper as It,PrimitiveType as Ot,Progress as Dt,PromiseAllWithErrors as xt,PromiseErrorResult as Lt,RGBAColor as kt,RapierPhysics as Bt,RawImage as Ft,RaycastOptions as Nt,Rect as Ut,RectTransform as wt,ReflectionProbe as Wt,RegisteredAnimationInfo as Gt,RemoteSkybox as Ht,RenderTexture as Xt,RenderTextureSerializer as zt,Renderer as Vt,RendererData as _t,RendererLightmap as jt,Rigidbody as Kt,RigidbodyConstraints as Qt,RoomEvents as Zt,RotationBySpeedModule as Yt,RotationOverLifetimeModule as Jt,SceneLightSettings as $t,SceneSwitcher as qt,ScreenCapture as eo,ScreenSpaceAmbientOcclusion as ao,ScreenSpaceAmbientOcclusionN8 as so,SendQueue as to,SerializationContext as oo,SetActiveOnClick as ro,ShadowCatcher as no,ShapeModule as io,SharpeningEffect as lo,SignalAsset as co,SignalReceiver as mo,SignalReceiverEvent as po,SignalTrackHandler as go,Size as uo,SizeBySpeedModule as So,SizeOverLifetimeModule as Co,SkinnedMeshRenderer as yo,SmoothFollow as Ro,SpatialGrabRaycaster as Eo,SpatialHtml as ho,SpatialTrigger as vo,SpatialTriggerReceiver as fo,SpectatorCamera as Po,SphereCollider as Ao,SphereIntersection as To,SphereOverlapResult as bo,Sprite as Mo,SpriteData as Io,SpriteRenderer as Oo,SpriteSheet as Do,StateMachineBehaviour as xo,StreamEndedEvent as Lo,StreamReceivedEvent as ko,SubEmitterSystem as Bo,SyncedCamera as Fo,SyncedRoom as No,SyncedTransform as Uo,TapGestureTrigger as wo,TeleportTarget as Wo,TestRunner as Go,TestSceneUtils as Ho,TestSimulateUserData as Xo,Text as zo,TextBuilder as Vo,TextExtension as _o,TextureSheetAnimationModule as jo,TiltShiftEffect as Ko,Time as Qo,ToneMappingEffect as Zo,TrackHandler as Yo,TrackType as Jo,TrailModule as $o,TransformData as qo,TransformGizmo as er,TriggerBuilder as ar,TriggerModel as sr,TypeStore as tr,UIRaycastUtils as or,UIRootComponent as rr,USDDocument as nr,USDObject as ir,USDWriter as lr,USDZExporter as dr,USDZText as cr,USDZUIExtension as mr,UriSerializer as pr,UsageMarker as gr,UserJoinedOrLeftRoomModel as ur,VariantAction as Sr,VelocityOverLifetimeModule as Cr,VerticalLayoutGroup as yr,VideoPlayer as Rr,ViewDevice as Er,Vignette as hr,VisibilityAction as vr,Voip as fr,Volume as Pr,VolumeParameter as Ar,VolumeProfile as Tr,WaitForFrames as br,WaitForPromise as Mr,WaitForSeconds as Ir,Watch as Or,WebARCameraBackground as Dr,WebARSessionRoot as xr,WebXR as Lr,WebXRButtonFactory as kr,WebXRImageTracking as Br,WebXRImageTrackingModel as Fr,WebXRPlaneTracking as Nr,WebXRTrackedImage as Ur,XRControllerFollow as wr,XRControllerModel as Wr,XRControllerMovement as Gr,XRFlag as Hr,XRRig as Xr,XRState as zr,XRStateFlag as Vr,__Ignore as _r,__internalNotifyObjectDestroyed as jr,activeInHierarchyFieldName as Kr,addAttributeChangeCallback as Qr,addComponent as Zr,addCustomExtensionPlugin as Yr,addNewComponent as Jr,addPatch as $r,apply as qr,applyHMRChanges as en,applyPrototypeExtensions as an,beginListenDestroy as sn,beginListenInstantiate as tn,binaryIdentifierCasts as on,build_scene_functions as rn,builtinComponentKeyName as nn,calculateProgress01 as ln,clearMessages as dn,clearMessages as cn,colorSerializer as mn,compareAssociation as pn,componentSerializer as gn,copyTexture as un,createMotion as Sn,debugNet as Cn,debugOwner as yn,decompressGpuTexture as Rn,deepClone as En,delay as hn,delayForFrames as vn,deserializeObject as fn,destroy as Pn,destroyComponentInstance as An,determineMimeTypeFromExtension as Tn,disposeObjectResources as bn,disposeStream as Mn,editorGuidKeyName as In,enableSpatialConsole as On,euler as Dn,eventListSerializer as xn,exportAsGLTF as Ln,findByGuid as kn,findObjectOfType as Bn,findObjectsOfType as Fn,findResourceUsers as Nn,fitObjectIntoVolume as Un,foreachComponent as wn,foreachComponentEnumerator as Wn,forward as Gn,generateQRCode as Hn,generateSeed as Xn,getBoundingBox as zn,getCameraController as Vn,getComponent as _n,getComponentInChildren as jn,getComponentInParent as Kn,getComponents as Qn,getComponentsInChildren as Zn,getComponentsInParent as Yn,getFormattedDate as Jn,getIconElement as $n,getIconTexture as qn,getLoader as ei,getOrAddComponent as ai,getParam as si,getParentHierarchyPath as ti,getPath as oi,getPeerOptions as ri,getPeerjsInstance as ni,getResourceUserCount as ii,getTempColor as li,getTempQuaternion as di,getTempVector as ci,getUrlParams as mi,getVisibleInCustomShadowRendering as pi,getWorldDirection as gi,getWorldEuler as ui,getWorldPosition as Si,getWorldQuaternion as Ci,getWorldRotation as yi,getWorldScale as Ri,hasCommercialLicense as Ei,hasIndieLicense as hi,hasPointerEventComponent as vi,hasProLicense as fi,hideDebugConsole as Pi,imageToCanvas as Ai,instantiate as Ti,invokeLoadedImportPluginHooks as bi,invokeXRSessionEnd as Mi,invokeXRSessionStart as Ii,isActiveInHierarchy as Oi,isActiveSelf as Di,isAndroidDevice as xi,isAnimationAction as Li,isComponent as ki,isDebugMode as Bi,isDesktop as Fi,isDestroyed as Ni,isDevEnvironment as Ui,isDisposed as wi,isExporting as Wi,isGLTFModel as Gi,isHostedOnGlitch as Hi,isHotReloadEnabled as Xi,isHotReloading as zi,isIPad as Vi,isIconElement as _i,isLocalNetwork as ji,isMacOS as Ki,isMobileDevice as Qi,isMozillaXR as Zi,isQuest as Yi,isResourceTrackingEnabled as Ji,isSafari as $i,isUsingInstancing as qi,isiOS as el,isiPad as al,loadSync as sl,logHierarchy as tl,lookAtInverse as ol,lookAtObject as rl,lookAtScreenPoint as nl,makeId as il,makeIdFromRandomWords as ll,makeNameSafe as dl,markAsInstancedRendered as cl,microphonePermissionsGranted as ml,nameof as pl,nameofFactory as gl,objectSerializer as ul,offXRSessionEnd as Sl,offXRSessionStart as Cl,onXRSessionEnd as yl,onXRSessionStart as Rl,parseSync as El,placeOnSurface as hl,postprocessFBXMaterials as vl,prefix as fl,pushState as Pl,randomNumber as Al,registerBinaryType as Tl,registerComponent as bl,registerComponentExtension as Ml,registerCustomEffectType as Il,registerExportExtensions as Ol,registerExtensions as Dl,registerHotReloadType as xl,registerLoader as Ll,registerPrefabProvider as kl,registerPrototypeExtensions as Bl,registerType as Fl,relativePathPrefix as Nl,removeAttributeChangeCallback as Ul,removeComponent as wl,removeCustomImportExtensionType as Wl,removePatch as Gl,resolveUrl as Hl,sanitizeString as Xl,saveImage as zl,screenshot as Vl,screenshot2 as _l,sendDestroyed as jl,serializable as Kl,serializeObject as Ql,serializeable as Zl,setActive as Yl,setAllowBalloonMessages as Jl,setAllowOverlayMessages as $l,setAutoFitEnabled as ql,setCameraController as ed,setDestroyed as ad,setDevEnvironment as sd,setDisposable as td,setDontDestroy as od,setOrAddParamsToUrl as rd,setParam as nd,setParamWithoutReload as id,setPeerOptions as ld,setResourceTrackingEnabled as dd,setState as cd,setVisibleInCustomShadowRendering as md,setWorldEuler as pd,setWorldPosition as gd,setWorldPositionXYZ as ud,setWorldQuaternion as Sd,setWorldQuaternionXYZW as Cd,setWorldRotation as yd,setWorldRotationXYZ as Rd,setWorldScale as Ed,showBalloonError as hd,showBalloonMessage as vd,showBalloonWarning as fd,showDebugConsole as Pd,slerp as Ad,syncDestroy as Td,syncField as bd,syncInstantiate as Md,textureToCanvas as Id,tryCastBinary as Od,tryDetermineMimetypeFromBinary as Dd,tryDetermineMimetypeFromURL as xd,tryFindObject as Ld,tryGetGuid as kd,unregisterHotReloadType as Bd,unwatchWrite as Fd,useForAutoFit as Nd,validate as Ud,watchWrite as wd}from"./needle-engine.bundle-D3-SYyvs.min.js";import{NEEDLE_progressive as Wd}from"./gltf-progressive-Bx_ZJgfQ.min.js";import{THREE as Gd}from"./three-CFtLGNtV.min.js";const a={VERSION:u,Context:g,NeedleXRSession:p,assets:{loadFromURL:m},onStart:c,onUpdate:d,onBeforeRender:l,onAfterRender:i,onInitializedContext:n,onDestroyContext:r,onClearContext:o};var S;((S=globalThis.Needle)==null?void 0:S.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function C(e){for(const t in e)a[t]=e[t]}C(y),C(R);for(const e of Object.getOwnPropertyNames(s))switch(e){case"prototype":case"constructor":case"length":case"name":continue;default:a[e]=s[e];break}if(!globalThis.Needle)globalThis.Needle=a;else for(const e in a)globalThis.Needle[e]=a[e];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=Gd;export{E as $physicsKey,h as ActionBuilder,v as ActionCollection,f as ActionModel,P as Addressables,A as AlignmentConstraint,T as AmbientMode,b as Animation,M as AnimationCurve,I as AnimationExtension,O as AnimationTrackHandler,D as AnimationUtils,x as Animator,L as AnimatorConditionMode,k as AnimatorController,B as AnimatorControllerParameterType,F as AnimatorStateInfo,N as Antialiasing,U as Application,w as AssetDatabase,W as AssetReference,G as AudioExtension,H as AudioListener,X as AudioSource,z as AudioTrackHandler,V as Avatar,_ as AvatarBlink_Simple,j as AvatarEyeLook_Rotation,K as AvatarLoader,Q as AvatarMarker,Z as AvatarModel,Y as Avatar_Brain_LookAt,J as Avatar_MouthShapes,$ as Avatar_MustacheShake,q as Avatar_POI,ee as Axes,ae as AxesHelper,se as BUILD_TIME,te as BaseUIComponent,oe as BasicIKConstraint,re as BehaviorExtension,ne as BehaviorModel,ie as Behaviour,le as BlobStorage,de as BloomEffect,ce as BoxCollider,me as BoxGizmo,pe as BoxHelperComponent,ge as Button,ue as ButtonsFactory,Se as CallDirection,Ce as CallInfo,ye as Camera,Re as CameraTargetReachedEvent,Ee as Canvas,he as CanvasGroup,ve as CapsuleCollider,fe as ChangeMaterialOnClick,Pe as ChangeTransformOnClick,Ae as CharacterController,Te as CharacterControllerInput,be as ChromaticAberration,Me as CircularBuffer,Ie as ClearFlags,Oe as ClipExtrapolation,De as Collider,xe as Collision,Le as CollisionDetectionMode,ke as ColorAdjustments,Be as ColorBySpeedModule,Fe as ColorOverLifetimeModule,Ne as Component,Ue as ComponentLifecycleEvents,we as ConnectionEvents,We as ContactPoint,Ge as ContactShadows,g as Context,He as ContextArgs,Xe as ContextEvent,ze as ContextRegistry,Ve as ControlTrackHandler,_e as CustomBranding,je as CustomShader,Ke as DefaultReflectionMode,Qe as Deletable,Ze as DeleteBox,Ye as DepthOfField,Je as DeviceFlag,$e as DeviceUtilities,qe as DocumentExtension,ea as DragControls,aa as DragMode,sa as DropListener,ta as Duplicatable,oa as EffectWrapper,ra as EmissionModule,na as EmphasizeOnClick,ia as EngineLoadingView,la as EnvironmentScene,da as EventList,ca as EventListEvent,ma as EventSystem,pa as EventTrigger,ga as FieldWithDefault,ua as FileReference,Sa as FileReferenceSerializer,Ca as FileSpawnModel,ya as File_Event,Ra as FixedJoint,Ea as Fog,ha as FrameEvent,va as GENERATOR,s as GameObject,fa as Gizmos,Pa as GltfExport,Aa as GltfExportBox,Ta as Gradient,ba as Graphic,Ma as GraphicRaycaster,Ia as Graphics,Oa as GridHelper,Da as GridLayoutGroup,xa as GroundProjectedEnv,La as GroupActionModel,ka as HideFlags,Ba as HideOnStart,Fa as HingeJoint,Na as HorizontalLayoutGroup,Ua as HostData,wa as Image,Wa as ImageReference,Ga as ImageReferenceSerializer,Ha as InheritVelocityModule,Xa as Input,za as InputEventQueue,Va as InputEvents,_a as InputField,ja as InstanceHandle,Ka as InstancingHandler,Qa as InstancingUtil,Za as InstantiateEvent,Ya as InstantiateIdProvider,Ja as InstantiateOptions,$a as Interactable,qa as InternalScreenshotUtils,es as JoinedRoomResponse,as as KeyEventArgs,ss as Keyframe,ts as LODGroup,os as LODModel,rs as LeftRoomResponse,ns as Light,is as LightData,ls as LimitVelocityOverLifetimeModule,ds as LoadingElementOptions,cs as LogStats,ms as LogType,ps as LookAt,gs as LookAtConstraint,us as MainModule,Ss as MarkerType,Cs as MaskableGraphic,ys as Mathf,Rs as MeshCollider,Es as MeshRenderer,hs as MinMaxCurve,vs as MinMaxGradient,fs as NEEDLE_ENGINE_MODULES,Wd as NEEDLE_progressive,Ps as NEKeyboardEvent,As as NEPointerEvent,Ts as NeedleButtonElement,bs as NeedleEngine,Ms as NeedleEngineHTMLElement,Is as NeedleEngineModelLoader,Os as NeedleMenu,Ds as NeedlePatchesKey,xs as NeedleUSDZExporter,Ls as NeedleXRController,p as NeedleXRSession,ks as NeedleXRSync,Bs as NeedleXRUtils,Fs as NestedGltf,Ns as NetworkConnection,Us as NetworkedStreamEvents,ws as NetworkedStreams,Ws as Networking,Gs as NewInstanceModel,Hs as NoiseModule,Xs as ObjectRaycaster,zs as ObjectUtils,Vs as OffsetConstraint,_s as OneEuroFilter,js as OneEuroFilterXYZ,Ks as OpenURL,Qs as OrbitControls,Zs as Outline,Ys as OwnershipEvent,Js as OwnershipModel,$s as PUBLIC_KEY,qs as Padding,et as ParticleBurst,at as ParticleSubEmitter,st as ParticleSystem,tt as ParticleSystemBaseBehaviour,ot as ParticleSystemRenderer,rt as ParticleSystemShapeType,nt as PeerHandle,it as PeerNetworking,lt as Physics,dt as PhysicsExtension,ct as PhysicsMaterialCombine,mt as PixelationEffect,pt as PlayAnimationOnClick,gt as PlayAudioOnClick,ut as PlayableDirector,St as PlayerColor,Ct as PlayerState,yt as PlayerStateEvent,Rt as PlayerSync,Et as PlayerView,ht as PlayerViewManager,vt as PointerEventData,ft as PointerType,Pt as PostProcessingEffect,At as PostProcessingHandler,Tt as PostProcessingManager,bt as PreliminaryAction,Mt as PreliminaryTrigger,It as PreviewHelper,Ot as PrimitiveType,Dt as Progress,xt as PromiseAllWithErrors,Lt as PromiseErrorResult,kt as RGBAColor,Bt as RapierPhysics,Ft as RawImage,Nt as RaycastOptions,Ut as Rect,wt as RectTransform,Wt as ReflectionProbe,Gt as RegisteredAnimationInfo,Ht as RemoteSkybox,Xt as RenderTexture,zt as RenderTextureSerializer,Vt as Renderer,_t as RendererData,jt as RendererLightmap,Kt as Rigidbody,Qt as RigidbodyConstraints,Zt as RoomEvents,Yt as RotationBySpeedModule,Jt as RotationOverLifetimeModule,$t as SceneLightSettings,qt as SceneSwitcher,eo as ScreenCapture,ao as ScreenSpaceAmbientOcclusion,so as ScreenSpaceAmbientOcclusionN8,to as SendQueue,oo as SerializationContext,ro as SetActiveOnClick,no as ShadowCatcher,io as ShapeModule,lo as SharpeningEffect,co as SignalAsset,mo as SignalReceiver,po as SignalReceiverEvent,go as SignalTrackHandler,uo as Size,So as SizeBySpeedModule,Co as SizeOverLifetimeModule,yo as SkinnedMeshRenderer,Ro as SmoothFollow,Eo as SpatialGrabRaycaster,ho as SpatialHtml,vo as SpatialTrigger,fo as SpatialTriggerReceiver,Po as SpectatorCamera,Ao as SphereCollider,To as SphereIntersection,bo as SphereOverlapResult,Mo as Sprite,Io as SpriteData,Oo as SpriteRenderer,Do as SpriteSheet,xo as StateMachineBehaviour,Lo as StreamEndedEvent,ko as StreamReceivedEvent,Bo as SubEmitterSystem,Fo as SyncedCamera,No as SyncedRoom,Uo as SyncedTransform,wo as TapGestureTrigger,Wo as TeleportTarget,Go as TestRunner,Ho as TestSceneUtils,Xo as TestSimulateUserData,zo as Text,Vo as TextBuilder,_o as TextExtension,jo as TextureSheetAnimationModule,Ko as TiltShiftEffect,Qo as Time,Zo as ToneMappingEffect,Yo as TrackHandler,Jo as TrackType,$o as TrailModule,qo as TransformData,er as TransformGizmo,ar as TriggerBuilder,sr as TriggerModel,tr as TypeStore,or as UIRaycastUtils,rr as UIRootComponent,nr as USDDocument,ir as USDObject,lr as USDWriter,dr as USDZExporter,cr as USDZText,mr as USDZUIExtension,pr as UriSerializer,gr as UsageMarker,ur as UserJoinedOrLeftRoomModel,u as VERSION,Sr as VariantAction,Cr as VelocityOverLifetimeModule,yr as VerticalLayoutGroup,Rr as VideoPlayer,Er as ViewDevice,hr as Vignette,vr as VisibilityAction,fr as Voip,Pr as Volume,Ar as VolumeParameter,Tr as VolumeProfile,br as WaitForFrames,Mr as WaitForPromise,Ir as WaitForSeconds,Or as Watch,Dr as WebARCameraBackground,xr as WebARSessionRoot,Lr as WebXR,kr as WebXRButtonFactory,Br as WebXRImageTracking,Fr as WebXRImageTrackingModel,Nr as WebXRPlaneTracking,Ur as WebXRTrackedImage,wr as XRControllerFollow,Wr as XRControllerModel,Gr as XRControllerMovement,Hr as XRFlag,Xr as XRRig,zr as XRState,Vr as XRStateFlag,_r as __Ignore,jr as __internalNotifyObjectDestroyed,Kr as activeInHierarchyFieldName,Qr as addAttributeChangeCallback,Zr as addComponent,Yr as addCustomExtensionPlugin,Jr as addNewComponent,$r as addPatch,qr as apply,en as applyHMRChanges,an as applyPrototypeExtensions,sn as beginListenDestroy,tn as beginListenInstantiate,on as binaryIdentifierCasts,rn as build_scene_functions,nn as builtinComponentKeyName,ln as calculateProgress01,dn as clearBalloonMessages,cn as clearOverlayMessages,mn as colorSerializer,pn as compareAssociation,gn as componentSerializer,un as copyTexture,Sn as createMotion,Cn as debugNet,yn as debugOwner,Rn as decompressGpuTexture,En as deepClone,hn as delay,vn as delayForFrames,fn as deserializeObject,Pn as destroy,An as destroyComponentInstance,Tn as determineMimeTypeFromExtension,bn as disposeObjectResources,Mn as disposeStream,In as editorGuidKeyName,On as enableSpatialConsole,Dn as euler,xn as eventListSerializer,Ln as exportAsGLTF,kn as findByGuid,Bn as findObjectOfType,Fn as findObjectsOfType,Nn as findResourceUsers,Un as fitObjectIntoVolume,wn as foreachComponent,Wn as foreachComponentEnumerator,Gn as forward,Hn as generateQRCode,Xn as generateSeed,zn as getBoundingBox,Vn as getCameraController,_n as getComponent,jn as getComponentInChildren,Kn as getComponentInParent,Qn as getComponents,Zn as getComponentsInChildren,Yn as getComponentsInParent,Jn as getFormattedDate,$n as getIconElement,qn as getIconTexture,ei as getLoader,ai as getOrAddComponent,si as getParam,ti as getParentHierarchyPath,oi as getPath,ri as getPeerOptions,ni as getPeerjsInstance,ii as getResourceUserCount,li as getTempColor,di as getTempQuaternion,ci as getTempVector,mi as getUrlParams,pi as getVisibleInCustomShadowRendering,gi as getWorldDirection,ui as getWorldEuler,Si as getWorldPosition,Ci as getWorldQuaternion,yi as getWorldRotation,Ri as getWorldScale,Ei as hasCommercialLicense,hi as hasIndieLicense,vi as hasPointerEventComponent,fi as hasProLicense,Pi as hideDebugConsole,Ai as imageToCanvas,Ti as instantiate,bi as invokeLoadedImportPluginHooks,Mi as invokeXRSessionEnd,Ii as invokeXRSessionStart,Oi as isActiveInHierarchy,Di as isActiveSelf,xi as isAndroidDevice,Li as isAnimationAction,ki as isComponent,Bi as isDebugMode,Fi as isDesktop,Ni as isDestroyed,Ui as isDevEnvironment,wi as isDisposed,Wi as isExporting,Gi as isGLTFModel,Hi as isHostedOnGlitch,Xi as isHotReloadEnabled,zi as isHotReloading,Vi as isIPad,_i as isIconElement,ji as isLocalNetwork,Ki as isMacOS,Qi as isMobileDevice,Zi as isMozillaXR,Yi as isQuest,Ji as isResourceTrackingEnabled,$i as isSafari,qi as isUsingInstancing,el as isiOS,al as isiPad,m as loadAsset,sl as loadSync,tl as logHierarchy,ol as lookAtInverse,rl as lookAtObject,nl as lookAtScreenPoint,il as makeId,ll as makeIdFromRandomWords,dl as makeNameSafeForUSD,cl as markAsInstancedRendered,ml as microphonePermissionsGranted,pl as nameof,gl as nameofFactory,ul as objectSerializer,Sl as offXRSessionEnd,Cl as offXRSessionStart,i as onAfterRender,l as onBeforeRender,o as onClear,r as onDestroy,n as onInitialized,c as onStart,d as onUpdate,yl as onXRSessionEnd,Rl as onXRSessionStart,El as parseSync,hl as placeOnSurface,vl as postprocessFBXMaterials,fl as prefix,Pl as pushState,Al as randomNumber,Tl as registerBinaryType,bl as registerComponent,Ml as registerComponentExtension,Il as registerCustomEffectType,Ol as registerExportExtensions,Dl as registerExtensions,xl as registerHotReloadType,Ll as registerLoader,kl as registerPrefabProvider,Bl as registerPrototypeExtensions,Fl as registerType,Nl as relativePathPrefix,Ul as removeAttributeChangeCallback,wl as removeComponent,Wl as removeCustomImportExtensionType,Gl as removePatch,Hl as resolveUrl,Xl as sanitizeString,zl as saveImage,Vl as screenshot,_l as screenshot2,jl as sendDestroyed,Kl as serializable,Ql as serializeObject,Zl as serializeable,Yl as setActive,Jl as setAllowBalloonMessages,$l as setAllowOverlayMessages,ql as setAutoFitEnabled,ed as setCameraController,ad as setDestroyed,sd as setDevEnvironment,td as setDisposable,od as setDontDestroy,rd as setOrAddParamsToUrl,nd as setParam,id as setParamWithoutReload,ld as setPeerOptions,dd as setResourceTrackingEnabled,cd as setState,md as setVisibleInCustomShadowRendering,pd as setWorldEuler,gd as setWorldPosition,ud as setWorldPositionXYZ,Sd as setWorldQuaternion,Cd as setWorldQuaternionXYZW,yd as setWorldRotation,Rd as setWorldRotationXYZ,Ed as setWorldScale,hd as showBalloonError,vd as showBalloonMessage,fd as showBalloonWarning,Pd as showDebugConsole,Ad as slerp,Td as syncDestroy,bd as syncField,Md as syncInstantiate,Id as textureToCanvas,Od as tryCastBinary,Dd as tryDetermineMimetypeFromBinary,xd as tryDetermineMimetypeFromURL,Ld as tryFindObject,kd as tryGetGuid,Bd as unregisterHotReloadType,Fd as unwatchWrite,Nd as useForAutoFit,Ud as validate,wd as watchWrite};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./needle-engine.bundle-D2L7sMfH.umd.cjs"),a=require("./gltf-progressive-Ccf3INjK.umd.cjs"),s=require("./three-f-JuZtOs.umd.cjs"),o={VERSION:e.VERSION,Context:e.Context,NeedleXRSession:e.NeedleXRSession,assets:{loadFromURL:e.loadAsset},onStart:e.onStart,onUpdate:e.onUpdate,onBeforeRender:e.onBeforeRender,onAfterRender:e.onAfterRender,onInitializedContext:e.onInitialized,onDestroyContext:e.onDestroy,onClearContext:e.onClear};var n;((n=globalThis.Needle)==null?void 0:n.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function i(t){for(const r in t)o[r]=t[r]}i(e.Component);i(e.Components);for(const t of Object.getOwnPropertyNames(e.GameObject))switch(t){case"prototype":case"constructor":case"length":case"name":continue;default:o[t]=e.GameObject[t];break}if(!globalThis.Needle)globalThis.Needle=o;else for(const t in o)globalThis.Needle[t]=o[t];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=s.THREE;exports.$physicsKey=e.$physicsKey;exports.ActionBuilder=e.ActionBuilder;exports.ActionCollection=e.ActionCollection;exports.ActionModel=e.ActionModel;exports.Addressables=e.Addressables;exports.AlignmentConstraint=e.AlignmentConstraint;exports.AmbientMode=e.AmbientMode;exports.Animation=e.Animation;exports.AnimationCurve=e.AnimationCurve;exports.AnimationExtension=e.AnimationExtension;exports.AnimationTrackHandler=e.AnimationTrackHandler;exports.AnimationUtils=e.AnimationUtils;exports.Animator=e.Animator;exports.AnimatorConditionMode=e.AnimatorConditionMode;exports.AnimatorController=e.AnimatorController;exports.AnimatorControllerParameterType=e.AnimatorControllerParameterType;exports.AnimatorStateInfo=e.AnimatorStateInfo;exports.Antialiasing=e.Antialiasing;exports.Application=e.Application;exports.AssetDatabase=e.AssetDatabase;exports.AssetReference=e.AssetReference;exports.AudioExtension=e.AudioExtension;exports.AudioListener=e.AudioListener;exports.AudioSource=e.AudioSource;exports.AudioTrackHandler=e.AudioTrackHandler;exports.Avatar=e.Avatar;exports.AvatarBlink_Simple=e.AvatarBlink_Simple;exports.AvatarEyeLook_Rotation=e.AvatarEyeLook_Rotation;exports.AvatarLoader=e.AvatarLoader;exports.AvatarMarker=e.AvatarMarker;exports.AvatarModel=e.AvatarModel;exports.Avatar_Brain_LookAt=e.Avatar_Brain_LookAt;exports.Avatar_MouthShapes=e.Avatar_MouthShapes;exports.Avatar_MustacheShake=e.Avatar_MustacheShake;exports.Avatar_POI=e.Avatar_POI;exports.Axes=e.Axes;exports.AxesHelper=e.AxesHelper;exports.BUILD_TIME=e.BUILD_TIME;exports.BaseUIComponent=e.BaseUIComponent;exports.BasicIKConstraint=e.BasicIKConstraint;exports.BehaviorExtension=e.BehaviorExtension;exports.BehaviorModel=e.BehaviorModel;exports.Behaviour=e.Component$1;Object.defineProperty(exports,"BlobStorage",{enumerable:!0,get:()=>e.BlobStorage});exports.BloomEffect=e.BloomEffect;exports.BoxCollider=e.BoxCollider;exports.BoxGizmo=e.BoxGizmo;exports.BoxHelperComponent=e.BoxHelperComponent;exports.Button=e.Button;exports.ButtonsFactory=e.ButtonsFactory;exports.CallDirection=e.CallDirection;exports.CallInfo=e.CallInfo;exports.Camera=e.Camera;exports.CameraTargetReachedEvent=e.CameraTargetReachedEvent;exports.Canvas=e.Canvas;exports.CanvasGroup=e.CanvasGroup;exports.CapsuleCollider=e.CapsuleCollider;exports.ChangeMaterialOnClick=e.ChangeMaterialOnClick;exports.ChangeTransformOnClick=e.ChangeTransformOnClick;exports.CharacterController=e.CharacterController;exports.CharacterControllerInput=e.CharacterControllerInput;exports.ChromaticAberration=e.ChromaticAberration;exports.CircularBuffer=e.CircularBuffer;exports.ClearFlags=e.ClearFlags;exports.ClipExtrapolation=e.ClipExtrapolation;exports.Collider=e.Collider;exports.Collision=e.Collision;exports.CollisionDetectionMode=e.CollisionDetectionMode;exports.ColorAdjustments=e.ColorAdjustments;exports.ColorBySpeedModule=e.ColorBySpeedModule;exports.ColorOverLifetimeModule=e.ColorOverLifetimeModule;exports.Component=e.Component$1;exports.ComponentLifecycleEvents=e.ComponentLifecycleEvents;exports.ConnectionEvents=e.ConnectionEvents;exports.ContactPoint=e.ContactPoint;exports.ContactShadows=e.ContactShadows;exports.Context=e.Context;exports.ContextArgs=e.ContextArgs;exports.ContextEvent=e.ContextEvent;exports.ContextRegistry=e.ContextRegistry;exports.ControlTrackHandler=e.ControlTrackHandler;exports.CustomBranding=e.CustomBranding;exports.CustomShader=e.CustomShader;exports.DefaultReflectionMode=e.DefaultReflectionMode;exports.Deletable=e.Deletable;exports.DeleteBox=e.DeleteBox;exports.DepthOfField=e.DepthOfField;exports.DeviceFlag=e.DeviceFlag;Object.defineProperty(exports,"DeviceUtilities",{enumerable:!0,get:()=>e.DeviceUtilities});exports.DocumentExtension=e.DocumentExtension;exports.DragControls=e.DragControls;exports.DragMode=e.DragMode;exports.DropListener=e.DropListener;exports.Duplicatable=e.Duplicatable;exports.EffectWrapper=e.EffectWrapper;exports.EmissionModule=e.EmissionModule;exports.EmphasizeOnClick=e.EmphasizeOnClick;exports.EngineLoadingView=e.EngineLoadingView;exports.EnvironmentScene=e.EnvironmentScene;exports.EventList=e.EventList;exports.EventListEvent=e.EventListEvent;exports.EventSystem=e.EventSystem;exports.EventTrigger=e.EventTrigger;exports.FieldWithDefault=e.FieldWithDefault;exports.FileReference=e.FileReference;exports.FileReferenceSerializer=e.FileReferenceSerializer;exports.FileSpawnModel=e.FileSpawnModel;exports.File_Event=e.File_Event;exports.FixedJoint=e.FixedJoint;exports.Fog=e.Fog;exports.FrameEvent=e.FrameEvent;exports.GENERATOR=e.GENERATOR;exports.GameObject=e.GameObject;exports.Gizmos=e.Gizmos;exports.GltfExport=e.GltfExport;exports.GltfExportBox=e.GltfExportBox;exports.Gradient=e.Gradient;exports.Graphic=e.Graphic;exports.GraphicRaycaster=e.GraphicRaycaster;exports.Graphics=e.Graphics;exports.GridHelper=e.GridHelper;exports.GridLayoutGroup=e.GridLayoutGroup;exports.GroundProjectedEnv=e.GroundProjectedEnv;exports.GroupActionModel=e.GroupActionModel;exports.HideFlags=e.HideFlags;exports.HideOnStart=e.HideOnStart;exports.HingeJoint=e.HingeJoint;exports.HorizontalLayoutGroup=e.HorizontalLayoutGroup;exports.HostData=e.HostData;exports.Image=e.Image;exports.ImageReference=e.ImageReference;exports.ImageReferenceSerializer=e.ImageReferenceSerializer;exports.InheritVelocityModule=e.InheritVelocityModule;exports.Input=e.Input;exports.InputEventQueue=e.InputEventQueue;exports.InputEvents=e.InputEvents;exports.InputField=e.InputField;exports.InstanceHandle=e.InstanceHandle;exports.InstancingHandler=e.InstancingHandler;exports.InstancingUtil=e.InstancingUtil;exports.InstantiateEvent=e.InstantiateEvent;exports.InstantiateIdProvider=e.InstantiateIdProvider;exports.InstantiateOptions=e.InstantiateOptions;exports.Interactable=e.Interactable;Object.defineProperty(exports,"InternalScreenshotUtils",{enumerable:!0,get:()=>e.InternalScreenshotUtils});exports.JoinedRoomResponse=e.JoinedRoomResponse;exports.KeyEventArgs=e.KeyEventArgs;exports.Keyframe=e.Keyframe;exports.LODGroup=e.LODGroup;exports.LODModel=e.LODModel;exports.LeftRoomResponse=e.LeftRoomResponse;exports.Light=e.Light;exports.LightData=e.LightData;exports.LimitVelocityOverLifetimeModule=e.LimitVelocityOverLifetimeModule;exports.LoadingElementOptions=e.LoadingElementOptions;exports.LogStats=e.LogStats;exports.LogType=e.LogType;exports.LookAt=e.LookAt;exports.LookAtConstraint=e.LookAtConstraint;exports.MainModule=e.MainModule;exports.MarkerType=e.MarkerType;exports.MaskableGraphic=e.MaskableGraphic;exports.Mathf=e.Mathf;exports.MeshCollider=e.MeshCollider;exports.MeshRenderer=e.MeshRenderer;exports.MinMaxCurve=e.MinMaxCurve;exports.MinMaxGradient=e.MinMaxGradient;Object.defineProperty(exports,"NEEDLE_ENGINE_MODULES",{enumerable:!0,get:()=>e.MODULES});exports.NEKeyboardEvent=e.NEKeyboardEvent;exports.NEPointerEvent=e.NEPointerEvent;exports.NeedleButtonElement=e.NeedleButtonElement;exports.NeedleEngine=e.ContextRegistry;exports.NeedleEngineHTMLElement=e.NeedleEngineHTMLElement;Object.defineProperty(exports,"NeedleEngineModelLoader",{enumerable:!0,get:()=>e.NeedleEngineModelLoader});exports.NeedleMenu=e.NeedleMenu;exports.NeedlePatchesKey=e.NeedlePatchesKey;exports.NeedleUSDZExporter=e.USDZExporter$1;exports.NeedleXRController=e.NeedleXRController;exports.NeedleXRSession=e.NeedleXRSession;exports.NeedleXRSync=e.NeedleXRSync;exports.NeedleXRUtils=e.NeedleXRUtils;exports.NestedGltf=e.NestedGltf;exports.NetworkConnection=e.NetworkConnection;exports.NetworkedStreamEvents=e.NetworkedStreamEvents;exports.NetworkedStreams=e.NetworkedStreams;exports.Networking=e.Networking;exports.NewInstanceModel=e.NewInstanceModel;exports.NoiseModule=e.NoiseModule;exports.ObjectRaycaster=e.ObjectRaycaster;exports.ObjectUtils=e.ObjectUtils;exports.OffsetConstraint=e.OffsetConstraint;exports.OneEuroFilter=e.OneEuroFilter;exports.OneEuroFilterXYZ=e.OneEuroFilterXYZ;exports.OpenURL=e.OpenURL;exports.OrbitControls=e.OrbitControls;exports.Outline=e.Outline;exports.OwnershipEvent=e.OwnershipEvent;exports.OwnershipModel=e.OwnershipModel;exports.PUBLIC_KEY=e.PUBLIC_KEY;exports.Padding=e.Padding;exports.ParticleBurst=e.ParticleBurst;exports.ParticleSubEmitter=e.ParticleSubEmitter;exports.ParticleSystem=e.ParticleSystem;exports.ParticleSystemBaseBehaviour=e.ParticleSystemBaseBehaviour;exports.ParticleSystemRenderer=e.ParticleSystemRenderer;exports.ParticleSystemShapeType=e.ParticleSystemShapeType;exports.PeerHandle=e.PeerHandle;exports.PeerNetworking=e.PeerNetworking;exports.Physics=e.Physics;exports.PhysicsExtension=e.PhysicsExtension;exports.PhysicsMaterialCombine=e.PhysicsMaterialCombine;exports.PixelationEffect=e.PixelationEffect;exports.PlayAnimationOnClick=e.PlayAnimationOnClick;exports.PlayAudioOnClick=e.PlayAudioOnClick;exports.PlayableDirector=e.PlayableDirector;exports.PlayerColor=e.PlayerColor;exports.PlayerState=e.PlayerState;exports.PlayerStateEvent=e.PlayerStateEvent;exports.PlayerSync=e.PlayerSync;exports.PlayerView=e.PlayerView;exports.PlayerViewManager=e.PlayerViewManager;exports.PointerEventData=e.PointerEventData;exports.PointerType=e.PointerType;exports.PostProcessingEffect=e.PostProcessingEffect;exports.PostProcessingHandler=e.PostProcessingHandler;exports.PostProcessingManager=e.Volume;exports.PreliminaryAction=e.PreliminaryAction;exports.PreliminaryTrigger=e.PreliminaryTrigger;Object.defineProperty(exports,"PreviewHelper",{enumerable:!0,get:()=>e.PreviewHelper});exports.PrimitiveType=e.PrimitiveType;exports.Progress=e.Progress;exports.PromiseAllWithErrors=e.PromiseAllWithErrors;exports.PromiseErrorResult=e.PromiseErrorResult;exports.RGBAColor=e.RGBAColor;exports.RapierPhysics=e.RapierPhysics;exports.RawImage=e.RawImage;exports.RaycastOptions=e.RaycastOptions;exports.Rect=e.Rect;exports.RectTransform=e.RectTransform;exports.ReflectionProbe=e.ReflectionProbe;exports.RegisteredAnimationInfo=e.RegisteredAnimationInfo;exports.RemoteSkybox=e.RemoteSkybox;exports.RenderTexture=e.RenderTexture;exports.RenderTextureSerializer=e.RenderTextureSerializer;exports.Renderer=e.Renderer;exports.RendererData=e.RendererData;exports.RendererLightmap=e.RendererLightmap;exports.Rigidbody=e.Rigidbody;exports.RigidbodyConstraints=e.RigidbodyConstraints;exports.RoomEvents=e.RoomEvents;exports.RotationBySpeedModule=e.RotationBySpeedModule;exports.RotationOverLifetimeModule=e.RotationOverLifetimeModule;exports.SceneLightSettings=e.SceneLightSettings;exports.SceneSwitcher=e.SceneSwitcher;exports.ScreenCapture=e.ScreenCapture;exports.ScreenSpaceAmbientOcclusion=e.ScreenSpaceAmbientOcclusion;exports.ScreenSpaceAmbientOcclusionN8=e.ScreenSpaceAmbientOcclusionN8;exports.SendQueue=e.SendQueue;exports.SerializationContext=e.SerializationContext;exports.SetActiveOnClick=e.SetActiveOnClick;exports.ShadowCatcher=e.ShadowCatcher;exports.ShapeModule=e.ShapeModule;exports.SharpeningEffect=e.SharpeningEffect;exports.SignalAsset=e.SignalAsset;exports.SignalReceiver=e.SignalReceiver;exports.SignalReceiverEvent=e.SignalReceiverEvent;exports.SignalTrackHandler=e.SignalTrackHandler;exports.Size=e.Size;exports.SizeBySpeedModule=e.SizeBySpeedModule;exports.SizeOverLifetimeModule=e.SizeOverLifetimeModule;exports.SkinnedMeshRenderer=e.SkinnedMeshRenderer;exports.SmoothFollow=e.SmoothFollow;exports.SpatialGrabRaycaster=e.SpatialGrabRaycaster;exports.SpatialHtml=e.SpatialHtml;exports.SpatialTrigger=e.SpatialTrigger;exports.SpatialTriggerReceiver=e.SpatialTriggerReceiver;exports.SpectatorCamera=e.SpectatorCamera;exports.SphereCollider=e.SphereCollider;exports.SphereIntersection=e.SphereIntersection;exports.SphereOverlapResult=e.SphereOverlapResult;exports.Sprite=e.Sprite;exports.SpriteData=e.SpriteData;exports.SpriteRenderer=e.SpriteRenderer;exports.SpriteSheet=e.SpriteSheet;exports.StateMachineBehaviour=e.StateMachineBehaviour;exports.StreamEndedEvent=e.StreamEndedEvent;exports.StreamReceivedEvent=e.StreamReceivedEvent;exports.SubEmitterSystem=e.SubEmitterSystem;exports.SyncedCamera=e.SyncedCamera;exports.SyncedRoom=e.SyncedRoom;exports.SyncedTransform=e.SyncedTransform;exports.TapGestureTrigger=e.TapGestureTrigger;exports.TeleportTarget=e.TeleportTarget;exports.TestRunner=e.TestRunner;exports.TestSceneUtils=e.TestSceneUtils;exports.TestSimulateUserData=e.TestSimulateUserData;exports.Text=e.Text;exports.TextBuilder=e.TextBuilder;exports.TextExtension=e.TextExtension;exports.TextureSheetAnimationModule=e.TextureSheetAnimationModule;exports.TiltShiftEffect=e.TiltShiftEffect;exports.Time=e.Time;exports.ToneMappingEffect=e.ToneMappingEffect;exports.TrackHandler=e.TrackHandler;exports.TrackType=e.TrackType;exports.TrailModule=e.TrailModule;exports.TransformData=e.TransformData;exports.TransformGizmo=e.TransformGizmo;exports.TriggerBuilder=e.TriggerBuilder;exports.TriggerModel=e.TriggerModel;exports.TypeStore=e.TypeStore;exports.UIRaycastUtils=e.UIRaycastUtils;exports.UIRootComponent=e.UIRootComponent;exports.USDDocument=e.USDDocument;exports.USDObject=e.USDObject;exports.USDWriter=e.USDWriter;exports.USDZExporter=e.USDZExporter;exports.USDZText=e.USDZText;exports.USDZUIExtension=e.USDZUIExtension;exports.UriSerializer=e.UriSerializer;exports.UsageMarker=e.UsageMarker;exports.UserJoinedOrLeftRoomModel=e.UserJoinedOrLeftRoomModel;exports.VERSION=e.VERSION;exports.VariantAction=e.VariantAction;exports.VelocityOverLifetimeModule=e.VelocityOverLifetimeModule;exports.VerticalLayoutGroup=e.VerticalLayoutGroup;exports.VideoPlayer=e.VideoPlayer;exports.ViewDevice=e.ViewDevice;exports.Vignette=e.Vignette;exports.VisibilityAction=e.VisibilityAction;exports.Voip=e.Voip;exports.Volume=e.Volume;exports.VolumeParameter=e.VolumeParameter;exports.VolumeProfile=e.VolumeProfile;exports.WaitForFrames=e.WaitForFrames;exports.WaitForPromise=e.WaitForPromise;exports.WaitForSeconds=e.WaitForSeconds;exports.Watch=e.Watch;exports.WebARCameraBackground=e.WebARCameraBackground;exports.WebARSessionRoot=e.WebARSessionRoot;exports.WebXR=e.WebXR;exports.WebXRButtonFactory=e.WebXRButtonFactory;exports.WebXRImageTracking=e.WebXRImageTracking;exports.WebXRImageTrackingModel=e.WebXRImageTrackingModel;exports.WebXRPlaneTracking=e.WebXRPlaneTracking;exports.WebXRTrackedImage=e.WebXRTrackedImage;exports.XRControllerFollow=e.XRControllerFollow;exports.XRControllerModel=e.XRControllerModel;exports.XRControllerMovement=e.XRControllerMovement;exports.XRFlag=e.XRFlag;exports.XRRig=e.XRRig;exports.XRState=e.XRState;exports.XRStateFlag=e.XRStateFlag;exports.__Ignore=e.__Ignore;exports.__internalNotifyObjectDestroyed=e.__internalNotifyObjectDestroyed;exports.activeInHierarchyFieldName=e.activeInHierarchyFieldName;exports.addAttributeChangeCallback=e.addAttributeChangeCallback;exports.addComponent=e.addComponent;exports.addCustomExtensionPlugin=e.addCustomExtensionPlugin;exports.addNewComponent=e.addNewComponent;exports.addPatch=e.addPatch;exports.apply=e.apply;exports.applyHMRChanges=e.applyHMRChanges;exports.applyPrototypeExtensions=e.applyPrototypeExtensions;exports.beginListenDestroy=e.beginListenDestroy;exports.beginListenInstantiate=e.beginListenInstantiate;exports.binaryIdentifierCasts=e.binaryIdentifierCasts;exports.build_scene_functions=e.build_scene_functions;exports.builtinComponentKeyName=e.builtinComponentKeyName;exports.calculateProgress01=e.calculateProgress01;exports.clearBalloonMessages=e.clearMessages;exports.clearOverlayMessages=e.clearMessages;exports.colorSerializer=e.colorSerializer;exports.compareAssociation=e.compareAssociation;exports.componentSerializer=e.componentSerializer;exports.copyTexture=e.copyTexture;exports.createMotion=e.createMotion;exports.debugNet=e.debugNet;exports.debugOwner=e.debugOwner;exports.decompressGpuTexture=e.decompressGpuTexture;exports.deepClone=e.deepClone;exports.delay=e.delay;exports.delayForFrames=e.delayForFrames;exports.deserializeObject=e.deserializeObject;exports.destroy=e.destroy;exports.destroyComponentInstance=e.destroyComponentInstance;exports.determineMimeTypeFromExtension=e.determineMimeTypeFromExtension;exports.disposeObjectResources=e.disposeObjectResources;exports.disposeStream=e.disposeStream;exports.editorGuidKeyName=e.editorGuidKeyName;exports.enableSpatialConsole=e.enableSpatialConsole;exports.euler=e.euler;exports.eventListSerializer=e.eventListSerializer;exports.exportAsGLTF=e.exportAsGLTF;exports.findByGuid=e.findByGuid;exports.findObjectOfType=e.findObjectOfType;exports.findObjectsOfType=e.findObjectsOfType;exports.findResourceUsers=e.findResourceUsers;exports.fitObjectIntoVolume=e.fitObjectIntoVolume;exports.foreachComponent=e.foreachComponent;exports.foreachComponentEnumerator=e.foreachComponentEnumerator;exports.forward=e.forward;exports.generateQRCode=e.generateQRCode;exports.generateSeed=e.generateSeed;exports.getBoundingBox=e.getBoundingBox;exports.getCameraController=e.getCameraController;exports.getComponent=e.getComponent;exports.getComponentInChildren=e.getComponentInChildren;exports.getComponentInParent=e.getComponentInParent;exports.getComponents=e.getComponents;exports.getComponentsInChildren=e.getComponentsInChildren;exports.getComponentsInParent=e.getComponentsInParent;exports.getFormattedDate=e.getFormattedDate;exports.getIconElement=e.getIconElement;exports.getIconTexture=e.getIconTexture;exports.getLoader=e.getLoader;exports.getOrAddComponent=e.getOrAddComponent;exports.getParam=e.getParam;exports.getParentHierarchyPath=e.getParentHierarchyPath;exports.getPath=e.getPath;exports.getPeerOptions=e.getPeerOptions;exports.getPeerjsInstance=e.getPeerjsInstance;exports.getResourceUserCount=e.getResourceUserCount;exports.getTempColor=e.getTempColor;exports.getTempQuaternion=e.getTempQuaternion;exports.getTempVector=e.getTempVector;exports.getUrlParams=e.getUrlParams;exports.getVisibleInCustomShadowRendering=e.getVisibleInCustomShadowRendering;exports.getWorldDirection=e.getWorldDirection;exports.getWorldEuler=e.getWorldEuler;exports.getWorldPosition=e.getWorldPosition;exports.getWorldQuaternion=e.getWorldQuaternion;exports.getWorldRotation=e.getWorldRotation;exports.getWorldScale=e.getWorldScale;exports.hasCommercialLicense=e.hasCommercialLicense;exports.hasIndieLicense=e.hasIndieLicense;exports.hasPointerEventComponent=e.hasPointerEventComponent;exports.hasProLicense=e.hasProLicense;exports.hideDebugConsole=e.hideDebugConsole;exports.imageToCanvas=e.imageToCanvas;exports.instantiate=e.instantiate;exports.invokeLoadedImportPluginHooks=e.invokeLoadedImportPluginHooks;exports.invokeXRSessionEnd=e.invokeXRSessionEnd;exports.invokeXRSessionStart=e.invokeXRSessionStart;exports.isActiveInHierarchy=e.isActiveInHierarchy;exports.isActiveSelf=e.isActiveSelf;exports.isAndroidDevice=e.isAndroidDevice;exports.isAnimationAction=e.isAnimationAction;exports.isComponent=e.isComponent;exports.isDebugMode=e.isDebugMode;exports.isDesktop=e.isDesktop;exports.isDestroyed=e.isDestroyed;exports.isDevEnvironment=e.isDevEnvironment;exports.isDisposed=e.isDisposed;exports.isExporting=e.isExporting;exports.isGLTFModel=e.isGLTFModel;exports.isHostedOnGlitch=e.isHostedOnGlitch;exports.isHotReloadEnabled=e.isHotReloadEnabled;exports.isHotReloading=e.isHotReloading;exports.isIPad=e.isIPad;exports.isIconElement=e.isIconElement;exports.isLocalNetwork=e.isLocalNetwork;exports.isMacOS=e.isMacOS;exports.isMobileDevice=e.isMobileDevice;exports.isMozillaXR=e.isMozillaXR;exports.isQuest=e.isQuest;exports.isResourceTrackingEnabled=e.isResourceTrackingEnabled;exports.isSafari=e.isSafari;exports.isUsingInstancing=e.isUsingInstancing;exports.isiOS=e.isiOS;exports.isiPad=e.isiPad;exports.loadAsset=e.loadAsset;exports.loadSync=e.loadSync;exports.logHierarchy=e.logHierarchy;exports.lookAtInverse=e.lookAtInverse;exports.lookAtObject=e.lookAtObject;exports.lookAtScreenPoint=e.lookAtScreenPoint;exports.makeId=e.makeId;exports.makeIdFromRandomWords=e.makeIdFromRandomWords;exports.makeNameSafeForUSD=e.makeNameSafe;exports.markAsInstancedRendered=e.markAsInstancedRendered;exports.microphonePermissionsGranted=e.microphonePermissionsGranted;exports.nameof=e.nameof;exports.nameofFactory=e.nameofFactory;exports.objectSerializer=e.objectSerializer;exports.offXRSessionEnd=e.offXRSessionEnd;exports.offXRSessionStart=e.offXRSessionStart;exports.onAfterRender=e.onAfterRender;exports.onBeforeRender=e.onBeforeRender;exports.onClear=e.onClear;exports.onDestroy=e.onDestroy;exports.onInitialized=e.onInitialized;exports.onStart=e.onStart;exports.onUpdate=e.onUpdate;exports.onXRSessionEnd=e.onXRSessionEnd;exports.onXRSessionStart=e.onXRSessionStart;exports.parseSync=e.parseSync;exports.placeOnSurface=e.placeOnSurface;exports.postprocessFBXMaterials=e.postprocessFBXMaterials;exports.prefix=e.prefix;exports.pushState=e.pushState;exports.randomNumber=e.randomNumber;exports.registerBinaryType=e.registerBinaryType;exports.registerComponent=e.registerComponent;exports.registerComponentExtension=e.registerComponentExtension;exports.registerCustomEffectType=e.registerCustomEffectType;exports.registerExportExtensions=e.registerExportExtensions;exports.registerExtensions=e.registerExtensions;exports.registerHotReloadType=e.registerHotReloadType;exports.registerLoader=e.registerLoader;exports.registerPrefabProvider=e.registerPrefabProvider;exports.registerPrototypeExtensions=e.registerPrototypeExtensions;exports.registerType=e.registerType;exports.relativePathPrefix=e.relativePathPrefix;exports.removeAttributeChangeCallback=e.removeAttributeChangeCallback;exports.removeComponent=e.removeComponent;exports.removeCustomImportExtensionType=e.removeCustomImportExtensionType;exports.removePatch=e.removePatch;exports.resolveUrl=e.resolveUrl;exports.sanitizeString=e.sanitizeString;exports.saveImage=e.saveImage;exports.screenshot=e.screenshot;exports.screenshot2=e.screenshot2;exports.sendDestroyed=e.sendDestroyed;exports.serializable=e.serializable;exports.serializeObject=e.serializeObject;exports.serializeable=e.serializeable;exports.setActive=e.setActive;exports.setAllowBalloonMessages=e.setAllowBalloonMessages;exports.setAllowOverlayMessages=e.setAllowOverlayMessages;exports.setAutoFitEnabled=e.setAutoFitEnabled;exports.setCameraController=e.setCameraController;exports.setDestroyed=e.setDestroyed;exports.setDevEnvironment=e.setDevEnvironment;exports.setDisposable=e.setDisposable;exports.setDontDestroy=e.setDontDestroy;exports.setOrAddParamsToUrl=e.setOrAddParamsToUrl;exports.setParam=e.setParam;exports.setParamWithoutReload=e.setParamWithoutReload;exports.setPeerOptions=e.setPeerOptions;exports.setResourceTrackingEnabled=e.setResourceTrackingEnabled;exports.setState=e.setState;exports.setVisibleInCustomShadowRendering=e.setVisibleInCustomShadowRendering;exports.setWorldEuler=e.setWorldEuler;exports.setWorldPosition=e.setWorldPosition;exports.setWorldPositionXYZ=e.setWorldPositionXYZ;exports.setWorldQuaternion=e.setWorldQuaternion;exports.setWorldQuaternionXYZW=e.setWorldQuaternionXYZW;exports.setWorldRotation=e.setWorldRotation;exports.setWorldRotationXYZ=e.setWorldRotationXYZ;exports.setWorldScale=e.setWorldScale;exports.showBalloonError=e.showBalloonError;exports.showBalloonMessage=e.showBalloonMessage;exports.showBalloonWarning=e.showBalloonWarning;exports.showDebugConsole=e.showDebugConsole;exports.slerp=e.slerp;exports.syncDestroy=e.syncDestroy;exports.syncField=e.syncField;exports.syncInstantiate=e.syncInstantiate;exports.textureToCanvas=e.textureToCanvas;exports.tryCastBinary=e.tryCastBinary;exports.tryDetermineMimetypeFromBinary=e.tryDetermineMimetypeFromBinary;exports.tryDetermineMimetypeFromURL=e.tryDetermineMimetypeFromURL;exports.tryFindObject=e.tryFindObject;exports.tryGetGuid=e.tryGetGuid;exports.unregisterHotReloadType=e.unregisterHotReloadType;exports.unwatchWrite=e.unwatchWrite;exports.useForAutoFit=e.useForAutoFit;exports.validate=e.validate;exports.watchWrite=e.watchWrite;exports.NEEDLE_progressive=a.NEEDLE_progressive;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./needle-engine.bundle-BAC1t3iE.umd.cjs"),a=require("./gltf-progressive-Ccf3INjK.umd.cjs"),s=require("./three-f-JuZtOs.umd.cjs"),o={VERSION:e.VERSION,Context:e.Context,NeedleXRSession:e.NeedleXRSession,assets:{loadFromURL:e.loadAsset},onStart:e.onStart,onUpdate:e.onUpdate,onBeforeRender:e.onBeforeRender,onAfterRender:e.onAfterRender,onInitializedContext:e.onInitialized,onDestroyContext:e.onDestroy,onClearContext:e.onClear};var n;((n=globalThis.Needle)==null?void 0:n.VERSION)!==void 0&&console.warn(`Needle Engine is already imported: ${globalThis.Needle.VERSION}`);function i(t){for(const r in t)o[r]=t[r]}i(e.Component);i(e.Components);for(const t of Object.getOwnPropertyNames(e.GameObject))switch(t){case"prototype":case"constructor":case"length":case"name":continue;default:o[t]=e.GameObject[t];break}if(!globalThis.Needle)globalThis.Needle=o;else for(const t in o)globalThis.Needle[t]=o[t];globalThis.THREE?console.warn("Three.js is already imported"):globalThis.THREE=s.THREE;exports.$physicsKey=e.$physicsKey;exports.ActionBuilder=e.ActionBuilder;exports.ActionCollection=e.ActionCollection;exports.ActionModel=e.ActionModel;exports.Addressables=e.Addressables;exports.AlignmentConstraint=e.AlignmentConstraint;exports.AmbientMode=e.AmbientMode;exports.Animation=e.Animation;exports.AnimationCurve=e.AnimationCurve;exports.AnimationExtension=e.AnimationExtension;exports.AnimationTrackHandler=e.AnimationTrackHandler;exports.AnimationUtils=e.AnimationUtils;exports.Animator=e.Animator;exports.AnimatorConditionMode=e.AnimatorConditionMode;exports.AnimatorController=e.AnimatorController;exports.AnimatorControllerParameterType=e.AnimatorControllerParameterType;exports.AnimatorStateInfo=e.AnimatorStateInfo;exports.Antialiasing=e.Antialiasing;exports.Application=e.Application;exports.AssetDatabase=e.AssetDatabase;exports.AssetReference=e.AssetReference;exports.AudioExtension=e.AudioExtension;exports.AudioListener=e.AudioListener;exports.AudioSource=e.AudioSource;exports.AudioTrackHandler=e.AudioTrackHandler;exports.Avatar=e.Avatar;exports.AvatarBlink_Simple=e.AvatarBlink_Simple;exports.AvatarEyeLook_Rotation=e.AvatarEyeLook_Rotation;exports.AvatarLoader=e.AvatarLoader;exports.AvatarMarker=e.AvatarMarker;exports.AvatarModel=e.AvatarModel;exports.Avatar_Brain_LookAt=e.Avatar_Brain_LookAt;exports.Avatar_MouthShapes=e.Avatar_MouthShapes;exports.Avatar_MustacheShake=e.Avatar_MustacheShake;exports.Avatar_POI=e.Avatar_POI;exports.Axes=e.Axes;exports.AxesHelper=e.AxesHelper;exports.BUILD_TIME=e.BUILD_TIME;exports.BaseUIComponent=e.BaseUIComponent;exports.BasicIKConstraint=e.BasicIKConstraint;exports.BehaviorExtension=e.BehaviorExtension;exports.BehaviorModel=e.BehaviorModel;exports.Behaviour=e.Component$1;Object.defineProperty(exports,"BlobStorage",{enumerable:!0,get:()=>e.BlobStorage});exports.BloomEffect=e.BloomEffect;exports.BoxCollider=e.BoxCollider;exports.BoxGizmo=e.BoxGizmo;exports.BoxHelperComponent=e.BoxHelperComponent;exports.Button=e.Button;exports.ButtonsFactory=e.ButtonsFactory;exports.CallDirection=e.CallDirection;exports.CallInfo=e.CallInfo;exports.Camera=e.Camera;exports.CameraTargetReachedEvent=e.CameraTargetReachedEvent;exports.Canvas=e.Canvas;exports.CanvasGroup=e.CanvasGroup;exports.CapsuleCollider=e.CapsuleCollider;exports.ChangeMaterialOnClick=e.ChangeMaterialOnClick;exports.ChangeTransformOnClick=e.ChangeTransformOnClick;exports.CharacterController=e.CharacterController;exports.CharacterControllerInput=e.CharacterControllerInput;exports.ChromaticAberration=e.ChromaticAberration;exports.CircularBuffer=e.CircularBuffer;exports.ClearFlags=e.ClearFlags;exports.ClipExtrapolation=e.ClipExtrapolation;exports.Collider=e.Collider;exports.Collision=e.Collision;exports.CollisionDetectionMode=e.CollisionDetectionMode;exports.ColorAdjustments=e.ColorAdjustments;exports.ColorBySpeedModule=e.ColorBySpeedModule;exports.ColorOverLifetimeModule=e.ColorOverLifetimeModule;exports.Component=e.Component$1;exports.ComponentLifecycleEvents=e.ComponentLifecycleEvents;exports.ConnectionEvents=e.ConnectionEvents;exports.ContactPoint=e.ContactPoint;exports.ContactShadows=e.ContactShadows;exports.Context=e.Context;exports.ContextArgs=e.ContextArgs;exports.ContextEvent=e.ContextEvent;exports.ContextRegistry=e.ContextRegistry;exports.ControlTrackHandler=e.ControlTrackHandler;exports.CustomBranding=e.CustomBranding;exports.CustomShader=e.CustomShader;exports.DefaultReflectionMode=e.DefaultReflectionMode;exports.Deletable=e.Deletable;exports.DeleteBox=e.DeleteBox;exports.DepthOfField=e.DepthOfField;exports.DeviceFlag=e.DeviceFlag;Object.defineProperty(exports,"DeviceUtilities",{enumerable:!0,get:()=>e.DeviceUtilities});exports.DocumentExtension=e.DocumentExtension;exports.DragControls=e.DragControls;exports.DragMode=e.DragMode;exports.DropListener=e.DropListener;exports.Duplicatable=e.Duplicatable;exports.EffectWrapper=e.EffectWrapper;exports.EmissionModule=e.EmissionModule;exports.EmphasizeOnClick=e.EmphasizeOnClick;exports.EngineLoadingView=e.EngineLoadingView;exports.EnvironmentScene=e.EnvironmentScene;exports.EventList=e.EventList;exports.EventListEvent=e.EventListEvent;exports.EventSystem=e.EventSystem;exports.EventTrigger=e.EventTrigger;exports.FieldWithDefault=e.FieldWithDefault;exports.FileReference=e.FileReference;exports.FileReferenceSerializer=e.FileReferenceSerializer;exports.FileSpawnModel=e.FileSpawnModel;exports.File_Event=e.File_Event;exports.FixedJoint=e.FixedJoint;exports.Fog=e.Fog;exports.FrameEvent=e.FrameEvent;exports.GENERATOR=e.GENERATOR;exports.GameObject=e.GameObject;exports.Gizmos=e.Gizmos;exports.GltfExport=e.GltfExport;exports.GltfExportBox=e.GltfExportBox;exports.Gradient=e.Gradient;exports.Graphic=e.Graphic;exports.GraphicRaycaster=e.GraphicRaycaster;exports.Graphics=e.Graphics;exports.GridHelper=e.GridHelper;exports.GridLayoutGroup=e.GridLayoutGroup;exports.GroundProjectedEnv=e.GroundProjectedEnv;exports.GroupActionModel=e.GroupActionModel;exports.HideFlags=e.HideFlags;exports.HideOnStart=e.HideOnStart;exports.HingeJoint=e.HingeJoint;exports.HorizontalLayoutGroup=e.HorizontalLayoutGroup;exports.HostData=e.HostData;exports.Image=e.Image;exports.ImageReference=e.ImageReference;exports.ImageReferenceSerializer=e.ImageReferenceSerializer;exports.InheritVelocityModule=e.InheritVelocityModule;exports.Input=e.Input;exports.InputEventQueue=e.InputEventQueue;exports.InputEvents=e.InputEvents;exports.InputField=e.InputField;exports.InstanceHandle=e.InstanceHandle;exports.InstancingHandler=e.InstancingHandler;exports.InstancingUtil=e.InstancingUtil;exports.InstantiateEvent=e.InstantiateEvent;exports.InstantiateIdProvider=e.InstantiateIdProvider;exports.InstantiateOptions=e.InstantiateOptions;exports.Interactable=e.Interactable;Object.defineProperty(exports,"InternalScreenshotUtils",{enumerable:!0,get:()=>e.InternalScreenshotUtils});exports.JoinedRoomResponse=e.JoinedRoomResponse;exports.KeyEventArgs=e.KeyEventArgs;exports.Keyframe=e.Keyframe;exports.LODGroup=e.LODGroup;exports.LODModel=e.LODModel;exports.LeftRoomResponse=e.LeftRoomResponse;exports.Light=e.Light;exports.LightData=e.LightData;exports.LimitVelocityOverLifetimeModule=e.LimitVelocityOverLifetimeModule;exports.LoadingElementOptions=e.LoadingElementOptions;exports.LogStats=e.LogStats;exports.LogType=e.LogType;exports.LookAt=e.LookAt;exports.LookAtConstraint=e.LookAtConstraint;exports.MainModule=e.MainModule;exports.MarkerType=e.MarkerType;exports.MaskableGraphic=e.MaskableGraphic;exports.Mathf=e.Mathf;exports.MeshCollider=e.MeshCollider;exports.MeshRenderer=e.MeshRenderer;exports.MinMaxCurve=e.MinMaxCurve;exports.MinMaxGradient=e.MinMaxGradient;Object.defineProperty(exports,"NEEDLE_ENGINE_MODULES",{enumerable:!0,get:()=>e.MODULES});exports.NEKeyboardEvent=e.NEKeyboardEvent;exports.NEPointerEvent=e.NEPointerEvent;exports.NeedleButtonElement=e.NeedleButtonElement;exports.NeedleEngine=e.ContextRegistry;exports.NeedleEngineHTMLElement=e.NeedleEngineHTMLElement;Object.defineProperty(exports,"NeedleEngineModelLoader",{enumerable:!0,get:()=>e.NeedleEngineModelLoader});exports.NeedleMenu=e.NeedleMenu;exports.NeedlePatchesKey=e.NeedlePatchesKey;exports.NeedleUSDZExporter=e.USDZExporter$1;exports.NeedleXRController=e.NeedleXRController;exports.NeedleXRSession=e.NeedleXRSession;exports.NeedleXRSync=e.NeedleXRSync;exports.NeedleXRUtils=e.NeedleXRUtils;exports.NestedGltf=e.NestedGltf;exports.NetworkConnection=e.NetworkConnection;exports.NetworkedStreamEvents=e.NetworkedStreamEvents;exports.NetworkedStreams=e.NetworkedStreams;exports.Networking=e.Networking;exports.NewInstanceModel=e.NewInstanceModel;exports.NoiseModule=e.NoiseModule;exports.ObjectRaycaster=e.ObjectRaycaster;exports.ObjectUtils=e.ObjectUtils;exports.OffsetConstraint=e.OffsetConstraint;exports.OneEuroFilter=e.OneEuroFilter;exports.OneEuroFilterXYZ=e.OneEuroFilterXYZ;exports.OpenURL=e.OpenURL;exports.OrbitControls=e.OrbitControls;exports.Outline=e.Outline;exports.OwnershipEvent=e.OwnershipEvent;exports.OwnershipModel=e.OwnershipModel;exports.PUBLIC_KEY=e.PUBLIC_KEY;exports.Padding=e.Padding;exports.ParticleBurst=e.ParticleBurst;exports.ParticleSubEmitter=e.ParticleSubEmitter;exports.ParticleSystem=e.ParticleSystem;exports.ParticleSystemBaseBehaviour=e.ParticleSystemBaseBehaviour;exports.ParticleSystemRenderer=e.ParticleSystemRenderer;exports.ParticleSystemShapeType=e.ParticleSystemShapeType;exports.PeerHandle=e.PeerHandle;exports.PeerNetworking=e.PeerNetworking;exports.Physics=e.Physics;exports.PhysicsExtension=e.PhysicsExtension;exports.PhysicsMaterialCombine=e.PhysicsMaterialCombine;exports.PixelationEffect=e.PixelationEffect;exports.PlayAnimationOnClick=e.PlayAnimationOnClick;exports.PlayAudioOnClick=e.PlayAudioOnClick;exports.PlayableDirector=e.PlayableDirector;exports.PlayerColor=e.PlayerColor;exports.PlayerState=e.PlayerState;exports.PlayerStateEvent=e.PlayerStateEvent;exports.PlayerSync=e.PlayerSync;exports.PlayerView=e.PlayerView;exports.PlayerViewManager=e.PlayerViewManager;exports.PointerEventData=e.PointerEventData;exports.PointerType=e.PointerType;exports.PostProcessingEffect=e.PostProcessingEffect;exports.PostProcessingHandler=e.PostProcessingHandler;exports.PostProcessingManager=e.Volume;exports.PreliminaryAction=e.PreliminaryAction;exports.PreliminaryTrigger=e.PreliminaryTrigger;Object.defineProperty(exports,"PreviewHelper",{enumerable:!0,get:()=>e.PreviewHelper});exports.PrimitiveType=e.PrimitiveType;exports.Progress=e.Progress;exports.PromiseAllWithErrors=e.PromiseAllWithErrors;exports.PromiseErrorResult=e.PromiseErrorResult;exports.RGBAColor=e.RGBAColor;exports.RapierPhysics=e.RapierPhysics;exports.RawImage=e.RawImage;exports.RaycastOptions=e.RaycastOptions;exports.Rect=e.Rect;exports.RectTransform=e.RectTransform;exports.ReflectionProbe=e.ReflectionProbe;exports.RegisteredAnimationInfo=e.RegisteredAnimationInfo;exports.RemoteSkybox=e.RemoteSkybox;exports.RenderTexture=e.RenderTexture;exports.RenderTextureSerializer=e.RenderTextureSerializer;exports.Renderer=e.Renderer;exports.RendererData=e.RendererData;exports.RendererLightmap=e.RendererLightmap;exports.Rigidbody=e.Rigidbody;exports.RigidbodyConstraints=e.RigidbodyConstraints;exports.RoomEvents=e.RoomEvents;exports.RotationBySpeedModule=e.RotationBySpeedModule;exports.RotationOverLifetimeModule=e.RotationOverLifetimeModule;exports.SceneLightSettings=e.SceneLightSettings;exports.SceneSwitcher=e.SceneSwitcher;exports.ScreenCapture=e.ScreenCapture;exports.ScreenSpaceAmbientOcclusion=e.ScreenSpaceAmbientOcclusion;exports.ScreenSpaceAmbientOcclusionN8=e.ScreenSpaceAmbientOcclusionN8;exports.SendQueue=e.SendQueue;exports.SerializationContext=e.SerializationContext;exports.SetActiveOnClick=e.SetActiveOnClick;exports.ShadowCatcher=e.ShadowCatcher;exports.ShapeModule=e.ShapeModule;exports.SharpeningEffect=e.SharpeningEffect;exports.SignalAsset=e.SignalAsset;exports.SignalReceiver=e.SignalReceiver;exports.SignalReceiverEvent=e.SignalReceiverEvent;exports.SignalTrackHandler=e.SignalTrackHandler;exports.Size=e.Size;exports.SizeBySpeedModule=e.SizeBySpeedModule;exports.SizeOverLifetimeModule=e.SizeOverLifetimeModule;exports.SkinnedMeshRenderer=e.SkinnedMeshRenderer;exports.SmoothFollow=e.SmoothFollow;exports.SpatialGrabRaycaster=e.SpatialGrabRaycaster;exports.SpatialHtml=e.SpatialHtml;exports.SpatialTrigger=e.SpatialTrigger;exports.SpatialTriggerReceiver=e.SpatialTriggerReceiver;exports.SpectatorCamera=e.SpectatorCamera;exports.SphereCollider=e.SphereCollider;exports.SphereIntersection=e.SphereIntersection;exports.SphereOverlapResult=e.SphereOverlapResult;exports.Sprite=e.Sprite;exports.SpriteData=e.SpriteData;exports.SpriteRenderer=e.SpriteRenderer;exports.SpriteSheet=e.SpriteSheet;exports.StateMachineBehaviour=e.StateMachineBehaviour;exports.StreamEndedEvent=e.StreamEndedEvent;exports.StreamReceivedEvent=e.StreamReceivedEvent;exports.SubEmitterSystem=e.SubEmitterSystem;exports.SyncedCamera=e.SyncedCamera;exports.SyncedRoom=e.SyncedRoom;exports.SyncedTransform=e.SyncedTransform;exports.TapGestureTrigger=e.TapGestureTrigger;exports.TeleportTarget=e.TeleportTarget;exports.TestRunner=e.TestRunner;exports.TestSceneUtils=e.TestSceneUtils;exports.TestSimulateUserData=e.TestSimulateUserData;exports.Text=e.Text;exports.TextBuilder=e.TextBuilder;exports.TextExtension=e.TextExtension;exports.TextureSheetAnimationModule=e.TextureSheetAnimationModule;exports.TiltShiftEffect=e.TiltShiftEffect;exports.Time=e.Time;exports.ToneMappingEffect=e.ToneMappingEffect;exports.TrackHandler=e.TrackHandler;exports.TrackType=e.TrackType;exports.TrailModule=e.TrailModule;exports.TransformData=e.TransformData;exports.TransformGizmo=e.TransformGizmo;exports.TriggerBuilder=e.TriggerBuilder;exports.TriggerModel=e.TriggerModel;exports.TypeStore=e.TypeStore;exports.UIRaycastUtils=e.UIRaycastUtils;exports.UIRootComponent=e.UIRootComponent;exports.USDDocument=e.USDDocument;exports.USDObject=e.USDObject;exports.USDWriter=e.USDWriter;exports.USDZExporter=e.USDZExporter;exports.USDZText=e.USDZText;exports.USDZUIExtension=e.USDZUIExtension;exports.UriSerializer=e.UriSerializer;exports.UsageMarker=e.UsageMarker;exports.UserJoinedOrLeftRoomModel=e.UserJoinedOrLeftRoomModel;exports.VERSION=e.VERSION;exports.VariantAction=e.VariantAction;exports.VelocityOverLifetimeModule=e.VelocityOverLifetimeModule;exports.VerticalLayoutGroup=e.VerticalLayoutGroup;exports.VideoPlayer=e.VideoPlayer;exports.ViewDevice=e.ViewDevice;exports.Vignette=e.Vignette;exports.VisibilityAction=e.VisibilityAction;exports.Voip=e.Voip;exports.Volume=e.Volume;exports.VolumeParameter=e.VolumeParameter;exports.VolumeProfile=e.VolumeProfile;exports.WaitForFrames=e.WaitForFrames;exports.WaitForPromise=e.WaitForPromise;exports.WaitForSeconds=e.WaitForSeconds;exports.Watch=e.Watch;exports.WebARCameraBackground=e.WebARCameraBackground;exports.WebARSessionRoot=e.WebARSessionRoot;exports.WebXR=e.WebXR;exports.WebXRButtonFactory=e.WebXRButtonFactory;exports.WebXRImageTracking=e.WebXRImageTracking;exports.WebXRImageTrackingModel=e.WebXRImageTrackingModel;exports.WebXRPlaneTracking=e.WebXRPlaneTracking;exports.WebXRTrackedImage=e.WebXRTrackedImage;exports.XRControllerFollow=e.XRControllerFollow;exports.XRControllerModel=e.XRControllerModel;exports.XRControllerMovement=e.XRControllerMovement;exports.XRFlag=e.XRFlag;exports.XRRig=e.XRRig;exports.XRState=e.XRState;exports.XRStateFlag=e.XRStateFlag;exports.__Ignore=e.__Ignore;exports.__internalNotifyObjectDestroyed=e.__internalNotifyObjectDestroyed;exports.activeInHierarchyFieldName=e.activeInHierarchyFieldName;exports.addAttributeChangeCallback=e.addAttributeChangeCallback;exports.addComponent=e.addComponent;exports.addCustomExtensionPlugin=e.addCustomExtensionPlugin;exports.addNewComponent=e.addNewComponent;exports.addPatch=e.addPatch;exports.apply=e.apply;exports.applyHMRChanges=e.applyHMRChanges;exports.applyPrototypeExtensions=e.applyPrototypeExtensions;exports.beginListenDestroy=e.beginListenDestroy;exports.beginListenInstantiate=e.beginListenInstantiate;exports.binaryIdentifierCasts=e.binaryIdentifierCasts;exports.build_scene_functions=e.build_scene_functions;exports.builtinComponentKeyName=e.builtinComponentKeyName;exports.calculateProgress01=e.calculateProgress01;exports.clearBalloonMessages=e.clearMessages;exports.clearOverlayMessages=e.clearMessages;exports.colorSerializer=e.colorSerializer;exports.compareAssociation=e.compareAssociation;exports.componentSerializer=e.componentSerializer;exports.copyTexture=e.copyTexture;exports.createMotion=e.createMotion;exports.debugNet=e.debugNet;exports.debugOwner=e.debugOwner;exports.decompressGpuTexture=e.decompressGpuTexture;exports.deepClone=e.deepClone;exports.delay=e.delay;exports.delayForFrames=e.delayForFrames;exports.deserializeObject=e.deserializeObject;exports.destroy=e.destroy;exports.destroyComponentInstance=e.destroyComponentInstance;exports.determineMimeTypeFromExtension=e.determineMimeTypeFromExtension;exports.disposeObjectResources=e.disposeObjectResources;exports.disposeStream=e.disposeStream;exports.editorGuidKeyName=e.editorGuidKeyName;exports.enableSpatialConsole=e.enableSpatialConsole;exports.euler=e.euler;exports.eventListSerializer=e.eventListSerializer;exports.exportAsGLTF=e.exportAsGLTF;exports.findByGuid=e.findByGuid;exports.findObjectOfType=e.findObjectOfType;exports.findObjectsOfType=e.findObjectsOfType;exports.findResourceUsers=e.findResourceUsers;exports.fitObjectIntoVolume=e.fitObjectIntoVolume;exports.foreachComponent=e.foreachComponent;exports.foreachComponentEnumerator=e.foreachComponentEnumerator;exports.forward=e.forward;exports.generateQRCode=e.generateQRCode;exports.generateSeed=e.generateSeed;exports.getBoundingBox=e.getBoundingBox;exports.getCameraController=e.getCameraController;exports.getComponent=e.getComponent;exports.getComponentInChildren=e.getComponentInChildren;exports.getComponentInParent=e.getComponentInParent;exports.getComponents=e.getComponents;exports.getComponentsInChildren=e.getComponentsInChildren;exports.getComponentsInParent=e.getComponentsInParent;exports.getFormattedDate=e.getFormattedDate;exports.getIconElement=e.getIconElement;exports.getIconTexture=e.getIconTexture;exports.getLoader=e.getLoader;exports.getOrAddComponent=e.getOrAddComponent;exports.getParam=e.getParam;exports.getParentHierarchyPath=e.getParentHierarchyPath;exports.getPath=e.getPath;exports.getPeerOptions=e.getPeerOptions;exports.getPeerjsInstance=e.getPeerjsInstance;exports.getResourceUserCount=e.getResourceUserCount;exports.getTempColor=e.getTempColor;exports.getTempQuaternion=e.getTempQuaternion;exports.getTempVector=e.getTempVector;exports.getUrlParams=e.getUrlParams;exports.getVisibleInCustomShadowRendering=e.getVisibleInCustomShadowRendering;exports.getWorldDirection=e.getWorldDirection;exports.getWorldEuler=e.getWorldEuler;exports.getWorldPosition=e.getWorldPosition;exports.getWorldQuaternion=e.getWorldQuaternion;exports.getWorldRotation=e.getWorldRotation;exports.getWorldScale=e.getWorldScale;exports.hasCommercialLicense=e.hasCommercialLicense;exports.hasIndieLicense=e.hasIndieLicense;exports.hasPointerEventComponent=e.hasPointerEventComponent;exports.hasProLicense=e.hasProLicense;exports.hideDebugConsole=e.hideDebugConsole;exports.imageToCanvas=e.imageToCanvas;exports.instantiate=e.instantiate;exports.invokeLoadedImportPluginHooks=e.invokeLoadedImportPluginHooks;exports.invokeXRSessionEnd=e.invokeXRSessionEnd;exports.invokeXRSessionStart=e.invokeXRSessionStart;exports.isActiveInHierarchy=e.isActiveInHierarchy;exports.isActiveSelf=e.isActiveSelf;exports.isAndroidDevice=e.isAndroidDevice;exports.isAnimationAction=e.isAnimationAction;exports.isComponent=e.isComponent;exports.isDebugMode=e.isDebugMode;exports.isDesktop=e.isDesktop;exports.isDestroyed=e.isDestroyed;exports.isDevEnvironment=e.isDevEnvironment;exports.isDisposed=e.isDisposed;exports.isExporting=e.isExporting;exports.isGLTFModel=e.isGLTFModel;exports.isHostedOnGlitch=e.isHostedOnGlitch;exports.isHotReloadEnabled=e.isHotReloadEnabled;exports.isHotReloading=e.isHotReloading;exports.isIPad=e.isIPad;exports.isIconElement=e.isIconElement;exports.isLocalNetwork=e.isLocalNetwork;exports.isMacOS=e.isMacOS;exports.isMobileDevice=e.isMobileDevice;exports.isMozillaXR=e.isMozillaXR;exports.isQuest=e.isQuest;exports.isResourceTrackingEnabled=e.isResourceTrackingEnabled;exports.isSafari=e.isSafari;exports.isUsingInstancing=e.isUsingInstancing;exports.isiOS=e.isiOS;exports.isiPad=e.isiPad;exports.loadAsset=e.loadAsset;exports.loadSync=e.loadSync;exports.logHierarchy=e.logHierarchy;exports.lookAtInverse=e.lookAtInverse;exports.lookAtObject=e.lookAtObject;exports.lookAtScreenPoint=e.lookAtScreenPoint;exports.makeId=e.makeId;exports.makeIdFromRandomWords=e.makeIdFromRandomWords;exports.makeNameSafeForUSD=e.makeNameSafe;exports.markAsInstancedRendered=e.markAsInstancedRendered;exports.microphonePermissionsGranted=e.microphonePermissionsGranted;exports.nameof=e.nameof;exports.nameofFactory=e.nameofFactory;exports.objectSerializer=e.objectSerializer;exports.offXRSessionEnd=e.offXRSessionEnd;exports.offXRSessionStart=e.offXRSessionStart;exports.onAfterRender=e.onAfterRender;exports.onBeforeRender=e.onBeforeRender;exports.onClear=e.onClear;exports.onDestroy=e.onDestroy;exports.onInitialized=e.onInitialized;exports.onStart=e.onStart;exports.onUpdate=e.onUpdate;exports.onXRSessionEnd=e.onXRSessionEnd;exports.onXRSessionStart=e.onXRSessionStart;exports.parseSync=e.parseSync;exports.placeOnSurface=e.placeOnSurface;exports.postprocessFBXMaterials=e.postprocessFBXMaterials;exports.prefix=e.prefix;exports.pushState=e.pushState;exports.randomNumber=e.randomNumber;exports.registerBinaryType=e.registerBinaryType;exports.registerComponent=e.registerComponent;exports.registerComponentExtension=e.registerComponentExtension;exports.registerCustomEffectType=e.registerCustomEffectType;exports.registerExportExtensions=e.registerExportExtensions;exports.registerExtensions=e.registerExtensions;exports.registerHotReloadType=e.registerHotReloadType;exports.registerLoader=e.registerLoader;exports.registerPrefabProvider=e.registerPrefabProvider;exports.registerPrototypeExtensions=e.registerPrototypeExtensions;exports.registerType=e.registerType;exports.relativePathPrefix=e.relativePathPrefix;exports.removeAttributeChangeCallback=e.removeAttributeChangeCallback;exports.removeComponent=e.removeComponent;exports.removeCustomImportExtensionType=e.removeCustomImportExtensionType;exports.removePatch=e.removePatch;exports.resolveUrl=e.resolveUrl;exports.sanitizeString=e.sanitizeString;exports.saveImage=e.saveImage;exports.screenshot=e.screenshot;exports.screenshot2=e.screenshot2;exports.sendDestroyed=e.sendDestroyed;exports.serializable=e.serializable;exports.serializeObject=e.serializeObject;exports.serializeable=e.serializeable;exports.setActive=e.setActive;exports.setAllowBalloonMessages=e.setAllowBalloonMessages;exports.setAllowOverlayMessages=e.setAllowOverlayMessages;exports.setAutoFitEnabled=e.setAutoFitEnabled;exports.setCameraController=e.setCameraController;exports.setDestroyed=e.setDestroyed;exports.setDevEnvironment=e.setDevEnvironment;exports.setDisposable=e.setDisposable;exports.setDontDestroy=e.setDontDestroy;exports.setOrAddParamsToUrl=e.setOrAddParamsToUrl;exports.setParam=e.setParam;exports.setParamWithoutReload=e.setParamWithoutReload;exports.setPeerOptions=e.setPeerOptions;exports.setResourceTrackingEnabled=e.setResourceTrackingEnabled;exports.setState=e.setState;exports.setVisibleInCustomShadowRendering=e.setVisibleInCustomShadowRendering;exports.setWorldEuler=e.setWorldEuler;exports.setWorldPosition=e.setWorldPosition;exports.setWorldPositionXYZ=e.setWorldPositionXYZ;exports.setWorldQuaternion=e.setWorldQuaternion;exports.setWorldQuaternionXYZW=e.setWorldQuaternionXYZW;exports.setWorldRotation=e.setWorldRotation;exports.setWorldRotationXYZ=e.setWorldRotationXYZ;exports.setWorldScale=e.setWorldScale;exports.showBalloonError=e.showBalloonError;exports.showBalloonMessage=e.showBalloonMessage;exports.showBalloonWarning=e.showBalloonWarning;exports.showDebugConsole=e.showDebugConsole;exports.slerp=e.slerp;exports.syncDestroy=e.syncDestroy;exports.syncField=e.syncField;exports.syncInstantiate=e.syncInstantiate;exports.textureToCanvas=e.textureToCanvas;exports.tryCastBinary=e.tryCastBinary;exports.tryDetermineMimetypeFromBinary=e.tryDetermineMimetypeFromBinary;exports.tryDetermineMimetypeFromURL=e.tryDetermineMimetypeFromURL;exports.tryFindObject=e.tryFindObject;exports.tryGetGuid=e.tryGetGuid;exports.unregisterHotReloadType=e.unregisterHotReloadType;exports.unwatchWrite=e.unwatchWrite;exports.useForAutoFit=e.useForAutoFit;exports.validate=e.validate;exports.watchWrite=e.watchWrite;exports.NEEDLE_progressive=a.NEEDLE_progressive;