{"version":3,"sources":["jsdelivr-header.js","/npm/threedviewer@2.6.0/dist/simple-viewer.umd.js"],"names":[],"mappings":"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GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,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","file":"/npm/threedviewer@2.6.0/dist/simple-viewer.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/threedviewer@2.6.0/dist/simple-viewer.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function(Xe,Se){typeof exports==\"object\"&&typeof module<\"u\"?Se(exports,require(\"react/jsx-runtime\"),require(\"react\"),require(\"three\")):typeof define==\"function\"&&define.amd?define([\"exports\",\"react/jsx-runtime\",\"react\",\"three\"],Se):(Xe=typeof globalThis<\"u\"?globalThis:Xe||self,Se(Xe.SimpleViewer={},Xe.jsxRuntime,Xe.React,Xe.THREE))})(this,function(Xe,Se,ne,h){\"use strict\";function Ys(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:\"Module\"}});if(s){for(const t in s)if(t!==\"default\"){const n=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const S=Ys(h);class H extends Error{constructor(e,t,n){super(e),this.code=t,this.context=n,this.name=\"ThreeViewerError\",this.timestamp=new Date,Error.captureStackTrace&&Error.captureStackTrace(this,H)}static fromError(e,t,n){if(e instanceof H)return e;const r=e instanceof Error?e.message:String(e),o={...n,originalError:e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:e};return new H(r,t,o)}}var te=(s=>(s.SCENE_INIT_FAILED=\"SCENE_INIT_FAILED\",s.RENDERER_INIT_FAILED=\"RENDERER_INIT_FAILED\",s.RENDERER_NOT_INITIALIZED=\"RENDERER_NOT_INITIALIZED\",s.CAMERA_INIT_FAILED=\"CAMERA_INIT_FAILED\",s.WEBGL_NOT_SUPPORTED=\"WEBGL_NOT_SUPPORTED\",s.INITIALIZATION_FAILED=\"INITIALIZATION_FAILED\",s.PATH_TRACING_INIT_FAILED=\"PATH_TRACING_INIT_FAILED\",s.MODEL_LOAD_FAILED=\"MODEL_LOAD_FAILED\",s.TEXTURE_LOAD_FAILED=\"TEXTURE_LOAD_FAILED\",s.RESOURCE_NOT_FOUND=\"RESOURCE_NOT_FOUND\",s.UNSUPPORTED_FORMAT=\"UNSUPPORTED_FORMAT\",s.INVALID_CONFIGURATION=\"INVALID_CONFIGURATION\",s.RENDER_ERROR=\"RENDER_ERROR\",s.RENDER_FAILED=\"RENDER_FAILED\",s.SCENE_OPERATION_FAILED=\"SCENE_OPERATION_FAILED\",s.COMPONENT_NOT_MOUNTED=\"COMPONENT_NOT_MOUNTED\",s.INVALID_STATE=\"INVALID_STATE\",s.INVALID_PARAMETER=\"INVALID_PARAMETER\",s.OPERATION_FAILED=\"OPERATION_FAILED\",s.UNKNOWN=\"UNKNOWN\",s))(te||{});const W={ok(s){return{ok:!0,value:s}},err(s){return{ok:!1,error:s}},wrap(s){try{return W.ok(s())}catch(e){return W.err(e instanceof H?e:new H(String(e),te.UNKNOWN,{originalError:e}))}}};class xn{constructor(){this.listeners=new Map}on(e,t){this.listeners.has(e)||this.listeners.set(e,new Set);const n=this.listeners.get(e);return n&&n.add(t),()=>{var r;(r=this.listeners.get(e))==null||r.delete(t)}}emit(e,t){var n;(n=this.listeners.get(e))==null||n.forEach(r=>{try{r(t)}catch(o){console.error(`Error in event listener for ${String(e)}:`,o)}})}once(e,t){const n=this.on(e,r=>{n(),t(r)});return n}removeAllListeners(e){e?this.listeners.delete(e):this.listeners.clear()}listenerCount(e){var t;return((t=this.listeners.get(e))==null?void 0:t.size)||0}off(e,t){var n;(n=this.listeners.get(e))==null||n.delete(t)}removeListener(e,t){this.off(e,t)}}class Ks{constructor(e={}){this.animationFrameId=null,this.lastRenderTime=0,this.idleTimeout=null,this.isIdle=!1,this.needsRender=!0,this.continuousRenderingEnabled=!1,this.alwaysRender=!1,this.enableIdleDetection=e.enableIdleDetection??!0,this.idleDelay=e.idleDelay??1e3,this.targetFPS=e.targetFPS??60,this.frameInterval=1e3/this.targetFPS,this.enableFrameRateLimiting=e.enableFrameRateLimiting??!0,this.alwaysRender=e.alwaysRender??!1,this.lastRenderTime=performance.now()}requestRender(){this.needsRender=!0,this.wakeUp()}enableContinuousRendering(){this.continuousRenderingEnabled=!0,this.wakeUp()}disableContinuousRendering(){this.continuousRenderingEnabled=!1}setAlwaysRender(e){this.alwaysRender=e,e&&this.wakeUp()}wakeUp(){this.idleTimeout!==null&&(clearTimeout(this.idleTimeout),this.idleTimeout=null),this.isIdle=!1}start(e){if(this.animationFrameId!==null)return;const t=n=>{if(this.animationFrameId===null)return;const r=n-this.lastRenderTime;if(this.enableFrameRateLimiting&&r<this.frameInterval){this.animationFrameId=requestAnimationFrame(t);return}(this.alwaysRender||this.needsRender||this.continuousRenderingEnabled)&&(e(r),this.lastRenderTime=n,this.needsRender=!1,this.enableIdleDetection&&!this.alwaysRender&&(this.wakeUp(),this.continuousRenderingEnabled||(this.idleTimeout=window.setTimeout(()=>{this.isIdle=!0},this.idleDelay)))),this.alwaysRender||!this.enableIdleDetection||!this.isIdle||this.continuousRenderingEnabled||this.needsRender?this.animationFrameId=requestAnimationFrame(t):this.animationFrameId=null};this.animationFrameId=requestAnimationFrame(t)}stop(){this.animationFrameId!==null&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.idleTimeout!==null&&(clearTimeout(this.idleTimeout),this.idleTimeout=null),this.isIdle=!1,this.needsRender=!1,this.continuousRenderingEnabled=!1,this.alwaysRender=!1}isRunning(){return this.animationFrameId!==null}getIsIdle(){return this.isIdle}getNeedsRender(){return this.needsRender||this.continuousRenderingEnabled||this.alwaysRender}}class ii{static serialize(e,t,n,r){const o=t.position,i=n.target||{x:0,y:0,z:0};return{modelUrl:e,cameraPosition:{x:o.x,y:o.y,z:o.z},cameraTarget:{x:i.x,y:i.y,z:i.z},controlsTarget:{x:i.x,y:i.y,z:i.z},rendererSize:{width:r.clientWidth,height:r.clientHeight}}}static async restore(e,t,n,r){t.position.set(e.cameraPosition.x,e.cameraPosition.y,e.cameraPosition.z),t.lookAt({x:e.cameraTarget.x,y:e.cameraTarget.y,z:e.cameraTarget.z,set:()=>{},copy:()=>{},add:()=>{},multiply:()=>{},normalize:()=>{},length:()=>0}),n.target&&n.target.set(e.controlsTarget.x,e.controlsTarget.y,e.controlsTarget.z),n.update&&n.update(),e.modelUrl&&r&&await r(e.modelUrl)}}function st(s){return s!==null&&typeof s==\"object\"&&\"getInternalRenderer\"in s&&typeof s.getInternalRenderer==\"function\"}class $e{constructor(e={}){this.data=Object.freeze({status:\"idle\",currentModel:null,error:null,isInitialized:!1,loadProgress:0,renderInfo:{frameCount:0,fps:0,lastRenderTime:0,averageRenderTime:0},...e})}get status(){return this.data.status}get currentModel(){return this.data.currentModel}get error(){return this.data.error}get isInitialized(){return this.data.isInitialized}get loadProgress(){return this.data.loadProgress}get renderInfo(){return this.data.renderInfo}setInitialized(){return new $e({...this.data,isInitialized:!0,status:\"idle\"})}startLoading(){return new $e({...this.data,status:\"loading\",loadProgress:0,error:null})}updateLoadProgress(e){return new $e({...this.data,loadProgress:Math.min(Math.max(0,e),1)})}setLoaded(e){return new $e({...this.data,status:\"loaded\",currentModel:e,loadProgress:1,error:null})}setError(e){return new $e({...this.data,status:\"error\",error:e,loadProgress:0})}startRendering(){return new $e({...this.data,status:\"rendering\"})}updateRenderInfo(e){return new $e({...this.data,renderInfo:{...this.data.renderInfo,...e}})}dispose(){return new $e({...this.data,status:\"disposed\",currentModel:null})}canLoad(){return this.data.isInitialized&&(this.data.status===\"idle\"||this.data.status===\"loaded\"||this.data.status===\"error\"||this.data.status===\"rendering\")}canRender(){return this.data.isInitialized&&this.data.status===\"loaded\"&&this.data.currentModel!==null}isLoading(){return this.data.status===\"loading\"}hasError(){return this.data.status===\"error\"&&this.data.error!==null}toJSON(){return{...this.data}}}class Xs{constructor(){this.state=new $e,this.stateChangeCallbacks=new Set}getState(){return this.state}setInitialized(){this.updateState(this.state.setInitialized())}startLoading(){this.updateState(this.state.startLoading())}setLoaded(e){this.updateState(this.state.setLoaded(e))}setError(e){this.updateState(this.state.setError(e))}startRendering(){this.updateState(this.state.startRendering())}updateRenderInfo(e){this.updateState(this.state.updateRenderInfo(e))}setDisposed(){this.updateState(this.state.dispose())}canLoad(){return this.state.canLoad()}isInitialized(){return this.state.isInitialized}getStatus(){return this.state.status}getCurrentModel(){return this.state.currentModel}onStateChange(e){return this.stateChangeCallbacks.add(e),()=>{this.stateChangeCallbacks.delete(e)}}clearCallbacks(){this.stateChangeCallbacks.clear()}updateState(e){this.state=e,this.stateChangeCallbacks.forEach(t=>{try{t(e)}catch(n){console.error(\"Error in state change callback:\",n)}})}}class $s{constructor(e){this.screenshotElement=null,this.isShowingScreenshot=!1,this.renderer=e.renderer,this.onRestore=e.onRestore}isActive(){return this.isShowingScreenshot}captureAndReplace(e,t,n,r){if(this.isShowingScreenshot)return;const o=this.renderer.getDomElement(),i=o.toDataURL(\"image/png\"),a=document.createElement(\"img\");a.src=i,a.style.position=\"absolute\",a.style.top=\"0\",a.style.left=\"0\",a.style.width=\"100%\",a.style.height=\"100%\",a.style.pointerEvents=\"auto\",a.style.cursor=\"grab\";const c=o.parentElement;if(c){this.serializedSceneState=ii.serialize(n,e,t,o),o.style.display=\"none\",c.appendChild(a),this.screenshotElement=a,this.isShowingScreenshot=!0;const f=()=>{this.restore()};a.addEventListener(\"mousedown\",f),a.addEventListener(\"touchstart\",f);const d=()=>{this.isShowingScreenshot&&this.restore()};window.addEventListener(\"resize\",d),this.screenshotResizeHandler=d,this.screenshotElement&&this.screenshotElement.src?r==null||r():console.warn(\"[ScreenshotManager] Screenshot capture failed, keeping scene resources\")}}async restore(){if(!this.isShowingScreenshot||!this.screenshotElement)return;const e=this.renderer.getDomElement(),t=this.screenshotElement.parentElement;t&&(this.screenshotResizeHandler&&(window.removeEventListener(\"resize\",this.screenshotResizeHandler),this.screenshotResizeHandler=void 0),t.removeChild(this.screenshotElement),e.style.display=\"\",this.screenshotElement=null,this.isShowingScreenshot=!1,this.onRestore&&await this.onRestore())}getSerializedState(){return this.serializedSceneState}dispose(){this.screenshotResizeHandler&&(window.removeEventListener(\"resize\",this.screenshotResizeHandler),this.screenshotResizeHandler=void 0),this.screenshotElement&&this.screenshotElement.parentElement&&this.screenshotElement.parentElement.removeChild(this.screenshotElement),this.screenshotElement=null,this.isShowingScreenshot=!1,this.serializedSceneState=void 0}}class Qs{constructor(e){this.currentModel=null,this.modelLoader=e.modelLoader,this.scene=e.scene,this.camera=e.camera,this.controls=e.controls,this.floorAlignmentService=e.floorAlignmentService,this.sceneSetupService=e.sceneSetupService,this.autoFitToObject=e.autoFitToObject??!1}getCurrentModel(){return this.currentModel}getLastModelUrl(){return this.lastModelUrl}async loadModel(e,t){const n=performance.now();try{let r;if(typeof e==\"string\"){this.lastModelUrl=e;const a=await this.modelLoader.load(e);if(!a.ok)throw a.error;r=a.value.scene}else r=e;this.currentModel&&(this.scene.remove(this.currentModel),this.disposeObject(this.currentModel));const o=this.scene.add(r);if(!o.ok)throw o.error;if(this.floorAlignmentService){const a=this.floorAlignmentService.alignToFloor(r);a.ok||console.warn(\"Failed to align model to floor:\",a.error)}if(r.traverse(a=>{\"castShadow\"in a&&\"receiveShadow\"in a&&(a.castShadow=!0,a.receiveShadow=!0)}),this.currentModel=r,this.sceneSetupService){const a=this.sceneSetupService.addDynamicGrid(this.scene,r,2);a.ok||console.warn(\"Failed to add dynamic grid:\",a.error)}if(this.autoFitToObject&&this.sceneSetupService){const a=this.sceneSetupService.fitCameraToObject(r,this.camera,this.controls);a.ok||console.warn(\"Failed to fit camera to object:\",a.error)}const i=performance.now()-n;return t.emit(\"model:loaded\",{model:r,loadTime:i}),W.ok(r)}catch(r){const o=r instanceof H?r:new H(\"Failed to load model\",te.MODEL_LOAD_FAILED,{originalError:r,source:e});return t.emit(\"model:error\",{error:o,url:typeof e==\"string\"?e:void 0}),W.err(o)}}disposeCurrentModel(){this.currentModel&&(this.scene.remove(this.currentModel),this.disposeObject(this.currentModel),this.currentModel=null)}disposeObject(e){e.traverse(t=>{var n,r,o;if(\"geometry\"in t&&((n=t.geometry)!=null&&n.dispose)&&((o=(r=t.geometry)==null?void 0:r.dispose)==null||o.call(r)),\"material\"in t&&t.material){const i=t.material;Array.isArray(i)?i.forEach(a=>{var c;(c=a.dispose)==null||c.call(a)}):i!=null&&i.dispose&&i.dispose()}}),e.dispose()}dispose(){this.disposeCurrentModel(),this.lastModelUrl=void 0}}class rr{static getMemoryInfo(){const e=performance;return e.memory?{jsHeapUsed:Math.round(e.memory.usedJSHeapSize/1048576),jsHeapTotal:Math.round(e.memory.totalJSHeapSize/1048576),jsHeapLimit:Math.round(e.memory.jsHeapSizeLimit/1048576)}:null}static formatBytes(e){return e<1024?e+\" B\":e<1048576?(e/1024).toFixed(1)+\" KB\":e<1073741824?(e/1048576).toFixed(1)+\" MB\":(e/1073741824).toFixed(1)+\" GB\"}static logMemoryUsage(e=\"Memory\"){const t=this.getMemoryInfo();t&&t.webglMemory}static startMonitoring(e=5e3,t=\"MemoryMonitor\"){const n=setInterval(()=>{this.getMemoryInfo()},e);return()=>clearInterval(n)}}class Js{constructor(e){this.scene=e.scene,this.pathTracingService=e.pathTracingService,this.environmentService=e.environmentService}updateServices(e){e.pathTracingService&&(this.pathTracingService=e.pathTracingService),e.environmentService&&(this.environmentService=e.environmentService)}disposeSceneResources(e=!1){rr.logMemoryUsage(\"Before scene disposal\"),!e&&this.pathTracingService,this.environmentService&&this.environmentService.dispose(),this.scene.traverse&&this.scene.traverse(t=>{var n,r,o,i;\"geometry\"in t&&t.geometry&&((r=(n=t.geometry).dispose)==null||r.call(n)),\"material\"in t&&t.material&&(Array.isArray(t.material)?t.material.forEach(a=>{var c;(c=a.dispose)==null||c.call(a)}):(i=(o=t.material).dispose)==null||i.call(o))}),this.scene.clear&&this.scene.clear(),this.triggerGarbageCollection(),rr.logMemoryUsage(\"After scene disposal\"),setTimeout(()=>{rr.logMemoryUsage(\"After GC delay\")},2e3)}disposeServices(){this.pathTracingService&&(this.pathTracingService.dispose(),this.pathTracingService=void 0),this.environmentService&&(this.environmentService.dispose(),this.environmentService=void 0)}dispose(){this.disposeServices(),this.scene.clear&&this.scene.clear(),this.triggerGarbageCollection()}triggerGarbageCollection(){var e;globalThis.gc&&((e=globalThis.gc)==null||e.call(globalThis))}}class Hs{constructor(e){var r;this.lastFrameTime=0,this.frameCount=0,this.pathTracingCompleteHandled=!1,this.disposed=!1,this.renderer=e.renderer,this.scene=e.scene,this.camera=e.camera,this.controls=e.controls,this.options=e.options,this.rendererOptions=e.rendererOptions,this.sceneSetupService=e.sceneSetupService,this.environmentService=e.environmentService,this.pathTracingService=e.pathTracingService,this.stateManager=new Xs,this.screenshotManager=new $s({renderer:this.renderer,onRestore:async()=>{await this.restoreFromScreenshot()}}),this.modelManager=new Qs({modelLoader:e.modelLoader,scene:this.scene,camera:this.camera,controls:this.controls,floorAlignmentService:e.floorAlignmentService,sceneSetupService:this.sceneSetupService,autoFitToObject:(r=this.options.camera)==null?void 0:r.autoFitToObject}),this.resourceManager=new Js({scene:this.scene,pathTracingService:this.pathTracingService,environmentService:this.environmentService}),this.events=new xn;const t=this.options.rendering||{},n=this.options.staticScene!==!1;this.renderLoopManager=new Ks({enableIdleDetection:t.enableIdleDetection??n,idleDelay:t.idleDelay,targetFPS:t.targetFPS,enableFrameRateLimiting:t.enableFrameRateLimiting,alwaysRender:!1})}async initialize(){var e,t,n,r,o,i,a,c,f,d,u,l;try{const g=this.rendererOptions||{},y=this.renderer.initialize(g);if(!y.ok)return y;if(this.sceneSetupService){if(this.options.helpers){const b={grid:this.options.helpers.grid,axes:this.options.helpers.axes,gridColor:\"#AAAAAA\"},T=this.sceneSetupService.addHelpers(this.scene,b);T.ok||console.warn(\"Failed to add helpers:\",T.error)}const m=this.options.lighting;if(m){const b={ambient:m.ambientLight?{color:String(m.ambientLight.color),intensity:m.ambientLight.intensity}:void 0,hemisphere:m.hemisphereLight?{skyColor:String(m.hemisphereLight.skyColor),groundColor:String(m.hemisphereLight.groundColor),intensity:m.hemisphereLight.intensity}:void 0,directional:m.directionalLight?{color:String(m.directionalLight.color),intensity:m.directionalLight.intensity,position:Array.isArray(m.directionalLight.position)?m.directionalLight.position:void 0,castShadow:m.directionalLight.castShadow,shadow:m.directionalLight.shadow}:void 0},T=this.sceneSetupService.addLighting(this.scene,b);T.ok||console.warn(\"Failed to add lighting:\",T.error)}const x=(e=this.options.environment)==null?void 0:e.url;if(this.options.backgroundColor&&!x&&this.sceneSetupService){const b=this.sceneSetupService.createGradientBackground(this.scene,{topColor:String(this.options.backgroundColor),bottomColor:String(this.options.backgroundColor)});b.ok||console.warn(\"Failed to set background:\",b.error)}}if(this.environmentService){const m=await this.environmentService.initialize({renderer:this.renderer,autoDispose:!0});m.ok||console.warn(\"Failed to initialize environment service:\",m.error);const x=(t=this.options.environment)==null?void 0:t.url;if(x){const b=await this.environmentService.loadEnvironmentMap(x);b.ok?this.environmentService.applyToScene(this.scene,b.value,{backgroundBlurriness:(n=this.options.environment)==null?void 0:n.backgroundBlurriness,backgroundIntensity:(r=this.options.environment)==null?void 0:r.backgroundIntensity,environmentIntensity:(o=this.options.environment)==null?void 0:o.environmentIntensity}):console.warn(\"Failed to load environment map:\",b.error)}else if((i=this.options.helpers)!=null&&i.studioEnvironment){const b=this.environmentService.createStudioEnvironment();if(b.ok){if(this.environmentService.applyToScene(this.scene,b.value,{backgroundBlurriness:(a=this.options.environment)==null?void 0:a.backgroundBlurriness,backgroundIntensity:(c=this.options.environment)==null?void 0:c.backgroundIntensity,environmentIntensity:(f=this.options.environment)==null?void 0:f.environmentIntensity}),(d=this.options.helpers)!=null&&d.darkStudioMode&&this.sceneSetupService){const T=\"#1a1a1f\",M=this.sceneSetupService.createGradientBackground(this.scene,{topColor:T,bottomColor:T});M.ok||console.warn(\"Failed to set dark studio background:\",M.error)}}else console.warn(\"Failed to create studio environment:\",b.error)}}const w=((u=this.options.pathTracing)==null?void 0:u.enabled)??!1;if(this.pathTracingService&&w){const m=await this.pathTracingService.initialize({enabled:!0,renderer:this.renderer});m.ok?(this.options.pathTracing&&this.pathTracingService.updateSettings({samples:this.options.pathTracing.maxSamples??300,bounces:this.options.pathTracing.bounces,transmissiveBounces:this.options.pathTracing.transmissiveBounces,renderScale:this.options.pathTracing.renderScale,lowResScale:this.options.pathTracing.lowResScale,dynamicLowRes:this.options.pathTracing.dynamicLowRes,enablePathTracing:this.options.pathTracing.enabled??w}),this.pathTracingService.events.on(\"pathtracing:paused\",x=>{this.renderLoopManager.disableContinuousRendering(),this.options.staticScene||this.renderLoopManager.setAlwaysRender(!1),setTimeout(()=>{this.renderLoopManager.stop()},100)})):console.warn(\"Failed to initialize path tracing:\",m.error)}if(this.stateManager.setInitialized(),this.startRenderLoop(),!this.options.staticScene)this.renderLoopManager.setAlwaysRender(!0);else{const m=((l=this.options.pathTracing)==null?void 0:l.enabled)??!1;this.pathTracingService&&m&&this.renderLoopManager.enableContinuousRendering()}return this.renderLoopManager.requestRender(),W.ok(void 0)}catch(g){const y=new H(\"Failed to initialize viewer\",te.INITIALIZATION_FAILED,{originalError:g});return this.stateManager.setError(y),this.events.emit(\"error\",{error:y}),W.err(y)}}async loadModel(e){var t;if(!this.stateManager.canLoad())return W.err(new H(\"Cannot load model in current state\",te.INVALID_STATE,{currentState:this.stateManager.getStatus(),isInitialized:this.stateManager.isInitialized()}));try{this.stateManager.startLoading();const n=await this.modelManager.loadModel(e,this.events);if(n.ok){this.stateManager.setLoaded(n.value),this.renderLoopManager.requestRender();const r=((t=this.options.pathTracing)==null?void 0:t.enabled)??!1;return this.pathTracingService&&r&&(this.pathTracingService.reset(),this.pathTracingCompleteHandled=!1),W.ok(void 0)}else return this.stateManager.setError(n.error),n}catch(n){const r=n instanceof H?n:new H(\"Failed to load model\",te.MODEL_LOAD_FAILED,{originalError:n,source:e});return this.stateManager.setError(r),W.err(r)}}startRenderLoop(){this.renderLoopManager.start(e=>{var f,d,u,l,g;if(this.disposed){this.renderLoopManager.stop();return}if(!this.stateManager.isInitialized()||this.stateManager.getStatus()===\"error\")return;if(!this.renderer||this.renderer.renderer===null){this.renderLoopManager.stop();return}this.frameCount%60;const t=performance.now(),n=e>0?1e3/e:0;if(this.controls.update()){this.events.emit(\"controls:change\",{controls:this.controls});const y=((f=this.options.pathTracing)==null?void 0:f.enabled)??!1;this.pathTracingService&&y&&(this.pathTracingService.reset(),this.pathTracingCompleteHandled=!1),this.renderLoopManager.requestRender()}const o=((d=this.pathTracingService)==null?void 0:d.isEnabled())||!1,i=((u=this.pathTracingService)==null?void 0:u.getSampleCount())||0,a=((l=this.options.pathTracing)==null?void 0:l.maxSamples)??300;if(this.renderFrame().catch(y=>{console.error(\"[ViewerCore] Render frame error:\",y)}),(((g=this.pathTracingService)==null?void 0:g.getSampleCount())||0)>=a&&!this.pathTracingCompleteHandled&&o){if(this.pathTracingCompleteHandled=!0,this.renderLoopManager.disableContinuousRendering(),this.options.staticScene||this.renderLoopManager.setAlwaysRender(!1),this.events.emit(\"pathtracing:complete\",{samples:i,totalTime:t-(this.pathTracingStartTime||0)}),this.options.replaceWithScreenshotOnComplete)setTimeout(()=>{this.replaceWithScreenshot(),setTimeout(()=>{this.renderLoopManager.stop()},200)},100);else if(this.renderLoopManager.requestRender(),setTimeout(()=>{this.renderLoopManager.stop()},100),st(this.renderer)){const y=this.renderer.getInternalRenderer();y&&(y.autoClear=!1)}}this.frameCount++,this.stateManager.updateRenderInfo({frameCount:this.frameCount,fps:Math.round(n),lastRenderTime:performance.now()-t}),this.lastFrameTime=t})}stopRenderLoop(){this.renderLoopManager.stop()}async renderFrame(){var f,d,u,l;const e=performance.now();if(!this.renderer||!this.scene||!this.camera){console.warn(\"[ViewerCore] Cannot render - components not initialized\");return}if(this.screenshotManager.isActive())return;this.stateManager.startRendering();let t;const n=((f=this.pathTracingService)==null?void 0:f.isEnabled())||!1,r=((d=this.pathTracingService)==null?void 0:d.getSampleCount())||0,o=((u=this.options.pathTracing)==null?void 0:u.maxSamples)??300;if(this.pathTracingService&&!this.pathTracingService.isPathTracerDisposed()&&(n||r>=o&&r>0)&&this.pathTracingService?(this.pathTracingService.getSampleCount()===0&&(this.pathTracingStartTime=performance.now()),t=await this.pathTracingService.render(this.scene,this.camera)):t=this.renderer.render(this.scene,this.camera),!t.ok){console.error(\"[ViewerCore] Render failed:\",t.error),this.events.emit(\"error\",{error:t.error});return}const a=performance.now()-e,c=((l=this.pathTracingService)==null?void 0:l.getSampleCount())||0;this.events.emit(\"render:complete\",{frame:this.frameCount,renderTime:a,samples:c})}resize(e,t){var o;const n=this.renderer.getDomElement();if(n.width===e&&n.height===t)return;const r=(o=this.pathTracingService)==null?void 0:o.isEnabled();this.pathTracingService&&this.pathTracingService.hasImageOverlay()&&(this.pathTracingService.removeImageOverlay(),this.pathTracingService.reset()),this.camera.type===\"perspective\"&&\"aspect\"in this.camera&&(this.camera.aspect=e/t),this.camera.updateProjectionMatrix(),this.renderer.setSize(e,t);try{this.renderer.render(this.scene,this.camera)}catch{}r&&this.pathTracingService&&this.pathTracingService.setEnabled(!0),this.renderLoopManager.requestRender()}getState(){return this.stateManager.getState()}onStateChange(e){return this.stateManager.onStateChange(e)}getEvents(){return this.events}getDomElement(){return this.renderer.getDomElement()}replaceWithScreenshot(){const e=this.modelManager.getLastModelUrl();this.screenshotManager.captureAndReplace(this.camera,this.controls,e,()=>{this.modelManager.disposeCurrentModel(),this.resourceManager.disposeSceneResources(!0)})}async restoreFromScreenshot(){var t;const e=this.screenshotManager.getSerializedState();!this.pathTracingService&&((t=this.options.pathTracing)!=null&&t.enabled)&&console.warn(\"[ViewerCore] Cannot recreate path tracing service - feature disabled\"),e&&await ii.restore(e,this.camera,this.controls,async n=>{const r=await this.loadModel(n);r.ok||console.error(\"[ViewerCore] Failed to reload model:\",r.error)}),this.renderLoopManager.isRunning()||this.startRenderLoop(),this.renderLoopManager.requestRender()}dispose(){this.disposed=!0,this.stopRenderLoop(),this.modelManager.dispose(),this.resourceManager.dispose(),this.screenshotManager.dispose(),this.scene.clear(),this.controls.dispose(),this.renderer.dispose(),this.stateManager.setDisposed(),this.events.removeAllListeners(),this.stateManager.clearCallbacks()}}class dt{constructor(e){this.vector=e}get x(){return this.vector.x}set x(e){this.vector.x=e}get y(){return this.vector.y}set y(e){this.vector.y=e}get z(){return this.vector.z}set z(e){this.vector.z=e}set(e,t,n){this.vector.set(e,t,n)}copy(e){this.vector.set(e.x,e.y,e.z)}add(e){this.vector.x+=e.x,this.vector.y+=e.y,this.vector.z+=e.z}multiply(e){this.vector.x*=e.x,this.vector.y*=e.y,this.vector.z*=e.z}normalize(){this.vector.normalize()}length(){return this.vector.length()}getThreeVector(){return this.vector}static fromThreeVector(e){return new dt(e)}static create(e=0,t=0,n=0){return new dt(new S.Vector3(e,t,n))}}class Fe{constructor(e){this.object=e,this.positionAdapter=dt.fromThreeVector(e.position),this.rotationAdapter=dt.fromThreeVector(e.rotation),this.scaleAdapter=dt.fromThreeVector(e.scale)}get id(){return this.object.uuid}get name(){return this.object.name}set name(e){this.object.name=e}get visible(){return this.object.visible}set visible(e){this.object.visible=e}get position(){return this.positionAdapter}get rotation(){return this.rotationAdapter}get scale(){return this.scaleAdapter}add(e){try{return e instanceof Fe?(this.object.add(e.getThreeObject()),W.ok(void 0)):W.err(new H(\"Child must be a ThreeObject3DAdapter\",te.INVALID_PARAMETER))}catch(t){return W.err(new H(\"Failed to add child object\",te.SCENE_OPERATION_FAILED,{originalError:t}))}}remove(e){try{return e instanceof Fe?(this.object.remove(e.getThreeObject()),W.ok(void 0)):W.err(new H(\"Child must be a ThreeObject3DAdapter\",te.INVALID_PARAMETER))}catch(t){return W.err(new H(\"Failed to remove child object\",te.SCENE_OPERATION_FAILED,{originalError:t}))}}traverse(e){this.object.traverse(t=>{e(new Fe(t))})}clone(){return new Fe(this.object.clone())}dispose(){this.object.traverse(e=>{var t;e instanceof S.Mesh&&((t=e.geometry)==null||t.dispose(),e.material&&(Array.isArray(e.material)?e.material.forEach(n=>n.dispose()):e.material.dispose()))})}getThreeObject(){return this.object}static fromThreeObject(e){return new Fe(e)}static create(){return new Fe(new S.Object3D)}}class St{constructor(e){this.scene=e||new S.Scene}get id(){return this.scene.uuid}get name(){return this.scene.name}set name(e){this.scene.name=e}add(e){try{return e instanceof Fe?(this.scene.add(e.getThreeObject()),W.ok(void 0)):W.err(new H(\"Object must be a ThreeObject3DAdapter\",te.INVALID_PARAMETER))}catch(t){return W.err(new H(\"Failed to add object to scene\",te.SCENE_OPERATION_FAILED,{originalError:t}))}}remove(e){try{return e instanceof Fe?(this.scene.remove(e.getThreeObject()),W.ok(void 0)):W.err(new H(\"Object must be a ThreeObject3DAdapter\",te.INVALID_PARAMETER))}catch(t){return W.err(new H(\"Failed to remove object from scene\",te.SCENE_OPERATION_FAILED,{originalError:t}))}}clear(){for(;this.scene.children.length>0;)this.scene.remove(this.scene.children[0])}traverse(e){this.scene.traverse(t=>{e(new Fe(t))})}get background(){return this.scene.background instanceof S.Color?new ir(this.scene.background):this.scene.background instanceof S.Texture?new bn(this.scene.background):null}set background(e){e instanceof ir?this.scene.background=e.getThreeColor():e instanceof bn?this.scene.background=e.getThreeTexture():this.scene.background=null}get fog(){return this.scene.fog?new si(this.scene.fog):null}set fog(e){e instanceof si?this.scene.fog=e.getThreeFog():this.scene.fog=null}get environment(){return this.scene.environment?new bn(this.scene.environment):null}set environment(e){e instanceof bn?this.scene.environment=e.getThreeTexture():this.scene.environment=null}getInternalRenderer(){return this.scene}getThreeScene(){return this.scene}}class ir{constructor(e){this.color=e}get r(){return this.color.r}set r(e){this.color.r=e}get g(){return this.color.g}set g(e){this.color.g=e}get b(){return this.color.b}set b(e){this.color.b=e}setHex(e){this.color.setHex(e)}setRGB(e,t,n){this.color.setRGB(e,t,n)}getHex(){return this.color.getHex()}getThreeColor(){return this.color}}let bn=class{constructor(e){this.texture=e}get id(){return this.texture.uuid}get image(){return this.texture.image||null}get needsUpdate(){return this.texture.needsUpdate}set needsUpdate(e){this.texture.needsUpdate=e}dispose(){this.texture.dispose()}getThreeTexture(){return this.texture}};class si{constructor(e){this.fog=e}get color(){return new ir(this.fog.color)}get near(){return this.fog.near||0}get far(){return this.fog.far||1e3}getThreeFog(){return this.fog}}class sr extends Fe{constructor(e){super(e),this.camera=e}get near(){return this.camera instanceof S.PerspectiveCamera||this.camera instanceof S.OrthographicCamera?this.camera.near:.1}set near(e){(this.camera instanceof S.PerspectiveCamera||this.camera instanceof S.OrthographicCamera)&&(this.camera.near=e)}get far(){return this.camera instanceof S.PerspectiveCamera||this.camera instanceof S.OrthographicCamera?this.camera.far:1e3}set far(e){(this.camera instanceof S.PerspectiveCamera||this.camera instanceof S.OrthographicCamera)&&(this.camera.far=e)}lookAt(e){e instanceof dt?this.camera.lookAt(e.getThreeVector()):this.camera.lookAt(e.x,e.y,e.z)}updateProjectionMatrix(){(this.camera instanceof S.PerspectiveCamera||this.camera instanceof S.OrthographicCamera)&&this.camera.updateProjectionMatrix()}getWorldDirection(e){const t=new S.Vector3;this.camera.getWorldDirection(t),e.set(t.x,t.y,t.z)}getInternalRenderer(){return this.camera}getThreeCamera(){return this.camera}}class or extends sr{constructor(e){const t=e||new S.PerspectiveCamera;super(t),this.perspectiveCamera=t}get type(){return\"perspective\"}get fov(){return this.perspectiveCamera.fov}set fov(e){this.perspectiveCamera.fov=e}get aspect(){return this.perspectiveCamera.aspect}set aspect(e){this.perspectiveCamera.aspect=e}static create(e=75,t=1,n=.1,r=1e3){return new or(new S.PerspectiveCamera(e,t,n,r))}}function eo(){const s=\"0123456789abcdef\";return Array.from(\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\",t=>t===\"x\"?s[Math.floor(Math.random()*16)]:t===\"y\"?(Math.floor(Math.random()*16)&3|8).toString(16):t).join(\"\")}class to{constructor(e){this.renderer=null,this._id=eo(),this.canvas=e}get id(){return this._id}initialize(e){try{if(this.renderer=new S.WebGLRenderer({canvas:this.canvas,antialias:e.antialias??!0,alpha:e.alpha??!1,premultipliedAlpha:e.premultipliedAlpha??!0,preserveDrawingBuffer:e.preserveDrawingBuffer??!1,powerPreference:e.powerPreference??\"default\"}),e.shadowMap&&(this.renderer.shadowMap.enabled=e.shadowMap.enabled,this.renderer.shadowMap.autoUpdate=!0,e.shadowMap.type)){const t={basic:S.BasicShadowMap,pcf:S.PCFShadowMap,pcfsoft:S.PCFSoftShadowMap,vsm:S.VSMShadowMap};this.renderer.shadowMap.type=t[e.shadowMap.type]}if(e.toneMapping){const t={none:S.NoToneMapping,linear:S.LinearToneMapping,reinhard:S.ReinhardToneMapping,cineon:S.CineonToneMapping,aces:S.ACESFilmicToneMapping};this.renderer.toneMapping=t[e.toneMapping.type],this.renderer.toneMappingExposure=e.toneMapping.exposure}if(e.pixelRatio!==void 0?this.renderer.setPixelRatio(e.pixelRatio):this.renderer.setPixelRatio(window.devicePixelRatio),this.canvas){const{clientWidth:t,clientHeight:n}=this.canvas.parentElement||this.canvas;t&&n&&this.renderer.setSize(t,n)}return this.renderer.outputColorSpace=S.SRGBColorSpace,W.ok(void 0)}catch(t){return W.err(new H(\"Failed to initialize renderer\",te.RENDERER_INIT_FAILED,{originalError:t,options:e}))}}render(e,t){if(!this.renderer)return W.err(new H(\"Renderer not initialized\",te.RENDERER_NOT_INITIALIZED));try{if(!(e instanceof St))return W.err(new H(\"Scene must be a ThreeSceneAdapter\",te.INVALID_PARAMETER));if(!(t instanceof sr))return W.err(new H(\"Camera must be a ThreeCameraAdapter\",te.INVALID_PARAMETER));const n=e.getThreeScene(),r=t.getThreeCamera();return this.renderer.__pathTracingActive||this.renderer.render(n,r),W.ok(void 0)}catch(n){return W.err(new H(\"Failed to render frame\",te.RENDER_FAILED,{originalError:n}))}}setSize(e,t){if(this.renderer){this.renderer.setSize(e,t,!1);const n=this.renderer.domElement;n.style.width=\"100%\",n.style.height=\"100%\"}}setPixelRatio(e){this.renderer&&this.renderer.setPixelRatio(e)}getDomElement(){if(!this.renderer)throw new Error(\"Renderer not initialized\");return this.renderer.domElement}getContext(){if(!this.renderer)throw new Error(\"Renderer not initialized\");return this.renderer.getContext()}get capabilities(){if(!this.renderer)return{maxTextureSize:0,maxCubemapSize:0,maxAttributes:0,maxVertexUniforms:0,maxFragmentUniforms:0,maxSamples:0,isWebGL2:!1};const e=this.renderer.capabilities;return{maxTextureSize:e.maxTextureSize,maxCubemapSize:e.maxCubemapSize,maxAttributes:e.maxAttributes,maxVertexUniforms:e.maxVertexUniforms,maxFragmentUniforms:e.maxFragmentUniforms,maxSamples:e.maxSamples||0,isWebGL2:e.isWebGL2}}dispose(){this.renderer&&(this.renderer.dispose(),this.renderer=null)}getInternalRenderer(){return this.renderer}getThreeRenderer(){return this.getInternalRenderer()}}function oi(s,e){if(e===h.TrianglesDrawMode)return console.warn(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.\"),s;if(e===h.TriangleFanDrawMode||e===h.TriangleStripDrawMode){let t=s.getIndex();if(t===null){const i=[],a=s.getAttribute(\"position\");if(a!==void 0){for(let c=0;c<a.count;c++)i.push(c);s.setIndex(i),t=s.getIndex()}else return console.error(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.\"),s}const n=t.count-2,r=[];if(e===h.TriangleFanDrawMode)for(let i=1;i<=n;i++)r.push(t.getX(0)),r.push(t.getX(i)),r.push(t.getX(i+1));else for(let i=0;i<n;i++)i%2===0?(r.push(t.getX(i)),r.push(t.getX(i+1)),r.push(t.getX(i+2))):(r.push(t.getX(i+2)),r.push(t.getX(i+1)),r.push(t.getX(i)));r.length/3!==n&&console.error(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.\");const o=s.clone();return o.setIndex(r),o.clearGroups(),o}else return console.error(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:\",e),s}class no extends h.Loader{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(t){return new ao(t)}),this.register(function(t){return new co(t)}),this.register(function(t){return new yo(t)}),this.register(function(t){return new xo(t)}),this.register(function(t){return new bo(t)}),this.register(function(t){return new uo(t)}),this.register(function(t){return new ho(t)}),this.register(function(t){return new fo(t)}),this.register(function(t){return new po(t)}),this.register(function(t){return new oo(t)}),this.register(function(t){return new mo(t)}),this.register(function(t){return new lo(t)}),this.register(function(t){return new vo(t)}),this.register(function(t){return new go(t)}),this.register(function(t){return new io(t)}),this.register(function(t){return new wo(t)}),this.register(function(t){return new _o(t)})}load(e,t,n,r){const o=this;let i;if(this.resourcePath!==\"\")i=this.resourcePath;else if(this.path!==\"\"){const f=h.LoaderUtils.extractUrlBase(e);i=h.LoaderUtils.resolveURL(f,this.path)}else i=h.LoaderUtils.extractUrlBase(e);this.manager.itemStart(e);const a=function(f){r?r(f):console.error(f),o.manager.itemError(e),o.manager.itemEnd(e)},c=new h.FileLoader(this.manager);c.setPath(this.path),c.setResponseType(\"arraybuffer\"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(e,function(f){try{o.parse(f,i,function(d){t(d),o.manager.itemEnd(e)},a)}catch(d){a(d)}},n,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,r){let o;const i={},a={},c=new TextDecoder;if(typeof e==\"string\")o=JSON.parse(e);else if(e instanceof ArrayBuffer)if(c.decode(new Uint8Array(e,0,4))===ai){try{i[ie.KHR_BINARY_GLTF]=new To(e)}catch(u){r&&r(u);return}o=JSON.parse(i[ie.KHR_BINARY_GLTF].content)}else o=JSON.parse(c.decode(e));else o=e;if(o.asset===void 0||o.asset.version[0]<2){r&&r(new Error(\"THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.\"));return}const f=new ko(o,{path:t||this.resourcePath||\"\",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});f.fileLoader.setRequestHeader(this.requestHeader);for(let d=0;d<this.pluginCallbacks.length;d++){const u=this.pluginCallbacks[d](f);u.name||console.error(\"THREE.GLTFLoader: Invalid plugin found: missing name\"),a[u.name]=u,i[u.name]=!0}if(o.extensionsUsed)for(let d=0;d<o.extensionsUsed.length;++d){const u=o.extensionsUsed[d],l=o.extensionsRequired||[];switch(u){case ie.KHR_MATERIALS_UNLIT:i[u]=new so;break;case ie.KHR_DRACO_MESH_COMPRESSION:i[u]=new So(o,this.dracoLoader);break;case ie.KHR_TEXTURE_TRANSFORM:i[u]=new Mo;break;case ie.KHR_MESH_QUANTIZATION:i[u]=new Ao;break;default:l.indexOf(u)>=0&&a[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension \"'+u+'\".')}}f.setExtensions(i),f.setPlugins(a),f.parse(n,r)}parseAsync(e,t){const n=this;return new Promise(function(r,o){n.parse(e,t,r,o)})}}function ro(){let s={};return{get:function(e){return s[e]},add:function(e,t){s[e]=t},remove:function(e){delete s[e]},removeAll:function(){s={}}}}const ie={KHR_BINARY_GLTF:\"KHR_binary_glTF\",KHR_DRACO_MESH_COMPRESSION:\"KHR_draco_mesh_compression\",KHR_LIGHTS_PUNCTUAL:\"KHR_lights_punctual\",KHR_MATERIALS_CLEARCOAT:\"KHR_materials_clearcoat\",KHR_MATERIALS_DISPERSION:\"KHR_materials_dispersion\",KHR_MATERIALS_IOR:\"KHR_materials_ior\",KHR_MATERIALS_SHEEN:\"KHR_materials_sheen\",KHR_MATERIALS_SPECULAR:\"KHR_materials_specular\",KHR_MATERIALS_TRANSMISSION:\"KHR_materials_transmission\",KHR_MATERIALS_IRIDESCENCE:\"KHR_materials_iridescence\",KHR_MATERIALS_ANISOTROPY:\"KHR_materials_anisotropy\",KHR_MATERIALS_UNLIT:\"KHR_materials_unlit\",KHR_MATERIALS_VOLUME:\"KHR_materials_volume\",KHR_TEXTURE_BASISU:\"KHR_texture_basisu\",KHR_TEXTURE_TRANSFORM:\"KHR_texture_transform\",KHR_MESH_QUANTIZATION:\"KHR_mesh_quantization\",KHR_MATERIALS_EMISSIVE_STRENGTH:\"KHR_materials_emissive_strength\",EXT_MATERIALS_BUMP:\"EXT_materials_bump\",EXT_TEXTURE_WEBP:\"EXT_texture_webp\",EXT_TEXTURE_AVIF:\"EXT_texture_avif\",EXT_MESHOPT_COMPRESSION:\"EXT_meshopt_compression\",EXT_MESH_GPU_INSTANCING:\"EXT_mesh_gpu_instancing\"};class io{constructor(e){this.parser=e,this.name=ie.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n<r;n++){const o=t[n];o.extensions&&o.extensions[this.name]&&o.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,o.extensions[this.name].light)}}_loadLight(e){const t=this.parser,n=\"light:\"+e;let r=t.cache.get(n);if(r)return r;const o=t.json,c=((o.extensions&&o.extensions[this.name]||{}).lights||[])[e];let f;const d=new h.Color(16777215);c.color!==void 0&&d.setRGB(c.color[0],c.color[1],c.color[2],h.LinearSRGBColorSpace);const u=c.range!==void 0?c.range:0;switch(c.type){case\"directional\":f=new h.DirectionalLight(d),f.target.position.set(0,0,-1),f.add(f.target);break;case\"point\":f=new h.PointLight(d),f.distance=u;break;case\"spot\":f=new h.SpotLight(d),f.distance=u,c.spot=c.spot||{},c.spot.innerConeAngle=c.spot.innerConeAngle!==void 0?c.spot.innerConeAngle:0,c.spot.outerConeAngle=c.spot.outerConeAngle!==void 0?c.spot.outerConeAngle:Math.PI/4,f.angle=c.spot.outerConeAngle,f.penumbra=1-c.spot.innerConeAngle/c.spot.outerConeAngle,f.target.position.set(0,0,-1),f.add(f.target);break;default:throw new Error(\"THREE.GLTFLoader: Unexpected light type: \"+c.type)}return f.position.set(0,0,0),ot(f,c),c.intensity!==void 0&&(f.intensity=c.intensity),f.name=t.createUniqueName(c.name||\"light_\"+e),r=Promise.resolve(f),t.cache.add(n,r),r}getDependency(e,t){if(e===\"light\")return this._loadLight(t)}createNodeAttachment(e){const t=this,n=this.parser,o=n.json.nodes[e],a=(o.extensions&&o.extensions[this.name]||{}).light;return a===void 0?null:this._loadLight(a).then(function(c){return n._getNodeRef(t.cache,a,c)})}}class so{constructor(){this.name=ie.KHR_MATERIALS_UNLIT}getMaterialType(){return h.MeshBasicMaterial}extendParams(e,t,n){const r=[];e.color=new h.Color(1,1,1),e.opacity=1;const o=t.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){const i=o.baseColorFactor;e.color.setRGB(i[0],i[1],i[2],h.LinearSRGBColorSpace),e.opacity=i[3]}o.baseColorTexture!==void 0&&r.push(n.assignTexture(e,\"map\",o.baseColorTexture,h.SRGBColorSpace))}return Promise.all(r)}}class oo{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=r.extensions[this.name].emissiveStrength;return o!==void 0&&(t.emissiveIntensity=o),Promise.resolve()}}class ao{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];if(i.clearcoatFactor!==void 0&&(t.clearcoat=i.clearcoatFactor),i.clearcoatTexture!==void 0&&o.push(n.assignTexture(t,\"clearcoatMap\",i.clearcoatTexture)),i.clearcoatRoughnessFactor!==void 0&&(t.clearcoatRoughness=i.clearcoatRoughnessFactor),i.clearcoatRoughnessTexture!==void 0&&o.push(n.assignTexture(t,\"clearcoatRoughnessMap\",i.clearcoatRoughnessTexture)),i.clearcoatNormalTexture!==void 0&&(o.push(n.assignTexture(t,\"clearcoatNormalMap\",i.clearcoatNormalTexture)),i.clearcoatNormalTexture.scale!==void 0)){const a=i.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new h.Vector2(a,a)}return Promise.all(o)}}class co{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_DISPERSION}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=r.extensions[this.name];return t.dispersion=o.dispersion!==void 0?o.dispersion:0,Promise.resolve()}}class lo{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];return i.iridescenceFactor!==void 0&&(t.iridescence=i.iridescenceFactor),i.iridescenceTexture!==void 0&&o.push(n.assignTexture(t,\"iridescenceMap\",i.iridescenceTexture)),i.iridescenceIor!==void 0&&(t.iridescenceIOR=i.iridescenceIor),t.iridescenceThicknessRange===void 0&&(t.iridescenceThicknessRange=[100,400]),i.iridescenceThicknessMinimum!==void 0&&(t.iridescenceThicknessRange[0]=i.iridescenceThicknessMinimum),i.iridescenceThicknessMaximum!==void 0&&(t.iridescenceThicknessRange[1]=i.iridescenceThicknessMaximum),i.iridescenceThicknessTexture!==void 0&&o.push(n.assignTexture(t,\"iridescenceThicknessMap\",i.iridescenceThicknessTexture)),Promise.all(o)}}class uo{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_SHEEN}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[];t.sheenColor=new h.Color(0,0,0),t.sheenRoughness=0,t.sheen=1;const i=r.extensions[this.name];if(i.sheenColorFactor!==void 0){const a=i.sheenColorFactor;t.sheenColor.setRGB(a[0],a[1],a[2],h.LinearSRGBColorSpace)}return i.sheenRoughnessFactor!==void 0&&(t.sheenRoughness=i.sheenRoughnessFactor),i.sheenColorTexture!==void 0&&o.push(n.assignTexture(t,\"sheenColorMap\",i.sheenColorTexture,h.SRGBColorSpace)),i.sheenRoughnessTexture!==void 0&&o.push(n.assignTexture(t,\"sheenRoughnessMap\",i.sheenRoughnessTexture)),Promise.all(o)}}class ho{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];return i.transmissionFactor!==void 0&&(t.transmission=i.transmissionFactor),i.transmissionTexture!==void 0&&o.push(n.assignTexture(t,\"transmissionMap\",i.transmissionTexture)),Promise.all(o)}}class fo{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_VOLUME}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];t.thickness=i.thicknessFactor!==void 0?i.thicknessFactor:0,i.thicknessTexture!==void 0&&o.push(n.assignTexture(t,\"thicknessMap\",i.thicknessTexture)),t.attenuationDistance=i.attenuationDistance||1/0;const a=i.attenuationColor||[1,1,1];return t.attenuationColor=new h.Color().setRGB(a[0],a[1],a[2],h.LinearSRGBColorSpace),Promise.all(o)}}class po{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_IOR}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=r.extensions[this.name];return t.ior=o.ior!==void 0?o.ior:1.5,Promise.resolve()}}class mo{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_SPECULAR}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];t.specularIntensity=i.specularFactor!==void 0?i.specularFactor:1,i.specularTexture!==void 0&&o.push(n.assignTexture(t,\"specularIntensityMap\",i.specularTexture));const a=i.specularColorFactor||[1,1,1];return t.specularColor=new h.Color().setRGB(a[0],a[1],a[2],h.LinearSRGBColorSpace),i.specularColorTexture!==void 0&&o.push(n.assignTexture(t,\"specularColorMap\",i.specularColorTexture,h.SRGBColorSpace)),Promise.all(o)}}class go{constructor(e){this.parser=e,this.name=ie.EXT_MATERIALS_BUMP}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];return t.bumpScale=i.bumpFactor!==void 0?i.bumpFactor:1,i.bumpTexture!==void 0&&o.push(n.assignTexture(t,\"bumpMap\",i.bumpTexture)),Promise.all(o)}}class vo{constructor(e){this.parser=e,this.name=ie.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const n=this.parser.json.materials[e];return!n.extensions||!n.extensions[this.name]?null:h.MeshPhysicalMaterial}extendMaterialParams(e,t){const n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];return i.anisotropyStrength!==void 0&&(t.anisotropy=i.anisotropyStrength),i.anisotropyRotation!==void 0&&(t.anisotropyRotation=i.anisotropyRotation),i.anisotropyTexture!==void 0&&o.push(n.assignTexture(t,\"anisotropyMap\",i.anisotropyTexture)),Promise.all(o)}}class yo{constructor(e){this.parser=e,this.name=ie.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,n=t.json,r=n.textures[e];if(!r.extensions||!r.extensions[this.name])return null;const o=r.extensions[this.name],i=t.options.ktx2Loader;if(!i){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error(\"THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures\");return null}return t.loadTextureImage(e,o.source,i)}}class xo{constructor(e){this.parser=e,this.name=ie.EXT_TEXTURE_WEBP}loadTexture(e){const t=this.name,n=this.parser,r=n.json,o=r.textures[e];if(!o.extensions||!o.extensions[t])return null;const i=o.extensions[t],a=r.images[i.source];let c=n.textureLoader;if(a.uri){const f=n.options.manager.getHandler(a.uri);f!==null&&(c=f)}return n.loadTextureImage(e,i.source,c)}}class bo{constructor(e){this.parser=e,this.name=ie.EXT_TEXTURE_AVIF}loadTexture(e){const t=this.name,n=this.parser,r=n.json,o=r.textures[e];if(!o.extensions||!o.extensions[t])return null;const i=o.extensions[t],a=r.images[i.source];let c=n.textureLoader;if(a.uri){const f=n.options.manager.getHandler(a.uri);f!==null&&(c=f)}return n.loadTextureImage(e,i.source,c)}}class wo{constructor(e){this.name=ie.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){const r=n.extensions[this.name],o=this.parser.getDependency(\"buffer\",r.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error(\"THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files\");return null}return o.then(function(a){const c=r.byteOffset||0,f=r.byteLength||0,d=r.count,u=r.byteStride,l=new Uint8Array(a,c,f);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(d,u,l,r.mode,r.filter).then(function(g){return g.buffer}):i.ready.then(function(){const g=new ArrayBuffer(d*u);return i.decodeGltfBuffer(new Uint8Array(g),d,u,l,r.mode,r.filter),g})})}else return null}}class _o{constructor(e){this.name=ie.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||n.mesh===void 0)return null;const r=t.meshes[n.mesh];for(const f of r.primitives)if(f.mode!==Ve.TRIANGLES&&f.mode!==Ve.TRIANGLE_STRIP&&f.mode!==Ve.TRIANGLE_FAN&&f.mode!==void 0)return null;const i=n.extensions[this.name].attributes,a=[],c={};for(const f in i)a.push(this.parser.getDependency(\"accessor\",i[f]).then(d=>(c[f]=d,c[f])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(f=>{const d=f.pop(),u=d.isGroup?d.children:[d],l=f[0].count,g=[];for(const y of u){const w=new h.Matrix4,m=new h.Vector3,x=new h.Quaternion,b=new h.Vector3(1,1,1),T=new h.InstancedMesh(y.geometry,y.material,l);for(let M=0;M<l;M++)c.TRANSLATION&&m.fromBufferAttribute(c.TRANSLATION,M),c.ROTATION&&x.fromBufferAttribute(c.ROTATION,M),c.SCALE&&b.fromBufferAttribute(c.SCALE,M),T.setMatrixAt(M,w.compose(m,x,b));for(const M in c)if(M===\"_COLOR_0\"){const A=c[M];T.instanceColor=new h.InstancedBufferAttribute(A.array,A.itemSize,A.normalized)}else M!==\"TRANSLATION\"&&M!==\"ROTATION\"&&M!==\"SCALE\"&&y.geometry.setAttribute(M,c[M]);h.Object3D.prototype.copy.call(T,y),this.parser.assignFinalMaterial(T),g.push(T)}return d.isGroup?(d.clear(),d.add(...g),d):g[0]}))}}const ai=\"glTF\",en=12,ci={JSON:1313821514,BIN:5130562};class To{constructor(e){this.name=ie.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,en),n=new TextDecoder;if(this.header={magic:n.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==ai)throw new Error(\"THREE.GLTFLoader: Unsupported glTF-Binary header.\");if(this.header.version<2)throw new Error(\"THREE.GLTFLoader: Legacy binary file detected.\");const r=this.header.length-en,o=new DataView(e,en);let i=0;for(;i<r;){const a=o.getUint32(i,!0);i+=4;const c=o.getUint32(i,!0);if(i+=4,c===ci.JSON){const f=new Uint8Array(e,en+i,a);this.content=n.decode(f)}else if(c===ci.BIN){const f=en+i;this.body=e.slice(f,f+a)}i+=a}if(this.content===null)throw new Error(\"THREE.GLTFLoader: JSON content not found.\")}}class So{constructor(e,t){if(!t)throw new Error(\"THREE.GLTFLoader: No DRACOLoader instance provided.\");this.name=ie.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const n=this.json,r=this.dracoLoader,o=e.extensions[this.name].bufferView,i=e.extensions[this.name].attributes,a={},c={},f={};for(const d in i){const u=cr[d]||d.toLowerCase();a[u]=i[d]}for(const d in e.attributes){const u=cr[d]||d.toLowerCase();if(i[d]!==void 0){const l=n.accessors[e.attributes[d]],g=Rt[l.componentType];f[u]=g.name,c[u]=l.normalized===!0}}return t.getDependency(\"bufferView\",o).then(function(d){return new Promise(function(u,l){r.decodeDracoFile(d,function(g){for(const y in g.attributes){const w=g.attributes[y],m=c[y];m!==void 0&&(w.normalized=m)}u(g)},a,f,h.LinearSRGBColorSpace,l)})})}}class Mo{constructor(){this.name=ie.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return(t.texCoord===void 0||t.texCoord===e.channel)&&t.offset===void 0&&t.rotation===void 0&&t.scale===void 0||(e=e.clone(),t.texCoord!==void 0&&(e.channel=t.texCoord),t.offset!==void 0&&e.offset.fromArray(t.offset),t.rotation!==void 0&&(e.rotation=t.rotation),t.scale!==void 0&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}}class Ao{constructor(){this.name=ie.KHR_MESH_QUANTIZATION}}class li extends h.Interpolant{constructor(e,t,n,r){super(e,t,n,r)}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,r=this.valueSize,o=e*r*3+r;for(let i=0;i!==r;i++)t[i]=n[o+i];return t}interpolate_(e,t,n,r){const o=this.resultBuffer,i=this.sampleValues,a=this.valueSize,c=a*2,f=a*3,d=r-t,u=(n-t)/d,l=u*u,g=l*u,y=e*f,w=y-f,m=-2*g+3*l,x=g-l,b=1-m,T=x-l+u;for(let M=0;M!==a;M++){const A=i[w+M+a],I=i[w+M+c]*d,P=i[y+M+a],D=i[y+M]*d;o[M]=b*A+T*I+m*P+x*D}return o}}const Io=new h.Quaternion;class Co extends li{interpolate_(e,t,n,r){const o=super.interpolate_(e,t,n,r);return Io.fromArray(o).normalize().toArray(o),o}}const Ve={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Rt={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},ui={9728:h.NearestFilter,9729:h.LinearFilter,9984:h.NearestMipmapNearestFilter,9985:h.LinearMipmapNearestFilter,9986:h.NearestMipmapLinearFilter,9987:h.LinearMipmapLinearFilter},hi={33071:h.ClampToEdgeWrapping,33648:h.MirroredRepeatWrapping,10497:h.RepeatWrapping},ar={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},cr={POSITION:\"position\",NORMAL:\"normal\",TANGENT:\"tangent\",TEXCOORD_0:\"uv\",TEXCOORD_1:\"uv1\",TEXCOORD_2:\"uv2\",TEXCOORD_3:\"uv3\",COLOR_0:\"color\",WEIGHTS_0:\"skinWeight\",JOINTS_0:\"skinIndex\"},pt={scale:\"scale\",translation:\"position\",rotation:\"quaternion\",weights:\"morphTargetInfluences\"},Po={CUBICSPLINE:void 0,LINEAR:h.InterpolateLinear,STEP:h.InterpolateDiscrete},lr={OPAQUE:\"OPAQUE\",MASK:\"MASK\",BLEND:\"BLEND\"};function Do(s){return s.DefaultMaterial===void 0&&(s.DefaultMaterial=new h.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:h.FrontSide})),s.DefaultMaterial}function Mt(s,e,t){for(const n in t.extensions)s[n]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[n]=t.extensions[n])}function ot(s,e){e.extras!==void 0&&(typeof e.extras==\"object\"?Object.assign(s.userData,e.extras):console.warn(\"THREE.GLTFLoader: Ignoring primitive type .extras, \"+e.extras))}function Fo(s,e,t){let n=!1,r=!1,o=!1;for(let f=0,d=e.length;f<d;f++){const u=e[f];if(u.POSITION!==void 0&&(n=!0),u.NORMAL!==void 0&&(r=!0),u.COLOR_0!==void 0&&(o=!0),n&&r&&o)break}if(!n&&!r&&!o)return Promise.resolve(s);const i=[],a=[],c=[];for(let f=0,d=e.length;f<d;f++){const u=e[f];if(n){const l=u.POSITION!==void 0?t.getDependency(\"accessor\",u.POSITION):s.attributes.position;i.push(l)}if(r){const l=u.NORMAL!==void 0?t.getDependency(\"accessor\",u.NORMAL):s.attributes.normal;a.push(l)}if(o){const l=u.COLOR_0!==void 0?t.getDependency(\"accessor\",u.COLOR_0):s.attributes.color;c.push(l)}}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c)]).then(function(f){const d=f[0],u=f[1],l=f[2];return n&&(s.morphAttributes.position=d),r&&(s.morphAttributes.normal=u),o&&(s.morphAttributes.color=l),s.morphTargetsRelative=!0,s})}function Ro(s,e){if(s.updateMorphTargets(),e.weights!==void 0)for(let t=0,n=e.weights.length;t<n;t++)s.morphTargetInfluences[t]=e.weights[t];if(e.extras&&Array.isArray(e.extras.targetNames)){const t=e.extras.targetNames;if(s.morphTargetInfluences.length===t.length){s.morphTargetDictionary={};for(let n=0,r=t.length;n<r;n++)s.morphTargetDictionary[t[n]]=n}else console.warn(\"THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.\")}}function Oo(s){let e;const t=s.extensions&&s.extensions[ie.KHR_DRACO_MESH_COMPRESSION];if(t?e=\"draco:\"+t.bufferView+\":\"+t.indices+\":\"+ur(t.attributes):e=s.indices+\":\"+ur(s.attributes)+\":\"+s.mode,s.targets!==void 0)for(let n=0,r=s.targets.length;n<r;n++)e+=\":\"+ur(s.targets[n]);return e}function ur(s){let e=\"\";const t=Object.keys(s).sort();for(let n=0,r=t.length;n<r;n++)e+=t[n]+\":\"+s[t[n]]+\";\";return e}function hr(s){switch(s){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error(\"THREE.GLTFLoader: Unsupported normalized accessor component type.\")}}function Lo(s){return s.search(/\\.jpe?g($|\\?)/i)>0||s.search(/^data\\:image\\/jpeg/)===0?\"image/jpeg\":s.search(/\\.webp($|\\?)/i)>0||s.search(/^data\\:image\\/webp/)===0?\"image/webp\":s.search(/\\.ktx2($|\\?)/i)>0||s.search(/^data\\:image\\/ktx2/)===0?\"image/ktx2\":\"image/png\"}const No=new h.Matrix4;class ko{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new ro,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,r=-1,o=!1,i=-1;if(typeof navigator<\"u\"){const a=navigator.userAgent;n=/^((?!chrome|android).)*safari/i.test(a)===!0;const c=a.match(/Version\\/(\\d+)/);r=n&&c?parseInt(c[1],10):-1,o=a.indexOf(\"Firefox\")>-1,i=o?a.match(/Firefox\\/([0-9]+)\\./)[1]:-1}typeof createImageBitmap>\"u\"||n&&r<17||o&&i<98?this.textureLoader=new h.TextureLoader(this.options.manager):this.textureLoader=new h.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new h.FileLoader(this.options.manager),this.fileLoader.setResponseType(\"arraybuffer\"),this.options.crossOrigin===\"use-credentials\"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const n=this,r=this.json,o=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(i){return i._markDefs&&i._markDefs()}),Promise.all(this._invokeAll(function(i){return i.beforeRoot&&i.beforeRoot()})).then(function(){return Promise.all([n.getDependencies(\"scene\"),n.getDependencies(\"animation\"),n.getDependencies(\"camera\")])}).then(function(i){const a={scene:i[0][r.scene||0],scenes:i[0],animations:i[1],cameras:i[2],asset:r.asset,parser:n,userData:{}};return Mt(o,a,r),ot(a,r),Promise.all(n._invokeAll(function(c){return c.afterRoot&&c.afterRoot(a)})).then(function(){for(const c of a.scenes)c.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let r=0,o=t.length;r<o;r++){const i=t[r].joints;for(let a=0,c=i.length;a<c;a++)e[i[a]].isBone=!0}for(let r=0,o=e.length;r<o;r++){const i=e[r];i.mesh!==void 0&&(this._addNodeRef(this.meshCache,i.mesh),i.skin!==void 0&&(n[i.mesh].isSkinnedMesh=!0)),i.camera!==void 0&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(e,t){t!==void 0&&(e.refs[t]===void 0&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,n){if(e.refs[t]<=1)return n;const r=n.clone(),o=(i,a)=>{const c=this.associations.get(i);c!=null&&this.associations.set(a,c);for(const[f,d]of i.children.entries())o(d,a.children[f])};return o(n,r),r.name+=\"_instance_\"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let n=0;n<t.length;n++){const r=e(t[n]);if(r)return r}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const n=[];for(let r=0;r<t.length;r++){const o=e(t[r]);o&&n.push(o)}return n}getDependency(e,t){const n=e+\":\"+t;let r=this.cache.get(n);if(!r){switch(e){case\"scene\":r=this.loadScene(t);break;case\"node\":r=this._invokeOne(function(o){return o.loadNode&&o.loadNode(t)});break;case\"mesh\":r=this._invokeOne(function(o){return o.loadMesh&&o.loadMesh(t)});break;case\"accessor\":r=this.loadAccessor(t);break;case\"bufferView\":r=this._invokeOne(function(o){return o.loadBufferView&&o.loadBufferView(t)});break;case\"buffer\":r=this.loadBuffer(t);break;case\"material\":r=this._invokeOne(function(o){return o.loadMaterial&&o.loadMaterial(t)});break;case\"texture\":r=this._invokeOne(function(o){return o.loadTexture&&o.loadTexture(t)});break;case\"skin\":r=this.loadSkin(t);break;case\"animation\":r=this._invokeOne(function(o){return o.loadAnimation&&o.loadAnimation(t)});break;case\"camera\":r=this.loadCamera(t);break;default:if(r=this._invokeOne(function(o){return o!=this&&o.getDependency&&o.getDependency(e,t)}),!r)throw new Error(\"Unknown type: \"+e);break}this.cache.add(n,r)}return r}getDependencies(e){let t=this.cache.get(e);if(!t){const n=this,r=this.json[e+(e===\"mesh\"?\"es\":\"s\")]||[];t=Promise.all(r.map(function(o,i){return n.getDependency(e,i)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],n=this.fileLoader;if(t.type&&t.type!==\"arraybuffer\")throw new Error(\"THREE.GLTFLoader: \"+t.type+\" buffer type is not supported.\");if(t.uri===void 0&&e===0)return Promise.resolve(this.extensions[ie.KHR_BINARY_GLTF].body);const r=this.options;return new Promise(function(o,i){n.load(h.LoaderUtils.resolveURL(t.uri,r.path),o,void 0,function(){i(new Error('THREE.GLTFLoader: Failed to load buffer \"'+t.uri+'\".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency(\"buffer\",t.buffer).then(function(n){const r=t.byteLength||0,o=t.byteOffset||0;return n.slice(o,o+r)})}loadAccessor(e){const t=this,n=this.json,r=this.json.accessors[e];if(r.bufferView===void 0&&r.sparse===void 0){const i=ar[r.type],a=Rt[r.componentType],c=r.normalized===!0,f=new a(r.count*i);return Promise.resolve(new h.BufferAttribute(f,i,c))}const o=[];return r.bufferView!==void 0?o.push(this.getDependency(\"bufferView\",r.bufferView)):o.push(null),r.sparse!==void 0&&(o.push(this.getDependency(\"bufferView\",r.sparse.indices.bufferView)),o.push(this.getDependency(\"bufferView\",r.sparse.values.bufferView))),Promise.all(o).then(function(i){const a=i[0],c=ar[r.type],f=Rt[r.componentType],d=f.BYTES_PER_ELEMENT,u=d*c,l=r.byteOffset||0,g=r.bufferView!==void 0?n.bufferViews[r.bufferView].byteStride:void 0,y=r.normalized===!0;let w,m;if(g&&g!==u){const x=Math.floor(l/g),b=\"InterleavedBuffer:\"+r.bufferView+\":\"+r.componentType+\":\"+x+\":\"+r.count;let T=t.cache.get(b);T||(w=new f(a,x*g,r.count*g/d),T=new h.InterleavedBuffer(w,g/d),t.cache.add(b,T)),m=new h.InterleavedBufferAttribute(T,c,l%g/d,y)}else a===null?w=new f(r.count*c):w=new f(a,l,r.count*c),m=new h.BufferAttribute(w,c,y);if(r.sparse!==void 0){const x=ar.SCALAR,b=Rt[r.sparse.indices.componentType],T=r.sparse.indices.byteOffset||0,M=r.sparse.values.byteOffset||0,A=new b(i[1],T,r.sparse.count*x),I=new f(i[2],M,r.sparse.count*c);a!==null&&(m=new h.BufferAttribute(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let P=0,D=A.length;P<D;P++){const R=A[P];if(m.setX(R,I[P*c]),c>=2&&m.setY(R,I[P*c+1]),c>=3&&m.setZ(R,I[P*c+2]),c>=4&&m.setW(R,I[P*c+3]),c>=5)throw new Error(\"THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.\")}m.normalized=y}return m})}loadTexture(e){const t=this.json,n=this.options,o=t.textures[e].source,i=t.images[o];let a=this.textureLoader;if(i.uri){const c=n.manager.getHandler(i.uri);c!==null&&(a=c)}return this.loadTextureImage(e,o,a)}loadTextureImage(e,t,n){const r=this,o=this.json,i=o.textures[e],a=o.images[t],c=(a.uri||a.bufferView)+\":\"+i.sampler;if(this.textureCache[c])return this.textureCache[c];const f=this.loadImageSource(t,n).then(function(d){d.flipY=!1,d.name=i.name||a.name||\"\",d.name===\"\"&&typeof a.uri==\"string\"&&a.uri.startsWith(\"data:image/\")===!1&&(d.name=a.uri);const l=(o.samplers||{})[i.sampler]||{};return d.magFilter=ui[l.magFilter]||h.LinearFilter,d.minFilter=ui[l.minFilter]||h.LinearMipmapLinearFilter,d.wrapS=hi[l.wrapS]||h.RepeatWrapping,d.wrapT=hi[l.wrapT]||h.RepeatWrapping,d.generateMipmaps=!d.isCompressedTexture&&d.minFilter!==h.NearestFilter&&d.minFilter!==h.LinearFilter,r.associations.set(d,{textures:e}),d}).catch(function(){return null});return this.textureCache[c]=f,f}loadImageSource(e,t){const n=this,r=this.json,o=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(u=>u.clone());const i=r.images[e],a=self.URL||self.webkitURL;let c=i.uri||\"\",f=!1;if(i.bufferView!==void 0)c=n.getDependency(\"bufferView\",i.bufferView).then(function(u){f=!0;const l=new Blob([u],{type:i.mimeType});return c=a.createObjectURL(l),c});else if(i.uri===void 0)throw new Error(\"THREE.GLTFLoader: Image \"+e+\" is missing URI and bufferView\");const d=Promise.resolve(c).then(function(u){return new Promise(function(l,g){let y=l;t.isImageBitmapLoader===!0&&(y=function(w){const m=new h.Texture(w);m.needsUpdate=!0,l(m)}),t.load(h.LoaderUtils.resolveURL(u,o.path),y,void 0,g)})}).then(function(u){return f===!0&&a.revokeObjectURL(c),ot(u,i),u.userData.mimeType=i.mimeType||Lo(i.uri),u}).catch(function(u){throw console.error(\"THREE.GLTFLoader: Couldn't load texture\",c),u});return this.sourceCache[e]=d,d}assignTexture(e,t,n,r){const o=this;return this.getDependency(\"texture\",n.index).then(function(i){if(!i)return null;if(n.texCoord!==void 0&&n.texCoord>0&&(i=i.clone(),i.channel=n.texCoord),o.extensions[ie.KHR_TEXTURE_TRANSFORM]){const a=n.extensions!==void 0?n.extensions[ie.KHR_TEXTURE_TRANSFORM]:void 0;if(a){const c=o.associations.get(i);i=o.extensions[ie.KHR_TEXTURE_TRANSFORM].extendTexture(i,a),o.associations.set(i,c)}}return r!==void 0&&(i.colorSpace=r),e[t]=i,i})}assignFinalMaterial(e){const t=e.geometry;let n=e.material;const r=t.attributes.tangent===void 0,o=t.attributes.color!==void 0,i=t.attributes.normal===void 0;if(e.isPoints){const a=\"PointsMaterial:\"+n.uuid;let c=this.cache.get(a);c||(c=new h.PointsMaterial,h.Material.prototype.copy.call(c,n),c.color.copy(n.color),c.map=n.map,c.sizeAttenuation=!1,this.cache.add(a,c)),n=c}else if(e.isLine){const a=\"LineBasicMaterial:\"+n.uuid;let c=this.cache.get(a);c||(c=new h.LineBasicMaterial,h.Material.prototype.copy.call(c,n),c.color.copy(n.color),c.map=n.map,this.cache.add(a,c)),n=c}if(r||o||i){let a=\"ClonedMaterial:\"+n.uuid+\":\";r&&(a+=\"derivative-tangents:\"),o&&(a+=\"vertex-colors:\"),i&&(a+=\"flat-shading:\");let c=this.cache.get(a);c||(c=n.clone(),o&&(c.vertexColors=!0),i&&(c.flatShading=!0),r&&(c.normalScale&&(c.normalScale.y*=-1),c.clearcoatNormalScale&&(c.clearcoatNormalScale.y*=-1)),this.cache.add(a,c),this.associations.set(c,this.associations.get(n))),n=c}e.material=n}getMaterialType(){return h.MeshStandardMaterial}loadMaterial(e){const t=this,n=this.json,r=this.extensions,o=n.materials[e];let i;const a={},c=o.extensions||{},f=[];if(c[ie.KHR_MATERIALS_UNLIT]){const u=r[ie.KHR_MATERIALS_UNLIT];i=u.getMaterialType(),f.push(u.extendParams(a,o,t))}else{const u=o.pbrMetallicRoughness||{};if(a.color=new h.Color(1,1,1),a.opacity=1,Array.isArray(u.baseColorFactor)){const l=u.baseColorFactor;a.color.setRGB(l[0],l[1],l[2],h.LinearSRGBColorSpace),a.opacity=l[3]}u.baseColorTexture!==void 0&&f.push(t.assignTexture(a,\"map\",u.baseColorTexture,h.SRGBColorSpace)),a.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,a.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(f.push(t.assignTexture(a,\"metalnessMap\",u.metallicRoughnessTexture)),f.push(t.assignTexture(a,\"roughnessMap\",u.metallicRoughnessTexture))),i=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(e)}),f.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(e,a)})))}o.doubleSided===!0&&(a.side=h.DoubleSide);const d=o.alphaMode||lr.OPAQUE;if(d===lr.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,d===lr.MASK&&(a.alphaTest=o.alphaCutoff!==void 0?o.alphaCutoff:.5)),o.normalTexture!==void 0&&i!==h.MeshBasicMaterial&&(f.push(t.assignTexture(a,\"normalMap\",o.normalTexture)),a.normalScale=new h.Vector2(1,1),o.normalTexture.scale!==void 0)){const u=o.normalTexture.scale;a.normalScale.set(u,u)}if(o.occlusionTexture!==void 0&&i!==h.MeshBasicMaterial&&(f.push(t.assignTexture(a,\"aoMap\",o.occlusionTexture)),o.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=o.occlusionTexture.strength)),o.emissiveFactor!==void 0&&i!==h.MeshBasicMaterial){const u=o.emissiveFactor;a.emissive=new h.Color().setRGB(u[0],u[1],u[2],h.LinearSRGBColorSpace)}return o.emissiveTexture!==void 0&&i!==h.MeshBasicMaterial&&f.push(t.assignTexture(a,\"emissiveMap\",o.emissiveTexture,h.SRGBColorSpace)),Promise.all(f).then(function(){const u=new i(a);return o.name&&(u.name=o.name),ot(u,o),t.associations.set(u,{materials:e}),o.extensions&&Mt(r,u,o),u})}createUniqueName(e){const t=h.PropertyBinding.sanitizeNodeName(e||\"\");return t in this.nodeNamesUsed?t+\"_\"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,n=this.extensions,r=this.primitiveCache;function o(a){return n[ie.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,t).then(function(c){return fi(c,a,t)})}const i=[];for(let a=0,c=e.length;a<c;a++){const f=e[a],d=Oo(f),u=r[d];if(u)i.push(u.promise);else{let l;f.extensions&&f.extensions[ie.KHR_DRACO_MESH_COMPRESSION]?l=o(f):l=fi(new h.BufferGeometry,f,t),r[d]={primitive:f,promise:l},i.push(l)}}return Promise.all(i)}loadMesh(e){const t=this,n=this.json,r=this.extensions,o=n.meshes[e],i=o.primitives,a=[];for(let c=0,f=i.length;c<f;c++){const d=i[c].material===void 0?Do(this.cache):this.getDependency(\"material\",i[c].material);a.push(d)}return a.push(t.loadGeometries(i)),Promise.all(a).then(function(c){const f=c.slice(0,c.length-1),d=c[c.length-1],u=[];for(let g=0,y=d.length;g<y;g++){const w=d[g],m=i[g];let x;const b=f[g];if(m.mode===Ve.TRIANGLES||m.mode===Ve.TRIANGLE_STRIP||m.mode===Ve.TRIANGLE_FAN||m.mode===void 0)x=o.isSkinnedMesh===!0?new h.SkinnedMesh(w,b):new h.Mesh(w,b),x.isSkinnedMesh===!0&&x.normalizeSkinWeights(),m.mode===Ve.TRIANGLE_STRIP?x.geometry=oi(x.geometry,h.TriangleStripDrawMode):m.mode===Ve.TRIANGLE_FAN&&(x.geometry=oi(x.geometry,h.TriangleFanDrawMode));else if(m.mode===Ve.LINES)x=new h.LineSegments(w,b);else if(m.mode===Ve.LINE_STRIP)x=new h.Line(w,b);else if(m.mode===Ve.LINE_LOOP)x=new h.LineLoop(w,b);else if(m.mode===Ve.POINTS)x=new h.Points(w,b);else throw new Error(\"THREE.GLTFLoader: Primitive mode unsupported: \"+m.mode);Object.keys(x.geometry.morphAttributes).length>0&&Ro(x,o),x.name=t.createUniqueName(o.name||\"mesh_\"+e),ot(x,o),m.extensions&&Mt(r,x,m),t.assignFinalMaterial(x),u.push(x)}for(let g=0,y=u.length;g<y;g++)t.associations.set(u[g],{meshes:e,primitives:g});if(u.length===1)return o.extensions&&Mt(r,u[0],o),u[0];const l=new h.Group;o.extensions&&Mt(r,l,o),t.associations.set(l,{meshes:e});for(let g=0,y=u.length;g<y;g++)l.add(u[g]);return l})}loadCamera(e){let t;const n=this.json.cameras[e],r=n[n.type];if(!r){console.warn(\"THREE.GLTFLoader: Missing camera parameters.\");return}return n.type===\"perspective\"?t=new h.PerspectiveCamera(h.MathUtils.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):n.type===\"orthographic\"&&(t=new h.OrthographicCamera(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),n.name&&(t.name=this.createUniqueName(n.name)),ot(t,n),Promise.resolve(t)}loadSkin(e){const t=this.json.skins[e],n=[];for(let r=0,o=t.joints.length;r<o;r++)n.push(this._loadNodeShallow(t.joints[r]));return t.inverseBindMatrices!==void 0?n.push(this.getDependency(\"accessor\",t.inverseBindMatrices)):n.push(null),Promise.all(n).then(function(r){const o=r.pop(),i=r,a=[],c=[];for(let f=0,d=i.length;f<d;f++){const u=i[f];if(u){a.push(u);const l=new h.Matrix4;o!==null&&l.fromArray(o.array,f*16),c.push(l)}else console.warn('THREE.GLTFLoader: Joint \"%s\" could not be found.',t.joints[f])}return new h.Skeleton(a,c)})}loadAnimation(e){const t=this.json,n=this,r=t.animations[e],o=r.name?r.name:\"animation_\"+e,i=[],a=[],c=[],f=[],d=[];for(let u=0,l=r.channels.length;u<l;u++){const g=r.channels[u],y=r.samplers[g.sampler],w=g.target,m=w.node,x=r.parameters!==void 0?r.parameters[y.input]:y.input,b=r.parameters!==void 0?r.parameters[y.output]:y.output;w.node!==void 0&&(i.push(this.getDependency(\"node\",m)),a.push(this.getDependency(\"accessor\",x)),c.push(this.getDependency(\"accessor\",b)),f.push(y),d.push(w))}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c),Promise.all(f),Promise.all(d)]).then(function(u){const l=u[0],g=u[1],y=u[2],w=u[3],m=u[4],x=[];for(let b=0,T=l.length;b<T;b++){const M=l[b],A=g[b],I=y[b],P=w[b],D=m[b];if(M===void 0)continue;M.updateMatrix&&M.updateMatrix();const R=n._createAnimationTracks(M,A,I,P,D);if(R)for(let O=0;O<R.length;O++)x.push(R[O])}return new h.AnimationClip(o,void 0,x)})}createNodeMesh(e){const t=this.json,n=this,r=t.nodes[e];return r.mesh===void 0?null:n.getDependency(\"mesh\",r.mesh).then(function(o){const i=n._getNodeRef(n.meshCache,r.mesh,o);return r.weights!==void 0&&i.traverse(function(a){if(a.isMesh)for(let c=0,f=r.weights.length;c<f;c++)a.morphTargetInfluences[c]=r.weights[c]}),i})}loadNode(e){const t=this.json,n=this,r=t.nodes[e],o=n._loadNodeShallow(e),i=[],a=r.children||[];for(let f=0,d=a.length;f<d;f++)i.push(n.getDependency(\"node\",a[f]));const c=r.skin===void 0?Promise.resolve(null):n.getDependency(\"skin\",r.skin);return Promise.all([o,Promise.all(i),c]).then(function(f){const d=f[0],u=f[1],l=f[2];l!==null&&d.traverse(function(g){g.isSkinnedMesh&&g.bind(l,No)});for(let g=0,y=u.length;g<y;g++)d.add(u[g]);return d})}_loadNodeShallow(e){const t=this.json,n=this.extensions,r=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];const o=t.nodes[e],i=o.name?r.createUniqueName(o.name):\"\",a=[],c=r._invokeOne(function(f){return f.createNodeMesh&&f.createNodeMesh(e)});return c&&a.push(c),o.camera!==void 0&&a.push(r.getDependency(\"camera\",o.camera).then(function(f){return r._getNodeRef(r.cameraCache,o.camera,f)})),r._invokeAll(function(f){return f.createNodeAttachment&&f.createNodeAttachment(e)}).forEach(function(f){a.push(f)}),this.nodeCache[e]=Promise.all(a).then(function(f){let d;if(o.isBone===!0?d=new h.Bone:f.length>1?d=new h.Group:f.length===1?d=f[0]:d=new h.Object3D,d!==f[0])for(let u=0,l=f.length;u<l;u++)d.add(f[u]);if(o.name&&(d.userData.name=o.name,d.name=i),ot(d,o),o.extensions&&Mt(n,d,o),o.matrix!==void 0){const u=new h.Matrix4;u.fromArray(o.matrix),d.applyMatrix4(u)}else o.translation!==void 0&&d.position.fromArray(o.translation),o.rotation!==void 0&&d.quaternion.fromArray(o.rotation),o.scale!==void 0&&d.scale.fromArray(o.scale);if(!r.associations.has(d))r.associations.set(d,{});else if(o.mesh!==void 0&&r.meshCache.refs[o.mesh]>1){const u=r.associations.get(d);r.associations.set(d,{...u})}return r.associations.get(d).nodes=e,d}),this.nodeCache[e]}loadScene(e){const t=this.extensions,n=this.json.scenes[e],r=this,o=new h.Group;n.name&&(o.name=r.createUniqueName(n.name)),ot(o,n),n.extensions&&Mt(t,o,n);const i=n.nodes||[],a=[];for(let c=0,f=i.length;c<f;c++)a.push(r.getDependency(\"node\",i[c]));return Promise.all(a).then(function(c){for(let d=0,u=c.length;d<u;d++)o.add(c[d]);const f=d=>{const u=new Map;for(const[l,g]of r.associations)(l instanceof h.Material||l instanceof h.Texture)&&u.set(l,g);return d.traverse(l=>{const g=r.associations.get(l);g!=null&&u.set(l,g)}),u};return r.associations=f(o),o})}_createAnimationTracks(e,t,n,r,o){const i=[],a=e.name?e.name:e.uuid,c=[];pt[o.path]===pt.weights?e.traverse(function(l){l.morphTargetInfluences&&c.push(l.name?l.name:l.uuid)}):c.push(a);let f;switch(pt[o.path]){case pt.weights:f=h.NumberKeyframeTrack;break;case pt.rotation:f=h.QuaternionKeyframeTrack;break;case pt.translation:case pt.scale:f=h.VectorKeyframeTrack;break;default:switch(n.itemSize){case 1:f=h.NumberKeyframeTrack;break;case 2:case 3:default:f=h.VectorKeyframeTrack;break}break}const d=r.interpolation!==void 0?Po[r.interpolation]:h.InterpolateLinear,u=this._getArrayFromAccessor(n);for(let l=0,g=c.length;l<g;l++){const y=new f(c[l]+\".\"+pt[o.path],t.array,u,d);r.interpolation===\"CUBICSPLINE\"&&this._createCubicSplineTrackInterpolant(y),i.push(y)}return i}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const n=hr(t.constructor),r=new Float32Array(t.length);for(let o=0,i=t.length;o<i;o++)r[o]=t[o]*n;t=r}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(n){const r=this instanceof h.QuaternionKeyframeTrack?Co:li;return new r(this.times,this.values,this.getValueSize()/3,n)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function zo(s,e,t){const n=e.attributes,r=new h.Box3;if(n.POSITION!==void 0){const a=t.json.accessors[n.POSITION],c=a.min,f=a.max;if(c!==void 0&&f!==void 0){if(r.set(new h.Vector3(c[0],c[1],c[2]),new h.Vector3(f[0],f[1],f[2])),a.normalized){const d=hr(Rt[a.componentType]);r.min.multiplyScalar(d),r.max.multiplyScalar(d)}}else{console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\");return}}else return;const o=e.targets;if(o!==void 0){const a=new h.Vector3,c=new h.Vector3;for(let f=0,d=o.length;f<d;f++){const u=o[f];if(u.POSITION!==void 0){const l=t.json.accessors[u.POSITION],g=l.min,y=l.max;if(g!==void 0&&y!==void 0){if(c.setX(Math.max(Math.abs(g[0]),Math.abs(y[0]))),c.setY(Math.max(Math.abs(g[1]),Math.abs(y[1]))),c.setZ(Math.max(Math.abs(g[2]),Math.abs(y[2]))),l.normalized){const w=hr(Rt[l.componentType]);c.multiplyScalar(w)}a.max(c)}else console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\")}}r.expandByVector(a)}s.boundingBox=r;const i=new h.Sphere;r.getCenter(i.center),i.radius=r.min.distanceTo(r.max)/2,s.boundingSphere=i}function fi(s,e,t){const n=e.attributes,r=[];function o(i,a){return t.getDependency(\"accessor\",i).then(function(c){s.setAttribute(a,c)})}for(const i in n){const a=cr[i]||i.toLowerCase();a in s.attributes||r.push(o(n[i],a))}if(e.indices!==void 0&&!s.index){const i=t.getDependency(\"accessor\",e.indices).then(function(a){s.setIndex(a)});r.push(i)}return h.ColorManagement.workingColorSpace!==h.LinearSRGBColorSpace&&\"COLOR_0\"in n&&console.warn(`THREE.GLTFLoader: Converting vertex colors from \"srgb-linear\" to \"${h.ColorManagement.workingColorSpace}\" not supported.`),ot(s,e),zo(s,e,t),Promise.all(r).then(function(){return e.targets!==void 0?Fo(s,e.targets,t):s})}class Bo{constructor(){this.loadingManager=new S.LoadingManager,this.loader=new no(this.loadingManager)}async load(e){try{return new Promise(t=>{this.loader.load(e,n=>{var o;const r={scene:new Fe(n.scene),animations:this.convertAnimations(n.animations),cameras:(o=n.cameras)==null?void 0:o.map(i=>{const a=i instanceof S.PerspectiveCamera,c=i instanceof S.OrthographicCamera;return{name:i.name,type:i.type,fov:a?i.fov:void 0,aspect:a?i.aspect:void 0,near:a||c?i.near:.1,far:a||c?i.far:1e3}}),userData:n.userData};t(W.ok(r))},n=>{n.total>0},n=>{t(W.err(new H(\"Failed to load GLTF model\",te.MODEL_LOAD_FAILED,{url:e,originalError:n})))})})}catch(t){return W.err(new H(\"Failed to initiate model loading\",te.MODEL_LOAD_FAILED,{url:e,originalError:t}))}}supports(e){var n;const t=(n=e.split(\".\").pop())==null?void 0:n.toLowerCase();return t===\"gltf\"||t===\"glb\"}convertAnimations(e){return e.map(t=>({name:t.name,duration:t.duration,tracks:t.tracks.map(n=>({name:n.name,type:this.getTrackType(n),times:n.times,values:n.values}))}))}getTrackType(e){return e instanceof S.VectorKeyframeTrack?\"vector\":e instanceof S.QuaternionKeyframeTrack?\"quaternion\":e instanceof S.NumberKeyframeTrack?\"number\":e instanceof S.BooleanKeyframeTrack?\"boolean\":\"number\"}}class di{static createLoader(e){var n;const t=(n=e.split(\".\").pop())==null?void 0:n.toLowerCase();switch(t){case\"gltf\":case\"glb\":return new Bo;default:throw new H(`Unsupported file format: ${t}`,te.UNSUPPORTED_FORMAT,{url:e,extension:t})}}}const pi={type:\"change\"},fr={type:\"start\"},mi={type:\"end\"},wn=new h.Ray,gi=new h.Plane,Uo=Math.cos(70*h.MathUtils.DEG2RAD),Me=new h.Vector3,Le=2*Math.PI,ce={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},dr=1e-6;class vi extends h.Controls{constructor(e,t=null){super(e,t),this.state=ce.NONE,this.target=new h.Vector3,this.cursor=new h.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:\"ArrowLeft\",UP:\"ArrowUp\",RIGHT:\"ArrowRight\",BOTTOM:\"ArrowDown\"},this.mouseButtons={LEFT:h.MOUSE.ROTATE,MIDDLE:h.MOUSE.DOLLY,RIGHT:h.MOUSE.PAN},this.touches={ONE:h.TOUCH.ROTATE,TWO:h.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new h.Vector3,this._lastQuaternion=new h.Quaternion,this._lastTargetPosition=new h.Vector3,this._quat=new h.Quaternion().setFromUnitVectors(e.up,new h.Vector3(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new h.Spherical,this._sphericalDelta=new h.Spherical,this._scale=1,this._panOffset=new h.Vector3,this._rotateStart=new h.Vector2,this._rotateEnd=new h.Vector2,this._rotateDelta=new h.Vector2,this._panStart=new h.Vector2,this._panEnd=new h.Vector2,this._panDelta=new h.Vector2,this._dollyStart=new h.Vector2,this._dollyEnd=new h.Vector2,this._dollyDelta=new h.Vector2,this._dollyDirection=new h.Vector3,this._mouse=new h.Vector2,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Go.bind(this),this._onPointerDown=Eo.bind(this),this._onPointerUp=Vo.bind(this),this._onContextMenu=Xo.bind(this),this._onMouseWheel=qo.bind(this),this._onKeyDown=Zo.bind(this),this._onTouchStart=Yo.bind(this),this._onTouchMove=Ko.bind(this),this._onMouseDown=Wo.bind(this),this._onMouseMove=jo.bind(this),this._interceptControlDown=$o.bind(this),this._interceptControlUp=Qo.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(e){super.connect(e),this.domElement.addEventListener(\"pointerdown\",this._onPointerDown),this.domElement.addEventListener(\"pointercancel\",this._onPointerUp),this.domElement.addEventListener(\"contextmenu\",this._onContextMenu),this.domElement.addEventListener(\"wheel\",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener(\"keydown\",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction=\"none\"}disconnect(){this.domElement.removeEventListener(\"pointerdown\",this._onPointerDown),this.domElement.removeEventListener(\"pointermove\",this._onPointerMove),this.domElement.removeEventListener(\"pointerup\",this._onPointerUp),this.domElement.removeEventListener(\"pointercancel\",this._onPointerUp),this.domElement.removeEventListener(\"wheel\",this._onMouseWheel),this.domElement.removeEventListener(\"contextmenu\",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener(\"keydown\",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction=\"auto\"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(e){e.addEventListener(\"keydown\",this._onKeyDown),this._domElementKeyEvents=e}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener(\"keydown\",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(pi),this.update(),this.state=ce.NONE}update(e=null){const t=this.object.position;Me.copy(t).sub(this.target),Me.applyQuaternion(this._quat),this._spherical.setFromVector3(Me),this.autoRotate&&this.state===ce.NONE&&this._rotateLeft(this._getAutoRotationAngle(e)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let n=this.minAzimuthAngle,r=this.maxAzimuthAngle;isFinite(n)&&isFinite(r)&&(n<-Math.PI?n+=Le:n>Math.PI&&(n-=Le),r<-Math.PI?r+=Le:r>Math.PI&&(r-=Le),n<=r?this._spherical.theta=Math.max(n,Math.min(r,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+r)/2?Math.max(n,this._spherical.theta):Math.min(r,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let o=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const i=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),o=i!=this._spherical.radius}if(Me.setFromSpherical(this._spherical),Me.applyQuaternion(this._quatInverse),t.copy(this.target).add(Me),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let i=null;if(this.object.isPerspectiveCamera){const a=Me.length();i=this._clampDistance(a*this._scale);const c=a-i;this.object.position.addScaledVector(this._dollyDirection,c),this.object.updateMatrixWorld(),o=!!c}else if(this.object.isOrthographicCamera){const a=new h.Vector3(this._mouse.x,this._mouse.y,0);a.unproject(this.object);const c=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),o=c!==this.object.zoom;const f=new h.Vector3(this._mouse.x,this._mouse.y,0);f.unproject(this.object),this.object.position.sub(f).add(a),this.object.updateMatrixWorld(),i=Me.length()}else console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.\"),this.zoomToCursor=!1;i!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(i).add(this.object.position):(wn.origin.copy(this.object.position),wn.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(wn.direction))<Uo?this.object.lookAt(this.target):(gi.setFromNormalAndCoplanarPoint(this.object.up,this.target),wn.intersectPlane(gi,this.target))))}else if(this.object.isOrthographicCamera){const i=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),i!==this.object.zoom&&(this.object.updateProjectionMatrix(),o=!0)}return this._scale=1,this._performCursorZoom=!1,o||this._lastPosition.distanceToSquared(this.object.position)>dr||8*(1-this._lastQuaternion.dot(this.object.quaternion))>dr||this._lastTargetPosition.distanceToSquared(this.target)>dr?(this.dispatchEvent(pi),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(e){return e!==null?Le/60*this.autoRotateSpeed*e:Le/60/60*this.autoRotateSpeed}_getZoomScale(e){const t=Math.abs(e*.01);return Math.pow(.95,this.zoomSpeed*t)}_rotateLeft(e){this._sphericalDelta.theta-=e}_rotateUp(e){this._sphericalDelta.phi-=e}_panLeft(e,t){Me.setFromMatrixColumn(t,0),Me.multiplyScalar(-e),this._panOffset.add(Me)}_panUp(e,t){this.screenSpacePanning===!0?Me.setFromMatrixColumn(t,1):(Me.setFromMatrixColumn(t,0),Me.crossVectors(this.object.up,Me)),Me.multiplyScalar(e),this._panOffset.add(Me)}_pan(e,t){const n=this.domElement;if(this.object.isPerspectiveCamera){const r=this.object.position;Me.copy(r).sub(this.target);let o=Me.length();o*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*e*o/n.clientHeight,this.object.matrix),this._panUp(2*t*o/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(e*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(t*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\"),this.enablePan=!1)}_dollyOut(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=e:(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),this.enableZoom=!1)}_dollyIn(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=e:(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),this.enableZoom=!1)}_updateZoomParameters(e,t){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),r=e-n.left,o=t-n.top,i=n.width,a=n.height;this._mouse.x=r/i*2-1,this._mouse.y=-(o/a)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(e){return Math.max(this.minDistance,Math.min(this.maxDistance,e))}_handleMouseDownRotate(e){this._rotateStart.set(e.clientX,e.clientY)}_handleMouseDownDolly(e){this._updateZoomParameters(e.clientX,e.clientX),this._dollyStart.set(e.clientX,e.clientY)}_handleMouseDownPan(e){this._panStart.set(e.clientX,e.clientY)}_handleMouseMoveRotate(e){this._rotateEnd.set(e.clientX,e.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this._rotateLeft(Le*this._rotateDelta.x/t.clientHeight),this._rotateUp(Le*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(e){this._dollyEnd.set(e.clientX,e.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(e){this._panEnd.set(e.clientX,e.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(e){this._updateZoomParameters(e.clientX,e.clientY),e.deltaY<0?this._dollyIn(this._getZoomScale(e.deltaY)):e.deltaY>0&&this._dollyOut(this._getZoomScale(e.deltaY)),this.update()}_handleKeyDown(e){let t=!1;switch(e.code){case this.keys.UP:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(Le*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),t=!0;break;case this.keys.BOTTOM:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(-Le*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),t=!0;break;case this.keys.LEFT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(Le*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),t=!0;break;case this.keys.RIGHT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(-Le*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),t=!0;break}t&&(e.preventDefault(),this.update())}_handleTouchStartRotate(e){if(this._pointers.length===1)this._rotateStart.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._rotateStart.set(n,r)}}_handleTouchStartPan(e){if(this._pointers.length===1)this._panStart.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panStart.set(n,r)}}_handleTouchStartDolly(e){const t=this._getSecondPointerPosition(e),n=e.pageX-t.x,r=e.pageY-t.y,o=Math.sqrt(n*n+r*r);this._dollyStart.set(0,o)}_handleTouchStartDollyPan(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enablePan&&this._handleTouchStartPan(e)}_handleTouchStartDollyRotate(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enableRotate&&this._handleTouchStartRotate(e)}_handleTouchMoveRotate(e){if(this._pointers.length==1)this._rotateEnd.set(e.pageX,e.pageY);else{const n=this._getSecondPointerPosition(e),r=.5*(e.pageX+n.x),o=.5*(e.pageY+n.y);this._rotateEnd.set(r,o)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this._rotateLeft(Le*this._rotateDelta.x/t.clientHeight),this._rotateUp(Le*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(e){if(this._pointers.length===1)this._panEnd.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panEnd.set(n,r)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(e){const t=this._getSecondPointerPosition(e),n=e.pageX-t.x,r=e.pageY-t.y,o=Math.sqrt(n*n+r*r);this._dollyEnd.set(0,o),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const i=(e.pageX+t.x)*.5,a=(e.pageY+t.y)*.5;this._updateZoomParameters(i,a)}_handleTouchMoveDollyPan(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enablePan&&this._handleTouchMovePan(e)}_handleTouchMoveDollyRotate(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enableRotate&&this._handleTouchMoveRotate(e)}_addPointer(e){this._pointers.push(e.pointerId)}_removePointer(e){delete this._pointerPositions[e.pointerId];for(let t=0;t<this._pointers.length;t++)if(this._pointers[t]==e.pointerId){this._pointers.splice(t,1);return}}_isTrackingPointer(e){for(let t=0;t<this._pointers.length;t++)if(this._pointers[t]==e.pointerId)return!0;return!1}_trackPointer(e){let t=this._pointerPositions[e.pointerId];t===void 0&&(t=new h.Vector2,this._pointerPositions[e.pointerId]=t),t.set(e.pageX,e.pageY)}_getSecondPointerPosition(e){const t=e.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[t]}_customWheelEvent(e){const t=e.deltaMode,n={clientX:e.clientX,clientY:e.clientY,deltaY:e.deltaY};switch(t){case 1:n.deltaY*=16;break;case 2:n.deltaY*=100;break}return e.ctrlKey&&!this._controlActive&&(n.deltaY*=10),n}}function Eo(s){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(s.pointerId),this.domElement.addEventListener(\"pointermove\",this._onPointerMove),this.domElement.addEventListener(\"pointerup\",this._onPointerUp)),!this._isTrackingPointer(s)&&(this._addPointer(s),s.pointerType===\"touch\"?this._onTouchStart(s):this._onMouseDown(s)))}function Go(s){this.enabled!==!1&&(s.pointerType===\"touch\"?this._onTouchMove(s):this._onMouseMove(s))}function Vo(s){switch(this._removePointer(s),this._pointers.length){case 0:this.domElement.releasePointerCapture(s.pointerId),this.domElement.removeEventListener(\"pointermove\",this._onPointerMove),this.domElement.removeEventListener(\"pointerup\",this._onPointerUp),this.dispatchEvent(mi),this.state=ce.NONE;break;case 1:const e=this._pointers[0],t=this._pointerPositions[e];this._onTouchStart({pointerId:e,pageX:t.x,pageY:t.y});break}}function Wo(s){let e;switch(s.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case h.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(s),this.state=ce.DOLLY;break;case h.MOUSE.ROTATE:if(s.ctrlKey||s.metaKey||s.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(s),this.state=ce.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(s),this.state=ce.ROTATE}break;case h.MOUSE.PAN:if(s.ctrlKey||s.metaKey||s.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(s),this.state=ce.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(s),this.state=ce.PAN}break;default:this.state=ce.NONE}this.state!==ce.NONE&&this.dispatchEvent(fr)}function jo(s){switch(this.state){case ce.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(s);break;case ce.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(s);break;case ce.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(s);break}}function qo(s){this.enabled===!1||this.enableZoom===!1||this.state!==ce.NONE||(s.preventDefault(),this.dispatchEvent(fr),this._handleMouseWheel(this._customWheelEvent(s)),this.dispatchEvent(mi))}function Zo(s){this.enabled!==!1&&this._handleKeyDown(s)}function Yo(s){switch(this._trackPointer(s),this._pointers.length){case 1:switch(this.touches.ONE){case h.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(s),this.state=ce.TOUCH_ROTATE;break;case h.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(s),this.state=ce.TOUCH_PAN;break;default:this.state=ce.NONE}break;case 2:switch(this.touches.TWO){case h.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(s),this.state=ce.TOUCH_DOLLY_PAN;break;case h.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(s),this.state=ce.TOUCH_DOLLY_ROTATE;break;default:this.state=ce.NONE}break;default:this.state=ce.NONE}this.state!==ce.NONE&&this.dispatchEvent(fr)}function Ko(s){switch(this._trackPointer(s),this.state){case ce.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(s),this.update();break;case ce.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(s),this.update();break;case ce.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(s),this.update();break;case ce.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(s),this.update();break;default:this.state=ce.NONE}}function Xo(s){this.enabled!==!1&&s.preventDefault()}function $o(s){s.key===\"Control\"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener(\"keyup\",this._interceptControlUp,{passive:!0,capture:!0}))}function Qo(s){s.key===\"Control\"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener(\"keyup\",this._interceptControlUp,{passive:!0,capture:!0}))}class Jo extends vi{constructor(e,t){super(e,t),this.screenSpacePanning=!1,this.mouseButtons={LEFT:h.MOUSE.PAN,MIDDLE:h.MOUSE.DOLLY,RIGHT:h.MOUSE.ROTATE},this.touches={ONE:h.TOUCH.PAN,TWO:h.TOUCH.DOLLY_ROTATE}}}class yi{constructor(e){this.controls=e,this.targetAdapter=dt.fromThreeVector(e.target)}get enabled(){return this.controls.enabled}set enabled(e){this.controls.enabled=e}get enableDamping(){return this.controls.enableDamping}set enableDamping(e){this.controls.enableDamping=e}get dampingFactor(){return this.controls.dampingFactor}set dampingFactor(e){this.controls.dampingFactor=e}get enableZoom(){return this.controls.enableZoom}set enableZoom(e){this.controls.enableZoom=e}get enableRotate(){return this.controls.enableRotate}set enableRotate(e){this.controls.enableRotate=e}get enablePan(){return this.controls.enablePan}set enablePan(e){this.controls.enablePan=e}get zoomSpeed(){return this.controls.zoomSpeed}set zoomSpeed(e){this.controls.zoomSpeed=e}get minDistance(){return this.controls.minDistance}set minDistance(e){this.controls.minDistance=e}get maxDistance(){return this.controls.maxDistance}set maxDistance(e){this.controls.maxDistance=e}get rotateSpeed(){return this.controls.rotateSpeed}set rotateSpeed(e){this.controls.rotateSpeed=e}get minPolarAngle(){return this.controls.minPolarAngle}set minPolarAngle(e){this.controls.minPolarAngle=e}get maxPolarAngle(){return this.controls.maxPolarAngle}set maxPolarAngle(e){this.controls.maxPolarAngle=e}get minAzimuthAngle(){return this.controls.minAzimuthAngle}set minAzimuthAngle(e){this.controls.minAzimuthAngle=e}get maxAzimuthAngle(){return this.controls.maxAzimuthAngle}set maxAzimuthAngle(e){this.controls.maxAzimuthAngle=e}get panSpeed(){return this.controls.panSpeed}set panSpeed(e){this.controls.panSpeed=e}get screenSpacePanning(){return this.controls.screenSpacePanning}set screenSpacePanning(e){this.controls.screenSpacePanning=e}get target(){return this.targetAdapter}update(){return this.controls.update()}reset(){this.controls.reset()}dispose(){this.controls.dispose()}connect(e){}disconnect(){this.controls.dispose()}getThreeControls(){return this.controls}}class xi extends yi{constructor(e,t){const n=new vi(e,t);super(n),this.orbitControls=n}get type(){return\"orbit\"}get autoRotate(){return this.orbitControls.autoRotate}set autoRotate(e){this.orbitControls.autoRotate=e}get autoRotateSpeed(){return this.orbitControls.autoRotateSpeed}set autoRotateSpeed(e){this.orbitControls.autoRotateSpeed=e}}class bi extends yi{constructor(e,t){const n=new Jo(e,t);super(n),n.screenSpacePanning=!0}get type(){return\"map\"}get screenSpacePanning(){return!0}set screenSpacePanning(e){}}const pn=class pn{static getHeight(e){return e*this.HEIGHT_RATIO}static getBevelSize(e){return e*this.BEVEL_RATIO}static getBevelThickness(e){return this.getBevelSize(e)}static getBaseSize(e){return e+this.getBevelSize(e)+this.getBevelThickness(e)}static getGapFactor(){return this.GAP_FACTOR}static getGridSpacing(e){const t=this.getBaseSize(e),n=this.getGapFactor();return{width:Math.sqrt(3)*t*n,height:2*t*n}}static getYPosition(e){return-(this.getHeight(e)+this.getBevelSize(e))}};pn.HEIGHT_RATIO=.075,pn.BEVEL_RATIO=.25,pn.GAP_FACTOR=1.05;let At=pn;var at=(s=>(s.SQUARE_WIRE=\"square_wire\",s.HEXAGONAL_WIRE=\"hexagonal_wire\",s.HEXAGONAL_GLASS=\"hexagonal_glass\",s.STONE_TILES=\"stone_tiles\",s.CUSTOM=\"custom\",s))(at||{});class Ho{constructor(){this.name=\"Square Wire Grid\"}createGrid(e){const t=e.size||10,n=e.divisions||10,r=new S.Color(e.color||8947848),o=new S.Color(e.centerLineColor||e.color||4473924),i=new S.GridHelper(t,n,o,r);if(e.opacity!==void 0&&e.opacity<1){const a=i.material;a.transparent=!0,a.opacity=e.opacity}return i}dispose(){}}class ea{constructor(){this.name=\"Hexagonal Wire Grid\"}createGrid(e){var d;const t=new S.Group,n=((d=e.styleOptions)==null?void 0:d.hexRadius)||Math.floor(e.divisions/2),r=e.size/(n*2),o=new S.Color(e.color||8947848),i=e.opacity||.4,a=new S.LineBasicMaterial({color:o,transparent:!0,opacity:i}),c=r*Math.sqrt(3),f=r*2;for(let u=-n;u<=n;u++){const l=Math.max(-n,-u-n),g=Math.min(n,-u+n);for(let y=l;y<=g;y++){const w=c*(u+y/2),m=f*.75*y,x=[],b=Math.PI*2/6;for(let A=0;A<=6;A++){const I=A*b+Math.PI/6,P=w+r*Math.cos(I),D=m+r*Math.sin(I);x.push(new S.Vector3(P,0,D))}const T=new S.BufferGeometry().setFromPoints(x),M=new S.Line(T,a);t.add(M)}}return t}dispose(){}}class ta{constructor(e,t,n){this.position=e,this.size=t,this.color=n,this.height=At.getHeight(this.size),this.bevel=At.getBevelSize(this.size)}createMesh(){const e=new S.Shape,t=this.size+this.bevel,n=Math.PI*2/6;for(let f=0;f<6;f++){const d=t*Math.cos(f*n),u=t*Math.sin(f*n);f===0?e.moveTo(d,u):e.lineTo(d,u)}e.closePath();const r={depth:this.height,bevelEnabled:!0,bevelSize:this.bevel,bevelThickness:this.bevel,bevelSegments:128},o=new S.ExtrudeGeometry(e,r),i=new S.MeshPhysicalMaterial({color:new S.Color(16777215),metalness:0,roughness:.15,transparent:!0,transmission:1,thickness:.4,ior:1.5,opacity:1,clearcoat:1,clearcoatRoughness:.05,sheen:1,sheenColor:new S.Color(16777215),envMapIntensity:1}),a=new S.Mesh(o,i);a.receiveShadow=!0;const c=new S.Group;return c.add(a),c.position.set(this.position.x,this.position.y,this.position.z),c.rotation.x=Math.PI/2,c.rotation.z=Math.PI/6,c}}class na{constructor(){this.name=\"Hexagonal Glass Grid\"}createGrid(e){var f,d;const t=new S.Group,n=((f=e.styleOptions)==null?void 0:f.hexRadius)||Math.floor(e.divisions/2),r=((d=e.styleOptions)==null?void 0:d.tileSize)||1,o=String(e.color||\"#ffffff\"),i=At.getGridSpacing(r),a=i.width,c=i.height;for(let u=-n;u<=n;u++){const l=Math.max(-n,-u-n),g=Math.min(n,-u+n);for(let y=l;y<=g;y++){const w=a*(u+y/2),m=c*.75*y,x=At.getYPosition(r),T=new ta(new S.Vector3(w,x,m),r,o).createMesh();t.add(T)}}return t}dispose(){}}class ra{constructor(){this.name=\"Stone Tile Grid\",this.textureLoader=new S.TextureLoader,this.loadedTextures=new Map}createGrid(e){var g,y,w,m;const t=new S.Group,n=e.size,r=e.divisions,o=n/r,i=o*.02,a=o-i,c=((g=e.styleOptions)==null?void 0:g.height)||o*.05,f=((y=e.styleOptions)==null?void 0:y.bevelSize)||c*.2,d=((w=e.styleOptions)==null?void 0:w.randomHeight)||!1,u=((m=e.styleOptions)==null?void 0:m.randomRotation)||!1,l=this.createStoneMaterial(e);for(let x=0;x<r;x++)for(let b=0;b<r;b++){const T=(x-r/2)*o+o/2,M=(b-r/2)*o+o/2,A=d?c*(.8+Math.random()*.4):c,I=new S.Shape,P=a/2;I.moveTo(-P,-P),I.lineTo(P,-P),I.lineTo(P,P),I.lineTo(-P,P),I.closePath();const D={depth:A,bevelEnabled:!0,bevelSize:f,bevelThickness:f,bevelSegments:2},R=new S.ExtrudeGeometry(I,D);R.rotateX(-Math.PI/2);const O=new S.Mesh(R,l);O.position.set(T,-A/2,M),O.castShadow=!0,O.receiveShadow=!0,u&&(O.rotation.y=Math.floor(Math.random()*4)*(Math.PI/2)),t.add(O)}return t}createStoneMaterial(e){var i,a,c,f,d;const t=new S.Color(e.color||8421504),n=((i=e.styleOptions)==null?void 0:i.metalness)||0,r=((a=e.styleOptions)==null?void 0:a.roughness)||.8,o={color:t,metalness:n,roughness:r};if((c=e.styleOptions)!=null&&c.texture){const u=this.loadTexture(e.styleOptions.texture);u&&(o.map=u,u.wrapS=u.wrapT=S.RepeatWrapping,u.repeat.set(1,1))}if((f=e.styleOptions)!=null&&f.normalMap){const u=this.loadTexture(e.styleOptions.normalMap);u&&(o.normalMap=u,u.wrapS=u.wrapT=S.RepeatWrapping,u.repeat.set(1,1))}if((d=e.styleOptions)!=null&&d.roughnessMap){const u=this.loadTexture(e.styleOptions.roughnessMap);u&&(o.roughnessMap=u,u.wrapS=u.wrapT=S.RepeatWrapping,u.repeat.set(1,1))}return new S.MeshStandardMaterial(o)}loadTexture(e){if(this.loadedTextures.has(e))return this.loadedTextures.get(e)||null;try{const t=this.textureLoader.load(e);return this.loadedTextures.set(e,t),t}catch(t){return console.warn(\"Failed to load texture:\",e,t),null}}dispose(){this.loadedTextures.forEach(e=>{e.dispose()}),this.loadedTextures.clear()}}const ei=class ei{static createGrid(e,t){const n=this.gridStyles.get(e);if(!n){console.warn(`Unknown grid type: ${e}, falling back to square wire grid`);const o=this.gridStyles.get(at.SQUARE_WIRE);if(!o)throw new Error(\"Square wire grid style not found\");return o.createGrid(t)}const r=n.createGrid(t);return r.name=`Grid_${e}`,r}static registerGridStyle(e,t){this.gridStyles.set(e,t)}static getAvailableTypes(){return Array.from(this.gridStyles.keys())}static disposeGridStyle(e){const t=this.gridStyles.get(e);t&&t.dispose&&t.dispose()}};ei.gridStyles=new Map([[at.SQUARE_WIRE,new Ho],[at.HEXAGONAL_WIRE,new ea],[at.HEXAGONAL_GLASS,new na],[at.STONE_TILES,new ra]]);let _n=ei;class ia{addHelpers(e,t){try{if(!(e instanceof St))return W.err(new H(\"Scene must be ThreeSceneAdapter\",te.INVALID_PARAMETER));const n=e.getThreeScene();if(t.grid){const r=n.userData,o=typeof t.grid==\"object\"?t.grid:null,i={enabled:!0,color:(o==null?void 0:o.colorGrid)||t.gridColor||\"#AAAAAA\",type:o!=null&&o.type?o.type:at.HEXAGONAL_GLASS,opacity:o==null?void 0:o.opacity,styleOptions:o==null?void 0:o.styleOptions};if(n.userData={...r,gridOptions:i},o!=null&&o.size||o!=null&&o.divisions){const a=i.type||at.HEXAGONAL_GLASS,c=o.size||10,f=o.divisions||10,d={size:c,divisions:f,color:i.color,opacity:i.opacity,styleOptions:{hexRadius:Math.floor(f/2),tileSize:1,...i.styleOptions}},u=_n.createGrid(a,d);u.userData.isGrid=!0,u.userData.isDefaultGrid=!0,n.add(u)}}if(t.axes){const r=t.axesSize||5,o=new S.AxesHelper(r);n.add(o)}return W.ok(void 0)}catch(n){return W.err(new H(\"Failed to add helpers to scene\",te.SCENE_OPERATION_FAILED,{originalError:n,options:t}))}}addDynamicGrid(e,t,n=1.2){try{if(!(e instanceof St))return W.err(new H(\"Scene must be ThreeSceneAdapter\",te.INVALID_PARAMETER));const r=e.getThreeScene(),o=r.userData,i=o==null?void 0:o.gridOptions;if(!(i!=null&&i.enabled))return W.ok(void 0);const a=[];r.traverse(I=>{var P,D,R;((P=I.userData)!=null&&P.isGrid||(D=I.userData)!=null&&D.isHexGrid||(R=I.userData)!=null&&R.isDefaultGrid)&&a.push(I)}),a.forEach(I=>r.remove(I));let c;t instanceof Fe||\"getThreeObject\"in t&&typeof t.getThreeObject==\"function\"?c=t.getThreeObject():c=t;const d=new S.Box3().setFromObject(c).getSize(new S.Vector3),l=1,y=At.getGridSpacing(l).width,w=Math.max(d.x,d.z)*n;let m=0,x=y;for(;x<w&&m<20;)m++,x+=2*y;w<y*.8?m=0:m<3&&w>y*2&&(m=3);const b=i.type||at.HEXAGONAL_GLASS,M={size:Math.max(d.x,d.z)*n,divisions:m*2+1,color:i.color,opacity:i.opacity,styleOptions:{hexRadius:m,tileSize:l,...i.styleOptions}},A=_n.createGrid(b,M);return A.userData.isGrid=!0,A.userData.isHexGrid=!0,r.add(A),W.ok(void 0)}catch(r){return W.err(new H(\"Failed to add dynamic grid\",te.SCENE_OPERATION_FAILED,{originalError:r}))}}addLighting(e,t){try{if(!(e instanceof St))return W.err(new H(\"Scene must be ThreeSceneAdapter\",te.INVALID_PARAMETER));const n=e.getThreeScene();if(t.ambient){const r=new S.Color(t.ambient.color||\"#404040\"),o=t.ambient.intensity??Math.PI,i=new S.AmbientLight(r,o);n.add(i)}if(t.hemisphere){const r=new S.Color(t.hemisphere.skyColor||\"#ffffbb\"),o=new S.Color(t.hemisphere.groundColor||\"#080820\"),i=t.hemisphere.intensity??1,a=new S.HemisphereLight(r,o,i);n.add(a)}if(t.directional){const r=new S.Color(t.directional.color||\"#ffffff\"),o=t.directional.intensity??Math.PI,i=new S.DirectionalLight(r,o);if(t.directional.position){const a=t.directional.position;if(a instanceof S.Vector3)i.position.copy(a);else if(Array.isArray(a))i.position.set(a[0],a[1],a[2]);else if(typeof a==\"object\"&&\"x\"in a&&\"y\"in a&&\"z\"in a){const c=a;i.position.set(c.x,c.y,c.z)}}else i.position.set(6,6,6);if(t.directional.castShadow&&(i.castShadow=!0,t.directional.shadow)){const a=t.directional.shadow;if(a.mapSize&&(i.shadow.mapSize.width=a.mapSize.width,i.shadow.mapSize.height=a.mapSize.height),a.camera){const c=i.shadow.camera;a.camera.near!==void 0&&(c.near=a.camera.near),a.camera.far!==void 0&&(c.far=a.camera.far),a.camera.left!==void 0&&(c.left=a.camera.left),a.camera.right!==void 0&&(c.right=a.camera.right),a.camera.top!==void 0&&(c.top=a.camera.top),a.camera.bottom!==void 0&&(c.bottom=a.camera.bottom)}a.bias!==void 0&&(i.shadow.bias=a.bias),a.radius!==void 0&&(i.shadow.radius=a.radius)}i.target.position.set(0,0,0),n.add(i),n.add(i.target),i.shadow&&i.shadow.camera.updateProjectionMatrix()}return W.ok(void 0)}catch(n){return W.err(new H(\"Failed to add lighting to scene\",te.SCENE_OPERATION_FAILED,{originalError:n,options:t}))}}createGradientBackground(e,t){try{if(!(e instanceof St))return W.err(new H(\"Scene must be ThreeSceneAdapter\",te.INVALID_PARAMETER));const n=e.getThreeScene(),r=document.createElement(\"canvas\");r.width=2,r.height=512;const o=r.getContext(\"2d\");if(!o)return W.err(new H(\"Failed to create canvas context\",te.SCENE_OPERATION_FAILED));const i=o.createLinearGradient(0,0,0,r.height);i.addColorStop(0,t.topColor),i.addColorStop(1,t.bottomColor),o.fillStyle=i,o.fillRect(0,0,r.width,r.height);const a=new S.CanvasTexture(r);return a.needsUpdate=!0,n.background=a,W.ok(void 0)}catch(n){return W.err(new H(\"Failed to create gradient background\",te.SCENE_OPERATION_FAILED,{originalError:n,options:t}))}}fitCameraToObject(e,t,n){try{let r;e instanceof Fe||\"getThreeObject\"in e&&typeof e.getThreeObject==\"function\"?r=e.getThreeObject():r=e;let o;t instanceof sr||\"getThreeCamera\"in t&&typeof t.getThreeCamera==\"function\"?o=t.getThreeCamera():o=t;let i;n instanceof xi||n instanceof bi||\"getThreeControls\"in n&&typeof n.getThreeControls==\"function\"?i=n.getThreeControls():i=n;const a=new S.Box3().setFromObject(r),c=a.getCenter(new S.Vector3),f=a.getSize(new S.Vector3),d=Math.max(f.x,f.y,f.z);let u;\"fov\"in o?u=o.fov*(Math.PI/180):u=50*(Math.PI/180);let l=Math.abs(d/2/Math.tan(u/2));l*=2;const g=-Math.PI/4,y=Math.PI/8,w=c.x+l*Math.sin(g)*Math.cos(y),m=c.y+l*Math.sin(y),x=c.z+l*Math.cos(g)*Math.cos(y);return o.position.set(w,m,x),o.lookAt(c),o.updateProjectionMatrix(),i&&i.target&&(i.target.copy(c),i.update()),W.ok(void 0)}catch(r){return W.err(new H(\"Failed to fit camera to object\",te.CAMERA_INIT_FAILED,{originalError:r}))}}}const wi=0,sa=1,_i=2,Ti=2,pr=1.25,Si=1,mt=6*4+4+4,Tn=65535,oa=Math.pow(2,-24),mr=Symbol(\"SKIP_GENERATION\");function Mi(s){return s.index?s.index.count:s.attributes.position.count}function Ot(s){return Mi(s)/3}function Ai(s,e=ArrayBuffer){return s>65535?new Uint32Array(new e(4*s)):new Uint16Array(new e(2*s))}function aa(s,e){if(!s.index){const t=s.attributes.position.count,n=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,r=Ai(t,n);s.setIndex(new h.BufferAttribute(r,1));for(let o=0;o<t;o++)r[o]=o}}function Ii(s,e){const t=Ot(s),n=e||s.drawRange,r=n.start/3,o=(n.start+n.count)/3,i=Math.max(0,r),a=Math.min(t,o)-i;return[{offset:Math.floor(i),count:Math.floor(a)}]}function Ci(s,e){if(!s.groups||!s.groups.length)return Ii(s,e);const t=[],n=new Set,r=e||s.drawRange,o=r.start/3,i=(r.start+r.count)/3;for(const c of s.groups){const f=c.start/3,d=(c.start+c.count)/3;n.add(Math.max(o,f)),n.add(Math.min(i,d))}const a=Array.from(n.values()).sort((c,f)=>c-f);for(let c=0;c<a.length-1;c++){const f=a[c],d=a[c+1];t.push({offset:Math.floor(f),count:Math.floor(d-f)})}return t}function ca(s,e){const t=Ot(s),n=Ci(s,e).sort((i,a)=>i.offset-a.offset),r=n[n.length-1];r.count=Math.min(t-r.offset,r.count);let o=0;return n.forEach(({count:i})=>o+=i),t!==o}function gr(s,e,t,n,r){let o=1/0,i=1/0,a=1/0,c=-1/0,f=-1/0,d=-1/0,u=1/0,l=1/0,g=1/0,y=-1/0,w=-1/0,m=-1/0;for(let x=e*6,b=(e+t)*6;x<b;x+=6){const T=s[x+0],M=s[x+1],A=T-M,I=T+M;A<o&&(o=A),I>c&&(c=I),T<u&&(u=T),T>y&&(y=T);const P=s[x+2],D=s[x+3],R=P-D,O=P+D;R<i&&(i=R),O>f&&(f=O),P<l&&(l=P),P>w&&(w=P);const k=s[x+4],L=s[x+5],V=k-L,G=k+L;V<a&&(a=V),G>d&&(d=G),k<g&&(g=k),k>m&&(m=k)}n[0]=o,n[1]=i,n[2]=a,n[3]=c,n[4]=f,n[5]=d,r[0]=u,r[1]=l,r[2]=g,r[3]=y,r[4]=w,r[5]=m}function la(s,e=null,t=null,n=null){const r=s.attributes.position,o=s.index?s.index.array:null,i=Ot(s),a=r.normalized;let c;e===null?(c=new Float32Array(i*6*4),t=0,n=i):(c=e,t=t||0,n=n||i);const f=r.array,d=r.offset||0;let u=3;r.isInterleavedBufferAttribute&&(u=r.data.stride);const l=[\"getX\",\"getY\",\"getZ\"];for(let g=t;g<t+n;g++){const y=g*3,w=g*6;let m=y+0,x=y+1,b=y+2;o&&(m=o[m],x=o[x],b=o[b]),a||(m=m*u+d,x=x*u+d,b=b*u+d);for(let T=0;T<3;T++){let M,A,I;a?(M=r[l[T]](m),A=r[l[T]](x),I=r[l[T]](b)):(M=f[m+T],A=f[x+T],I=f[b+T]);let P=M;A<P&&(P=A),I<P&&(P=I);let D=M;A>D&&(D=A),I>D&&(D=I);const R=(D-P)/2,O=T*2;c[w+O+0]=P+R,c[w+O+1]=R+(Math.abs(P)+R)*oa}}return c}function be(s,e,t){return t.min.x=e[s],t.min.y=e[s+1],t.min.z=e[s+2],t.max.x=e[s+3],t.max.y=e[s+4],t.max.z=e[s+5],t}function Pi(s){let e=-1,t=-1/0;for(let n=0;n<3;n++){const r=s[n+3]-s[n];r>t&&(t=r,e=n)}return e}function Di(s,e){e.set(s)}function Fi(s,e,t){let n,r;for(let o=0;o<3;o++){const i=o+3;n=s[o],r=e[o],t[o]=n<r?n:r,n=s[i],r=e[i],t[i]=n>r?n:r}}function Sn(s,e,t){for(let n=0;n<3;n++){const r=e[s+2*n],o=e[s+2*n+1],i=r-o,a=r+o;i<t[n]&&(t[n]=i),a>t[n+3]&&(t[n+3]=a)}}function tn(s){const e=s[3]-s[0],t=s[4]-s[1],n=s[5]-s[2];return 2*(e*t+t*n+n*e)}const ct=32,ua=(s,e)=>s.candidate-e.candidate,gt=new Array(ct).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),Mn=new Float32Array(6);function ha(s,e,t,n,r,o){let i=-1,a=0;if(o===wi)i=Pi(e),i!==-1&&(a=(e[i]+e[i+3])/2);else if(o===sa)i=Pi(s),i!==-1&&(a=fa(t,n,r,i));else if(o===_i){const c=tn(s);let f=pr*r;const d=n*6,u=(n+r)*6;for(let l=0;l<3;l++){const g=e[l],m=(e[l+3]-g)/ct;if(r<ct/4){const x=[...gt];x.length=r;let b=0;for(let M=d;M<u;M+=6,b++){const A=x[b];A.candidate=t[M+2*l],A.count=0;const{bounds:I,leftCacheBounds:P,rightCacheBounds:D}=A;for(let R=0;R<3;R++)D[R]=1/0,D[R+3]=-1/0,P[R]=1/0,P[R+3]=-1/0,I[R]=1/0,I[R+3]=-1/0;Sn(M,t,I)}x.sort(ua);let T=r;for(let M=0;M<T;M++){const A=x[M];for(;M+1<T&&x[M+1].candidate===A.candidate;)x.splice(M+1,1),T--}for(let M=d;M<u;M+=6){const A=t[M+2*l];for(let I=0;I<T;I++){const P=x[I];A>=P.candidate?Sn(M,t,P.rightCacheBounds):(Sn(M,t,P.leftCacheBounds),P.count++)}}for(let M=0;M<T;M++){const A=x[M],I=A.count,P=r-A.count,D=A.leftCacheBounds,R=A.rightCacheBounds;let O=0;I!==0&&(O=tn(D)/c);let k=0;P!==0&&(k=tn(R)/c);const L=Si+pr*(O*I+k*P);L<f&&(i=l,f=L,a=A.candidate)}}else{for(let T=0;T<ct;T++){const M=gt[T];M.count=0,M.candidate=g+m+T*m;const A=M.bounds;for(let I=0;I<3;I++)A[I]=1/0,A[I+3]=-1/0}for(let T=d;T<u;T+=6){let I=~~((t[T+2*l]-g)/m);I>=ct&&(I=ct-1);const P=gt[I];P.count++,Sn(T,t,P.bounds)}const x=gt[ct-1];Di(x.bounds,x.rightCacheBounds);for(let T=ct-2;T>=0;T--){const M=gt[T],A=gt[T+1];Fi(M.bounds,A.rightCacheBounds,M.rightCacheBounds)}let b=0;for(let T=0;T<ct-1;T++){const M=gt[T],A=M.count,I=M.bounds,D=gt[T+1].rightCacheBounds;A!==0&&(b===0?Di(I,Mn):Fi(I,Mn,Mn)),b+=A;let R=0,O=0;b!==0&&(R=tn(Mn)/c);const k=r-b;k!==0&&(O=tn(D)/c);const L=Si+pr*(R*b+O*k);L<f&&(i=l,f=L,a=M.candidate)}}}}else console.warn(`MeshBVH: Invalid build strategy value ${o} used.`);return{axis:i,pos:a}}function fa(s,e,t,n){let r=0;for(let o=e,i=e+t;o<i;o++)r+=s[o*6+n*2];return r/t}class vr{constructor(){this.boundingData=new Float32Array(6)}}function da(s,e,t,n,r,o){let i=n,a=n+r-1;const c=o.pos,f=o.axis*2;for(;;){for(;i<=a&&t[i*6+f]<c;)i++;for(;i<=a&&t[a*6+f]>=c;)a--;if(i<a){for(let d=0;d<3;d++){let u=e[i*3+d];e[i*3+d]=e[a*3+d],e[a*3+d]=u}for(let d=0;d<6;d++){let u=t[i*6+d];t[i*6+d]=t[a*6+d],t[a*6+d]=u}i++,a--}else return i}}function pa(s,e,t,n,r,o){let i=n,a=n+r-1;const c=o.pos,f=o.axis*2;for(;;){for(;i<=a&&t[i*6+f]<c;)i++;for(;i<=a&&t[a*6+f]>=c;)a--;if(i<a){let d=s[i];s[i]=s[a],s[a]=d;for(let u=0;u<6;u++){let l=t[i*6+u];t[i*6+u]=t[a*6+u],t[a*6+u]=l}i++,a--}else return i}}function Re(s,e){return e[s+15]===65535}function Ne(s,e){return e[s+6]}function Be(s,e){return e[s+14]}function We(s){return s+8}function Ue(s,e){return e[s+6]}function yr(s,e){return e[s+7]}function Yh(s){return s}let Ri,nn,An,Oi;const ma=Math.pow(2,32);function xr(s){return\"count\"in s?1:1+xr(s.left)+xr(s.right)}function ga(s,e,t){return Ri=new Float32Array(t),nn=new Uint32Array(t),An=new Uint16Array(t),Oi=new Uint8Array(t),br(s,e)}function br(s,e){const t=s/4,n=s/2,r=\"count\"in e,o=e.boundingData;for(let i=0;i<6;i++)Ri[t+i]=o[i];if(r)if(e.buffer){const i=e.buffer;Oi.set(new Uint8Array(i),s);for(let a=s,c=s+i.byteLength;a<c;a+=mt){const f=a/2;Re(f,An)||(nn[a/4+6]+=t)}return s+i.byteLength}else{const i=e.offset,a=e.count;return nn[t+6]=i,An[n+14]=a,An[n+15]=Tn,s+mt}else{const i=e.left,a=e.right,c=e.splitAxis;let f;if(f=br(s+mt,i),f/4>ma)throw new Error(\"MeshBVH: Cannot store child pointer greater than 32 bits.\");return nn[t+6]=f/4,f=br(f,a),nn[t+7]=c,f}}function va(s,e){const t=(s.index?s.index.count:s.attributes.position.count)/3,n=t>2**16,r=n?4:2,o=e?new SharedArrayBuffer(t*r):new ArrayBuffer(t*r),i=n?new Uint32Array(o):new Uint16Array(o);for(let a=0,c=i.length;a<c;a++)i[a]=a;return i}function ya(s,e,t,n,r){const{maxDepth:o,verbose:i,maxLeafTris:a,strategy:c,onProgress:f,indirect:d}=r,u=s._indirectBuffer,l=s.geometry,g=l.index?l.index.array:null,y=d?pa:da,w=Ot(l),m=new Float32Array(6);let x=!1;const b=new vr;return gr(e,t,n,b.boundingData,m),M(b,t,n,m),b;function T(A){f&&f(A/w)}function M(A,I,P,D=null,R=0){if(!x&&R>=o&&(x=!0,i&&(console.warn(`MeshBVH: Max depth of ${o} reached when generating BVH. Consider increasing maxDepth.`),console.warn(l))),P<=a||R>=o)return T(I+P),A.offset=I,A.count=P,A;const O=ha(A.boundingData,D,e,I,P,c);if(O.axis===-1)return T(I+P),A.offset=I,A.count=P,A;const k=y(u,g,e,I,P,O);if(k===I||k===I+P)T(I+P),A.offset=I,A.count=P;else{A.splitAxis=O.axis;const L=new vr,V=I,G=k-I;A.left=L,gr(e,V,G,L.boundingData,m),M(L,V,G,m,R+1);const Q=new vr,J=k,me=P-G;A.right=Q,gr(e,J,me,Q.boundingData,m),M(Q,J,me,m,R+1)}return A}}function xa(s,e){const t=s.geometry;e.indirect&&(s._indirectBuffer=va(t,e.useSharedArrayBuffer),ca(t,e.range)&&!e.verbose&&console.warn('MeshBVH: Provided geometry contains groups or a range that do not fully span the vertex contents while using the \"indirect\" option. BVH may incorrectly report intersections on unrendered portions of the geometry.')),s._indirectBuffer||aa(t,e);const n=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,r=la(t),o=e.indirect?Ii(t,e.range):Ci(t,e.range);s._roots=o.map(i=>{const a=ya(s,r,i.offset,i.count,e),c=xr(a),f=new n(mt*c);return ga(0,a,f),f})}class lt{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let n=1/0,r=-1/0;for(let o=0,i=e.length;o<i;o++){const c=e[o][t];n=c<n?c:n,r=c>r?c:r}this.min=n,this.max=r}setFromPoints(e,t){let n=1/0,r=-1/0;for(let o=0,i=t.length;o<i;o++){const a=t[o],c=e.dot(a);n=c<n?c:n,r=c>r?c:r}this.min=n,this.max=r}isSeparated(e){return this.min>e.max||e.min>this.max}}lt.prototype.setFromBox=function(){const s=new h.Vector3;return function(t,n){const r=n.min,o=n.max;let i=1/0,a=-1/0;for(let c=0;c<=1;c++)for(let f=0;f<=1;f++)for(let d=0;d<=1;d++){s.x=r.x*c+o.x*(1-c),s.y=r.y*f+o.y*(1-f),s.z=r.z*d+o.z*(1-d);const u=t.dot(s);i=Math.min(u,i),a=Math.max(u,a)}this.min=i,this.max=a}}();const ba=function(){const s=new h.Vector3,e=new h.Vector3,t=new h.Vector3;return function(r,o,i){const a=r.start,c=s,f=o.start,d=e;t.subVectors(a,f),s.subVectors(r.end,r.start),e.subVectors(o.end,o.start);const u=t.dot(d),l=d.dot(c),g=d.dot(d),y=t.dot(c),m=c.dot(c)*g-l*l;let x,b;m!==0?x=(u*l-y*g)/m:x=0,b=(u+x*l)/g,i.x=x,i.y=b}}(),wr=function(){const s=new h.Vector2,e=new h.Vector3,t=new h.Vector3;return function(r,o,i,a){ba(r,o,s);let c=s.x,f=s.y;if(c>=0&&c<=1&&f>=0&&f<=1){r.at(c,i),o.at(f,a);return}else if(c>=0&&c<=1){f<0?o.at(0,a):o.at(1,a),r.closestPointToPoint(a,!0,i);return}else if(f>=0&&f<=1){c<0?r.at(0,i):r.at(1,i),o.closestPointToPoint(i,!0,a);return}else{let d;c<0?d=r.start:d=r.end;let u;f<0?u=o.start:u=o.end;const l=e,g=t;if(r.closestPointToPoint(u,!0,e),o.closestPointToPoint(d,!0,t),l.distanceToSquared(u)<=g.distanceToSquared(d)){i.copy(l),a.copy(u);return}else{i.copy(d),a.copy(g);return}}}}(),wa=function(){const s=new h.Vector3,e=new h.Vector3,t=new h.Plane,n=new h.Line3;return function(o,i){const{radius:a,center:c}=o,{a:f,b:d,c:u}=i;if(n.start=f,n.end=d,n.closestPointToPoint(c,!0,s).distanceTo(c)<=a||(n.start=f,n.end=u,n.closestPointToPoint(c,!0,s).distanceTo(c)<=a)||(n.start=d,n.end=u,n.closestPointToPoint(c,!0,s).distanceTo(c)<=a))return!0;const w=i.getPlane(t);if(Math.abs(w.distanceToPoint(c))<=a){const x=w.projectPoint(c,e);if(i.containsPoint(x))return!0}return!1}}(),_a=1e-15;function _r(s){return Math.abs(s)<_a}class Qe extends h.Triangle{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new h.Vector3),this.satBounds=new Array(4).fill().map(()=>new lt),this.points=[this.a,this.b,this.c],this.sphere=new h.Sphere,this.plane=new h.Plane,this.needsUpdate=!0}intersectsSphere(e){return wa(e,this)}update(){const e=this.a,t=this.b,n=this.c,r=this.points,o=this.satAxes,i=this.satBounds,a=o[0],c=i[0];this.getNormal(a),c.setFromPoints(a,r);const f=o[1],d=i[1];f.subVectors(e,t),d.setFromPoints(f,r);const u=o[2],l=i[2];u.subVectors(t,n),l.setFromPoints(u,r);const g=o[3],y=i[3];g.subVectors(n,e),y.setFromPoints(g,r),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(a,e),this.needsUpdate=!1}}Qe.prototype.closestPointToSegment=function(){const s=new h.Vector3,e=new h.Vector3,t=new h.Line3;return function(r,o=null,i=null){const{start:a,end:c}=r,f=this.points;let d,u=1/0;for(let l=0;l<3;l++){const g=(l+1)%3;t.start.copy(f[l]),t.end.copy(f[g]),wr(t,r,s,e),d=s.distanceToSquared(e),d<u&&(u=d,o&&o.copy(s),i&&i.copy(e))}return this.closestPointToPoint(a,s),d=a.distanceToSquared(s),d<u&&(u=d,o&&o.copy(s),i&&i.copy(a)),this.closestPointToPoint(c,s),d=c.distanceToSquared(s),d<u&&(u=d,o&&o.copy(s),i&&i.copy(c)),Math.sqrt(u)}}(),Qe.prototype.intersectsTriangle=function(){const s=new Qe,e=new Array(3),t=new Array(3),n=new lt,r=new lt,o=new h.Vector3,i=new h.Vector3,a=new h.Vector3,c=new h.Vector3,f=new h.Vector3,d=new h.Line3,u=new h.Line3,l=new h.Line3,g=new h.Vector3;function y(w,m,x){const b=w.points;let T=0,M=-1;for(let A=0;A<3;A++){const{start:I,end:P}=d;I.copy(b[A]),P.copy(b[(A+1)%3]),d.delta(i);const D=_r(m.distanceToPoint(I));if(_r(m.normal.dot(i))&&D){x.copy(d),T=2;break}const R=m.intersectLine(d,g);if(!R&&D&&g.copy(I),(R||D)&&!_r(g.distanceTo(P))){if(T<=1)(T===1?x.start:x.end).copy(g),D&&(M=T);else if(T>=2){(M===1?x.start:x.end).copy(g),T=2;break}if(T++,T===2&&M===-1)break}}return T}return function(m,x=null,b=!1){this.needsUpdate&&this.update(),m.isExtendedTriangle?m.needsUpdate&&m.update():(s.copy(m),s.update(),m=s);const T=this.plane,M=m.plane;if(Math.abs(T.normal.dot(M.normal))>1-1e-10){const A=this.satBounds,I=this.satAxes;t[0]=m.a,t[1]=m.b,t[2]=m.c;for(let R=0;R<4;R++){const O=A[R],k=I[R];if(n.setFromPoints(k,t),O.isSeparated(n))return!1}const P=m.satBounds,D=m.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let R=0;R<4;R++){const O=P[R],k=D[R];if(n.setFromPoints(k,e),O.isSeparated(n))return!1}for(let R=0;R<4;R++){const O=I[R];for(let k=0;k<4;k++){const L=D[k];if(o.crossVectors(O,L),n.setFromPoints(o,e),r.setFromPoints(o,t),n.isSeparated(r))return!1}}return x&&(b||console.warn(\"ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.\"),x.start.set(0,0,0),x.end.set(0,0,0)),!0}else{const A=y(this,M,u);if(A===1&&m.containsPoint(u.end))return x&&(x.start.copy(u.end),x.end.copy(u.end)),!0;if(A!==2)return!1;const I=y(m,T,l);if(I===1&&this.containsPoint(l.end))return x&&(x.start.copy(l.end),x.end.copy(l.end)),!0;if(I!==2)return!1;if(u.delta(a),l.delta(c),a.dot(c)<0){let V=l.start;l.start=l.end,l.end=V}const P=u.start.dot(a),D=u.end.dot(a),R=l.start.dot(a),O=l.end.dot(a),k=D<R,L=P<O;return P!==O&&R!==D&&k===L?!1:(x&&(f.subVectors(u.start,l.start),f.dot(a)>0?x.start.copy(u.start):x.start.copy(l.start),f.subVectors(u.end,l.end),f.dot(a)<0?x.end.copy(u.end):x.end.copy(l.end)),!0)}}}(),Qe.prototype.distanceToPoint=function(){const s=new h.Vector3;return function(t){return this.closestPointToPoint(t,s),t.distanceTo(s)}}(),Qe.prototype.distanceToTriangle=function(){const s=new h.Vector3,e=new h.Vector3,t=[\"a\",\"b\",\"c\"],n=new h.Line3,r=new h.Line3;return function(i,a=null,c=null){const f=a||c?n:null;if(this.intersectsTriangle(i,f))return(a||c)&&(a&&f.getCenter(a),c&&f.getCenter(c)),0;let d=1/0;for(let u=0;u<3;u++){let l;const g=t[u],y=i[g];this.closestPointToPoint(y,s),l=y.distanceToSquared(s),l<d&&(d=l,a&&a.copy(s),c&&c.copy(y));const w=this[g];i.closestPointToPoint(w,s),l=w.distanceToSquared(s),l<d&&(d=l,a&&a.copy(w),c&&c.copy(s))}for(let u=0;u<3;u++){const l=t[u],g=t[(u+1)%3];n.set(this[l],this[g]);for(let y=0;y<3;y++){const w=t[y],m=t[(y+1)%3];r.set(i[w],i[m]),wr(n,r,s,e);const x=s.distanceToSquared(e);x<d&&(d=x,a&&a.copy(s),c&&c.copy(e))}}return Math.sqrt(d)}}();class Oe{constructor(e,t,n){this.isOrientedBox=!0,this.min=new h.Vector3,this.max=new h.Vector3,this.matrix=new h.Matrix4,this.invMatrix=new h.Matrix4,this.points=new Array(8).fill().map(()=>new h.Vector3),this.satAxes=new Array(3).fill().map(()=>new h.Vector3),this.satBounds=new Array(3).fill().map(()=>new lt),this.alignedSatBounds=new Array(3).fill().map(()=>new lt),this.needsUpdate=!1,e&&this.min.copy(e),t&&this.max.copy(t),n&&this.matrix.copy(n)}set(e,t,n){this.min.copy(e),this.max.copy(t),this.matrix.copy(n),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}}Oe.prototype.update=function(){return function(){const e=this.matrix,t=this.min,n=this.max,r=this.points;for(let f=0;f<=1;f++)for(let d=0;d<=1;d++)for(let u=0;u<=1;u++){const l=1*f|2*d|4*u,g=r[l];g.x=f?n.x:t.x,g.y=d?n.y:t.y,g.z=u?n.z:t.z,g.applyMatrix4(e)}const o=this.satBounds,i=this.satAxes,a=r[0];for(let f=0;f<3;f++){const d=i[f],u=o[f],l=1<<f,g=r[l];d.subVectors(a,g),u.setFromPoints(d,r)}const c=this.alignedSatBounds;c[0].setFromPointsField(r,\"x\"),c[1].setFromPointsField(r,\"y\"),c[2].setFromPointsField(r,\"z\"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1}}(),Oe.prototype.intersectsBox=function(){const s=new lt;return function(t){this.needsUpdate&&this.update();const n=t.min,r=t.max,o=this.satBounds,i=this.satAxes,a=this.alignedSatBounds;if(s.min=n.x,s.max=r.x,a[0].isSeparated(s)||(s.min=n.y,s.max=r.y,a[1].isSeparated(s))||(s.min=n.z,s.max=r.z,a[2].isSeparated(s)))return!1;for(let c=0;c<3;c++){const f=i[c],d=o[c];if(s.setFromBox(f,t),d.isSeparated(s))return!1}return!0}}(),Oe.prototype.intersectsTriangle=function(){const s=new Qe,e=new Array(3),t=new lt,n=new lt,r=new h.Vector3;return function(i){this.needsUpdate&&this.update(),i.isExtendedTriangle?i.needsUpdate&&i.update():(s.copy(i),s.update(),i=s);const a=this.satBounds,c=this.satAxes;e[0]=i.a,e[1]=i.b,e[2]=i.c;for(let l=0;l<3;l++){const g=a[l],y=c[l];if(t.setFromPoints(y,e),g.isSeparated(t))return!1}const f=i.satBounds,d=i.satAxes,u=this.points;for(let l=0;l<3;l++){const g=f[l],y=d[l];if(t.setFromPoints(y,u),g.isSeparated(t))return!1}for(let l=0;l<3;l++){const g=c[l];for(let y=0;y<4;y++){const w=d[y];if(r.crossVectors(g,w),t.setFromPoints(r,e),n.setFromPoints(r,u),t.isSeparated(n))return!1}}return!0}}(),Oe.prototype.closestPointToPoint=function(){return function(e,t){return this.needsUpdate&&this.update(),t.copy(e).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),t}}(),Oe.prototype.distanceToPoint=function(){const s=new h.Vector3;return function(t){return this.closestPointToPoint(t,s),t.distanceTo(s)}}(),Oe.prototype.distanceToBox=function(){const s=[\"x\",\"y\",\"z\"],e=new Array(12).fill().map(()=>new h.Line3),t=new Array(12).fill().map(()=>new h.Line3),n=new h.Vector3,r=new h.Vector3;return function(i,a=0,c=null,f=null){if(this.needsUpdate&&this.update(),this.intersectsBox(i))return(c||f)&&(i.getCenter(r),this.closestPointToPoint(r,n),i.closestPointToPoint(n,r),c&&c.copy(n),f&&f.copy(r)),0;const d=a*a,u=i.min,l=i.max,g=this.points;let y=1/0;for(let m=0;m<8;m++){const x=g[m];r.copy(x).clamp(u,l);const b=x.distanceToSquared(r);if(b<y&&(y=b,c&&c.copy(x),f&&f.copy(r),b<d))return Math.sqrt(b)}let w=0;for(let m=0;m<3;m++)for(let x=0;x<=1;x++)for(let b=0;b<=1;b++){const T=(m+1)%3,M=(m+2)%3,A=x<<T|b<<M,I=1<<m|x<<T|b<<M,P=g[A],D=g[I];e[w].set(P,D);const O=s[m],k=s[T],L=s[M],V=t[w],G=V.start,Q=V.end;G[O]=u[O],G[k]=x?u[k]:l[k],G[L]=b?u[L]:l[k],Q[O]=l[O],Q[k]=x?u[k]:l[k],Q[L]=b?u[L]:l[k],w++}for(let m=0;m<=1;m++)for(let x=0;x<=1;x++)for(let b=0;b<=1;b++){r.x=m?l.x:u.x,r.y=x?l.y:u.y,r.z=b?l.z:u.z,this.closestPointToPoint(r,n);const T=r.distanceToSquared(n);if(T<y&&(y=T,c&&c.copy(n),f&&f.copy(r),T<d))return Math.sqrt(T)}for(let m=0;m<12;m++){const x=e[m];for(let b=0;b<12;b++){const T=t[b];wr(x,T,n,r);const M=n.distanceToSquared(r);if(M<y&&(y=M,c&&c.copy(n),f&&f.copy(r),M<d))return Math.sqrt(M)}}return Math.sqrt(y)}}();class Tr{constructor(e){this._getNewPrimitive=e,this._primitives=[]}getPrimitive(){const e=this._primitives;return e.length===0?this._getNewPrimitive():e.pop()}releasePrimitive(e){this._primitives.push(e)}}class Ta extends Tr{constructor(){super(()=>new Qe)}}const je=new Ta;class Sa{constructor(){this.float32Array=null,this.uint16Array=null,this.uint32Array=null;const e=[];let t=null;this.setBuffer=n=>{t&&e.push(t),t=n,this.float32Array=new Float32Array(n),this.uint16Array=new Uint16Array(n),this.uint32Array=new Uint32Array(n)},this.clearBuffer=()=>{t=null,this.float32Array=null,this.uint16Array=null,this.uint32Array=null,e.length!==0&&this.setBuffer(e.pop())}}}const de=new Sa;let vt,Lt;const Nt=[],In=new Tr(()=>new h.Box3);function Ma(s,e,t,n,r,o){vt=In.getPrimitive(),Lt=In.getPrimitive(),Nt.push(vt,Lt),de.setBuffer(s._roots[e]);const i=Sr(0,s.geometry,t,n,r,o);de.clearBuffer(),In.releasePrimitive(vt),In.releasePrimitive(Lt),Nt.pop(),Nt.pop();const a=Nt.length;return a>0&&(Lt=Nt[a-1],vt=Nt[a-2]),i}function Sr(s,e,t,n,r=null,o=0,i=0){const{float32Array:a,uint16Array:c,uint32Array:f}=de;let d=s*2;if(Re(d,c)){const l=Ne(s,f),g=Be(d,c);return be(s,a,vt),n(l,g,!1,i,o+s,vt)}else{let O=function(L){const{uint16Array:V,uint32Array:G}=de;let Q=L*2;for(;!Re(Q,V);)L=We(L),Q=L*2;return Ne(L,G)},k=function(L){const{uint16Array:V,uint32Array:G}=de;let Q=L*2;for(;!Re(Q,V);)L=Ue(L,G),Q=L*2;return Ne(L,G)+Be(Q,V)};const l=We(s),g=Ue(s,f);let y=l,w=g,m,x,b,T;if(r&&(b=vt,T=Lt,be(y,a,b),be(w,a,T),m=r(b),x=r(T),x<m)){y=g,w=l;const L=m;m=x,x=L,b=T}b||(b=vt,be(y,a,b));const M=Re(y*2,c),A=t(b,M,m,i+1,o+y);let I;if(A===Ti){const L=O(y),G=k(y)-L;I=n(L,G,!0,i+1,o+y,b)}else I=A&&Sr(y,e,t,n,r,o,i+1);if(I)return!0;T=Lt,be(w,a,T);const P=Re(w*2,c),D=t(T,P,x,i+1,o+w);let R;if(D===Ti){const L=O(w),G=k(w)-L;R=n(L,G,!0,i+1,o+w,T)}else R=D&&Sr(w,e,t,n,r,o,i+1);return!!R}}const rn=new h.Vector3,Mr=new h.Vector3;function Aa(s,e,t={},n=0,r=1/0){const o=n*n,i=r*r;let a=1/0,c=null;if(s.shapecast({boundsTraverseOrder:d=>(rn.copy(e).clamp(d.min,d.max),rn.distanceToSquared(e)),intersectsBounds:(d,u,l)=>l<a&&l<i,intersectsTriangle:(d,u)=>{d.closestPointToPoint(e,rn);const l=e.distanceToSquared(rn);return l<a&&(Mr.copy(rn),a=l,c=u),l<o}}),a===1/0)return null;const f=Math.sqrt(a);return t.point?t.point.copy(Mr):t.point=Mr.clone(),t.distance=f,t.faceIndex=c,t}const kt=new h.Vector3,zt=new h.Vector3,Bt=new h.Vector3,Cn=new h.Vector2,Pn=new h.Vector2,Dn=new h.Vector2,Li=new h.Vector3,Ni=new h.Vector3,ki=new h.Vector3,Fn=new h.Vector3;function Ia(s,e,t,n,r,o,i,a){let c;if(o===h.BackSide?c=s.intersectTriangle(n,t,e,!0,r):c=s.intersectTriangle(e,t,n,o!==h.DoubleSide,r),c===null)return null;const f=s.origin.distanceTo(r);return f<i||f>a?null:{distance:f,point:r.clone()}}function Ca(s,e,t,n,r,o,i,a,c,f,d){kt.fromBufferAttribute(e,o),zt.fromBufferAttribute(e,i),Bt.fromBufferAttribute(e,a);const u=Ia(s,kt,zt,Bt,Fn,c,f,d);if(u){n&&(Cn.fromBufferAttribute(n,o),Pn.fromBufferAttribute(n,i),Dn.fromBufferAttribute(n,a),u.uv=h.Triangle.getInterpolation(Fn,kt,zt,Bt,Cn,Pn,Dn,new h.Vector2)),r&&(Cn.fromBufferAttribute(r,o),Pn.fromBufferAttribute(r,i),Dn.fromBufferAttribute(r,a),u.uv1=h.Triangle.getInterpolation(Fn,kt,zt,Bt,Cn,Pn,Dn,new h.Vector2)),t&&(Li.fromBufferAttribute(t,o),Ni.fromBufferAttribute(t,i),ki.fromBufferAttribute(t,a),u.normal=h.Triangle.getInterpolation(Fn,kt,zt,Bt,Li,Ni,ki,new h.Vector3),u.normal.dot(s.direction)>0&&u.normal.multiplyScalar(-1));const l={a:o,b:i,c:a,normal:new h.Vector3,materialIndex:0};h.Triangle.getNormal(kt,zt,Bt,l.normal),u.face=l,u.faceIndex=o}return u}function Rn(s,e,t,n,r,o,i){const a=n*3;let c=a+0,f=a+1,d=a+2;const u=s.index;s.index&&(c=u.getX(c),f=u.getX(f),d=u.getX(d));const{position:l,normal:g,uv:y,uv1:w}=s.attributes,m=Ca(t,l,g,y,w,c,f,d,e,o,i);return m?(m.faceIndex=n,r&&r.push(m),m):null}function _e(s,e,t,n){const r=s.a,o=s.b,i=s.c;let a=e,c=e+1,f=e+2;t&&(a=t.getX(a),c=t.getX(c),f=t.getX(f)),r.x=n.getX(a),r.y=n.getY(a),r.z=n.getZ(a),o.x=n.getX(c),o.y=n.getY(c),o.z=n.getZ(c),i.x=n.getX(f),i.y=n.getY(f),i.z=n.getZ(f)}function Pa(s,e,t,n,r,o,i,a){const{geometry:c,_indirectBuffer:f}=s;for(let d=n,u=n+r;d<u;d++)Rn(c,e,t,d,o,i,a)}function Da(s,e,t,n,r,o,i){const{geometry:a,_indirectBuffer:c}=s;let f=1/0,d=null;for(let u=n,l=n+r;u<l;u++){let g;g=Rn(a,e,t,u,null,o,i),g&&g.distance<f&&(d=g,f=g.distance)}return d}function Fa(s,e,t,n,r,o,i){const{geometry:a}=t,{index:c}=a,f=a.attributes.position;for(let d=s,u=e+s;d<u;d++){let l;if(l=d,_e(i,l*3,c,f),i.needsUpdate=!0,n(i,l,r,o))return!0}return!1}function Ra(s,e=null){e&&Array.isArray(e)&&(e=new Set(e));const t=s.geometry,n=t.index?t.index.array:null,r=t.attributes.position;let o,i,a,c,f=0;const d=s._roots;for(let l=0,g=d.length;l<g;l++)o=d[l],i=new Uint32Array(o),a=new Uint16Array(o),c=new Float32Array(o),u(0,f),f+=o.byteLength;function u(l,g,y=!1){const w=l*2;if(a[w+15]===Tn){const x=i[l+6],b=a[w+14];let T=1/0,M=1/0,A=1/0,I=-1/0,P=-1/0,D=-1/0;for(let R=3*x,O=3*(x+b);R<O;R++){let k=n[R];const L=r.getX(k),V=r.getY(k),G=r.getZ(k);L<T&&(T=L),L>I&&(I=L),V<M&&(M=V),V>P&&(P=V),G<A&&(A=G),G>D&&(D=G)}return c[l+0]!==T||c[l+1]!==M||c[l+2]!==A||c[l+3]!==I||c[l+4]!==P||c[l+5]!==D?(c[l+0]=T,c[l+1]=M,c[l+2]=A,c[l+3]=I,c[l+4]=P,c[l+5]=D,!0):!1}else{const x=l+8,b=i[l+6],T=x+g,M=b+g;let A=y,I=!1,P=!1;e?A||(I=e.has(T),P=e.has(M),A=!I&&!P):(I=!0,P=!0);const D=A||I,R=A||P;let O=!1;D&&(O=u(x,g,A));let k=!1;R&&(k=u(b,g,A));const L=O||k;if(L)for(let V=0;V<3;V++){const G=x+V,Q=b+V,J=c[G],me=c[G+3],Ce=c[Q],ge=c[Q+3];c[l+V]=J<Ce?J:Ce,c[l+V+3]=me>ge?me:ge}return L}}}function yt(s,e,t,n,r){let o,i,a,c,f,d;const u=1/t.direction.x,l=1/t.direction.y,g=1/t.direction.z,y=t.origin.x,w=t.origin.y,m=t.origin.z;let x=e[s],b=e[s+3],T=e[s+1],M=e[s+3+1],A=e[s+2],I=e[s+3+2];return u>=0?(o=(x-y)*u,i=(b-y)*u):(o=(b-y)*u,i=(x-y)*u),l>=0?(a=(T-w)*l,c=(M-w)*l):(a=(M-w)*l,c=(T-w)*l),o>c||a>i||((a>o||isNaN(o))&&(o=a),(c<i||isNaN(i))&&(i=c),g>=0?(f=(A-m)*g,d=(I-m)*g):(f=(I-m)*g,d=(A-m)*g),o>d||f>i)?!1:((f>o||o!==o)&&(o=f),(d<i||i!==i)&&(i=d),o<=r&&i>=n)}function Oa(s,e,t,n,r,o,i,a){const{geometry:c,_indirectBuffer:f}=s;for(let d=n,u=n+r;d<u;d++){let l=f?f[d]:d;Rn(c,e,t,l,o,i,a)}}function La(s,e,t,n,r,o,i){const{geometry:a,_indirectBuffer:c}=s;let f=1/0,d=null;for(let u=n,l=n+r;u<l;u++){let g;g=Rn(a,e,t,c?c[u]:u,null,o,i),g&&g.distance<f&&(d=g,f=g.distance)}return d}function Na(s,e,t,n,r,o,i){const{geometry:a}=t,{index:c}=a,f=a.attributes.position;for(let d=s,u=e+s;d<u;d++){let l;if(l=t.resolveTriangleIndex(d),_e(i,l*3,c,f),i.needsUpdate=!0,n(i,l,r,o))return!0}return!1}function ka(s,e,t,n,r,o,i){de.setBuffer(s._roots[e]),Ar(0,s,t,n,r,o,i),de.clearBuffer()}function Ar(s,e,t,n,r,o,i){const{float32Array:a,uint16Array:c,uint32Array:f}=de,d=s*2;if(Re(d,c)){const l=Ne(s,f),g=Be(d,c);Pa(e,t,n,l,g,r,o,i)}else{const l=We(s);yt(l,a,n,o,i)&&Ar(l,e,t,n,r,o,i);const g=Ue(s,f);yt(g,a,n,o,i)&&Ar(g,e,t,n,r,o,i)}}const za=[\"x\",\"y\",\"z\"];function Ba(s,e,t,n,r,o){de.setBuffer(s._roots[e]);const i=Ir(0,s,t,n,r,o);return de.clearBuffer(),i}function Ir(s,e,t,n,r,o){const{float32Array:i,uint16Array:a,uint32Array:c}=de;let f=s*2;if(Re(f,a)){const u=Ne(s,c),l=Be(f,a);return Da(e,t,n,u,l,r,o)}else{const u=yr(s,c),l=za[u],y=n.direction[l]>=0;let w,m;y?(w=We(s),m=Ue(s,c)):(w=Ue(s,c),m=We(s));const b=yt(w,i,n,r,o)?Ir(w,e,t,n,r,o):null;if(b){const A=b.point[l];if(y?A<=i[m+u]:A>=i[m+u+3])return b}const M=yt(m,i,n,r,o)?Ir(m,e,t,n,r,o):null;return b&&M?b.distance<=M.distance?b:M:b||M||null}}const On=new h.Box3,Ut=new Qe,Et=new Qe,sn=new h.Matrix4,zi=new Oe,Ln=new Oe;function Ua(s,e,t,n){de.setBuffer(s._roots[e]);const r=Cr(0,s,t,n);return de.clearBuffer(),r}function Cr(s,e,t,n,r=null){const{float32Array:o,uint16Array:i,uint32Array:a}=de;let c=s*2;if(r===null&&(t.boundingBox||t.computeBoundingBox(),zi.set(t.boundingBox.min,t.boundingBox.max,n),r=zi),Re(c,i)){const d=e.geometry,u=d.index,l=d.attributes.position,g=t.index,y=t.attributes.position,w=Ne(s,a),m=Be(c,i);if(sn.copy(n).invert(),t.boundsTree)return be(s,o,Ln),Ln.matrix.copy(sn),Ln.needsUpdate=!0,t.boundsTree.shapecast({intersectsBounds:b=>Ln.intersectsBox(b),intersectsTriangle:b=>{b.a.applyMatrix4(n),b.b.applyMatrix4(n),b.c.applyMatrix4(n),b.needsUpdate=!0;for(let T=w*3,M=(m+w)*3;T<M;T+=3)if(_e(Et,T,u,l),Et.needsUpdate=!0,b.intersectsTriangle(Et))return!0;return!1}});for(let x=w*3,b=(m+w)*3;x<b;x+=3){_e(Ut,x,u,l),Ut.a.applyMatrix4(sn),Ut.b.applyMatrix4(sn),Ut.c.applyMatrix4(sn),Ut.needsUpdate=!0;for(let T=0,M=g.count;T<M;T+=3)if(_e(Et,T,g,y),Et.needsUpdate=!0,Ut.intersectsTriangle(Et))return!0}}else{const d=s+8,u=a[s+6];return be(d,o,On),!!(r.intersectsBox(On)&&Cr(d,e,t,n,r)||(be(u,o,On),r.intersectsBox(On)&&Cr(u,e,t,n,r)))}}const Nn=new h.Matrix4,Pr=new Oe,on=new Oe,Ea=new h.Vector3,Ga=new h.Vector3,Va=new h.Vector3,Wa=new h.Vector3;function ja(s,e,t,n={},r={},o=0,i=1/0){e.boundingBox||e.computeBoundingBox(),Pr.set(e.boundingBox.min,e.boundingBox.max,t),Pr.needsUpdate=!0;const a=s.geometry,c=a.attributes.position,f=a.index,d=e.attributes.position,u=e.index,l=je.getPrimitive(),g=je.getPrimitive();let y=Ea,w=Ga,m=null,x=null;r&&(m=Va,x=Wa);let b=1/0,T=null,M=null;return Nn.copy(t).invert(),on.matrix.copy(Nn),s.shapecast({boundsTraverseOrder:A=>Pr.distanceToBox(A),intersectsBounds:(A,I,P)=>P<b&&P<i?(I&&(on.min.copy(A.min),on.max.copy(A.max),on.needsUpdate=!0),!0):!1,intersectsRange:(A,I)=>{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:D=>on.distanceToBox(D),intersectsBounds:(D,R,O)=>O<b&&O<i,intersectsRange:(D,R)=>{for(let O=D,k=D+R;O<k;O++){_e(g,3*O,u,d),g.a.applyMatrix4(t),g.b.applyMatrix4(t),g.c.applyMatrix4(t),g.needsUpdate=!0;for(let L=A,V=A+I;L<V;L++){_e(l,3*L,f,c),l.needsUpdate=!0;const G=l.distanceToTriangle(g,y,m);if(G<b&&(w.copy(y),x&&x.copy(m),b=G,T=L,M=O),G<o)return!0}}}});{const P=Ot(e);for(let D=0,R=P;D<R;D++){_e(g,3*D,u,d),g.a.applyMatrix4(t),g.b.applyMatrix4(t),g.c.applyMatrix4(t),g.needsUpdate=!0;for(let O=A,k=A+I;O<k;O++){_e(l,3*O,f,c),l.needsUpdate=!0;const L=l.distanceToTriangle(g,y,m);if(L<b&&(w.copy(y),x&&x.copy(m),b=L,T=O,M=D),L<o)return!0}}}}}),je.releasePrimitive(l),je.releasePrimitive(g),b===1/0?null:(n.point?n.point.copy(w):n.point=w.clone(),n.distance=b,n.faceIndex=T,r&&(r.point?r.point.copy(x):r.point=x.clone(),r.point.applyMatrix4(Nn),w.applyMatrix4(Nn),r.distance=w.sub(r.point).length(),r.faceIndex=M),n)}function qa(s,e=null){e&&Array.isArray(e)&&(e=new Set(e));const t=s.geometry,n=t.index?t.index.array:null,r=t.attributes.position;let o,i,a,c,f=0;const d=s._roots;for(let l=0,g=d.length;l<g;l++)o=d[l],i=new Uint32Array(o),a=new Uint16Array(o),c=new Float32Array(o),u(0,f),f+=o.byteLength;function u(l,g,y=!1){const w=l*2;if(a[w+15]===Tn){const x=i[l+6],b=a[w+14];let T=1/0,M=1/0,A=1/0,I=-1/0,P=-1/0,D=-1/0;for(let R=x,O=x+b;R<O;R++){const k=3*s.resolveTriangleIndex(R);for(let L=0;L<3;L++){let V=k+L;V=n?n[V]:V;const G=r.getX(V),Q=r.getY(V),J=r.getZ(V);G<T&&(T=G),G>I&&(I=G),Q<M&&(M=Q),Q>P&&(P=Q),J<A&&(A=J),J>D&&(D=J)}}return c[l+0]!==T||c[l+1]!==M||c[l+2]!==A||c[l+3]!==I||c[l+4]!==P||c[l+5]!==D?(c[l+0]=T,c[l+1]=M,c[l+2]=A,c[l+3]=I,c[l+4]=P,c[l+5]=D,!0):!1}else{const x=l+8,b=i[l+6],T=x+g,M=b+g;let A=y,I=!1,P=!1;e?A||(I=e.has(T),P=e.has(M),A=!I&&!P):(I=!0,P=!0);const D=A||I,R=A||P;let O=!1;D&&(O=u(x,g,A));let k=!1;R&&(k=u(b,g,A));const L=O||k;if(L)for(let V=0;V<3;V++){const G=x+V,Q=b+V,J=c[G],me=c[G+3],Ce=c[Q],ge=c[Q+3];c[l+V]=J<Ce?J:Ce,c[l+V+3]=me>ge?me:ge}return L}}}function Za(s,e,t,n,r,o,i){de.setBuffer(s._roots[e]),Dr(0,s,t,n,r,o,i),de.clearBuffer()}function Dr(s,e,t,n,r,o,i){const{float32Array:a,uint16Array:c,uint32Array:f}=de,d=s*2;if(Re(d,c)){const l=Ne(s,f),g=Be(d,c);Oa(e,t,n,l,g,r,o,i)}else{const l=We(s);yt(l,a,n,o,i)&&Dr(l,e,t,n,r,o,i);const g=Ue(s,f);yt(g,a,n,o,i)&&Dr(g,e,t,n,r,o,i)}}const Ya=[\"x\",\"y\",\"z\"];function Ka(s,e,t,n,r,o){de.setBuffer(s._roots[e]);const i=Fr(0,s,t,n,r,o);return de.clearBuffer(),i}function Fr(s,e,t,n,r,o){const{float32Array:i,uint16Array:a,uint32Array:c}=de;let f=s*2;if(Re(f,a)){const u=Ne(s,c),l=Be(f,a);return La(e,t,n,u,l,r,o)}else{const u=yr(s,c),l=Ya[u],y=n.direction[l]>=0;let w,m;y?(w=We(s),m=Ue(s,c)):(w=Ue(s,c),m=We(s));const b=yt(w,i,n,r,o)?Fr(w,e,t,n,r,o):null;if(b){const A=b.point[l];if(y?A<=i[m+u]:A>=i[m+u+3])return b}const M=yt(m,i,n,r,o)?Fr(m,e,t,n,r,o):null;return b&&M?b.distance<=M.distance?b:M:b||M||null}}const kn=new h.Box3,Gt=new Qe,Vt=new Qe,an=new h.Matrix4,Bi=new Oe,zn=new Oe;function Xa(s,e,t,n){de.setBuffer(s._roots[e]);const r=Rr(0,s,t,n);return de.clearBuffer(),r}function Rr(s,e,t,n,r=null){const{float32Array:o,uint16Array:i,uint32Array:a}=de;let c=s*2;if(r===null&&(t.boundingBox||t.computeBoundingBox(),Bi.set(t.boundingBox.min,t.boundingBox.max,n),r=Bi),Re(c,i)){const d=e.geometry,u=d.index,l=d.attributes.position,g=t.index,y=t.attributes.position,w=Ne(s,a),m=Be(c,i);if(an.copy(n).invert(),t.boundsTree)return be(s,o,zn),zn.matrix.copy(an),zn.needsUpdate=!0,t.boundsTree.shapecast({intersectsBounds:b=>zn.intersectsBox(b),intersectsTriangle:b=>{b.a.applyMatrix4(n),b.b.applyMatrix4(n),b.c.applyMatrix4(n),b.needsUpdate=!0;for(let T=w,M=m+w;T<M;T++)if(_e(Vt,3*e.resolveTriangleIndex(T),u,l),Vt.needsUpdate=!0,b.intersectsTriangle(Vt))return!0;return!1}});for(let x=w,b=m+w;x<b;x++){const T=e.resolveTriangleIndex(x);_e(Gt,3*T,u,l),Gt.a.applyMatrix4(an),Gt.b.applyMatrix4(an),Gt.c.applyMatrix4(an),Gt.needsUpdate=!0;for(let M=0,A=g.count;M<A;M+=3)if(_e(Vt,M,g,y),Vt.needsUpdate=!0,Gt.intersectsTriangle(Vt))return!0}}else{const d=s+8,u=a[s+6];return be(d,o,kn),!!(r.intersectsBox(kn)&&Rr(d,e,t,n,r)||(be(u,o,kn),r.intersectsBox(kn)&&Rr(u,e,t,n,r)))}}const Bn=new h.Matrix4,Or=new Oe,cn=new Oe,$a=new h.Vector3,Qa=new h.Vector3,Ja=new h.Vector3,Ha=new h.Vector3;function ec(s,e,t,n={},r={},o=0,i=1/0){e.boundingBox||e.computeBoundingBox(),Or.set(e.boundingBox.min,e.boundingBox.max,t),Or.needsUpdate=!0;const a=s.geometry,c=a.attributes.position,f=a.index,d=e.attributes.position,u=e.index,l=je.getPrimitive(),g=je.getPrimitive();let y=$a,w=Qa,m=null,x=null;r&&(m=Ja,x=Ha);let b=1/0,T=null,M=null;return Bn.copy(t).invert(),cn.matrix.copy(Bn),s.shapecast({boundsTraverseOrder:A=>Or.distanceToBox(A),intersectsBounds:(A,I,P)=>P<b&&P<i?(I&&(cn.min.copy(A.min),cn.max.copy(A.max),cn.needsUpdate=!0),!0):!1,intersectsRange:(A,I)=>{if(e.boundsTree){const P=e.boundsTree;return P.shapecast({boundsTraverseOrder:D=>cn.distanceToBox(D),intersectsBounds:(D,R,O)=>O<b&&O<i,intersectsRange:(D,R)=>{for(let O=D,k=D+R;O<k;O++){const L=P.resolveTriangleIndex(O);_e(g,3*L,u,d),g.a.applyMatrix4(t),g.b.applyMatrix4(t),g.c.applyMatrix4(t),g.needsUpdate=!0;for(let V=A,G=A+I;V<G;V++){const Q=s.resolveTriangleIndex(V);_e(l,3*Q,f,c),l.needsUpdate=!0;const J=l.distanceToTriangle(g,y,m);if(J<b&&(w.copy(y),x&&x.copy(m),b=J,T=V,M=O),J<o)return!0}}}})}else{const P=Ot(e);for(let D=0,R=P;D<R;D++){_e(g,3*D,u,d),g.a.applyMatrix4(t),g.b.applyMatrix4(t),g.c.applyMatrix4(t),g.needsUpdate=!0;for(let O=A,k=A+I;O<k;O++){const L=s.resolveTriangleIndex(O);_e(l,3*L,f,c),l.needsUpdate=!0;const V=l.distanceToTriangle(g,y,m);if(V<b&&(w.copy(y),x&&x.copy(m),b=V,T=O,M=D),V<o)return!0}}}}}),je.releasePrimitive(l),je.releasePrimitive(g),b===1/0?null:(n.point?n.point.copy(w):n.point=w.clone(),n.distance=b,n.faceIndex=T,r&&(r.point?r.point.copy(x):r.point=x.clone(),r.point.applyMatrix4(Bn),w.applyMatrix4(Bn),r.distance=w.sub(r.point).length(),r.faceIndex=M),n)}function tc(){return typeof SharedArrayBuffer<\"u\"}const ln=new de.constructor,Un=new de.constructor,xt=new Tr(()=>new h.Box3),Wt=new h.Box3,jt=new h.Box3,Lr=new h.Box3,Nr=new h.Box3;let kr=!1;function nc(s,e,t,n){if(kr)throw new Error(\"MeshBVH: Recursive calls to bvhcast not supported.\");kr=!0;const r=s._roots,o=e._roots;let i,a=0,c=0;const f=new h.Matrix4().copy(t).invert();for(let d=0,u=r.length;d<u;d++){ln.setBuffer(r[d]),c=0;const l=xt.getPrimitive();be(0,ln.float32Array,l),l.applyMatrix4(f);for(let g=0,y=o.length;g<y&&(Un.setBuffer(o[g]),i=Je(0,0,t,f,n,a,c,0,0,l),Un.clearBuffer(),c+=o[g].length,!i);g++);if(xt.releasePrimitive(l),ln.clearBuffer(),a+=r[d].length,i)break}return kr=!1,i}function Je(s,e,t,n,r,o=0,i=0,a=0,c=0,f=null,d=!1){let u,l;d?(u=Un,l=ln):(u=ln,l=Un);const g=u.float32Array,y=u.uint32Array,w=u.uint16Array,m=l.float32Array,x=l.uint32Array,b=l.uint16Array,T=s*2,M=e*2,A=Re(T,w),I=Re(M,b);let P=!1;if(I&&A)d?P=r(Ne(e,x),Be(e*2,b),Ne(s,y),Be(s*2,w),c,i+e,a,o+s):P=r(Ne(s,y),Be(s*2,w),Ne(e,x),Be(e*2,b),a,o+s,c,i+e);else if(I){const D=xt.getPrimitive();be(e,m,D),D.applyMatrix4(t);const R=We(s),O=Ue(s,y);be(R,g,Wt),be(O,g,jt);const k=D.intersectsBox(Wt),L=D.intersectsBox(jt);P=k&&Je(e,R,n,t,r,i,o,c,a+1,D,!d)||L&&Je(e,O,n,t,r,i,o,c,a+1,D,!d),xt.releasePrimitive(D)}else{const D=We(e),R=Ue(e,x);be(D,m,Lr),be(R,m,Nr);const O=f.intersectsBox(Lr),k=f.intersectsBox(Nr);if(O&&k)P=Je(s,D,t,n,r,o,i,a,c+1,f,d)||Je(s,R,t,n,r,o,i,a,c+1,f,d);else if(O)if(A)P=Je(s,D,t,n,r,o,i,a,c+1,f,d);else{const L=xt.getPrimitive();L.copy(Lr).applyMatrix4(t);const V=We(s),G=Ue(s,y);be(V,g,Wt),be(G,g,jt);const Q=L.intersectsBox(Wt),J=L.intersectsBox(jt);P=Q&&Je(D,V,n,t,r,i,o,c,a+1,L,!d)||J&&Je(D,G,n,t,r,i,o,c,a+1,L,!d),xt.releasePrimitive(L)}else if(k)if(A)P=Je(s,R,t,n,r,o,i,a,c+1,f,d);else{const L=xt.getPrimitive();L.copy(Nr).applyMatrix4(t);const V=We(s),G=Ue(s,y);be(V,g,Wt),be(G,g,jt);const Q=L.intersectsBox(Wt),J=L.intersectsBox(jt);P=Q&&Je(R,V,n,t,r,i,o,c,a+1,L,!d)||J&&Je(R,G,n,t,r,i,o,c,a+1,L,!d),xt.releasePrimitive(L)}}return P}const En=new Oe,Ui=new h.Box3,rc={strategy:wi,maxDepth:40,maxLeafTris:10,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,indirect:!1,verbose:!0,range:null};class zr{static serialize(e,t={}){t={cloneBuffers:!0,...t};const n=e.geometry,r=e._roots,o=e._indirectBuffer,i=n.getIndex();let a;return t.cloneBuffers?a={roots:r.map(c=>c.slice()),index:i?i.array.slice():null,indirectBuffer:o?o.slice():null}:a={roots:r,index:i?i.array:null,indirectBuffer:o},a}static deserialize(e,t,n={}){n={setIndex:!0,indirect:!!e.indirectBuffer,...n};const{index:r,roots:o,indirectBuffer:i}=e,a=new zr(t,{...n,[mr]:!0});if(a._roots=o,a._indirectBuffer=i||null,n.setIndex){const c=t.getIndex();if(c===null){const f=new h.BufferAttribute(e.index,1,!1);t.setIndex(f)}else c.array!==r&&(c.array.set(r),c.needsUpdate=!0)}return a}get indirect(){return!!this._indirectBuffer}constructor(e,t={}){if(e.isBufferGeometry){if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error(\"MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.\")}else throw new Error(\"MeshBVH: Only BufferGeometries are supported.\");if(t=Object.assign({...rc,[mr]:!1},t),t.useSharedArrayBuffer&&!tc())throw new Error(\"MeshBVH: SharedArrayBuffer is not available.\");this.geometry=e,this._roots=null,this._indirectBuffer=null,t[mr]||(xa(this,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new h.Box3))),this.resolveTriangleIndex=t.indirect?n=>this._indirectBuffer[n]:n=>n}refit(e=null){return(this.indirect?qa:Ra)(this,e)}traverse(e,t=0){const n=this._roots[t],r=new Uint32Array(n),o=new Uint16Array(n);i(0);function i(a,c=0){const f=a*2,d=o[f+15]===Tn;if(d){const u=r[a+6],l=o[f+14];e(c,d,new Float32Array(n,a*4,6),u,l)}else{const u=a+mt/4,l=r[a+6],g=r[a+7];e(c,d,new Float32Array(n,a*4,6),g)||(i(u,c+1),i(l,c+1))}}}raycast(e,t=h.FrontSide,n=0,r=1/0){const o=this._roots,i=this.geometry,a=[],c=t.isMaterial,f=Array.isArray(t),d=i.groups,u=c?t.side:t,l=this.indirect?Za:ka;for(let g=0,y=o.length;g<y;g++){const w=f?t[d[g].materialIndex].side:u,m=a.length;if(l(this,g,w,e,a,n,r),f){const x=d[g].materialIndex;for(let b=m,T=a.length;b<T;b++)a[b].face.materialIndex=x}}return a}raycastFirst(e,t=h.FrontSide,n=0,r=1/0){const o=this._roots,i=this.geometry,a=t.isMaterial,c=Array.isArray(t);let f=null;const d=i.groups,u=a?t.side:t,l=this.indirect?Ka:Ba;for(let g=0,y=o.length;g<y;g++){const w=c?t[d[g].materialIndex].side:u,m=l(this,g,w,e,n,r);m!=null&&(f==null||m.distance<f.distance)&&(f=m,c&&(m.face.materialIndex=d[g].materialIndex))}return f}intersectsGeometry(e,t){let n=!1;const r=this._roots,o=this.indirect?Xa:Ua;for(let i=0,a=r.length;i<a&&(n=o(this,i,e,t),!n);i++);return n}shapecast(e){const t=je.getPrimitive(),n=this.indirect?Na:Fa;let{boundsTraverseOrder:r,intersectsBounds:o,intersectsRange:i,intersectsTriangle:a}=e;if(i&&a){const u=i;i=(l,g,y,w,m)=>u(l,g,y,w,m)?!0:n(l,g,this,a,y,w,t)}else i||(a?i=(u,l,g,y)=>n(u,l,this,a,g,y,t):i=(u,l,g)=>g);let c=!1,f=0;const d=this._roots;for(let u=0,l=d.length;u<l;u++){const g=d[u];if(c=Ma(this,u,o,i,r,f),c)break;f+=g.byteLength}return je.releasePrimitive(t),c}bvhcast(e,t,n){let{intersectsRanges:r,intersectsTriangles:o}=n;const i=je.getPrimitive(),a=this.geometry.index,c=this.geometry.attributes.position,f=this.indirect?y=>{const w=this.resolveTriangleIndex(y);_e(i,w*3,a,c)}:y=>{_e(i,y*3,a,c)},d=je.getPrimitive(),u=e.geometry.index,l=e.geometry.attributes.position,g=e.indirect?y=>{const w=e.resolveTriangleIndex(y);_e(d,w*3,u,l)}:y=>{_e(d,y*3,u,l)};if(o){const y=(w,m,x,b,T,M,A,I)=>{for(let P=x,D=x+b;P<D;P++){g(P),d.a.applyMatrix4(t),d.b.applyMatrix4(t),d.c.applyMatrix4(t),d.needsUpdate=!0;for(let R=w,O=w+m;R<O;R++)if(f(R),i.needsUpdate=!0,o(i,d,R,P,T,M,A,I))return!0}return!1};if(r){const w=r;r=function(m,x,b,T,M,A,I,P){return w(m,x,b,T,M,A,I,P)?!0:y(m,x,b,T,M,A,I,P)}}else r=y}return nc(this,e,t,r)}intersectsBox(e,t){return En.set(e.min,e.max,t),En.needsUpdate=!0,this.shapecast({intersectsBounds:n=>En.intersectsBox(n),intersectsTriangle:n=>En.intersectsTriangle(n)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,n={},r={},o=0,i=1/0){return(this.indirect?ec:ja)(this,e,t,n,r,o,i)}closestPointToPoint(e,t={},n=0,r=1/0){return Aa(this,e,t,n,r)}getBoundingBox(e){return e.makeEmpty(),this._roots.forEach(n=>{be(0,new Float32Array(n),Ui),e.union(Ui)}),e}}function ic(s){switch(s){case 1:return\"R\";case 2:return\"RG\";case 3:return\"RGBA\";case 4:return\"RGBA\"}throw new Error}function sc(s){switch(s){case 1:return h.RedFormat;case 2:return h.RGFormat;case 3:return h.RGBAFormat;case 4:return h.RGBAFormat}}function Ei(s){switch(s){case 1:return h.RedIntegerFormat;case 2:return h.RGIntegerFormat;case 3:return h.RGBAIntegerFormat;case 4:return h.RGBAIntegerFormat}}class Gi extends h.DataTexture{constructor(){super(),this.minFilter=h.NearestFilter,this.magFilter=h.NearestFilter,this.generateMipmaps=!1,this.overrideItemSize=null,this._forcedType=null}updateFrom(e){const t=this.overrideItemSize,n=e.itemSize,r=e.count;if(t!==null){if(n*r%t!==0)throw new Error(\"VertexAttributeTexture: overrideItemSize must divide evenly into buffer length.\");e.itemSize=t,e.count=r*n/t}const o=e.itemSize,i=e.count,a=e.normalized,c=e.array.constructor,f=c.BYTES_PER_ELEMENT;let d=this._forcedType,u=o;if(d===null)switch(c){case Float32Array:d=h.FloatType;break;case Uint8Array:case Uint16Array:case Uint32Array:d=h.UnsignedIntType;break;case Int8Array:case Int16Array:case Int32Array:d=h.IntType;break}let l,g,y,w,m=ic(o);switch(d){case h.FloatType:y=1,g=sc(o),a&&f===1?(w=c,m+=\"8\",c===Uint8Array?l=h.UnsignedByteType:(l=h.ByteType,m+=\"_SNORM\")):(w=Float32Array,m+=\"32F\",l=h.FloatType);break;case h.IntType:m+=f*8+\"I\",y=a?Math.pow(2,c.BYTES_PER_ELEMENT*8-1):1,g=Ei(o),f===1?(w=Int8Array,l=h.ByteType):f===2?(w=Int16Array,l=h.ShortType):(w=Int32Array,l=h.IntType);break;case h.UnsignedIntType:m+=f*8+\"UI\",y=a?Math.pow(2,c.BYTES_PER_ELEMENT*8-1):1,g=Ei(o),f===1?(w=Uint8Array,l=h.UnsignedByteType):f===2?(w=Uint16Array,l=h.UnsignedShortType):(w=Uint32Array,l=h.UnsignedIntType);break}u===3&&(g===h.RGBAFormat||g===h.RGBAIntegerFormat)&&(u=4);const x=Math.ceil(Math.sqrt(i))||1,b=u*x*x,T=new w(b),M=e.normalized;e.normalized=!1;for(let A=0;A<i;A++){const I=u*A;T[I]=e.getX(A)/y,o>=2&&(T[I+1]=e.getY(A)/y),o>=3&&(T[I+2]=e.getZ(A)/y,u===4&&(T[I+3]=1)),o>=4&&(T[I+3]=e.getW(A)/y)}e.normalized=M,this.internalFormat=m,this.format=g,this.type=l,this.image.width=x,this.image.height=x,this.image.data=T,this.needsUpdate=!0,this.dispose(),e.itemSize=n,e.count=r}}class Vi extends Gi{constructor(){super(),this._forcedType=h.UnsignedIntType}}class Wi extends Gi{constructor(){super(),this._forcedType=h.FloatType}}class oc{constructor(){this.index=new Vi,this.position=new Wi,this.bvhBounds=new h.DataTexture,this.bvhContents=new h.DataTexture,this._cachedIndexAttr=null,this.index.overrideItemSize=3}updateFrom(e){const{geometry:t}=e;if(cc(e,this.bvhBounds,this.bvhContents),this.position.updateFrom(t.attributes.position),e.indirect){const n=e._indirectBuffer;if(this._cachedIndexAttr===null||this._cachedIndexAttr.count!==n.length)if(t.index)this._cachedIndexAttr=t.index.clone();else{const r=Ai(Mi(t));this._cachedIndexAttr=new h.BufferAttribute(r,1,!1)}ac(t,n,this._cachedIndexAttr),this.index.updateFrom(this._cachedIndexAttr)}else this.index.updateFrom(t.index)}dispose(){const{index:e,position:t,bvhBounds:n,bvhContents:r}=this;e&&e.dispose(),t&&t.dispose(),n&&n.dispose(),r&&r.dispose()}}function ac(s,e,t){const n=t.array,r=s.index?s.index.array:null;for(let o=0,i=e.length;o<i;o++){const a=3*o,c=3*e[o];for(let f=0;f<3;f++)n[a+f]=r?r[c+f]:c+f}}function cc(s,e,t){const n=s._roots;if(n.length!==1)throw new Error(\"MeshBVHUniformStruct: Multi-root BVHs not supported.\");const r=n[0],o=new Uint16Array(r),i=new Uint32Array(r),a=new Float32Array(r),c=r.byteLength/mt,f=2*Math.ceil(Math.sqrt(c/2)),d=new Float32Array(4*f*f),u=Math.ceil(Math.sqrt(c)),l=new Uint32Array(2*u*u);for(let g=0;g<c;g++){const y=g*mt/4,w=y*2,m=y;for(let x=0;x<3;x++)d[8*g+0+x]=a[m+0+x],d[8*g+4+x]=a[m+3+x];if(Re(w,o)){const x=Be(w,o),b=Ne(y,i),T=4294901760|x;l[g*2+0]=T,l[g*2+1]=b}else{const x=4*Ue(y,i)/mt,b=yr(y,i);l[g*2+0]=b,l[g*2+1]=x}}e.image.data=d,e.image.width=f,e.image.height=f,e.format=h.RGBAFormat,e.type=h.FloatType,e.internalFormat=\"RGBA32F\",e.minFilter=h.NearestFilter,e.magFilter=h.NearestFilter,e.generateMipmaps=!1,e.needsUpdate=!0,e.dispose(),t.image.data=l,t.image.width=u,t.image.height=u,t.format=h.RGIntegerFormat,t.type=h.UnsignedIntType,t.internalFormat=\"RG32UI\",t.minFilter=h.NearestFilter,t.magFilter=h.NearestFilter,t.generateMipmaps=!1,t.needsUpdate=!0,t.dispose()}const lc=`\n\n// A stack of uint32 indices can can store the indices for\n// a perfectly balanced tree with a depth up to 31. Lower stack\n// depth gets higher performance.\n//\n// However not all trees are balanced. Best value to set this to\n// is the trees max depth.\n#ifndef BVH_STACK_DEPTH\n#define BVH_STACK_DEPTH 60\n#endif\n\n#ifndef INFINITY\n#define INFINITY 1e20\n#endif\n\n// Utilities\nuvec4 uTexelFetch1D( usampler2D tex, uint index ) {\n\n\tuint width = uint( textureSize( tex, 0 ).x );\n\tuvec2 uv;\n\tuv.x = index % width;\n\tuv.y = index / width;\n\n\treturn texelFetch( tex, ivec2( uv ), 0 );\n\n}\n\nivec4 iTexelFetch1D( isampler2D tex, uint index ) {\n\n\tuint width = uint( textureSize( tex, 0 ).x );\n\tuvec2 uv;\n\tuv.x = index % width;\n\tuv.y = index / width;\n\n\treturn texelFetch( tex, ivec2( uv ), 0 );\n\n}\n\nvec4 texelFetch1D( sampler2D tex, uint index ) {\n\n\tuint width = uint( textureSize( tex, 0 ).x );\n\tuvec2 uv;\n\tuv.x = index % width;\n\tuv.y = index / width;\n\n\treturn texelFetch( tex, ivec2( uv ), 0 );\n\n}\n\nvec4 textureSampleBarycoord( sampler2D tex, vec3 barycoord, uvec3 faceIndices ) {\n\n\treturn\n\t\tbarycoord.x * texelFetch1D( tex, faceIndices.x ) +\n\t\tbarycoord.y * texelFetch1D( tex, faceIndices.y ) +\n\t\tbarycoord.z * texelFetch1D( tex, faceIndices.z );\n\n}\n\nvoid ndcToCameraRay(\n\tvec2 coord, mat4 cameraWorld, mat4 invProjectionMatrix,\n\tout vec3 rayOrigin, out vec3 rayDirection\n) {\n\n\t// get camera look direction and near plane for camera clipping\n\tvec4 lookDirection = cameraWorld * vec4( 0.0, 0.0, - 1.0, 0.0 );\n\tvec4 nearVector = invProjectionMatrix * vec4( 0.0, 0.0, - 1.0, 1.0 );\n\tfloat near = abs( nearVector.z / nearVector.w );\n\n\t// get the camera direction and position from camera matrices\n\tvec4 origin = cameraWorld * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec4 direction = invProjectionMatrix * vec4( coord, 0.5, 1.0 );\n\tdirection /= direction.w;\n\tdirection = cameraWorld * direction - origin;\n\n\t// slide the origin along the ray until it sits at the near clip plane position\n\torigin.xyz += direction.xyz * near / dot( direction, lookDirection );\n\n\trayOrigin = origin.xyz;\n\trayDirection = direction.xyz;\n\n}\n`,uc=`\n\n#ifndef TRI_INTERSECT_EPSILON\n#define TRI_INTERSECT_EPSILON 1e-5\n#endif\n\n// Raycasting\nbool intersectsBounds( vec3 rayOrigin, vec3 rayDirection, vec3 boundsMin, vec3 boundsMax, out float dist ) {\n\n\t// https://www.reddit.com/r/opengl/comments/8ntzz5/fast_glsl_ray_box_intersection/\n\t// https://tavianator.com/2011/ray_box.html\n\tvec3 invDir = 1.0 / rayDirection;\n\n\t// find intersection distances for each plane\n\tvec3 tMinPlane = invDir * ( boundsMin - rayOrigin );\n\tvec3 tMaxPlane = invDir * ( boundsMax - rayOrigin );\n\n\t// get the min and max distances from each intersection\n\tvec3 tMinHit = min( tMaxPlane, tMinPlane );\n\tvec3 tMaxHit = max( tMaxPlane, tMinPlane );\n\n\t// get the furthest hit distance\n\tvec2 t = max( tMinHit.xx, tMinHit.yz );\n\tfloat t0 = max( t.x, t.y );\n\n\t// get the minimum hit distance\n\tt = min( tMaxHit.xx, tMaxHit.yz );\n\tfloat t1 = min( t.x, t.y );\n\n\t// set distance to 0.0 if the ray starts inside the box\n\tdist = max( t0, 0.0 );\n\n\treturn t1 >= dist;\n\n}\n\nbool intersectsTriangle(\n\tvec3 rayOrigin, vec3 rayDirection, vec3 a, vec3 b, vec3 c,\n\tout vec3 barycoord, out vec3 norm, out float dist, out float side\n) {\n\n\t// https://stackoverflow.com/questions/42740765/intersection-between-line-and-triangle-in-3d\n\tvec3 edge1 = b - a;\n\tvec3 edge2 = c - a;\n\tnorm = cross( edge1, edge2 );\n\n\tfloat det = - dot( rayDirection, norm );\n\tfloat invdet = 1.0 / det;\n\n\tvec3 AO = rayOrigin - a;\n\tvec3 DAO = cross( AO, rayDirection );\n\n\tvec4 uvt;\n\tuvt.x = dot( edge2, DAO ) * invdet;\n\tuvt.y = - dot( edge1, DAO ) * invdet;\n\tuvt.z = dot( AO, norm ) * invdet;\n\tuvt.w = 1.0 - uvt.x - uvt.y;\n\n\t// set the hit information\n\tbarycoord = uvt.wxy; // arranged in A, B, C order\n\tdist = uvt.z;\n\tside = sign( det );\n\tnorm = side * normalize( norm );\n\n\t// add an epsilon to avoid misses between triangles\n\tuvt += vec4( TRI_INTERSECT_EPSILON );\n\n\treturn all( greaterThanEqual( uvt, vec4( 0.0 ) ) );\n\n}\n\nbool intersectTriangles(\n\t// geometry info and triangle range\n\tsampler2D positionAttr, usampler2D indexAttr, uint offset, uint count,\n\n\t// ray\n\tvec3 rayOrigin, vec3 rayDirection,\n\n\t// outputs\n\tinout float minDistance, inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord,\n\tinout float side, inout float dist\n) {\n\n\tbool found = false;\n\tvec3 localBarycoord, localNormal;\n\tfloat localDist, localSide;\n\tfor ( uint i = offset, l = offset + count; i < l; i ++ ) {\n\n\t\tuvec3 indices = uTexelFetch1D( indexAttr, i ).xyz;\n\t\tvec3 a = texelFetch1D( positionAttr, indices.x ).rgb;\n\t\tvec3 b = texelFetch1D( positionAttr, indices.y ).rgb;\n\t\tvec3 c = texelFetch1D( positionAttr, indices.z ).rgb;\n\n\t\tif (\n\t\t\tintersectsTriangle( rayOrigin, rayDirection, a, b, c, localBarycoord, localNormal, localDist, localSide )\n\t\t\t&& localDist < minDistance\n\t\t) {\n\n\t\t\tfound = true;\n\t\t\tminDistance = localDist;\n\n\t\t\tfaceIndices = uvec4( indices.xyz, i );\n\t\t\tfaceNormal = localNormal;\n\n\t\t\tside = localSide;\n\t\t\tbarycoord = localBarycoord;\n\t\t\tdist = localDist;\n\n\t\t}\n\n\t}\n\n\treturn found;\n\n}\n\nbool intersectsBVHNodeBounds( vec3 rayOrigin, vec3 rayDirection, sampler2D bvhBounds, uint currNodeIndex, out float dist ) {\n\n\tuint cni2 = currNodeIndex * 2u;\n\tvec3 boundsMin = texelFetch1D( bvhBounds, cni2 ).xyz;\n\tvec3 boundsMax = texelFetch1D( bvhBounds, cni2 + 1u ).xyz;\n\treturn intersectsBounds( rayOrigin, rayDirection, boundsMin, boundsMax, dist );\n\n}\n\n// use a macro to hide the fact that we need to expand the struct into separate fields\n#define\tbvhIntersectFirstHit(\t\tbvh,\t\trayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\t)\t_bvhIntersectFirstHit(\t\tbvh.position, bvh.index, bvh.bvhBounds, bvh.bvhContents,\t\trayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\t)\n\nbool _bvhIntersectFirstHit(\n\t// bvh info\n\tsampler2D bvh_position, usampler2D bvh_index, sampler2D bvh_bvhBounds, usampler2D bvh_bvhContents,\n\n\t// ray\n\tvec3 rayOrigin, vec3 rayDirection,\n\n\t// output variables split into separate variables due to output precision\n\tinout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord,\n\tinout float side, inout float dist\n) {\n\n\t// stack needs to be twice as long as the deepest tree we expect because\n\t// we push both the left and right child onto the stack every traversal\n\tint ptr = 0;\n\tuint stack[ BVH_STACK_DEPTH ];\n\tstack[ 0 ] = 0u;\n\n\tfloat triangleDistance = INFINITY;\n\tbool found = false;\n\twhile ( ptr > - 1 && ptr < BVH_STACK_DEPTH ) {\n\n\t\tuint currNodeIndex = stack[ ptr ];\n\t\tptr --;\n\n\t\t// check if we intersect the current bounds\n\t\tfloat boundsHitDistance;\n\t\tif (\n\t\t\t! intersectsBVHNodeBounds( rayOrigin, rayDirection, bvh_bvhBounds, currNodeIndex, boundsHitDistance )\n\t\t\t|| boundsHitDistance > triangleDistance\n\t\t) {\n\n\t\t\tcontinue;\n\n\t\t}\n\n\t\tuvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy;\n\t\tbool isLeaf = bool( boundsInfo.x & 0xffff0000u );\n\n\t\tif ( isLeaf ) {\n\n\t\t\tuint count = boundsInfo.x & 0x0000ffffu;\n\t\t\tuint offset = boundsInfo.y;\n\n\t\t\tfound = intersectTriangles(\n\t\t\t\tbvh_position, bvh_index, offset, count,\n\t\t\t\trayOrigin, rayDirection, triangleDistance,\n\t\t\t\tfaceIndices, faceNormal, barycoord, side, dist\n\t\t\t) || found;\n\n\t\t} else {\n\n\t\t\tuint leftIndex = currNodeIndex + 1u;\n\t\t\tuint splitAxis = boundsInfo.x & 0x0000ffffu;\n\t\t\tuint rightIndex = boundsInfo.y;\n\n\t\t\tbool leftToRight = rayDirection[ splitAxis ] >= 0.0;\n\t\t\tuint c1 = leftToRight ? leftIndex : rightIndex;\n\t\t\tuint c2 = leftToRight ? rightIndex : leftIndex;\n\n\t\t\t// set c2 in the stack so we traverse it later. We need to keep track of a pointer in\n\t\t\t// the stack while we traverse. The second pointer added is the one that will be\n\t\t\t// traversed first\n\t\t\tptr ++;\n\t\t\tstack[ ptr ] = c2;\n\n\t\t\tptr ++;\n\t\t\tstack[ ptr ] = c1;\n\n\t\t}\n\n\t}\n\n\treturn found;\n\n}\n`,hc=`\nstruct BVH {\n\n\tusampler2D index;\n\tsampler2D position;\n\n\tsampler2D bvhBounds;\n\tusampler2D bvhContents;\n\n};\n`;function ji(s,e,t=0){if(s.isInterleavedBufferAttribute){const n=s.itemSize;for(let r=0,o=s.count;r<o;r++){const i=r+t;e.setX(i,s.getX(r)),n>=2&&e.setY(i,s.getY(r)),n>=3&&e.setZ(i,s.getZ(r)),n>=4&&e.setW(i,s.getW(r))}}else{const n=e.array,r=n.constructor,o=n.BYTES_PER_ELEMENT*s.itemSize*t;new r(n.buffer,o,s.array.length).set(s.array)}}function un(s,e=null){const t=s.array.constructor,n=s.normalized,r=s.itemSize,o=e===null?s.count:e;return new h.BufferAttribute(new t(r*o),r,n)}function qt(s,e){if(!s&&!e)return!0;if(!!s!=!!e)return!1;const t=s.count===e.count,n=s.normalized===e.normalized,r=s.array.constructor===e.array.constructor,o=s.itemSize===e.itemSize;return!(!t||!n||!r||!o)}function fc(s){const e=s[0].index!==null,t=new Set(Object.keys(s[0].attributes));if(!s[0].getAttribute(\"position\"))throw new Error(\"StaticGeometryGenerator: position attribute is required.\");for(let n=0;n<s.length;++n){const r=s[n];let o=0;if(e!==(r.index!==null))throw new Error(\"StaticGeometryGenerator: All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.\");for(const i in r.attributes){if(!t.has(i))throw new Error('StaticGeometryGenerator: All geometries must have compatible attributes; make sure \"'+i+'\" attribute exists among all geometries, or in none of them.');o++}if(o!==t.size)throw new Error(\"StaticGeometryGenerator: All geometries must have the same number of attributes.\")}}function dc(s){let e=0;for(let t=0,n=s.length;t<n;t++)e+=s[t].getIndex().count;return e}function pc(s){let e=0;for(let t=0,n=s.length;t<n;t++)e+=s[t].getAttribute(\"position\").count;return e}function mc(s,e,t){s.index&&s.index.count!==e&&s.setIndex(null);const n=s.attributes;for(const r in n)n[r].count!==t&&s.deleteAttribute(r)}function gc(s,e={},t=new h.BufferGeometry){const{useGroups:n=!1,forceUpdate:r=!1,skipAssigningAttributes:o=[],overwriteIndex:i=!0}=e;fc(s);const a=s[0].index!==null,c=a?dc(s):-1,f=pc(s);if(mc(t,c,f),n){let u=0;for(let l=0,g=s.length;l<g;l++){const y=s[l];let w;a?w=y.getIndex().count:w=y.getAttribute(\"position\").count,t.addGroup(u,w,l),u+=w}}if(a){let u=!1;if(t.index||(t.setIndex(new h.BufferAttribute(new Uint32Array(c),1,!1)),u=!0),u||i){let l=0,g=0;const y=t.getIndex();for(let w=0,m=s.length;w<m;w++){const x=s[w],b=x.getIndex();if(!(!r&&!u&&o[w]))for(let M=0;M<b.count;++M)y.setX(l+M,b.getX(M)+g);l+=b.count,g+=x.getAttribute(\"position\").count}}}const d=Object.keys(s[0].attributes);for(let u=0,l=d.length;u<l;u++){let g=!1;const y=d[u];if(!t.getAttribute(y)){const x=s[0].getAttribute(y);t.setAttribute(y,un(x,f)),g=!0}let w=0;const m=t.getAttribute(y);for(let x=0,b=s.length;x<b;x++){const T=s[x],M=!r&&!g&&o[x],A=T.getAttribute(y);M||ji(A,m,w),w+=A.count}}}function vc(s,e,t){const n=s.index,o=s.attributes.position.count,i=n?n.count:o;let a=s.groups;a.length===0&&(a=[{count:i,start:0,materialIndex:0}]);let c=s.getAttribute(\"materialIndex\");if(!c||c.count!==o){let d;t.length<=255?d=new Uint8Array(o):d=new Uint16Array(o),c=new h.BufferAttribute(d,1,!1),s.deleteAttribute(\"materialIndex\"),s.setAttribute(\"materialIndex\",c)}const f=c.array;for(let d=0;d<a.length;d++){const u=a[d],l=u.start,g=u.count,y=Math.min(g,i-l),w=Array.isArray(e)?e[u.materialIndex]:e,m=t.indexOf(w);for(let x=0;x<y;x++){let b=l+x;n&&(b=n.getX(b)),f[b]=m}}}function yc(s,e){if(!s.index){const t=s.attributes.position.count,n=new Array(t);for(let r=0;r<t;r++)n[r]=r;s.setIndex(n)}if(!s.attributes.normal&&e&&e.includes(\"normal\")&&s.computeVertexNormals(),!s.attributes.uv&&e&&e.includes(\"uv\")){const t=s.attributes.position.count;s.setAttribute(\"uv\",new h.BufferAttribute(new Float32Array(t*2),2,!1))}if(!s.attributes.uv2&&e&&e.includes(\"uv2\")){const t=s.attributes.position.count;s.setAttribute(\"uv2\",new h.BufferAttribute(new Float32Array(t*2),2,!1))}if(!s.attributes.tangent&&e&&e.includes(\"tangent\"))if(s.attributes.uv&&s.attributes.normal)s.computeTangents();else{const t=s.attributes.position.count;s.setAttribute(\"tangent\",new h.BufferAttribute(new Float32Array(t*4),4,!1))}if(!s.attributes.color&&e&&e.includes(\"color\")){const t=s.attributes.position.count,n=new Float32Array(t*4);n.fill(1),s.setAttribute(\"color\",new h.BufferAttribute(n,4))}}function Br(s){let e=0;if(s.byteLength!==0){const t=new Uint8Array(s);for(let n=0;n<s.byteLength;n++){const r=t[n];e=(e<<5)-e+r,e|=0}}return e}function qi(s){let e=s.uuid;const t=Object.values(s.attributes);s.index&&(t.push(s.index),e+=`index|${s.index.version}`);const n=Object.keys(t).sort();for(const r of n){const o=t[r];e+=`${r}_${o.version}|`}return e}function Zi(s){const e=s.skeleton;return e?(e.boneTexture||e.computeBoneTexture(),`${Br(e.boneTexture.image.data.buffer)}_${e.boneTexture.uuid}`):null}class xc{constructor(e=null){this.matrixWorld=new h.Matrix4,this.geometryHash=null,this.skeletonHash=null,this.primitiveCount=-1,e!==null&&this.updateFrom(e)}updateFrom(e){const t=e.geometry,n=(t.index?t.index.count:t.attributes.position.count)/3;this.matrixWorld.copy(e.matrixWorld),this.geometryHash=qi(t),this.primitiveCount=n,this.skeletonHash=Zi(e)}didChange(e){const t=e.geometry,n=(t.index?t.index.count:t.attributes.position.count)/3;return!(this.matrixWorld.equals(e.matrixWorld)&&this.geometryHash===qi(t)&&this.skeletonHash===Zi(e)&&this.primitiveCount===n)}}const It=new h.Vector3,Ct=new h.Vector3,Pt=new h.Vector3,Yi=new h.Vector4,Gn=new h.Vector3,Ur=new h.Vector3,Ki=new h.Vector4,Xi=new h.Vector4,Vn=new h.Matrix4,$i=new h.Matrix4;function Qi(s,e,t){const n=s.skeleton,r=s.geometry,o=n.bones,i=n.boneInverses;Ki.fromBufferAttribute(r.attributes.skinIndex,e),Xi.fromBufferAttribute(r.attributes.skinWeight,e),Vn.elements.fill(0);for(let a=0;a<4;a++){const c=Xi.getComponent(a);if(c!==0){const f=Ki.getComponent(a);$i.multiplyMatrices(o[f].matrixWorld,i[f]),bc(Vn,$i,c)}}return Vn.multiply(s.bindMatrix).premultiply(s.bindMatrixInverse),t.transformDirection(Vn),t}function Er(s,e,t,n,r){Gn.set(0,0,0);for(let o=0,i=s.length;o<i;o++){const a=e[o],c=s[o];a!==0&&(Ur.fromBufferAttribute(c,n),t?Gn.addScaledVector(Ur,a):Gn.addScaledVector(Ur.sub(r),a))}r.add(Gn)}function bc(s,e,t){const n=s.elements,r=e.elements;for(let o=0,i=r.length;o<i;o++)n[o]+=r[o]*t}function wc(s){const{index:e,attributes:t}=s;if(e)for(let n=0,r=e.count;n<r;n+=3){const o=e.getX(n),i=e.getX(n+2);e.setX(n,i),e.setX(n+2,o)}else for(const n in t){const r=t[n],o=r.itemSize;for(let i=0,a=r.count;i<a;i+=3)for(let c=0;c<o;c++){const f=r.getComponent(i,c),d=r.getComponent(i+2,c);r.setComponent(i,c,d),r.setComponent(i+2,c,f)}}return s}function _c(s,e={},t=new h.BufferGeometry){e={applyWorldTransforms:!0,attributes:[],...e};const n=s.geometry,r=e.applyWorldTransforms,o=e.attributes.includes(\"normal\"),i=e.attributes.includes(\"tangent\"),a=n.attributes,c=t.attributes;for(const b in t.attributes)(!e.attributes.includes(b)||!(b in n.attributes))&&t.deleteAttribute(b);!t.index&&n.index&&(t.index=n.index.clone()),c.position||t.setAttribute(\"position\",un(a.position)),o&&!c.normal&&a.normal&&t.setAttribute(\"normal\",un(a.normal)),i&&!c.tangent&&a.tangent&&t.setAttribute(\"tangent\",un(a.tangent)),qt(n.index,t.index),qt(a.position,c.position),o&&qt(a.normal,c.normal),i&&qt(a.tangent,c.tangent);const f=a.position,d=o?a.normal:null,u=i?a.tangent:null,l=n.morphAttributes.position,g=n.morphAttributes.normal,y=n.morphAttributes.tangent,w=n.morphTargetsRelative,m=s.morphTargetInfluences,x=new h.Matrix3;x.getNormalMatrix(s.matrixWorld),n.index&&t.index.array.set(n.index.array);for(let b=0,T=a.position.count;b<T;b++)It.fromBufferAttribute(f,b),d&&Ct.fromBufferAttribute(d,b),u&&(Yi.fromBufferAttribute(u,b),Pt.fromBufferAttribute(u,b)),m&&(l&&Er(l,m,w,b,It),g&&Er(g,m,w,b,Ct),y&&Er(y,m,w,b,Pt)),s.isSkinnedMesh&&(s.applyBoneTransform(b,It),d&&Qi(s,b,Ct),u&&Qi(s,b,Pt)),r&&It.applyMatrix4(s.matrixWorld),c.position.setXYZ(b,It.x,It.y,It.z),d&&(r&&Ct.applyNormalMatrix(x),c.normal.setXYZ(b,Ct.x,Ct.y,Ct.z)),u&&(r&&Pt.transformDirection(s.matrixWorld),c.tangent.setXYZW(b,Pt.x,Pt.y,Pt.z,Yi.w));for(const b in e.attributes){const T=e.attributes[b];T===\"position\"||T===\"tangent\"||T===\"normal\"||!(T in a)||(c[T]||t.setAttribute(T,un(a[T])),qt(a[T],c[T]),ji(a[T],c[T]))}return s.matrixWorld.determinant()<0&&wc(t),t}class Tc extends h.BufferGeometry{constructor(){super(),this.version=0,this.hash=null,this._diff=new xc}isCompatible(e,t){const n=e.geometry;for(let r=0;r<t.length;r++){const o=t[r],i=n.attributes[o],a=this.attributes[o];if(i&&!qt(i,a))return!1}return!0}updateFrom(e,t){const n=this._diff;return n.didChange(e)?(_c(e,t,this),n.updateFrom(e),this.version++,this.hash=`${this.uuid}_${this.version}`,!0):!1}}const Gr=0,Ji=1,Hi=2;function Sc(s,e){for(let t=0,n=s.length;t<n;t++)s[t].traverseVisible(o=>{o.isMesh&&e(o)})}function Mc(s){const e=[];for(let t=0,n=s.length;t<n;t++){const r=s[t];Array.isArray(r.material)?e.push(...r.material):e.push(r.material)}return e}function Ac(s,e,t){if(s.length===0){e.setIndex(null);const n=e.attributes;for(const r in n)e.deleteAttribute(r);for(const r in t.attributes)e.setAttribute(t.attributes[r],new h.BufferAttribute(new Float32Array(0),4,!1))}else gc(s,t,e);for(const n in e.attributes)e.attributes[n].needsUpdate=!0}class Ic{constructor(e){this.objects=null,this.useGroups=!0,this.applyWorldTransforms=!0,this.generateMissingAttributes=!0,this.overwriteIndex=!0,this.attributes=[\"position\",\"normal\",\"color\",\"tangent\",\"uv\",\"uv2\"],this._intermediateGeometry=new Map,this._geometryMergeSets=new WeakMap,this._mergeOrder=[],this._dummyMesh=null,this.setObjects(e||[])}_getDummyMesh(){if(!this._dummyMesh){const e=new h.MeshBasicMaterial,t=new h.BufferGeometry;t.setAttribute(\"position\",new h.BufferAttribute(new Float32Array(9),3)),this._dummyMesh=new h.Mesh(t,e)}return this._dummyMesh}_getMeshes(){const e=[];return Sc(this.objects,t=>{e.push(t)}),e.sort((t,n)=>t.uuid>n.uuid?1:t.uuid<n.uuid?-1:0),e.length===0&&e.push(this._getDummyMesh()),e}_updateIntermediateGeometries(){const{_intermediateGeometry:e}=this,t=this._getMeshes(),n=new Set(e.keys()),r={attributes:this.attributes,applyWorldTransforms:this.applyWorldTransforms};for(let o=0,i=t.length;o<i;o++){const a=t[o],c=a.uuid;n.delete(c);let f=e.get(c);(!f||!f.isCompatible(a,this.attributes))&&(f&&f.dispose(),f=new Tc,e.set(c,f)),f.updateFrom(a,r)&&this.generateMissingAttributes&&yc(f,this.attributes)}n.forEach(o=>{e.delete(o)})}setObjects(e){Array.isArray(e)?this.objects=[...e]:this.objects=[e]}generate(e=new h.BufferGeometry){const{useGroups:t,overwriteIndex:n,_intermediateGeometry:r,_geometryMergeSets:o}=this,i=this._getMeshes(),a=[],c=[],f=o.get(e)||[];this._updateIntermediateGeometries();let d=!1;i.length!==f.length&&(d=!0);for(let l=0,g=i.length;l<g;l++){const y=i[l],w=r.get(y.uuid);c.push(w);const m=f[l];!m||m.uuid!==w.uuid?(a.push(!1),d=!0):m.version!==w.version?a.push(!1):a.push(!0)}Ac(c,e,{useGroups:t,forceUpdate:d,skipAssigningAttributes:a,overwriteIndex:n}),d&&e.dispose(),o.set(e,c.map(l=>({version:l.version,uuid:l.uuid})));let u=Gr;return d?u=Hi:a.includes(!1)&&(u=Ji),{changeType:u,materials:Mc(i),geometry:e}}}function Cc(s){const e=new Set;for(let t=0,n=s.length;t<n;t++){const r=s[t];for(const o in r){const i=r[o];i&&i.isTexture&&e.add(i)}}return Array.from(e)}function Pc(s){const e=[],t=new Set;for(let r=0,o=s.length;r<o;r++)s[r].traverse(i=>{i.visible&&(i.isRectAreaLight||i.isSpotLight||i.isPointLight||i.isDirectionalLight)&&(e.push(i),i.iesMap&&t.add(i.iesMap))});const n=Array.from(t).sort((r,o)=>r.uuid<o.uuid?1:r.uuid>o.uuid?-1:0);return{lights:e,iesTextures:n}}class Dc{get initialized(){return!!this.bvh}constructor(e){this.bvhOptions={},this.attributes=[\"position\",\"normal\",\"tangent\",\"color\",\"uv\",\"uv2\"],this.generateBVH=!0,this.bvh=null,this.geometry=new h.BufferGeometry,this.staticGeometryGenerator=new Ic(e),this._bvhWorker=null,this._pendingGenerate=null,this._buildAsync=!1}setObjects(e){this.staticGeometryGenerator.setObjects(e)}setBVHWorker(e){this._bvhWorker=e}async generateAsync(e=null){if(!this._bvhWorker)throw new Error('PathTracingSceneGenerator: \"setBVHWorker\" must be called before \"generateAsync\" can be called.');if(this.bvh instanceof Promise)return this._pendingGenerate||(this._pendingGenerate=new Promise(async()=>(await this.bvh,this._pendingGenerate=null,this.generateAsync(e)))),this._pendingGenerate;{this._buildAsync=!0;const t=this.generate(e);return this._buildAsync=!1,t.bvh=this.bvh=await t.bvh,t}}generate(e=null){const{staticGeometryGenerator:t,geometry:n,attributes:r}=this,o=t.objects;t.attributes=r,o.forEach(u=>{u.traverse(l=>{l.isSkinnedMesh&&l.skeleton&&l.skeleton.update()})});const i=t.generate(n),a=i.materials,c=Cc(a),{lights:f,iesTextures:d}=Pc(o);if(i.changeType!==Gr&&vc(n,a,a),this.generateBVH){if(this.bvh instanceof Promise)throw new Error(\"PathTracingSceneGenerator: BVH is already building asynchronously.\");if(i.changeType===Hi){const u={strategy:_i,maxLeafTris:1,indirect:!0,onProgress:e,...this.bvhOptions};this._buildAsync?this.bvh=this._bvhWorker.generate(n,u):this.bvh=new zr(n,u)}else i.changeType===Ji&&this.bvh.refit()}return{bvhChanged:i.changeType!==Gr,bvh:this.bvh,lights:f,iesTextures:d,geometry:n,materials:a,textures:c,objects:o}}}const Fc=new h.OrthographicCamera(-1,1,1,-1,0,1);class Rc extends h.BufferGeometry{constructor(){super(),this.setAttribute(\"position\",new h.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute(\"uv\",new h.Float32BufferAttribute([0,2,0,0,2,0],2))}}const Oc=new Rc;class Zt{constructor(e){this._mesh=new h.Mesh(Oc,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,Fc)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class Vr extends h.ShaderMaterial{set needsUpdate(e){super.needsUpdate=!0,this.dispatchEvent({type:\"recompilation\"})}constructor(e){super(e);for(const t in this.uniforms)Object.defineProperty(this,t,{get(){return this.uniforms[t].value},set(n){this.uniforms[t].value=n}})}setDefine(e,t=void 0){if(t==null){if(e in this.defines)return delete this.defines[e],this.needsUpdate=!0,!0}else if(this.defines[e]!==t)return this.defines[e]=t,this.needsUpdate=!0,!0;return!1}}class Lc extends Vr{constructor(e){super({blending:h.NoBlending,uniforms:{target1:{value:null},target2:{value:null},opacity:{value:1}},vertexShader:`\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}`,fragmentShader:`\n\n\t\t\t\tuniform float opacity;\n\n\t\t\t\tuniform sampler2D target1;\n\t\t\t\tuniform sampler2D target2;\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec4 color1 = texture2D( target1, vUv );\n\t\t\t\t\tvec4 color2 = texture2D( target2, vUv );\n\n\t\t\t\t\tfloat invOpacity = 1.0 - opacity;\n\t\t\t\t\tfloat totalAlpha = color1.a * invOpacity + color2.a * opacity;\n\n\t\t\t\t\tif ( color1.a != 0.0 || color2.a != 0.0 ) {\n\n\t\t\t\t\t\tgl_FragColor.rgb = color1.rgb * ( invOpacity * color1.a / totalAlpha ) + color2.rgb * ( opacity * color2.a / totalAlpha );\n\t\t\t\t\t\tgl_FragColor.a = totalAlpha;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tgl_FragColor = vec4( 0.0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}`}),this.setValues(e)}}function Wn(s=1){let e=\"uint\";return s>1&&(e=\"uvec\"+s),`\n\t\t${e} sobolReverseBits( ${e} x ) {\n\n\t\t\tx = ( ( ( x & 0xaaaaaaaau ) >> 1 ) | ( ( x & 0x55555555u ) << 1 ) );\n\t\t\tx = ( ( ( x & 0xccccccccu ) >> 2 ) | ( ( x & 0x33333333u ) << 2 ) );\n\t\t\tx = ( ( ( x & 0xf0f0f0f0u ) >> 4 ) | ( ( x & 0x0f0f0f0fu ) << 4 ) );\n\t\t\tx = ( ( ( x & 0xff00ff00u ) >> 8 ) | ( ( x & 0x00ff00ffu ) << 8 ) );\n\t\t\treturn ( ( x >> 16 ) | ( x << 16 ) );\n\n\t\t}\n\n\t\t${e} sobolHashCombine( uint seed, ${e} v ) {\n\n\t\t\treturn seed ^ ( v + ${e}( ( seed << 6 ) + ( seed >> 2 ) ) );\n\n\t\t}\n\n\t\t${e} sobolLaineKarrasPermutation( ${e} x, ${e} seed ) {\n\n\t\t\tx += seed;\n\t\t\tx ^= x * 0x6c50b47cu;\n\t\t\tx ^= x * 0xb82f1e52u;\n\t\t\tx ^= x * 0xc7afe638u;\n\t\t\tx ^= x * 0x8d22f6e6u;\n\t\t\treturn x;\n\n\t\t}\n\n\t\t${e} nestedUniformScrambleBase2( ${e} x, ${e} seed ) {\n\n\t\t\tx = sobolLaineKarrasPermutation( x, seed );\n\t\t\tx = sobolReverseBits( x );\n\t\t\treturn x;\n\n\t\t}\n\t`}function jn(s=1){let e=\"uint\",t=\"float\",n=\"\",r=\".r\",o=\"1u\";return s>1&&(e=\"uvec\"+s,t=\"vec\"+s,n=s+\"\",s===2?(r=\".rg\",o=\"uvec2( 1u, 2u )\"):s===3?(r=\".rgb\",o=\"uvec3( 1u, 2u, 3u )\"):(r=\"\",o=\"uvec4( 1u, 2u, 3u, 4u )\")),`\n\n\t\t${t} sobol${n}( int effect ) {\n\n\t\t\tuint seed = sobolGetSeed( sobolBounceIndex, uint( effect ) );\n\t\t\tuint index = sobolPathIndex;\n\n\t\t\tuint shuffle_seed = sobolHashCombine( seed, 0u );\n\t\t\tuint shuffled_index = nestedUniformScrambleBase2( sobolReverseBits( index ), shuffle_seed );\n\t\t\t${t} sobol_pt = sobolGetTexturePoint( shuffled_index )${r};\n\t\t\t${e} result = ${e}( sobol_pt * 16777216.0 );\n\n\t\t\t${e} seed2 = sobolHashCombine( seed, ${o} );\n\t\t\tresult = nestedUniformScrambleBase2( result, seed2 );\n\n\t\t\treturn SOBOL_FACTOR * ${t}( result >> 8 );\n\n\t\t}\n\t`}const es=`\n\n\t// Utils\n\tconst float SOBOL_FACTOR = 1.0 / 16777216.0;\n\tconst uint SOBOL_MAX_POINTS = 256u * 256u;\n\n\t${Wn(1)}\n\t${Wn(2)}\n\t${Wn(3)}\n\t${Wn(4)}\n\n\tuint sobolHash( uint x ) {\n\n\t\t// finalizer from murmurhash3\n\t\tx ^= x >> 16;\n\t\tx *= 0x85ebca6bu;\n\t\tx ^= x >> 13;\n\t\tx *= 0xc2b2ae35u;\n\t\tx ^= x >> 16;\n\t\treturn x;\n\n\t}\n\n`,Nc=`\n\n\tconst uint SOBOL_DIRECTIONS_1[ 32 ] = uint[ 32 ](\n\t\t0x80000000u, 0xc0000000u, 0xa0000000u, 0xf0000000u,\n\t\t0x88000000u, 0xcc000000u, 0xaa000000u, 0xff000000u,\n\t\t0x80800000u, 0xc0c00000u, 0xa0a00000u, 0xf0f00000u,\n\t\t0x88880000u, 0xcccc0000u, 0xaaaa0000u, 0xffff0000u,\n\t\t0x80008000u, 0xc000c000u, 0xa000a000u, 0xf000f000u,\n\t\t0x88008800u, 0xcc00cc00u, 0xaa00aa00u, 0xff00ff00u,\n\t\t0x80808080u, 0xc0c0c0c0u, 0xa0a0a0a0u, 0xf0f0f0f0u,\n\t\t0x88888888u, 0xccccccccu, 0xaaaaaaaau, 0xffffffffu\n\t);\n\n\tconst uint SOBOL_DIRECTIONS_2[ 32 ] = uint[ 32 ](\n\t\t0x80000000u, 0xc0000000u, 0x60000000u, 0x90000000u,\n\t\t0xe8000000u, 0x5c000000u, 0x8e000000u, 0xc5000000u,\n\t\t0x68800000u, 0x9cc00000u, 0xee600000u, 0x55900000u,\n\t\t0x80680000u, 0xc09c0000u, 0x60ee0000u, 0x90550000u,\n\t\t0xe8808000u, 0x5cc0c000u, 0x8e606000u, 0xc5909000u,\n\t\t0x6868e800u, 0x9c9c5c00u, 0xeeee8e00u, 0x5555c500u,\n\t\t0x8000e880u, 0xc0005cc0u, 0x60008e60u, 0x9000c590u,\n\t\t0xe8006868u, 0x5c009c9cu, 0x8e00eeeeu, 0xc5005555u\n\t);\n\n\tconst uint SOBOL_DIRECTIONS_3[ 32 ] = uint[ 32 ](\n\t\t0x80000000u, 0xc0000000u, 0x20000000u, 0x50000000u,\n\t\t0xf8000000u, 0x74000000u, 0xa2000000u, 0x93000000u,\n\t\t0xd8800000u, 0x25400000u, 0x59e00000u, 0xe6d00000u,\n\t\t0x78080000u, 0xb40c0000u, 0x82020000u, 0xc3050000u,\n\t\t0x208f8000u, 0x51474000u, 0xfbea2000u, 0x75d93000u,\n\t\t0xa0858800u, 0x914e5400u, 0xdbe79e00u, 0x25db6d00u,\n\t\t0x58800080u, 0xe54000c0u, 0x79e00020u, 0xb6d00050u,\n\t\t0x800800f8u, 0xc00c0074u, 0x200200a2u, 0x50050093u\n\t);\n\n\tconst uint SOBOL_DIRECTIONS_4[ 32 ] = uint[ 32 ](\n\t\t0x80000000u, 0x40000000u, 0x20000000u, 0xb0000000u,\n\t\t0xf8000000u, 0xdc000000u, 0x7a000000u, 0x9d000000u,\n\t\t0x5a800000u, 0x2fc00000u, 0xa1600000u, 0xf0b00000u,\n\t\t0xda880000u, 0x6fc40000u, 0x81620000u, 0x40bb0000u,\n\t\t0x22878000u, 0xb3c9c000u, 0xfb65a000u, 0xddb2d000u,\n\t\t0x78022800u, 0x9c0b3c00u, 0x5a0fb600u, 0x2d0ddb00u,\n\t\t0xa2878080u, 0xf3c9c040u, 0xdb65a020u, 0x6db2d0b0u,\n\t\t0x800228f8u, 0x400b3cdcu, 0x200fb67au, 0xb00ddb9du\n\t);\n\n\tuint getMaskedSobol( uint index, uint directions[ 32 ] ) {\n\n\t\tuint X = 0u;\n\t\tfor ( int bit = 0; bit < 32; bit ++ ) {\n\n\t\t\tuint mask = ( index >> bit ) & 1u;\n\t\t\tX ^= mask * directions[ bit ];\n\n\t\t}\n\t\treturn X;\n\n\t}\n\n\tvec4 generateSobolPoint( uint index ) {\n\n\t\tif ( index >= SOBOL_MAX_POINTS ) {\n\n\t\t\treturn vec4( 0.0 );\n\n\t\t}\n\n\t\t// NOTE: this sobol \"direction\" is also available but we can't write out 5 components\n\t\t// uint x = index & 0x00ffffffu;\n\t\tuint x = sobolReverseBits( getMaskedSobol( index, SOBOL_DIRECTIONS_1 ) ) & 0x00ffffffu;\n\t\tuint y = sobolReverseBits( getMaskedSobol( index, SOBOL_DIRECTIONS_2 ) ) & 0x00ffffffu;\n\t\tuint z = sobolReverseBits( getMaskedSobol( index, SOBOL_DIRECTIONS_3 ) ) & 0x00ffffffu;\n\t\tuint w = sobolReverseBits( getMaskedSobol( index, SOBOL_DIRECTIONS_4 ) ) & 0x00ffffffu;\n\n\t\treturn vec4( x, y, z, w ) * SOBOL_FACTOR;\n\n\t}\n\n`,kc=`\n\n\t// Seeds\n\tuniform sampler2D sobolTexture;\n\tuint sobolPixelIndex = 0u;\n\tuint sobolPathIndex = 0u;\n\tuint sobolBounceIndex = 0u;\n\n\tuint sobolGetSeed( uint bounce, uint effect ) {\n\n\t\treturn sobolHash(\n\t\t\tsobolHashCombine(\n\t\t\t\tsobolHashCombine(\n\t\t\t\t\tsobolHash( bounce ),\n\t\t\t\t\tsobolPixelIndex\n\t\t\t\t),\n\t\t\t\teffect\n\t\t\t)\n\t\t);\n\n\t}\n\n\tvec4 sobolGetTexturePoint( uint index ) {\n\n\t\tif ( index >= SOBOL_MAX_POINTS ) {\n\n\t\t\tindex = index % SOBOL_MAX_POINTS;\n\n\t\t}\n\n\t\tuvec2 dim = uvec2( textureSize( sobolTexture, 0 ).xy );\n\t\tuint y = index / dim.x;\n\t\tuint x = index - y * dim.x;\n\t\tvec2 uv = vec2( x, y ) / vec2( dim );\n\t\treturn texture( sobolTexture, uv );\n\n\t}\n\n\t${jn(1)}\n\t${jn(2)}\n\t${jn(3)}\n\t${jn(4)}\n\n`;class zc extends Vr{constructor(){super({blending:h.NoBlending,uniforms:{resolution:{value:new h.Vector2}},vertexShader:`\n\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\n\t\t\t\t${es}\n\t\t\t\t${Nc}\n\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform vec2 resolution;\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tuint index = uint( gl_FragCoord.y ) * uint( resolution.x ) + uint( gl_FragCoord.x );\n\t\t\t\t\tgl_FragColor = generateSobolPoint( index );\n\n\t\t\t\t}\n\t\t\t`})}}class Bc{generate(e,t=256){const n=new h.WebGLRenderTarget(t,t,{type:h.FloatType,format:h.RGBAFormat,minFilter:h.NearestFilter,magFilter:h.NearestFilter,generateMipmaps:!1}),r=e.getRenderTarget();e.setRenderTarget(n);const o=new Zt(new zc);return o.material.resolution.set(t,t),o.render(e),e.setRenderTarget(r),o.dispose(),n}}class Uc extends h.PerspectiveCamera{set bokehSize(e){this.fStop=this.getFocalLength()/e}get bokehSize(){return this.getFocalLength()/this.fStop}constructor(...e){super(...e),this.fStop=1.4,this.apertureBlades=0,this.apertureRotation=0,this.focusDistance=25,this.anamorphicRatio=1}copy(e,t){return super.copy(e,t),this.fStop=e.fStop,this.apertureBlades=e.apertureBlades,this.apertureRotation=e.apertureRotation,this.focusDistance=e.focusDistance,this.anamorphicRatio=e.anamorphicRatio,this}}class Ec{constructor(){this.bokehSize=0,this.apertureBlades=0,this.apertureRotation=0,this.focusDistance=10,this.anamorphicRatio=1}updateFrom(e){e instanceof Uc?(this.bokehSize=e.bokehSize,this.apertureBlades=e.apertureBlades,this.apertureRotation=e.apertureRotation,this.focusDistance=e.focusDistance,this.anamorphicRatio=e.anamorphicRatio):(this.bokehSize=0,this.apertureRotation=0,this.apertureBlades=0,this.focusDistance=10,this.anamorphicRatio=1)}}function Wr(s){const e=new Uint16Array(s.length);for(let t=0,n=s.length;t<n;++t)e[t]=h.DataUtils.toHalfFloat(s[t]);return e}function ts(s,e,t=0,n=s.length){let r=t,o=t+n-1;for(;r<o;){const i=r+o>>1;s[i]<e?r=i+1:o=i}return r-t}function Gc(s,e,t){return .2126*s+.7152*e+.0722*t}function Vc(s,e=h.HalfFloatType){const t=s.clone();t.source=new h.Source({...t.image});const{width:n,height:r,data:o}=t.image;let i=o;if(t.type!==e){e===h.HalfFloatType?i=new Uint16Array(o.length):i=new Float32Array(o.length);let a;o instanceof Int8Array||o instanceof Int16Array||o instanceof Int32Array?a=2**(8*o.BYTES_PER_ELEMENT-1)-1:a=2**(8*o.BYTES_PER_ELEMENT)-1;for(let c=0,f=o.length;c<f;c++){let d=o[c];t.type===h.HalfFloatType&&(d=h.DataUtils.fromHalfFloat(o[c])),t.type!==h.FloatType&&t.type!==h.HalfFloatType&&(d/=a),e===h.HalfFloatType&&(i[c]=h.DataUtils.toHalfFloat(d))}t.image.data=i,t.type=e}if(t.flipY){const a=i;i=i.slice();for(let c=0;c<r;c++)for(let f=0;f<n;f++){const d=r-c-1,u=4*(c*n+f),l=4*(d*n+f);i[l+0]=a[u+0],i[l+1]=a[u+1],i[l+2]=a[u+2],i[l+3]=a[u+3]}t.flipY=!1,t.image.data=i}return t}class Wc{constructor(){const e=new h.DataTexture(Wr(new Float32Array([0,0,0,0])),1,1);e.type=h.HalfFloatType,e.format=h.RGBAFormat,e.minFilter=h.LinearFilter,e.magFilter=h.LinearFilter,e.wrapS=h.RepeatWrapping,e.wrapT=h.RepeatWrapping,e.generateMipmaps=!1,e.needsUpdate=!0;const t=new h.DataTexture(Wr(new Float32Array([0,1])),1,2);t.type=h.HalfFloatType,t.format=h.RedFormat,t.minFilter=h.LinearFilter,t.magFilter=h.LinearFilter,t.generateMipmaps=!1,t.needsUpdate=!0;const n=new h.DataTexture(Wr(new Float32Array([0,0,1,1])),2,2);n.type=h.HalfFloatType,n.format=h.RedFormat,n.minFilter=h.LinearFilter,n.magFilter=h.LinearFilter,n.generateMipmaps=!1,n.needsUpdate=!0,this.map=e,this.marginalWeights=t,this.conditionalWeights=n,this.totalSum=0}dispose(){this.marginalWeights.dispose(),this.conditionalWeights.dispose(),this.map.dispose()}updateFrom(e){const t=Vc(e);t.wrapS=h.RepeatWrapping,t.wrapT=h.ClampToEdgeWrapping;const{width:n,height:r,data:o}=t.image,i=new Float32Array(n*r),a=new Float32Array(n*r),c=new Float32Array(r),f=new Float32Array(r);let d=0,u=0;for(let m=0;m<r;m++){let x=0;for(let b=0;b<n;b++){const T=m*n+b,M=h.DataUtils.fromHalfFloat(o[4*T+0]),A=h.DataUtils.fromHalfFloat(o[4*T+1]),I=h.DataUtils.fromHalfFloat(o[4*T+2]),P=Gc(M,A,I);x+=P,d+=P,i[T]=P,a[T]=x}if(x!==0)for(let b=m*n,T=m*n+n;b<T;b++)i[b]/=x,a[b]/=x;u+=x,c[m]=x,f[m]=u}if(u!==0)for(let m=0,x=c.length;m<x;m++)c[m]/=u,f[m]/=u;const l=new Uint16Array(r),g=new Uint16Array(n*r);for(let m=0;m<r;m++){const x=(m+1)/r,b=ts(f,x);l[m]=h.DataUtils.toHalfFloat((b+.5)/r)}for(let m=0;m<r;m++)for(let x=0;x<n;x++){const b=m*n+x,T=(x+1)/n,M=ts(a,T,m*n,n);g[b]=h.DataUtils.toHalfFloat((M+.5)/n)}this.dispose();const{marginalWeights:y,conditionalWeights:w}=this;y.image={width:r,height:1,data:l},y.needsUpdate=!0,w.image={width:n,height:r,data:g},w.needsUpdate=!0,this.totalSum=d,this.map=t}}const jr=6,jc=0,qc=1,Zc=2,Yc=3,Kc=4,He=new h.Vector3,ke=new h.Vector3,ns=new h.Matrix4,Yt=new h.Quaternion,rs=new h.Vector3,Kt=new h.Vector3,Xc=new h.Vector3(0,1,0);class $c{constructor(){const e=new h.DataTexture(new Float32Array(4),1,1);e.format=h.RGBAFormat,e.type=h.FloatType,e.wrapS=h.ClampToEdgeWrapping,e.wrapT=h.ClampToEdgeWrapping,e.generateMipmaps=!1,e.minFilter=h.NearestFilter,e.magFilter=h.NearestFilter,this.tex=e,this.count=0}updateFrom(e,t=[]){const n=this.tex,r=Math.max(e.length*jr,1),o=Math.ceil(Math.sqrt(r));n.image.width!==o&&(n.dispose(),n.image.data=new Float32Array(o*o*4),n.image.width=o,n.image.height=o);const i=n.image.data;for(let c=0,f=e.length;c<f;c++){const d=e[c],u=c*jr*4;let l=0;for(let y=0;y<jr*4;y++)i[u+y]=0;d.getWorldPosition(ke),i[u+l++]=ke.x,i[u+l++]=ke.y,i[u+l++]=ke.z;let g=jc;if(d.isRectAreaLight&&d.isCircular?g=qc:d.isSpotLight?g=Zc:d.isDirectionalLight?g=Yc:d.isPointLight&&(g=Kc),i[u+l++]=g,i[u+l++]=d.color.r,i[u+l++]=d.color.g,i[u+l++]=d.color.b,i[u+l++]=d.intensity,d.getWorldQuaternion(Yt),d.isRectAreaLight)He.set(d.width,0,0).applyQuaternion(Yt),i[u+l++]=He.x,i[u+l++]=He.y,i[u+l++]=He.z,l++,ke.set(0,d.height,0).applyQuaternion(Yt),i[u+l++]=ke.x,i[u+l++]=ke.y,i[u+l++]=ke.z,i[u+l++]=He.cross(ke).length()*(d.isCircular?Math.PI/4:1);else if(d.isSpotLight){const y=d.radius||0;rs.setFromMatrixPosition(d.matrixWorld),Kt.setFromMatrixPosition(d.target.matrixWorld),ns.lookAt(rs,Kt,Xc),Yt.setFromRotationMatrix(ns),He.set(1,0,0).applyQuaternion(Yt),i[u+l++]=He.x,i[u+l++]=He.y,i[u+l++]=He.z,l++,ke.set(0,1,0).applyQuaternion(Yt),i[u+l++]=ke.x,i[u+l++]=ke.y,i[u+l++]=ke.z,i[u+l++]=Math.PI*y*y,i[u+l++]=y,i[u+l++]=d.decay,i[u+l++]=d.distance,i[u+l++]=Math.cos(d.angle),i[u+l++]=Math.cos(d.angle*(1-d.penumbra)),i[u+l++]=d.iesMap?t.indexOf(d.iesMap):-1}else if(d.isPointLight){const y=He.setFromMatrixPosition(d.matrixWorld);i[u+l++]=y.x,i[u+l++]=y.y,i[u+l++]=y.z,l++,l+=4,l+=1,i[u+l++]=d.decay,i[u+l++]=d.distance}else if(d.isDirectionalLight){const y=He.setFromMatrixPosition(d.matrixWorld),w=ke.setFromMatrixPosition(d.target.matrixWorld);Kt.subVectors(y,w).normalize(),i[u+l++]=Kt.x,i[u+l++]=Kt.y,i[u+l++]=Kt.z}}this.count=e.length;const a=Br(i.buffer);return this.hash!==a?(this.hash=a,n.needsUpdate=!0,!0):!1}}function is(s,e,t,n,r){if(e>n)throw new Error;const o=s.length/e,i=s.constructor.BYTES_PER_ELEMENT*8;let a=1;switch(s.constructor){case Uint8Array:case Uint16Array:case Uint32Array:a=2**i-1;break;case Int8Array:case Int16Array:case Int32Array:a=2**(i-1)-1;break}for(let c=0;c<o;c++){const f=4*c,d=e*c;for(let u=0;u<n;u++)t[r+f+u]=e>=u+1?s[d+u]/a:0}}class Qc extends h.DataArrayTexture{constructor(){super(),this._textures=[],this.type=h.FloatType,this.format=h.RGBAFormat,this.internalFormat=\"RGBA32F\"}updateAttribute(e,t){const n=this._textures[e];n.updateFrom(t);const r=n.image,o=this.image;if(r.width!==o.width||r.height!==o.height)throw new Error(\"FloatAttributeTextureArray: Attribute must be the same dimensions when updating single layer.\");const{width:i,height:a,data:c}=o,d=i*a*4*e;let u=t.itemSize;u===3&&(u=4),is(n.image.data,u,c,4,d),this.dispose(),this.needsUpdate=!0}setAttributes(e){const t=e[0].count,n=e.length;for(let u=0,l=n;u<l;u++)if(e[u].count!==t)throw new Error(\"FloatAttributeTextureArray: All attributes must have the same item count.\");const r=this._textures;for(;r.length<n;){const u=new Wi;r.push(u)}for(;r.length>n;)r.pop();for(let u=0,l=n;u<l;u++)r[u].updateFrom(e[u]);const i=r[0].image,a=this.image;(i.width!==a.width||i.height!==a.height||i.depth!==n)&&(a.width=i.width,a.height=i.height,a.depth=n,a.data=new Float32Array(a.width*a.height*a.depth*4));const{data:c,width:f,height:d}=a;for(let u=0,l=n;u<l;u++){const g=r[u],w=f*d*4*u;let m=e[u].itemSize;m===3&&(m=4),is(g.image.data,m,c,4,w)}this.dispose(),this.needsUpdate=!0}}class Jc extends Qc{updateNormalAttribute(e){this.updateAttribute(0,e)}updateTangentAttribute(e){this.updateAttribute(1,e)}updateUvAttribute(e){this.updateAttribute(2,e)}updateColorAttribute(e){this.updateAttribute(3,e)}updateFrom(e,t,n,r){this.setAttributes([e,t,n,r])}}function qr(s,e){return s.uuid<e.uuid?1:s.uuid>e.uuid?-1:0}function Zr(s){return`${s.source.uuid}:${s.colorSpace}`}function Hc(s){const e=new Set,t=[];for(let n=0,r=s.length;n<r;n++){const o=s[n],i=Zr(o);e.has(i)||(e.add(i),t.push(o))}return t}function el(s){const e=s.map(n=>n.iesMap||null).filter(n=>n),t=new Set(e);return Array.from(t).sort(qr)}function tl(s){const e=new Set;for(let n=0,r=s.length;n<r;n++){const o=s[n];for(const i in o){const a=o[i];a&&a.isTexture&&e.add(a)}}const t=Array.from(e);return Hc(t).sort(qr)}function nl(s){const e=[];return s.traverse(t=>{t.visible&&(t.isRectAreaLight||t.isSpotLight||t.isPointLight||t.isDirectionalLight)&&e.push(t)}),e.sort(qr)}const ss=45,os=ss*4;class rl{constructor(){this._features={}}isUsed(e){return e in this._features}setUsed(e,t=!0){t===!1?delete this._features[e]:this._features[e]=!0}reset(){this._features={}}}class il extends h.DataTexture{constructor(){super(new Float32Array(4),1,1),this.format=h.RGBAFormat,this.type=h.FloatType,this.wrapS=h.ClampToEdgeWrapping,this.wrapT=h.ClampToEdgeWrapping,this.minFilter=h.NearestFilter,this.magFilter=h.NearestFilter,this.generateMipmaps=!1,this.features=new rl}updateFrom(e,t){function n(y,w,m=-1){if(w in y&&y[w]){const x=Zr(y[w]);return u[x]}else return m}function r(y,w,m){return w in y?y[w]:m}function o(y,w,m,x){const b=y[w]&&y[w].isTexture?y[w]:null;if(b){b.matrixAutoUpdate&&b.updateMatrix();const T=b.matrix.elements;let M=0;m[x+M++]=T[0],m[x+M++]=T[3],m[x+M++]=T[6],M++,m[x+M++]=T[1],m[x+M++]=T[4],m[x+M++]=T[7],M++}return 8}let i=0;const a=e.length*ss,c=Math.ceil(Math.sqrt(a))||1,{image:f,features:d}=this,u={};for(let y=0,w=t.length;y<w;y++)u[Zr(t[y])]=y;f.width!==c&&(this.dispose(),f.data=new Float32Array(c*c*4),f.width=c,f.height=c);const l=f.data;d.reset();for(let y=0,w=e.length;y<w;y++){const m=e[y];if(m.isFogVolumeMaterial){d.setUsed(\"FOG\");for(let T=0;T<os;T++)l[i+T]=0;l[i+0*4+0]=m.color.r,l[i+0*4+1]=m.color.g,l[i+0*4+2]=m.color.b,l[i+2*4+3]=r(m,\"emissiveIntensity\",0),l[i+3*4+0]=m.emissive.r,l[i+3*4+1]=m.emissive.g,l[i+3*4+2]=m.emissive.b,l[i+13*4+1]=m.density,l[i+13*4+3]=0,l[i+14*4+2]=4,i+=os;continue}l[i++]=m.color.r,l[i++]=m.color.g,l[i++]=m.color.b,l[i++]=n(m,\"map\"),l[i++]=r(m,\"metalness\",0),l[i++]=n(m,\"metalnessMap\"),l[i++]=r(m,\"roughness\",0),l[i++]=n(m,\"roughnessMap\"),l[i++]=r(m,\"ior\",1.5),l[i++]=r(m,\"transmission\",0),l[i++]=n(m,\"transmissionMap\"),l[i++]=r(m,\"emissiveIntensity\",0),\"emissive\"in m?(l[i++]=m.emissive.r,l[i++]=m.emissive.g,l[i++]=m.emissive.b):(l[i++]=0,l[i++]=0,l[i++]=0),l[i++]=n(m,\"emissiveMap\"),l[i++]=n(m,\"normalMap\"),\"normalScale\"in m?(l[i++]=m.normalScale.x,l[i++]=m.normalScale.y):(l[i++]=1,l[i++]=1),l[i++]=r(m,\"clearcoat\",0),l[i++]=n(m,\"clearcoatMap\"),l[i++]=r(m,\"clearcoatRoughness\",0),l[i++]=n(m,\"clearcoatRoughnessMap\"),l[i++]=n(m,\"clearcoatNormalMap\"),\"clearcoatNormalScale\"in m?(l[i++]=m.clearcoatNormalScale.x,l[i++]=m.clearcoatNormalScale.y):(l[i++]=1,l[i++]=1),i++,l[i++]=r(m,\"sheen\",0),\"sheenColor\"in m?(l[i++]=m.sheenColor.r,l[i++]=m.sheenColor.g,l[i++]=m.sheenColor.b):(l[i++]=0,l[i++]=0,l[i++]=0),l[i++]=n(m,\"sheenColorMap\"),l[i++]=r(m,\"sheenRoughness\",0),l[i++]=n(m,\"sheenRoughnessMap\"),l[i++]=n(m,\"iridescenceMap\"),l[i++]=n(m,\"iridescenceThicknessMap\"),l[i++]=r(m,\"iridescence\",0),l[i++]=r(m,\"iridescenceIOR\",1.3);const x=r(m,\"iridescenceThicknessRange\",[100,400]);l[i++]=x[0],l[i++]=x[1],\"specularColor\"in m?(l[i++]=m.specularColor.r,l[i++]=m.specularColor.g,l[i++]=m.specularColor.b):(l[i++]=1,l[i++]=1,l[i++]=1),l[i++]=n(m,\"specularColorMap\"),l[i++]=r(m,\"specularIntensity\",1),l[i++]=n(m,\"specularIntensityMap\");const b=r(m,\"thickness\",0)===0&&r(m,\"attenuationDistance\",1/0)===1/0;if(l[i++]=Number(b),i++,\"attenuationColor\"in m?(l[i++]=m.attenuationColor.r,l[i++]=m.attenuationColor.g,l[i++]=m.attenuationColor.b):(l[i++]=1,l[i++]=1,l[i++]=1),l[i++]=r(m,\"attenuationDistance\",1/0),l[i++]=n(m,\"alphaMap\"),l[i++]=m.opacity,l[i++]=m.alphaTest,!b&&m.transmission>0)l[i++]=0;else switch(m.side){case h.FrontSide:l[i++]=1;break;case h.BackSide:l[i++]=-1;break;case h.DoubleSide:l[i++]=0;break}l[i++]=Number(r(m,\"matte\",!1)),l[i++]=Number(r(m,\"castShadow\",!0)),l[i++]=Number(m.vertexColors)|Number(m.flatShading)<<1,l[i++]=Number(m.transparent),i+=o(m,\"map\",l,i),i+=o(m,\"metalnessMap\",l,i),i+=o(m,\"roughnessMap\",l,i),i+=o(m,\"transmissionMap\",l,i),i+=o(m,\"emissiveMap\",l,i),i+=o(m,\"normalMap\",l,i),i+=o(m,\"clearcoatMap\",l,i),i+=o(m,\"clearcoatNormalMap\",l,i),i+=o(m,\"clearcoatRoughnessMap\",l,i),i+=o(m,\"sheenColorMap\",l,i),i+=o(m,\"sheenRoughnessMap\",l,i),i+=o(m,\"iridescenceMap\",l,i),i+=o(m,\"iridescenceThicknessMap\",l,i),i+=o(m,\"specularColorMap\",l,i),i+=o(m,\"specularIntensityMap\",l,i)}const g=Br(l.buffer);return this.hash!==g?(this.hash=g,this.needsUpdate=!0,!0):!1}}const as=new h.Color;function sl(s){return s?`${s.uuid}:${s.version}`:null}function ol(s,e){for(const t in e)t in s&&(s[t]=e[t])}class cs extends h.WebGLArrayRenderTarget{constructor(e,t,n){const r={format:h.RGBAFormat,type:h.UnsignedByteType,minFilter:h.LinearFilter,magFilter:h.LinearFilter,wrapS:h.RepeatWrapping,wrapT:h.RepeatWrapping,generateMipmaps:!1,...n};super(e,t,1,r),ol(this.texture,r),this.texture.setTextures=(...i)=>{this.setTextures(...i)},this.hashes=[null];const o=new Zt(new al);this.fsQuad=o}setTextures(e,t,n=this.width,r=this.height){const o=e.getRenderTarget(),i=e.toneMapping,a=e.getClearAlpha();e.getClearColor(as);const c=t.length||1;(n!==this.width||r!==this.height||this.depth!==c)&&(this.setSize(n,r,c),this.hashes=new Array(c).fill(null)),e.setClearColor(0,0),e.toneMapping=h.NoToneMapping;const f=this.fsQuad,d=this.hashes;let u=!1;for(let l=0,g=c;l<g;l++){const y=t[l],w=sl(y);y&&(d[l]!==w||y.isWebGLRenderTarget)&&(y.matrixAutoUpdate=!1,y.matrix.identity(),f.material.map=y,e.setRenderTarget(this,l),f.render(e),y.updateMatrix(),y.matrixAutoUpdate=!0,d[l]=w,u=!0)}return f.material.map=null,e.setClearColor(as,a),e.setRenderTarget(o),e.toneMapping=i,u}dispose(){super.dispose(),this.fsQuad.dispose()}}class al extends h.ShaderMaterial{get map(){return this.uniforms.map.value}set map(e){this.uniforms.map.value=e}constructor(){super({uniforms:{map:{value:null}},vertexShader:`\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\t\t\t\tuniform sampler2D map;\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = texture2D( map, vUv );\n\n\t\t\t\t}\n\t\t\t`})}}function cl(s,e=Math.random()){for(let t=s.length-1;t>0;t--){const n=Math.floor(e()*(t+1)),r=s[t];s[t]=s[n],s[n]=r}return s}class ll{constructor(e,t,n=Math.random){const r=e**t,o=new Uint16Array(r);let i=r;for(let a=0;a<r;a++)o[a]=a;this.samples=new Float32Array(t),this.strataCount=e,this.reset=function(){for(let a=0;a<r;a++)o[a]=a;i=0},this.reshuffle=function(){i=0},this.next=function(){const{samples:a}=this;i>=o.length&&(cl(o,n),this.reshuffle());let c=o[i++];for(let f=0;f<t;f++)a[f]=(c%e+n())/e,c=Math.floor(c/e);return a}}}class ul{constructor(e,t,n=Math.random){let r=0;for(const c of t)r+=c;const o=new Float32Array(r),i=[];let a=0;for(const c of t){const f=new ll(e,c,n);f.samples=new Float32Array(o.buffer,a,f.samples.length),a+=f.samples.length*4,i.push(f)}this.samples=o,this.strataCount=e,this.next=function(){for(const c of i)c.next();return o},this.reshuffle=function(){for(const c of i)c.reshuffle()},this.reset=function(){for(const c of i)c.reset()}}}class hl{constructor(e=0){this.m=2147483648,this.a=1103515245,this.c=12345,this.seed=e}nextInt(){return this.seed=(this.a*this.seed+this.c)%this.m,this.seed}nextFloat(){return this.nextInt()/(this.m-1)}}class fl extends h.DataTexture{constructor(e=1,t=1,n=8){super(new Float32Array(1),1,1,h.RGBAFormat,h.FloatType),this.minFilter=h.NearestFilter,this.magFilter=h.NearestFilter,this.strata=n,this.sampler=null,this.generator=new hl,this.stableNoise=!1,this.random=()=>this.stableNoise?this.generator.nextFloat():Math.random(),this.init(e,t,n)}init(e=this.image.height,t=this.image.width,n=this.strata){const{image:r}=this;if(r.width===t&&r.height===e&&this.sampler!==null)return;const o=new Array(e*t).fill(4),i=new ul(n,o,this.random);r.width=t,r.height=e,r.data=i.samples,this.sampler=i,this.dispose(),this.next()}next(){this.sampler.next(),this.needsUpdate=!0}reset(){this.sampler.reset(),this.generator.seed=0}}function dl(s,e=Math.random){for(let t=s.length-1;t>0;t--){const n=~~((e()-1e-6)*t),r=s[t];s[t]=s[n],s[n]=r}}function pl(s,e){s.fill(0);for(let t=0;t<e;t++)s[t]=1}class ls{constructor(e){this.count=0,this.size=-1,this.sigma=-1,this.radius=-1,this.lookupTable=null,this.score=null,this.binaryPattern=null,this.resize(e),this.setSigma(1.5)}findVoid(){const{score:e,binaryPattern:t}=this;let n=1/0,r=-1;for(let o=0,i=t.length;o<i;o++){if(t[o]!==0)continue;const a=e[o];a<n&&(n=a,r=o)}return r}findCluster(){const{score:e,binaryPattern:t}=this;let n=-1/0,r=-1;for(let o=0,i=t.length;o<i;o++){if(t[o]!==1)continue;const a=e[o];a>n&&(n=a,r=o)}return r}setSigma(e){if(e===this.sigma)return;const t=~~(Math.sqrt(10*2*e**2)+1),n=2*t+1,r=new Float32Array(n*n),o=e*e;for(let i=-t;i<=t;i++)for(let a=-t;a<=t;a++){const c=(t+a)*n+i+t,f=i*i+a*a;r[c]=Math.E**(-f/(2*o))}this.lookupTable=r,this.sigma=e,this.radius=t}resize(e){this.size!==e&&(this.size=e,this.score=new Float32Array(e*e),this.binaryPattern=new Uint8Array(e*e))}invert(){const{binaryPattern:e,score:t,size:n}=this;t.fill(0);for(let r=0,o=e.length;r<o;r++)if(e[r]===0){const i=~~(r/n),a=r-i*n;this.updateScore(a,i,1),e[r]=1}else e[r]=0}updateScore(e,t,n){const{size:r,score:o,lookupTable:i}=this,a=this.radius,c=2*a+1;for(let f=-a;f<=a;f++)for(let d=-a;d<=a;d++){const u=(a+d)*c+f+a,l=i[u];let g=e+f;g=g<0?r+g:g%r;let y=t+d;y=y<0?r+y:y%r;const w=y*r+g;o[w]+=n*l}}addPointIndex(e){this.binaryPattern[e]=1;const t=this.size,n=~~(e/t),r=e-n*t;this.updateScore(r,n,1),this.count++}removePointIndex(e){this.binaryPattern[e]=0;const t=this.size,n=~~(e/t),r=e-n*t;this.updateScore(r,n,-1),this.count--}copy(e){this.resize(e.size),this.score.set(e.score),this.binaryPattern.set(e.binaryPattern),this.setSigma(e.sigma),this.count=e.count}}class ml{constructor(){this.random=Math.random,this.sigma=1.5,this.size=64,this.majorityPointsRatio=.1,this.samples=new ls(1),this.savedSamples=new ls(1)}generate(){const{samples:e,savedSamples:t,sigma:n,majorityPointsRatio:r,size:o}=this;e.resize(o),e.setSigma(n);const i=Math.floor(o*o*r),a=e.binaryPattern;pl(a,i),dl(a,this.random);for(let u=0,l=a.length;u<l;u++)a[u]===1&&e.addPointIndex(u);for(;;){const u=e.findCluster();e.removePointIndex(u);const l=e.findVoid();if(u===l){e.addPointIndex(u);break}e.addPointIndex(l)}const c=new Uint32Array(o*o);t.copy(e);let f;for(f=e.count-1;f>=0;){const u=e.findCluster();e.removePointIndex(u),c[u]=f,f--}const d=o*o;for(f=t.count;f<d/2;){const u=t.findVoid();t.addPointIndex(u),c[u]=f,f++}for(t.invert();f<d;){const u=t.findCluster();t.removePointIndex(u),c[u]=f,f++}return{data:c,maxValue:d}}}function gl(s){return s>=3?4:s}function vl(s){switch(s){case 1:return h.RedFormat;case 2:return h.RGFormat;default:return h.RGBAFormat}}class yl extends h.DataTexture{constructor(e=64,t=1){super(new Float32Array(4),1,1,h.RGBAFormat,h.FloatType),this.minFilter=h.NearestFilter,this.magFilter=h.NearestFilter,this.size=e,this.channels=t,this.update()}update(){const e=this.channels,t=this.size,n=new ml;n.channels=e,n.size=t;const r=gl(e),o=vl(r);(this.image.width!==t||o!==this.format)&&(this.image.width=t,this.image.height=t,this.image.data=new Float32Array(t**2*r),this.format=o,this.dispose());const i=this.image.data;for(let a=0,c=e;a<c;a++){const f=n.generate(),d=f.data,u=f.maxValue;for(let l=0,g=d.length;l<g;l++){const y=d[l]/u;i[l*r+a]=y}}this.needsUpdate=!0}}const xl=`\n\n\tstruct PhysicalCamera {\n\n\t\tfloat focusDistance;\n\t\tfloat anamorphicRatio;\n\t\tfloat bokehSize;\n\t\tint apertureBlades;\n\t\tfloat apertureRotation;\n\n\t};\n\n`,bl=`\n\n\tstruct EquirectHdrInfo {\n\n\t\tsampler2D marginalWeights;\n\t\tsampler2D conditionalWeights;\n\t\tsampler2D map;\n\n\t\tfloat totalSum;\n\n\t};\n\n`,wl=`\n\n\t#define RECT_AREA_LIGHT_TYPE 0\n\t#define CIRC_AREA_LIGHT_TYPE 1\n\t#define SPOT_LIGHT_TYPE 2\n\t#define DIR_LIGHT_TYPE 3\n\t#define POINT_LIGHT_TYPE 4\n\n\tstruct LightsInfo {\n\n\t\tsampler2D tex;\n\t\tuint count;\n\n\t};\n\n\tstruct Light {\n\n\t\tvec3 position;\n\t\tint type;\n\n\t\tvec3 color;\n\t\tfloat intensity;\n\n\t\tvec3 u;\n\t\tvec3 v;\n\t\tfloat area;\n\n\t\t// spot light fields\n\t\tfloat radius;\n\t\tfloat near;\n\t\tfloat decay;\n\t\tfloat distance;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint iesProfile;\n\n\t};\n\n\tLight readLightInfo( sampler2D tex, uint index ) {\n\n\t\tuint i = index * 6u;\n\n\t\tvec4 s0 = texelFetch1D( tex, i + 0u );\n\t\tvec4 s1 = texelFetch1D( tex, i + 1u );\n\t\tvec4 s2 = texelFetch1D( tex, i + 2u );\n\t\tvec4 s3 = texelFetch1D( tex, i + 3u );\n\n\t\tLight l;\n\t\tl.position = s0.rgb;\n\t\tl.type = int( round( s0.a ) );\n\n\t\tl.color = s1.rgb;\n\t\tl.intensity = s1.a;\n\n\t\tl.u = s2.rgb;\n\t\tl.v = s3.rgb;\n\t\tl.area = s3.a;\n\n\t\tif ( l.type == SPOT_LIGHT_TYPE || l.type == POINT_LIGHT_TYPE ) {\n\n\t\t\tvec4 s4 = texelFetch1D( tex, i + 4u );\n\t\t\tvec4 s5 = texelFetch1D( tex, i + 5u );\n\t\t\tl.radius = s4.r;\n\t\t\tl.decay = s4.g;\n\t\t\tl.distance = s4.b;\n\t\t\tl.coneCos = s4.a;\n\n\t\t\tl.penumbraCos = s5.r;\n\t\t\tl.iesProfile = int( round( s5.g ) );\n\n\t\t} else {\n\n\t\t\tl.radius = 0.0;\n\t\t\tl.decay = 0.0;\n\t\t\tl.distance = 0.0;\n\n\t\t\tl.coneCos = 0.0;\n\t\t\tl.penumbraCos = 0.0;\n\t\t\tl.iesProfile = - 1;\n\n\t\t}\n\n\t\treturn l;\n\n\t}\n\n`,_l=`\n\n\tstruct Material {\n\n\t\tvec3 color;\n\t\tint map;\n\n\t\tfloat metalness;\n\t\tint metalnessMap;\n\n\t\tfloat roughness;\n\t\tint roughnessMap;\n\n\t\tfloat ior;\n\t\tfloat transmission;\n\t\tint transmissionMap;\n\n\t\tfloat emissiveIntensity;\n\t\tvec3 emissive;\n\t\tint emissiveMap;\n\n\t\tint normalMap;\n\t\tvec2 normalScale;\n\n\t\tfloat clearcoat;\n\t\tint clearcoatMap;\n\t\tint clearcoatNormalMap;\n\t\tvec2 clearcoatNormalScale;\n\t\tfloat clearcoatRoughness;\n\t\tint clearcoatRoughnessMap;\n\n\t\tint iridescenceMap;\n\t\tint iridescenceThicknessMap;\n\t\tfloat iridescence;\n\t\tfloat iridescenceIor;\n\t\tfloat iridescenceThicknessMinimum;\n\t\tfloat iridescenceThicknessMaximum;\n\n\t\tvec3 specularColor;\n\t\tint specularColorMap;\n\n\t\tfloat specularIntensity;\n\t\tint specularIntensityMap;\n\t\tbool thinFilm;\n\n\t\tvec3 attenuationColor;\n\t\tfloat attenuationDistance;\n\n\t\tint alphaMap;\n\n\t\tbool castShadow;\n\t\tfloat opacity;\n\t\tfloat alphaTest;\n\n\t\tfloat side;\n\t\tbool matte;\n\n\t\tfloat sheen;\n\t\tvec3 sheenColor;\n\t\tint sheenColorMap;\n\t\tfloat sheenRoughness;\n\t\tint sheenRoughnessMap;\n\n\t\tbool vertexColors;\n\t\tbool flatShading;\n\t\tbool transparent;\n\t\tbool fogVolume;\n\n\t\tmat3 mapTransform;\n\t\tmat3 metalnessMapTransform;\n\t\tmat3 roughnessMapTransform;\n\t\tmat3 transmissionMapTransform;\n\t\tmat3 emissiveMapTransform;\n\t\tmat3 normalMapTransform;\n\t\tmat3 clearcoatMapTransform;\n\t\tmat3 clearcoatNormalMapTransform;\n\t\tmat3 clearcoatRoughnessMapTransform;\n\t\tmat3 sheenColorMapTransform;\n\t\tmat3 sheenRoughnessMapTransform;\n\t\tmat3 iridescenceMapTransform;\n\t\tmat3 iridescenceThicknessMapTransform;\n\t\tmat3 specularColorMapTransform;\n\t\tmat3 specularIntensityMapTransform;\n\n\t};\n\n\tmat3 readTextureTransform( sampler2D tex, uint index ) {\n\n\t\tmat3 textureTransform;\n\n\t\tvec4 row1 = texelFetch1D( tex, index );\n\t\tvec4 row2 = texelFetch1D( tex, index + 1u );\n\n\t\ttextureTransform[0] = vec3(row1.r, row2.r, 0.0);\n\t\ttextureTransform[1] = vec3(row1.g, row2.g, 0.0);\n\t\ttextureTransform[2] = vec3(row1.b, row2.b, 1.0);\n\n\t\treturn textureTransform;\n\n\t}\n\n\tMaterial readMaterialInfo( sampler2D tex, uint index ) {\n\n\t\tuint i = index * 45u;\n\n\t\tvec4 s0 = texelFetch1D( tex, i + 0u );\n\t\tvec4 s1 = texelFetch1D( tex, i + 1u );\n\t\tvec4 s2 = texelFetch1D( tex, i + 2u );\n\t\tvec4 s3 = texelFetch1D( tex, i + 3u );\n\t\tvec4 s4 = texelFetch1D( tex, i + 4u );\n\t\tvec4 s5 = texelFetch1D( tex, i + 5u );\n\t\tvec4 s6 = texelFetch1D( tex, i + 6u );\n\t\tvec4 s7 = texelFetch1D( tex, i + 7u );\n\t\tvec4 s8 = texelFetch1D( tex, i + 8u );\n\t\tvec4 s9 = texelFetch1D( tex, i + 9u );\n\t\tvec4 s10 = texelFetch1D( tex, i + 10u );\n\t\tvec4 s11 = texelFetch1D( tex, i + 11u );\n\t\tvec4 s12 = texelFetch1D( tex, i + 12u );\n\t\tvec4 s13 = texelFetch1D( tex, i + 13u );\n\t\tvec4 s14 = texelFetch1D( tex, i + 14u );\n\n\t\tMaterial m;\n\t\tm.color = s0.rgb;\n\t\tm.map = int( round( s0.a ) );\n\n\t\tm.metalness = s1.r;\n\t\tm.metalnessMap = int( round( s1.g ) );\n\t\tm.roughness = s1.b;\n\t\tm.roughnessMap = int( round( s1.a ) );\n\n\t\tm.ior = s2.r;\n\t\tm.transmission = s2.g;\n\t\tm.transmissionMap = int( round( s2.b ) );\n\t\tm.emissiveIntensity = s2.a;\n\n\t\tm.emissive = s3.rgb;\n\t\tm.emissiveMap = int( round( s3.a ) );\n\n\t\tm.normalMap = int( round( s4.r ) );\n\t\tm.normalScale = s4.gb;\n\n\t\tm.clearcoat = s4.a;\n\t\tm.clearcoatMap = int( round( s5.r ) );\n\t\tm.clearcoatRoughness = s5.g;\n\t\tm.clearcoatRoughnessMap = int( round( s5.b ) );\n\t\tm.clearcoatNormalMap = int( round( s5.a ) );\n\t\tm.clearcoatNormalScale = s6.rg;\n\n\t\tm.sheen = s6.a;\n\t\tm.sheenColor = s7.rgb;\n\t\tm.sheenColorMap = int( round( s7.a ) );\n\t\tm.sheenRoughness = s8.r;\n\t\tm.sheenRoughnessMap = int( round( s8.g ) );\n\n\t\tm.iridescenceMap = int( round( s8.b ) );\n\t\tm.iridescenceThicknessMap = int( round( s8.a ) );\n\t\tm.iridescence = s9.r;\n\t\tm.iridescenceIor = s9.g;\n\t\tm.iridescenceThicknessMinimum = s9.b;\n\t\tm.iridescenceThicknessMaximum = s9.a;\n\n\t\tm.specularColor = s10.rgb;\n\t\tm.specularColorMap = int( round( s10.a ) );\n\n\t\tm.specularIntensity = s11.r;\n\t\tm.specularIntensityMap = int( round( s11.g ) );\n\t\tm.thinFilm = bool( s11.b );\n\n\t\tm.attenuationColor = s12.rgb;\n\t\tm.attenuationDistance = s12.a;\n\n\t\tm.alphaMap = int( round( s13.r ) );\n\n\t\tm.opacity = s13.g;\n\t\tm.alphaTest = s13.b;\n\t\tm.side = s13.a;\n\n\t\tm.matte = bool( s14.r );\n\t\tm.castShadow = bool( s14.g );\n\t\tm.vertexColors = bool( int( s14.b ) & 1 );\n\t\tm.flatShading = bool( int( s14.b ) & 2 );\n\t\tm.fogVolume = bool( int( s14.b ) & 4 );\n\t\tm.transparent = bool( s14.a );\n\n\t\tuint firstTextureTransformIdx = i + 15u;\n\n\t\t// mat3( 1.0 ) is an identity matrix\n\t\tm.mapTransform = m.map == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx );\n\t\tm.metalnessMapTransform = m.metalnessMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 2u );\n\t\tm.roughnessMapTransform = m.roughnessMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 4u );\n\t\tm.transmissionMapTransform = m.transmissionMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 6u );\n\t\tm.emissiveMapTransform = m.emissiveMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 8u );\n\t\tm.normalMapTransform = m.normalMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 10u );\n\t\tm.clearcoatMapTransform = m.clearcoatMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 12u );\n\t\tm.clearcoatNormalMapTransform = m.clearcoatNormalMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 14u );\n\t\tm.clearcoatRoughnessMapTransform = m.clearcoatRoughnessMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 16u );\n\t\tm.sheenColorMapTransform = m.sheenColorMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 18u );\n\t\tm.sheenRoughnessMapTransform = m.sheenRoughnessMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 20u );\n\t\tm.iridescenceMapTransform = m.iridescenceMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 22u );\n\t\tm.iridescenceThicknessMapTransform = m.iridescenceThicknessMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 24u );\n\t\tm.specularColorMapTransform = m.specularColorMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 26u );\n\t\tm.specularIntensityMapTransform = m.specularIntensityMap == - 1 ? mat3( 1.0 ) : readTextureTransform( tex, firstTextureTransformIdx + 28u );\n\n\t\treturn m;\n\n\t}\n\n`,Tl=`\n\n\tstruct SurfaceRecord {\n\n\t\t// surface type\n\t\tbool volumeParticle;\n\n\t\t// geometry\n\t\tvec3 faceNormal;\n\t\tbool frontFace;\n\t\tvec3 normal;\n\t\tmat3 normalBasis;\n\t\tmat3 normalInvBasis;\n\n\t\t// cached properties\n\t\tfloat eta;\n\t\tfloat f0;\n\n\t\t// material\n\t\tfloat roughness;\n\t\tfloat filteredRoughness;\n\t\tfloat metalness;\n\t\tvec3 color;\n\t\tvec3 emission;\n\n\t\t// transmission\n\t\tfloat ior;\n\t\tfloat transmission;\n\t\tbool thinFilm;\n\t\tvec3 attenuationColor;\n\t\tfloat attenuationDistance;\n\n\t\t// clearcoat\n\t\tvec3 clearcoatNormal;\n\t\tmat3 clearcoatBasis;\n\t\tmat3 clearcoatInvBasis;\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tfloat filteredClearcoatRoughness;\n\n\t\t// sheen\n\t\tfloat sheen;\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\n\t\t// iridescence\n\t\tfloat iridescence;\n\t\tfloat iridescenceIor;\n\t\tfloat iridescenceThickness;\n\n\t\t// specular\n\t\tvec3 specularColor;\n\t\tfloat specularIntensity;\n\t};\n\n\tstruct ScatterRecord {\n\t\tfloat specularPdf;\n\t\tfloat pdf;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\n`,Sl=`\n\n\t// samples the the given environment map in the given direction\n\tvec3 sampleEquirectColor( sampler2D envMap, vec3 direction ) {\n\n\t\treturn texture2D( envMap, equirectDirectionToUv( direction ) ).rgb;\n\n\t}\n\n\t// gets the pdf of the given direction to sample\n\tfloat equirectDirectionPdf( vec3 direction ) {\n\n\t\tvec2 uv = equirectDirectionToUv( direction );\n\t\tfloat theta = uv.y * PI;\n\t\tfloat sinTheta = sin( theta );\n\t\tif ( sinTheta == 0.0 ) {\n\n\t\t\treturn 0.0;\n\n\t\t}\n\n\t\treturn 1.0 / ( 2.0 * PI * PI * sinTheta );\n\n\t}\n\n\t// samples the color given env map with CDF and returns the pdf of the direction\n\tfloat sampleEquirect( vec3 direction, inout vec3 color ) {\n\n\t\tfloat totalSum = envMapInfo.totalSum;\n\t\tif ( totalSum == 0.0 ) {\n\n\t\t\tcolor = vec3( 0.0 );\n\t\t\treturn 1.0;\n\n\t\t}\n\n\t\tvec2 uv = equirectDirectionToUv( direction );\n\t\tcolor = texture2D( envMapInfo.map, uv ).rgb;\n\n\t\tfloat lum = luminance( color );\n\t\tivec2 resolution = textureSize( envMapInfo.map, 0 );\n\t\tfloat pdf = lum / totalSum;\n\n\t\treturn float( resolution.x * resolution.y ) * pdf * equirectDirectionPdf( direction );\n\n\t}\n\n\t// samples a direction of the envmap with color and retrieves pdf\n\tfloat sampleEquirectProbability( vec2 r, inout vec3 color, inout vec3 direction ) {\n\n\t\t// sample env map cdf\n\t\tfloat v = texture2D( envMapInfo.marginalWeights, vec2( r.x, 0.0 ) ).x;\n\t\tfloat u = texture2D( envMapInfo.conditionalWeights, vec2( r.y, v ) ).x;\n\t\tvec2 uv = vec2( u, v );\n\n\t\tvec3 derivedDirection = equirectUvToDirection( uv );\n\t\tdirection = derivedDirection;\n\t\tcolor = texture2D( envMapInfo.map, uv ).rgb;\n\n\t\tfloat totalSum = envMapInfo.totalSum;\n\t\tfloat lum = luminance( color );\n\t\tivec2 resolution = textureSize( envMapInfo.map, 0 );\n\t\tfloat pdf = lum / totalSum;\n\n\t\treturn float( resolution.x * resolution.y ) * pdf * equirectDirectionPdf( direction );\n\n\t}\n`,Ml=`\n\n\tfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\n\t\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n\n\t}\n\n\tfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\n\t\t// based upon Frostbite 3 Moving to Physically-based Rendering\n\t\t// page 32, equation 26: E[window1]\n\t\t// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), EPSILON );\n\n\t\tif ( cutoffDistance > 0.0 ) {\n\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\n\t\t}\n\n\t\treturn distanceFalloff;\n\n\t}\n\n\tfloat getPhotometricAttenuation( sampler2DArray iesProfiles, int iesProfile, vec3 posToLight, vec3 lightDir, vec3 u, vec3 v ) {\n\n\t\tfloat cosTheta = dot( posToLight, lightDir );\n\t\tfloat angle = acos( cosTheta ) / PI;\n\n\t\treturn texture2D( iesProfiles, vec3( angle, 0.0, iesProfile ) ).r;\n\n\t}\n\n\tstruct LightRecord {\n\n\t\tfloat dist;\n\t\tvec3 direction;\n\t\tfloat pdf;\n\t\tvec3 emission;\n\t\tint type;\n\n\t};\n\n\tbool intersectLightAtIndex( sampler2D lights, vec3 rayOrigin, vec3 rayDirection, uint l, inout LightRecord lightRec ) {\n\n\t\tbool didHit = false;\n\t\tLight light = readLightInfo( lights, l );\n\n\t\tvec3 u = light.u;\n\t\tvec3 v = light.v;\n\n\t\t// check for backface\n\t\tvec3 normal = normalize( cross( u, v ) );\n\t\tif ( dot( normal, rayDirection ) > 0.0 ) {\n\n\t\t\tu *= 1.0 / dot( u, u );\n\t\t\tv *= 1.0 / dot( v, v );\n\n\t\t\tfloat dist;\n\n\t\t\t// MIS / light intersection is not supported for punctual lights.\n\t\t\tif(\n\t\t\t\t( light.type == RECT_AREA_LIGHT_TYPE && intersectsRectangle( light.position, normal, u, v, rayOrigin, rayDirection, dist ) ) ||\n\t\t\t\t( light.type == CIRC_AREA_LIGHT_TYPE && intersectsCircle( light.position, normal, u, v, rayOrigin, rayDirection, dist ) )\n\t\t\t) {\n\n\t\t\t\tfloat cosTheta = dot( rayDirection, normal );\n\t\t\t\tdidHit = true;\n\t\t\t\tlightRec.dist = dist;\n\t\t\t\tlightRec.pdf = ( dist * dist ) / ( light.area * cosTheta );\n\t\t\t\tlightRec.emission = light.color * light.intensity;\n\t\t\t\tlightRec.direction = rayDirection;\n\t\t\t\tlightRec.type = light.type;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn didHit;\n\n\t}\n\n\tLightRecord randomAreaLightSample( Light light, vec3 rayOrigin, vec2 ruv ) {\n\n\t\tvec3 randomPos;\n\t\tif( light.type == RECT_AREA_LIGHT_TYPE ) {\n\n\t\t\t// rectangular area light\n\t\t\trandomPos = light.position + light.u * ( ruv.x - 0.5 ) + light.v * ( ruv.y - 0.5 );\n\n\t\t} else if( light.type == CIRC_AREA_LIGHT_TYPE ) {\n\n\t\t\t// circular area light\n\t\t\tfloat r = 0.5 * sqrt( ruv.x );\n\t\t\tfloat theta = ruv.y * 2.0 * PI;\n\t\t\tfloat x = r * cos( theta );\n\t\t\tfloat y = r * sin( theta );\n\n\t\t\trandomPos = light.position + light.u * x + light.v * y;\n\n\t\t}\n\n\t\tvec3 toLight = randomPos - rayOrigin;\n\t\tfloat lightDistSq = dot( toLight, toLight );\n\t\tfloat dist = sqrt( lightDistSq );\n\t\tvec3 direction = toLight / dist;\n\t\tvec3 lightNormal = normalize( cross( light.u, light.v ) );\n\n\t\tLightRecord lightRec;\n\t\tlightRec.type = light.type;\n\t\tlightRec.emission = light.color * light.intensity;\n\t\tlightRec.dist = dist;\n\t\tlightRec.direction = direction;\n\n\t\t// TODO: the denominator is potentially zero\n\t\tlightRec.pdf = lightDistSq / ( light.area * dot( direction, lightNormal ) );\n\n\t\treturn lightRec;\n\n\t}\n\n\tLightRecord randomSpotLightSample( Light light, sampler2DArray iesProfiles, vec3 rayOrigin, vec2 ruv ) {\n\n\t\tfloat radius = light.radius * sqrt( ruv.x );\n\t\tfloat theta = ruv.y * 2.0 * PI;\n\t\tfloat x = radius * cos( theta );\n\t\tfloat y = radius * sin( theta );\n\n\t\tvec3 u = light.u;\n\t\tvec3 v = light.v;\n\t\tvec3 normal = normalize( cross( u, v ) );\n\n\t\tfloat angle = acos( light.coneCos );\n\t\tfloat angleTan = tan( angle );\n\t\tfloat startDistance = light.radius / max( angleTan, EPSILON );\n\n\t\tvec3 randomPos = light.position - normal * startDistance + u * x + v * y;\n\t\tvec3 toLight = randomPos - rayOrigin;\n\t\tfloat lightDistSq = dot( toLight, toLight );\n\t\tfloat dist = sqrt( lightDistSq );\n\n\t\tvec3 direction = toLight / max( dist, EPSILON );\n\t\tfloat cosTheta = dot( direction, normal );\n\n\t\tfloat spotAttenuation = light.iesProfile != - 1 ?\n\t\t\tgetPhotometricAttenuation( iesProfiles, light.iesProfile, direction, normal, u, v ) :\n\t\t\tgetSpotAttenuation( light.coneCos, light.penumbraCos, cosTheta );\n\n\t\tfloat distanceAttenuation = getDistanceAttenuation( dist, light.distance, light.decay );\n\t\tLightRecord lightRec;\n\t\tlightRec.type = light.type;\n\t\tlightRec.dist = dist;\n\t\tlightRec.direction = direction;\n\t\tlightRec.emission = light.color * light.intensity * distanceAttenuation * spotAttenuation;\n\t\tlightRec.pdf = 1.0;\n\n\t\treturn lightRec;\n\n\t}\n\n\tLightRecord randomLightSample( sampler2D lights, sampler2DArray iesProfiles, uint lightCount, vec3 rayOrigin, vec3 ruv ) {\n\n\t\tLightRecord result;\n\n\t\t// pick a random light\n\t\tuint l = uint( ruv.x * float( lightCount ) );\n\t\tLight light = readLightInfo( lights, l );\n\n\t\tif ( light.type == SPOT_LIGHT_TYPE ) {\n\n\t\t\tresult = randomSpotLightSample( light, iesProfiles, rayOrigin, ruv.yz );\n\n\t\t} else if ( light.type == POINT_LIGHT_TYPE ) {\n\n\t\t\tvec3 lightRay = light.u - rayOrigin;\n\t\t\tfloat lightDist = length( lightRay );\n\t\t\tfloat cutoffDistance = light.distance;\n\t\t\tfloat distanceFalloff = 1.0 / max( pow( lightDist, light.decay ), 0.01 );\n\t\t\tif ( cutoffDistance > 0.0 ) {\n\n\t\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDist / cutoffDistance ) ) );\n\n\t\t\t}\n\n\t\t\tLightRecord rec;\n\t\t\trec.direction = normalize( lightRay );\n\t\t\trec.dist = length( lightRay );\n\t\t\trec.pdf = 1.0;\n\t\t\trec.emission = light.color * light.intensity * distanceFalloff;\n\t\t\trec.type = light.type;\n\t\t\tresult = rec;\n\n\t\t} else if ( light.type == DIR_LIGHT_TYPE ) {\n\n\t\t\tLightRecord rec;\n\t\t\trec.dist = 1e10;\n\t\t\trec.direction = light.u;\n\t\t\trec.pdf = 1.0;\n\t\t\trec.emission = light.color * light.intensity;\n\t\t\trec.type = light.type;\n\n\t\t\tresult = rec;\n\n\t\t} else {\n\n\t\t\t// sample the light\n\t\t\tresult = randomAreaLightSample( light, rayOrigin, ruv.yz );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n`,Al=`\n\n\tvec3 sampleHemisphere( vec3 n, vec2 uv ) {\n\n\t\t// https://www.rorydriscoll.com/2009/01/07/better-sampling/\n\t\t// https://graphics.pixar.com/library/OrthonormalB/paper.pdf\n\t\tfloat sign = n.z == 0.0 ? 1.0 : sign( n.z );\n\t\tfloat a = - 1.0 / ( sign + n.z );\n\t\tfloat b = n.x * n.y * a;\n\t\tvec3 b1 = vec3( 1.0 + sign * n.x * n.x * a, sign * b, - sign * n.x );\n\t\tvec3 b2 = vec3( b, sign + n.y * n.y * a, - n.y );\n\n\t\tfloat r = sqrt( uv.x );\n\t\tfloat theta = 2.0 * PI * uv.y;\n\t\tfloat x = r * cos( theta );\n\t\tfloat y = r * sin( theta );\n\t\treturn x * b1 + y * b2 + sqrt( 1.0 - uv.x ) * n;\n\n\t}\n\n\tvec2 sampleTriangle( vec2 a, vec2 b, vec2 c, vec2 r ) {\n\n\t\t// get the edges of the triangle and the diagonal across the\n\t\t// center of the parallelogram\n\t\tvec2 e1 = a - b;\n\t\tvec2 e2 = c - b;\n\t\tvec2 diag = normalize( e1 + e2 );\n\n\t\t// pick the point in the parallelogram\n\t\tif ( r.x + r.y > 1.0 ) {\n\n\t\t\tr = vec2( 1.0 ) - r;\n\n\t\t}\n\n\t\treturn e1 * r.x + e2 * r.y;\n\n\t}\n\n\tvec2 sampleCircle( vec2 uv ) {\n\n\t\tfloat angle = 2.0 * PI * uv.x;\n\t\tfloat radius = sqrt( uv.y );\n\t\treturn vec2( cos( angle ), sin( angle ) ) * radius;\n\n\t}\n\n\tvec3 sampleSphere( vec2 uv ) {\n\n\t\tfloat u = ( uv.x - 0.5 ) * 2.0;\n\t\tfloat t = uv.y * PI * 2.0;\n\t\tfloat f = sqrt( 1.0 - u * u );\n\n\t\treturn vec3( f * cos( t ), f * sin( t ), u );\n\n\t}\n\n\tvec2 sampleRegularPolygon( int sides, vec3 uvw ) {\n\n\t\tsides = max( sides, 3 );\n\n\t\tvec3 r = uvw;\n\t\tfloat anglePerSegment = 2.0 * PI / float( sides );\n\t\tfloat segment = floor( float( sides ) * r.x );\n\n\t\tfloat angle1 = anglePerSegment * segment;\n\t\tfloat angle2 = angle1 + anglePerSegment;\n\t\tvec2 a = vec2( sin( angle1 ), cos( angle1 ) );\n\t\tvec2 b = vec2( 0.0, 0.0 );\n\t\tvec2 c = vec2( sin( angle2 ), cos( angle2 ) );\n\n\t\treturn sampleTriangle( a, b, c, r.yz );\n\n\t}\n\n\t// samples an aperture shape with the given number of sides. 0 means circle\n\tvec2 sampleAperture( int blades, vec3 uvw ) {\n\n\t\treturn blades == 0 ?\n\t\t\tsampleCircle( uvw.xy ) :\n\t\t\tsampleRegularPolygon( blades, uvw );\n\n\t}\n\n\n`,Il=`\n\n\tbool totalInternalReflection( float cosTheta, float eta ) {\n\n\t\tfloat sinTheta = sqrt( 1.0 - cosTheta * cosTheta );\n\t\treturn eta * sinTheta > 1.0;\n\n\t}\n\n\t// https://google.github.io/filament/Filament.md.html#materialsystem/diffusebrdf\n\tfloat schlickFresnel( float cosine, float f0 ) {\n\n\t\treturn f0 + ( 1.0 - f0 ) * pow( 1.0 - cosine, 5.0 );\n\n\t}\n\n\tvec3 schlickFresnel( float cosine, vec3 f0 ) {\n\n\t\treturn f0 + ( 1.0 - f0 ) * pow( 1.0 - cosine, 5.0 );\n\n\t}\n\n\tvec3 schlickFresnel( float cosine, vec3 f0, vec3 f90 ) {\n\n\t\treturn f0 + ( f90 - f0 ) * pow( 1.0 - cosine, 5.0 );\n\n\t}\n\n\tfloat dielectricFresnel( float cosThetaI, float eta ) {\n\n\t\t// https://schuttejoe.github.io/post/disneybsdf/\n\t\tfloat ni = eta;\n\t\tfloat nt = 1.0;\n\n\t\t// Check for total internal reflection\n\t\tfloat sinThetaISq = 1.0f - cosThetaI * cosThetaI;\n\t\tfloat sinThetaTSq = eta * eta * sinThetaISq;\n\t\tif( sinThetaTSq >= 1.0 ) {\n\n\t\t\treturn 1.0;\n\n\t\t}\n\n\t\tfloat sinThetaT = sqrt( sinThetaTSq );\n\n\t\tfloat cosThetaT = sqrt( max( 0.0, 1.0f - sinThetaT * sinThetaT ) );\n\t\tfloat rParallel = ( ( nt * cosThetaI ) - ( ni * cosThetaT ) ) / ( ( nt * cosThetaI ) + ( ni * cosThetaT ) );\n\t\tfloat rPerpendicular = ( ( ni * cosThetaI ) - ( nt * cosThetaT ) ) / ( ( ni * cosThetaI ) + ( nt * cosThetaT ) );\n\t\treturn ( rParallel * rParallel + rPerpendicular * rPerpendicular ) / 2.0;\n\n\t}\n\n\t// https://raytracing.github.io/books/RayTracingInOneWeekend.html#dielectrics/schlickapproximation\n\tfloat iorRatioToF0( float eta ) {\n\n\t\treturn pow( ( 1.0 - eta ) / ( 1.0 + eta ), 2.0 );\n\n\t}\n\n\tvec3 evaluateFresnel( float cosTheta, float eta, vec3 f0, vec3 f90 ) {\n\n\t\tif ( totalInternalReflection( cosTheta, eta ) ) {\n\n\t\t\treturn f90;\n\n\t\t}\n\n\t\treturn schlickFresnel( cosTheta, f0, f90 );\n\n\t}\n\n\t// TODO: disney fresnel was removed and replaced with this fresnel function to better align with\n\t// the glTF but is causing blown out pixels. Should be revisited\n\t// float evaluateFresnelWeight( float cosTheta, float eta, float f0 ) {\n\n\t// \tif ( totalInternalReflection( cosTheta, eta ) ) {\n\n\t// \t\treturn 1.0;\n\n\t// \t}\n\n\t// \treturn schlickFresnel( cosTheta, f0 );\n\n\t// }\n\n\t// https://schuttejoe.github.io/post/disneybsdf/\n\tfloat disneyFresnel( vec3 wo, vec3 wi, vec3 wh, float f0, float eta, float metalness ) {\n\n\t\tfloat dotHV = dot( wo, wh );\n\t\tif ( totalInternalReflection( dotHV, eta ) ) {\n\n\t\t\treturn 1.0;\n\n\t\t}\n\n\t\tfloat dotHL = dot( wi, wh );\n\t\tfloat dielectricFresnel = dielectricFresnel( abs( dotHV ), eta );\n\t\tfloat metallicFresnel = schlickFresnel( dotHL, f0 );\n\n\t\treturn mix( dielectricFresnel, metallicFresnel, metalness );\n\n\t}\n\n`,Cl=`\n\n\t// Fast arccos approximation used to remove banding artifacts caused by numerical errors in acos.\n\t// This is a cubic Lagrange interpolating polynomial for x = [-1, -1/2, 0, 1/2, 1].\n\t// For more information see: https://github.com/gkjohnson/three-gpu-pathtracer/pull/171#issuecomment-1152275248\n\tfloat acosApprox( float x ) {\n\n\t\tx = clamp( x, -1.0, 1.0 );\n\t\treturn ( - 0.69813170079773212 * x * x - 0.87266462599716477 ) * x + 1.5707963267948966;\n\n\t}\n\n\t// An acos with input values bound to the range [-1, 1].\n\tfloat acosSafe( float x ) {\n\n\t\treturn acos( clamp( x, -1.0, 1.0 ) );\n\n\t}\n\n\tfloat saturateCos( float val ) {\n\n\t\treturn clamp( val, 0.001, 1.0 );\n\n\t}\n\n\tfloat square( float t ) {\n\n\t\treturn t * t;\n\n\t}\n\n\tvec2 square( vec2 t ) {\n\n\t\treturn t * t;\n\n\t}\n\n\tvec3 square( vec3 t ) {\n\n\t\treturn t * t;\n\n\t}\n\n\tvec4 square( vec4 t ) {\n\n\t\treturn t * t;\n\n\t}\n\n\tvec2 rotateVector( vec2 v, float t ) {\n\n\t\tfloat ac = cos( t );\n\t\tfloat as = sin( t );\n\t\treturn vec2(\n\t\t\tv.x * ac - v.y * as,\n\t\t\tv.x * as + v.y * ac\n\t\t);\n\n\t}\n\n\t// forms a basis with the normal vector as Z\n\tmat3 getBasisFromNormal( vec3 normal ) {\n\n\t\tvec3 other;\n\t\tif ( abs( normal.x ) > 0.5 ) {\n\n\t\t\tother = vec3( 0.0, 1.0, 0.0 );\n\n\t\t} else {\n\n\t\t\tother = vec3( 1.0, 0.0, 0.0 );\n\n\t\t}\n\n\t\tvec3 ortho = normalize( cross( normal, other ) );\n\t\tvec3 ortho2 = normalize( cross( normal, ortho ) );\n\t\treturn mat3( ortho2, ortho, normal );\n\n\t}\n\n`,Pl=`\n\n\t// Finds the point where the ray intersects the plane defined by u and v and checks if this point\n\t// falls in the bounds of the rectangle on that same plane.\n\t// Plane intersection: https://lousodrome.net/blog/light/2020/07/03/intersection-of-a-ray-and-a-plane/\n\tbool intersectsRectangle( vec3 center, vec3 normal, vec3 u, vec3 v, vec3 rayOrigin, vec3 rayDirection, inout float dist ) {\n\n\t\tfloat t = dot( center - rayOrigin, normal ) / dot( rayDirection, normal );\n\n\t\tif ( t > EPSILON ) {\n\n\t\t\tvec3 p = rayOrigin + rayDirection * t;\n\t\t\tvec3 vi = p - center;\n\n\t\t\t// check if p falls inside the rectangle\n\t\t\tfloat a1 = dot( u, vi );\n\t\t\tif ( abs( a1 ) <= 0.5 ) {\n\n\t\t\t\tfloat a2 = dot( v, vi );\n\t\t\t\tif ( abs( a2 ) <= 0.5 ) {\n\n\t\t\t\t\tdist = t;\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t// Finds the point where the ray intersects the plane defined by u and v and checks if this point\n\t// falls in the bounds of the circle on that same plane. See above URL for a description of the plane intersection algorithm.\n\tbool intersectsCircle( vec3 position, vec3 normal, vec3 u, vec3 v, vec3 rayOrigin, vec3 rayDirection, inout float dist ) {\n\n\t\tfloat t = dot( position - rayOrigin, normal ) / dot( rayDirection, normal );\n\n\t\tif ( t > EPSILON ) {\n\n\t\t\tvec3 hit = rayOrigin + rayDirection * t;\n\t\t\tvec3 vi = hit - position;\n\n\t\t\tfloat a1 = dot( u, vi );\n\t\t\tfloat a2 = dot( v, vi );\n\n\t\t\tif( length( vec2( a1, a2 ) ) <= 0.5 ) {\n\n\t\t\t\tdist = t;\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n`,Dl=`\n\n\t// add texel fetch functions for texture arrays\n\tvec4 texelFetch1D( sampler2DArray tex, int layer, uint index ) {\n\n\t\tuint width = uint( textureSize( tex, 0 ).x );\n\t\tuvec2 uv;\n\t\tuv.x = index % width;\n\t\tuv.y = index / width;\n\n\t\treturn texelFetch( tex, ivec3( uv, layer ), 0 );\n\n\t}\n\n\tvec4 textureSampleBarycoord( sampler2DArray tex, int layer, vec3 barycoord, uvec3 faceIndices ) {\n\n\t\treturn\n\t\t\tbarycoord.x * texelFetch1D( tex, layer, faceIndices.x ) +\n\t\t\tbarycoord.y * texelFetch1D( tex, layer, faceIndices.y ) +\n\t\t\tbarycoord.z * texelFetch1D( tex, layer, faceIndices.z );\n\n\t}\n\n`,us=`\n\n\t// TODO: possibly this should be renamed something related to material or path tracing logic\n\n\t#ifndef RAY_OFFSET\n\t#define RAY_OFFSET 1e-4\n\t#endif\n\n\t// adjust the hit point by the surface normal by a factor of some offset and the\n\t// maximum component-wise value of the current point to accommodate floating point\n\t// error as values increase.\n\tvec3 stepRayOrigin( vec3 rayOrigin, vec3 rayDirection, vec3 offset, float dist ) {\n\n\t\tvec3 point = rayOrigin + rayDirection * dist;\n\t\tvec3 absPoint = abs( point );\n\t\tfloat maxPoint = max( absPoint.x, max( absPoint.y, absPoint.z ) );\n\t\treturn point + offset * ( maxPoint + 1.0 ) * RAY_OFFSET;\n\n\t}\n\n\t// https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_volume/README.md#attenuation\n\tvec3 transmissionAttenuation( float dist, vec3 attColor, float attDist ) {\n\n\t\tvec3 ot = - log( attColor ) / attDist;\n\t\treturn exp( - ot * dist );\n\n\t}\n\n\tvec3 getHalfVector( vec3 wi, vec3 wo, float eta ) {\n\n\t\t// get the half vector - assuming if the light incident vector is on the other side\n\t\t// of the that it's transmissive.\n\t\tvec3 h;\n\t\tif ( wi.z > 0.0 ) {\n\n\t\t\th = normalize( wi + wo );\n\n\t\t} else {\n\n\t\t\t// Scale by the ior ratio to retrieve the appropriate half vector\n\t\t\t// From Section 2.2 on computing the transmission half vector:\n\t\t\t// https://blog.selfshadow.com/publications/s2015-shading-course/burley/s2015_pbs_disney_bsdf_notes.pdf\n\t\t\th = normalize( wi + wo * eta );\n\n\t\t}\n\n\t\th *= sign( h.z );\n\t\treturn h;\n\n\t}\n\n\tvec3 getHalfVector( vec3 a, vec3 b ) {\n\n\t\treturn normalize( a + b );\n\n\t}\n\n\t// The discrepancy between interpolated surface normal and geometry normal can cause issues when a ray\n\t// is cast that is on the top side of the geometry normal plane but below the surface normal plane. If\n\t// we find a ray like that we ignore it to avoid artifacts.\n\t// This function returns if the direction is on the same side of both planes.\n\tbool isDirectionValid( vec3 direction, vec3 surfaceNormal, vec3 geometryNormal ) {\n\n\t\tbool aboveSurfaceNormal = dot( direction, surfaceNormal ) > 0.0;\n\t\tbool aboveGeometryNormal = dot( direction, geometryNormal ) > 0.0;\n\t\treturn aboveSurfaceNormal == aboveGeometryNormal;\n\n\t}\n\n\t// ray sampling x and z are swapped to align with expected background view\n\tvec2 equirectDirectionToUv( vec3 direction ) {\n\n\t\t// from Spherical.setFromCartesianCoords\n\t\tvec2 uv = vec2( atan( direction.z, direction.x ), acos( direction.y ) );\n\t\tuv /= vec2( 2.0 * PI, PI );\n\n\t\t// apply adjustments to get values in range [0, 1] and y right side up\n\t\tuv.x += 0.5;\n\t\tuv.y = 1.0 - uv.y;\n\t\treturn uv;\n\n\t}\n\n\tvec3 equirectUvToDirection( vec2 uv ) {\n\n\t\t// undo above adjustments\n\t\tuv.x -= 0.5;\n\t\tuv.y = 1.0 - uv.y;\n\n\t\t// from Vector3.setFromSphericalCoords\n\t\tfloat theta = uv.x * 2.0 * PI;\n\t\tfloat phi = uv.y * PI;\n\n\t\tfloat sinPhi = sin( phi );\n\n\t\treturn vec3( sinPhi * cos( theta ), cos( phi ), sinPhi * sin( theta ) );\n\n\t}\n\n\t// power heuristic for multiple importance sampling\n\tfloat misHeuristic( float a, float b ) {\n\n\t\tfloat aa = a * a;\n\t\tfloat bb = b * b;\n\t\treturn aa / ( aa + bb );\n\n\t}\n\n\t// tentFilter from Peter Shirley's 'Realistic Ray Tracing (2nd Edition)' book, pg. 60\n\t// erichlof/THREE.js-PathTracing-Renderer/\n\tfloat tentFilter( float x ) {\n\n\t\treturn x < 0.5 ? sqrt( 2.0 * x ) - 1.0 : 1.0 - sqrt( 2.0 - ( 2.0 * x ) );\n\n\t}\n`,hs=`\n\n\t// https://www.shadertoy.com/view/wltcRS\n\tuvec4 WHITE_NOISE_SEED;\n\n\tvoid rng_initialize( vec2 p, int frame ) {\n\n\t\t// white noise seed\n\t\tWHITE_NOISE_SEED = uvec4( p, uint( frame ), uint( p.x ) + uint( p.y ) );\n\n\t}\n\n\t// https://www.pcg-random.org/\n\tvoid pcg4d( inout uvec4 v ) {\n\n\t\tv = v * 1664525u + 1013904223u;\n\t\tv.x += v.y * v.w;\n\t\tv.y += v.z * v.x;\n\t\tv.z += v.x * v.y;\n\t\tv.w += v.y * v.z;\n\t\tv = v ^ ( v >> 16u );\n\t\tv.x += v.y*v.w;\n\t\tv.y += v.z*v.x;\n\t\tv.z += v.x*v.y;\n\t\tv.w += v.y*v.z;\n\n\t}\n\n\t// returns [ 0, 1 ]\n\tfloat pcgRand() {\n\n\t\tpcg4d( WHITE_NOISE_SEED );\n\t\treturn float( WHITE_NOISE_SEED.x ) / float( 0xffffffffu );\n\n\t}\n\n\tvec2 pcgRand2() {\n\n\t\tpcg4d( WHITE_NOISE_SEED );\n\t\treturn vec2( WHITE_NOISE_SEED.xy ) / float(0xffffffffu);\n\n\t}\n\n\tvec3 pcgRand3() {\n\n\t\tpcg4d( WHITE_NOISE_SEED );\n\t\treturn vec3( WHITE_NOISE_SEED.xyz ) / float( 0xffffffffu );\n\n\t}\n\n\tvec4 pcgRand4() {\n\n\t\tpcg4d( WHITE_NOISE_SEED );\n\t\treturn vec4( WHITE_NOISE_SEED ) / float( 0xffffffffu );\n\n\t}\n`,Fl=`\n\n\tuniform sampler2D stratifiedTexture;\n\tuniform sampler2D stratifiedOffsetTexture;\n\n\tuint sobolPixelIndex = 0u;\n\tuint sobolPathIndex = 0u;\n\tuint sobolBounceIndex = 0u;\n\tvec4 pixelSeed = vec4( 0 );\n\n\tvec4 rand4( int v ) {\n\n\t\tivec2 uv = ivec2( v, sobolBounceIndex );\n\t\tvec4 stratifiedSample = texelFetch( stratifiedTexture, uv, 0 );\n\t\treturn fract( stratifiedSample + pixelSeed.r ); // blue noise + stratified samples\n\n\t}\n\n\tvec3 rand3( int v ) {\n\n\t\treturn rand4( v ).xyz;\n\n\t}\n\n\tvec2 rand2( int v ) {\n\n\t\treturn rand4( v ).xy;\n\n\t}\n\n\tfloat rand( int v ) {\n\n\t\treturn rand4( v ).x;\n\n\t}\n\n\tvoid rng_initialize( vec2 screenCoord, int frame ) {\n\n\t\t// tile the small noise texture across the entire screen\n\t\tivec2 noiseSize = ivec2( textureSize( stratifiedOffsetTexture, 0 ) );\n\t\tivec2 pixel = ivec2( screenCoord.xy ) % noiseSize;\n\t\tvec2 pixelWidth = 1.0 / vec2( noiseSize );\n\t\tvec2 uv = vec2( pixel ) * pixelWidth + pixelWidth * 0.5;\n\n\t\t// note that using \"texelFetch\" here seems to break Android for some reason\n\t\tpixelSeed = texture( stratifiedOffsetTexture, uv );\n\n\t}\n\n`,Rl=`\n\n\t// diffuse\n\tfloat diffuseEval( vec3 wo, vec3 wi, vec3 wh, SurfaceRecord surf, inout vec3 color ) {\n\n\t\t// https://schuttejoe.github.io/post/disneybsdf/\n\t\tfloat fl = schlickFresnel( wi.z, 0.0 );\n\t\tfloat fv = schlickFresnel( wo.z, 0.0 );\n\n\t\tfloat metalFactor = ( 1.0 - surf.metalness );\n\t\tfloat transFactor = ( 1.0 - surf.transmission );\n\t\tfloat rr = 0.5 + 2.0 * surf.roughness * fl * fl;\n\t\tfloat retro = rr * ( fl + fv + fl * fv * ( rr - 1.0f ) );\n\t\tfloat lambert = ( 1.0f - 0.5f * fl ) * ( 1.0f - 0.5f * fv );\n\n\t\t// TODO: subsurface approx?\n\n\t\t// float F = evaluateFresnelWeight( dot( wo, wh ), surf.eta, surf.f0 );\n\t\tfloat F = disneyFresnel( wo, wi, wh, surf.f0, surf.eta, surf.metalness );\n\t\tcolor = ( 1.0 - F ) * transFactor * metalFactor * wi.z * surf.color * ( retro + lambert ) / PI;\n\n\t\treturn wi.z / PI;\n\n\t}\n\n\tvec3 diffuseDirection( vec3 wo, SurfaceRecord surf ) {\n\n\t\tvec3 lightDirection = sampleSphere( rand2( 11 ) );\n\t\tlightDirection.z += 1.0;\n\t\tlightDirection = normalize( lightDirection );\n\n\t\treturn lightDirection;\n\n\t}\n\n\t// specular\n\tfloat specularEval( vec3 wo, vec3 wi, vec3 wh, SurfaceRecord surf, inout vec3 color ) {\n\n\t\t// if roughness is set to 0 then D === NaN which results in black pixels\n\t\tfloat metalness = surf.metalness;\n\t\tfloat roughness = surf.filteredRoughness;\n\n\t\tfloat eta = surf.eta;\n\t\tfloat f0 = surf.f0;\n\n\t\tvec3 f0Color = mix( f0 * surf.specularColor * surf.specularIntensity, surf.color, surf.metalness );\n\t\tvec3 f90Color = vec3( mix( surf.specularIntensity, 1.0, surf.metalness ) );\n\t\tvec3 F = evaluateFresnel( dot( wo, wh ), eta, f0Color, f90Color );\n\n\t\tvec3 iridescenceF = evalIridescence( 1.0, surf.iridescenceIor, dot( wi, wh ), surf.iridescenceThickness, f0Color );\n\t\tF = mix( F, iridescenceF,  surf.iridescence );\n\n\t\t// PDF\n\t\t// See 14.1.1 Microfacet BxDFs in https://www.pbr-book.org/\n\t\tfloat incidentTheta = acos( wo.z );\n\t\tfloat G = ggxShadowMaskG2( wi, wo, roughness );\n\t\tfloat D = ggxDistribution( wh, roughness );\n\t\tfloat G1 = ggxShadowMaskG1( incidentTheta, roughness );\n\t\tfloat ggxPdf = D * G1 * max( 0.0, abs( dot( wo, wh ) ) ) / abs ( wo.z );\n\n\t\tcolor = wi.z * F * G * D / ( 4.0 * abs( wi.z * wo.z ) );\n\t\treturn ggxPdf / ( 4.0 * dot( wo, wh ) );\n\n\t}\n\n\tvec3 specularDirection( vec3 wo, SurfaceRecord surf ) {\n\n\t\t// sample ggx vndf distribution which gives a new normal\n\t\tfloat roughness = surf.filteredRoughness;\n\t\tvec3 halfVector = ggxDirection(\n\t\t\two,\n\t\t\tvec2( roughness ),\n\t\t\trand2( 12 )\n\t\t);\n\n\t\t// apply to new ray by reflecting off the new normal\n\t\treturn - reflect( wo, halfVector );\n\n\t}\n\n\n\t// transmission\n\t/*\n\tfloat transmissionEval( vec3 wo, vec3 wi, vec3 wh, SurfaceRecord surf, inout vec3 color ) {\n\n\t\t// See section 4.2 in https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf\n\n\t\tfloat filteredRoughness = surf.filteredRoughness;\n\t\tfloat eta = surf.eta;\n\t\tbool frontFace = surf.frontFace;\n\t\tbool thinFilm = surf.thinFilm;\n\n\t\tcolor = surf.transmission * surf.color;\n\n\t\tfloat denom = pow( eta * dot( wi, wh ) + dot( wo, wh ), 2.0 );\n\t\treturn ggxPDF( wo, wh, filteredRoughness ) / denom;\n\n\t}\n\n\tvec3 transmissionDirection( vec3 wo, SurfaceRecord surf ) {\n\n\t\tfloat filteredRoughness = surf.filteredRoughness;\n\t\tfloat eta = surf.eta;\n\t\tbool frontFace = surf.frontFace;\n\n\t\t// sample ggx vndf distribution which gives a new normal\n\t\tvec3 halfVector = ggxDirection(\n\t\t\two,\n\t\t\tvec2( filteredRoughness ),\n\t\t\trand2( 13 )\n\t\t);\n\n\t\tvec3 lightDirection = refract( normalize( - wo ), halfVector, eta );\n\t\tif ( surf.thinFilm ) {\n\n\t\t\tlightDirection = - refract( normalize( - lightDirection ), - vec3( 0.0, 0.0, 1.0 ), 1.0 / eta );\n\n\t\t}\n\n\t\treturn normalize( lightDirection );\n\n\t}\n\t*/\n\n\t// TODO: This is just using a basic cosine-weighted specular distribution with an\n\t// incorrect PDF value at the moment. Update it to correctly use a GGX distribution\n\tfloat transmissionEval( vec3 wo, vec3 wi, vec3 wh, SurfaceRecord surf, inout vec3 color ) {\n\n\t\tcolor = surf.transmission * surf.color;\n\n\t\t// PDF\n\t\t// float F = evaluateFresnelWeight( dot( wo, wh ), surf.eta, surf.f0 );\n\t\t// float F = disneyFresnel( wo, wi, wh, surf.f0, surf.eta, surf.metalness );\n\t\t// if ( F >= 1.0 ) {\n\n\t\t// \treturn 0.0;\n\n\t\t// }\n\n\t\t// return 1.0 / ( 1.0 - F );\n\n\t\t// reverted to previous to transmission. The above was causing black pixels\n\t\tfloat eta = surf.eta;\n\t\tfloat f0 = surf.f0;\n\t\tfloat cosTheta = min( wo.z, 1.0 );\n\t\tfloat sinTheta = sqrt( 1.0 - cosTheta * cosTheta );\n\t\tfloat reflectance = schlickFresnel( cosTheta, f0 );\n\t\tbool cannotRefract = eta * sinTheta > 1.0;\n\t\tif ( cannotRefract ) {\n\n\t\t\treturn 0.0;\n\n\t\t}\n\n\t\treturn 1.0 / ( 1.0 - reflectance );\n\n\t}\n\n\tvec3 transmissionDirection( vec3 wo, SurfaceRecord surf ) {\n\n\t\tfloat roughness = surf.filteredRoughness;\n\t\tfloat eta = surf.eta;\n\t\tvec3 halfVector = normalize( vec3( 0.0, 0.0, 1.0 ) + sampleSphere( rand2( 13 ) ) * roughness );\n\t\tvec3 lightDirection = refract( normalize( - wo ), halfVector, eta );\n\n\t\tif ( surf.thinFilm ) {\n\n\t\t\tlightDirection = - refract( normalize( - lightDirection ), - vec3( 0.0, 0.0, 1.0 ), 1.0 / eta );\n\n\t\t}\n\t\treturn normalize( lightDirection );\n\n\t}\n\n\t// clearcoat\n\tfloat clearcoatEval( vec3 wo, vec3 wi, vec3 wh, SurfaceRecord surf, inout vec3 color ) {\n\n\t\tfloat ior = 1.5;\n\t\tfloat f0 = iorRatioToF0( ior );\n\t\tbool frontFace = surf.frontFace;\n\t\tfloat roughness = surf.filteredClearcoatRoughness;\n\n\t\tfloat eta = frontFace ? 1.0 / ior : ior;\n\t\tfloat G = ggxShadowMaskG2( wi, wo, roughness );\n\t\tfloat D = ggxDistribution( wh, roughness );\n\t\tfloat F = schlickFresnel( dot( wi, wh ), f0 );\n\n\t\tfloat fClearcoat = F * D * G / ( 4.0 * abs( wi.z * wo.z ) );\n\t\tcolor = color * ( 1.0 - surf.clearcoat * F ) + fClearcoat * surf.clearcoat * wi.z;\n\n\t\t// PDF\n\t\t// See equation (27) in http://jcgt.org/published/0003/02/03/\n\t\treturn ggxPDF( wo, wh, roughness ) / ( 4.0 * dot( wi, wh ) );\n\n\t}\n\n\tvec3 clearcoatDirection( vec3 wo, SurfaceRecord surf ) {\n\n\t\t// sample ggx vndf distribution which gives a new normal\n\t\tfloat roughness = surf.filteredClearcoatRoughness;\n\t\tvec3 halfVector = ggxDirection(\n\t\t\two,\n\t\t\tvec2( roughness ),\n\t\t\trand2( 14 )\n\t\t);\n\n\t\t// apply to new ray by reflecting off the new normal\n\t\treturn - reflect( wo, halfVector );\n\n\t}\n\n\t// sheen\n\tvec3 sheenColor( vec3 wo, vec3 wi, vec3 wh, SurfaceRecord surf ) {\n\n\t\tfloat cosThetaO = saturateCos( wo.z );\n\t\tfloat cosThetaI = saturateCos( wi.z );\n\t\tfloat cosThetaH = wh.z;\n\n\t\tfloat D = velvetD( cosThetaH, surf.sheenRoughness );\n\t\tfloat G = velvetG( cosThetaO, cosThetaI, surf.sheenRoughness );\n\n\t\t// See equation (1) in http://www.aconty.com/pdf/s2017_pbs_imageworks_sheen.pdf\n\t\tvec3 color = surf.sheenColor;\n\t\tcolor *= D * G / ( 4.0 * abs( cosThetaO * cosThetaI ) );\n\t\tcolor *= wi.z;\n\n\t\treturn color;\n\n\t}\n\n\t// bsdf\n\tvoid getLobeWeights(\n\t\tvec3 wo, vec3 wi, vec3 wh, vec3 clearcoatWo, SurfaceRecord surf,\n\t\tinout float diffuseWeight, inout float specularWeight, inout float transmissionWeight, inout float clearcoatWeight\n\t) {\n\n\t\tfloat metalness = surf.metalness;\n\t\tfloat transmission = surf.transmission;\n\t\t// float fEstimate = evaluateFresnelWeight( dot( wo, wh ), surf.eta, surf.f0 );\n\t\tfloat fEstimate = disneyFresnel( wo, wi, wh, surf.f0, surf.eta, surf.metalness );\n\n\t\tfloat transSpecularProb = mix( max( 0.25, fEstimate ), 1.0, metalness );\n\t\tfloat diffSpecularProb = 0.5 + 0.5 * metalness;\n\n\t\tdiffuseWeight = ( 1.0 - transmission ) * ( 1.0 - diffSpecularProb );\n\t\tspecularWeight = transmission * transSpecularProb + ( 1.0 - transmission ) * diffSpecularProb;\n\t\ttransmissionWeight = transmission * ( 1.0 - transSpecularProb );\n\t\tclearcoatWeight = surf.clearcoat * schlickFresnel( clearcoatWo.z, 0.04 );\n\n\t\tfloat totalWeight = diffuseWeight + specularWeight + transmissionWeight + clearcoatWeight;\n\t\tdiffuseWeight /= totalWeight;\n\t\tspecularWeight /= totalWeight;\n\t\ttransmissionWeight /= totalWeight;\n\t\tclearcoatWeight /= totalWeight;\n\t}\n\n\tfloat bsdfEval(\n\t\tvec3 wo, vec3 clearcoatWo, vec3 wi, vec3 clearcoatWi, SurfaceRecord surf,\n\t\tfloat diffuseWeight, float specularWeight, float transmissionWeight, float clearcoatWeight, inout float specularPdf, inout vec3 color\n\t) {\n\n\t\tfloat metalness = surf.metalness;\n\t\tfloat transmission = surf.transmission;\n\n\t\tfloat spdf = 0.0;\n\t\tfloat dpdf = 0.0;\n\t\tfloat tpdf = 0.0;\n\t\tfloat cpdf = 0.0;\n\t\tcolor = vec3( 0.0 );\n\n\t\tvec3 halfVector = getHalfVector( wi, wo, surf.eta );\n\n\t\t// diffuse\n\t\tif ( diffuseWeight > 0.0 && wi.z > 0.0 ) {\n\n\t\t\tdpdf = diffuseEval( wo, wi, halfVector, surf, color );\n\t\t\tcolor *= 1.0 - surf.transmission;\n\n\t\t}\n\n\t\t// ggx specular\n\t\tif ( specularWeight > 0.0 && wi.z > 0.0 ) {\n\n\t\t\tvec3 outColor;\n\t\t\tspdf = specularEval( wo, wi, getHalfVector( wi, wo ), surf, outColor );\n\t\t\tcolor += outColor;\n\n\t\t}\n\n\t\t// transmission\n\t\tif ( transmissionWeight > 0.0 && wi.z < 0.0 ) {\n\n\t\t\ttpdf = transmissionEval( wo, wi, halfVector, surf, color );\n\n\t\t}\n\n\t\t// sheen\n\t\tcolor *= mix( 1.0, sheenAlbedoScaling( wo, wi, surf ), surf.sheen );\n\t\tcolor += sheenColor( wo, wi, halfVector, surf ) * surf.sheen;\n\n\t\t// clearcoat\n\t\tif ( clearcoatWi.z >= 0.0 && clearcoatWeight > 0.0 ) {\n\n\t\t\tvec3 clearcoatHalfVector = getHalfVector( clearcoatWo, clearcoatWi );\n\t\t\tcpdf = clearcoatEval( clearcoatWo, clearcoatWi, clearcoatHalfVector, surf, color );\n\n\t\t}\n\n\t\tfloat pdf =\n\t\t\tdpdf * diffuseWeight\n\t\t\t+ spdf * specularWeight\n\t\t\t+ tpdf * transmissionWeight\n\t\t\t+ cpdf * clearcoatWeight;\n\n\t\t// retrieve specular rays for the shadows flag\n\t\tspecularPdf = spdf * specularWeight + cpdf * clearcoatWeight;\n\n\t\treturn pdf;\n\n\t}\n\n\tfloat bsdfResult( vec3 worldWo, vec3 worldWi, SurfaceRecord surf, inout vec3 color ) {\n\n\t\tif ( surf.volumeParticle ) {\n\n\t\t\tcolor = surf.color / ( 4.0 * PI );\n\t\t\treturn 1.0 / ( 4.0 * PI );\n\n\t\t}\n\n\t\tvec3 wo = normalize( surf.normalInvBasis * worldWo );\n\t\tvec3 wi = normalize( surf.normalInvBasis * worldWi );\n\n\t\tvec3 clearcoatWo = normalize( surf.clearcoatInvBasis * worldWo );\n\t\tvec3 clearcoatWi = normalize( surf.clearcoatInvBasis * worldWi );\n\n\t\tvec3 wh = getHalfVector( wo, wi, surf.eta );\n\t\tfloat diffuseWeight;\n\t\tfloat specularWeight;\n\t\tfloat transmissionWeight;\n\t\tfloat clearcoatWeight;\n\t\tgetLobeWeights( wo, wi, wh, clearcoatWo, surf, diffuseWeight, specularWeight, transmissionWeight, clearcoatWeight );\n\n\t\tfloat specularPdf;\n\t\treturn bsdfEval( wo, clearcoatWo, wi, clearcoatWi, surf, diffuseWeight, specularWeight, transmissionWeight, clearcoatWeight, specularPdf, color );\n\n\t}\n\n\tScatterRecord bsdfSample( vec3 worldWo, SurfaceRecord surf ) {\n\n\t\tif ( surf.volumeParticle ) {\n\n\t\t\tScatterRecord sampleRec;\n\t\t\tsampleRec.specularPdf = 0.0;\n\t\t\tsampleRec.pdf = 1.0 / ( 4.0 * PI );\n\t\t\tsampleRec.direction = sampleSphere( rand2( 16 ) );\n\t\t\tsampleRec.color = surf.color / ( 4.0 * PI );\n\t\t\treturn sampleRec;\n\n\t\t}\n\n\t\tvec3 wo = normalize( surf.normalInvBasis * worldWo );\n\t\tvec3 clearcoatWo = normalize( surf.clearcoatInvBasis * worldWo );\n\t\tmat3 normalBasis = surf.normalBasis;\n\t\tmat3 invBasis = surf.normalInvBasis;\n\t\tmat3 clearcoatNormalBasis = surf.clearcoatBasis;\n\t\tmat3 clearcoatInvBasis = surf.clearcoatInvBasis;\n\n\t\tfloat diffuseWeight;\n\t\tfloat specularWeight;\n\t\tfloat transmissionWeight;\n\t\tfloat clearcoatWeight;\n\t\t// using normal and basically-reflected ray since we don't have proper half vector here\n\t\tgetLobeWeights( wo, wo, vec3( 0, 0, 1 ), clearcoatWo, surf, diffuseWeight, specularWeight, transmissionWeight, clearcoatWeight );\n\n\t\tfloat pdf[4];\n\t\tpdf[0] = diffuseWeight;\n\t\tpdf[1] = specularWeight;\n\t\tpdf[2] = transmissionWeight;\n\t\tpdf[3] = clearcoatWeight;\n\n\t\tfloat cdf[4];\n\t\tcdf[0] = pdf[0];\n\t\tcdf[1] = pdf[1] + cdf[0];\n\t\tcdf[2] = pdf[2] + cdf[1];\n\t\tcdf[3] = pdf[3] + cdf[2];\n\n\t\tif( cdf[3] != 0.0 ) {\n\n\t\t\tfloat invMaxCdf = 1.0 / cdf[3];\n\t\t\tcdf[0] *= invMaxCdf;\n\t\t\tcdf[1] *= invMaxCdf;\n\t\t\tcdf[2] *= invMaxCdf;\n\t\t\tcdf[3] *= invMaxCdf;\n\n\t\t} else {\n\n\t\t\tcdf[0] = 1.0;\n\t\t\tcdf[1] = 0.0;\n\t\t\tcdf[2] = 0.0;\n\t\t\tcdf[3] = 0.0;\n\n\t\t}\n\n\t\tvec3 wi;\n\t\tvec3 clearcoatWi;\n\n\t\tfloat r = rand( 15 );\n\t\tif ( r <= cdf[0] ) { // diffuse\n\n\t\t\twi = diffuseDirection( wo, surf );\n\t\t\tclearcoatWi = normalize( clearcoatInvBasis * normalize( normalBasis * wi ) );\n\n\t\t} else if ( r <= cdf[1] ) { // specular\n\n\t\t\twi = specularDirection( wo, surf );\n\t\t\tclearcoatWi = normalize( clearcoatInvBasis * normalize( normalBasis * wi ) );\n\n\t\t} else if ( r <= cdf[2] ) { // transmission / refraction\n\n\t\t\twi = transmissionDirection( wo, surf );\n\t\t\tclearcoatWi = normalize( clearcoatInvBasis * normalize( normalBasis * wi ) );\n\n\t\t} else if ( r <= cdf[3] ) { // clearcoat\n\n\t\t\tclearcoatWi = clearcoatDirection( clearcoatWo, surf );\n\t\t\twi = normalize( invBasis * normalize( clearcoatNormalBasis * clearcoatWi ) );\n\n\t\t}\n\n\t\tScatterRecord result;\n\t\tresult.pdf = bsdfEval( wo, clearcoatWo, wi, clearcoatWi, surf, diffuseWeight, specularWeight, transmissionWeight, clearcoatWeight, result.specularPdf, result.color );\n\t\tresult.direction = normalize( surf.normalBasis * wi );\n\n\t\treturn result;\n\n\t}\n\n`,Ol=`\n\n\t// returns the hit distance given the material density\n\tfloat intersectFogVolume( Material material, float u ) {\n\n\t\t// https://raytracing.github.io/books/RayTracingTheNextWeek.html#volumes/constantdensitymediums\n\t\treturn material.opacity == 0.0 ? INFINITY : ( - 1.0 / material.opacity ) * log( u );\n\n\t}\n\n\tScatterRecord sampleFogVolume( SurfaceRecord surf, vec2 uv ) {\n\n\t\tScatterRecord sampleRec;\n\t\tsampleRec.specularPdf = 0.0;\n\t\tsampleRec.pdf = 1.0 / ( 2.0 * PI );\n\t\tsampleRec.direction = sampleSphere( uv );\n\t\tsampleRec.color = surf.color;\n\t\treturn sampleRec;\n\n\t}\n\n`,Ll=`\n\n\t// The GGX functions provide sampling and distribution information for normals as output so\n\t// in order to get probability of scatter direction the half vector must be computed and provided.\n\t// [0] https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf\n\t// [1] https://hal.archives-ouvertes.fr/hal-01509746/document\n\t// [2] http://jcgt.org/published/0007/04/01/\n\t// [4] http://jcgt.org/published/0003/02/03/\n\n\t// trowbridge-reitz === GGX === GTR\n\n\tvec3 ggxDirection( vec3 incidentDir, vec2 roughness, vec2 uv ) {\n\n\t\t// TODO: try GGXVNDF implementation from reference [2], here. Needs to update ggxDistribution\n\t\t// function below, as well\n\n\t\t// Implementation from reference [1]\n\t\t// stretch view\n\t\tvec3 V = normalize( vec3( roughness * incidentDir.xy, incidentDir.z ) );\n\n\t\t// orthonormal basis\n\t\tvec3 T1 = ( V.z < 0.9999 ) ? normalize( cross( V, vec3( 0.0, 0.0, 1.0 ) ) ) : vec3( 1.0, 0.0, 0.0 );\n\t\tvec3 T2 = cross( T1, V );\n\n\t\t// sample point with polar coordinates (r, phi)\n\t\tfloat a = 1.0 / ( 1.0 + V.z );\n\t\tfloat r = sqrt( uv.x );\n\t\tfloat phi = ( uv.y < a ) ? uv.y / a * PI : PI + ( uv.y - a ) / ( 1.0 - a ) * PI;\n\t\tfloat P1 = r * cos( phi );\n\t\tfloat P2 = r * sin( phi ) * ( ( uv.y < a ) ? 1.0 : V.z );\n\n\t\t// compute normal\n\t\tvec3 N = P1 * T1 + P2 * T2 + V * sqrt( max( 0.0, 1.0 - P1 * P1 - P2 * P2 ) );\n\n\t\t// unstretch\n\t\tN = normalize( vec3( roughness * N.xy, max( 0.0, N.z ) ) );\n\n\t\treturn N;\n\n\t}\n\n\t// Below are PDF and related functions for use in a Monte Carlo path tracer\n\t// as specified in Appendix B of the following paper\n\t// See equation (34) from reference [0]\n\tfloat ggxLamda( float theta, float roughness ) {\n\n\t\tfloat tanTheta = tan( theta );\n\t\tfloat tanTheta2 = tanTheta * tanTheta;\n\t\tfloat alpha2 = roughness * roughness;\n\n\t\tfloat numerator = - 1.0 + sqrt( 1.0 + alpha2 * tanTheta2 );\n\t\treturn numerator / 2.0;\n\n\t}\n\n\t// See equation (34) from reference [0]\n\tfloat ggxShadowMaskG1( float theta, float roughness ) {\n\n\t\treturn 1.0 / ( 1.0 + ggxLamda( theta, roughness ) );\n\n\t}\n\n\t// See equation (125) from reference [4]\n\tfloat ggxShadowMaskG2( vec3 wi, vec3 wo, float roughness ) {\n\n\t\tfloat incidentTheta = acos( wi.z );\n\t\tfloat scatterTheta = acos( wo.z );\n\t\treturn 1.0 / ( 1.0 + ggxLamda( incidentTheta, roughness ) + ggxLamda( scatterTheta, roughness ) );\n\n\t}\n\n\t// See equation (33) from reference [0]\n\tfloat ggxDistribution( vec3 halfVector, float roughness ) {\n\n\t\tfloat a2 = roughness * roughness;\n\t\ta2 = max( EPSILON, a2 );\n\t\tfloat cosTheta = halfVector.z;\n\t\tfloat cosTheta4 = pow( cosTheta, 4.0 );\n\n\t\tif ( cosTheta == 0.0 ) return 0.0;\n\n\t\tfloat theta = acosSafe( halfVector.z );\n\t\tfloat tanTheta = tan( theta );\n\t\tfloat tanTheta2 = pow( tanTheta, 2.0 );\n\n\t\tfloat denom = PI * cosTheta4 * pow( a2 + tanTheta2, 2.0 );\n\t\treturn ( a2 / denom );\n\n\t}\n\n\t// See equation (3) from reference [2]\n\tfloat ggxPDF( vec3 wi, vec3 halfVector, float roughness ) {\n\n\t\tfloat incidentTheta = acos( wi.z );\n\t\tfloat D = ggxDistribution( halfVector, roughness );\n\t\tfloat G1 = ggxShadowMaskG1( incidentTheta, roughness );\n\n\t\treturn D * G1 * max( 0.0, dot( wi, halfVector ) ) / wi.z;\n\n\t}\n\n`,Nl=`\n\n\t// XYZ to sRGB color space\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t3.2404542, -0.9692660,  0.0556434,\n\t\t-1.5371385,  1.8760108, -0.2040259,\n\t\t-0.4985314,  0.0415560,  1.0572252\n\t);\n\n\tvec3 fresnel0ToIor( vec3 fresnel0 ) {\n\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\n\t}\n\n\t// Conversion FO/IOR\n\tvec3 iorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\n\t\treturn square( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\n\t}\n\n\t// ior is a value between 1.0 and 3.0. 1.0 is air interface\n\tfloat iorToFresnel0( float transmittedIor, float incidentIor ) {\n\n\t\treturn square( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ) );\n\n\t}\n\n\t// Fresnel equations for dielectric/dielectric interfaces. See https://belcour.github.io/blog/research/2017/05/01/brdf-thin-film.html\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - square( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * square( phase ) );\n\t\txyz /= 1.0685e-7;\n\n\t\tvec3 srgb = XYZ_TO_REC709 * xyz;\n\t\treturn srgb;\n\n\t}\n\n\t// See Section 4. Analytic Spectral Integration, A Practical Extension to Microfacet Theory for the Modeling of Varying Iridescence, https://hal.archives-ouvertes.fr/hal-01518344/document\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\n\t\tvec3 I;\n\n\t\t// Force iridescenceIor -> outsideIOR when thinFilmThickness -> 0.0\n\t\tfloat iridescenceIor = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\n\t\t// Evaluate the cosTheta on the base layer (Snell law)\n\t\tfloat sinTheta2Sq = square( outsideIOR / iridescenceIor ) * ( 1.0 - square( cosTheta1 ) );\n\n\t\t// Handle TIR:\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\n\t\t\treturn vec3( 1.0 );\n\n\t\t}\n\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\n\t\t// First interface\n\t\tfloat R0 = iorToFresnel0( iridescenceIor, outsideIOR );\n\t\tfloat R12 = schlickFresnel( cosTheta1, R0 );\n\t\tfloat R21 = R12;\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIor < outsideIOR ) {\n\n\t\t\tphi12 = PI;\n\n\t\t}\n\n\t\tfloat phi21 = PI - phi12;\n\n\t\t// Second interface\n\t\tvec3 baseIOR = fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); // guard against 1.0\n\t\tvec3 R1 = iorToFresnel0( baseIOR, iridescenceIor );\n\t\tvec3 R23 = schlickFresnel( cosTheta2, R1 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[0] < iridescenceIor ) {\n\n\t\t\tphi23[ 0 ] = PI;\n\n\t\t}\n\n\t\tif ( baseIOR[1] < iridescenceIor ) {\n\n\t\t\tphi23[ 1 ] = PI;\n\n\t\t}\n\n\t\tif ( baseIOR[2] < iridescenceIor ) {\n\n\t\t\tphi23[ 2 ] = PI;\n\n\t\t}\n\n\t\t// Phase shift\n\t\tfloat OPD = 2.0 * iridescenceIor * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\n\t\t// Compound terms\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = square( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\n\t\t// Reflectance term for m = 0 (DC term amplitude)\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\n\t\t// Reflectance term for m > 0 (pairs of diracs)\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\n\t\t}\n\n\t\t// Since out of gamut colors might be produced, negative color values are clamped to 0.\n\t\treturn max( I, vec3( 0.0 ) );\n\n\t}\n\n`,kl=`\n\n\t// See equation (2) in http://www.aconty.com/pdf/s2017_pbs_imageworks_sheen.pdf\n\tfloat velvetD( float cosThetaH, float roughness ) {\n\n\t\tfloat alpha = max( roughness, 0.07 );\n\t\talpha = alpha * alpha;\n\n\t\tfloat invAlpha = 1.0 / alpha;\n\n\t\tfloat sqrCosThetaH = cosThetaH * cosThetaH;\n\t\tfloat sinThetaH = max( 1.0 - sqrCosThetaH, 0.001 );\n\n\t\treturn ( 2.0 + invAlpha ) * pow( sinThetaH, 0.5 * invAlpha ) / ( 2.0 * PI );\n\n\t}\n\n\tfloat velvetParamsInterpolate( int i, float oneMinusAlphaSquared ) {\n\n\t\tconst float p0[5] = float[5]( 25.3245, 3.32435, 0.16801, -1.27393, -4.85967 );\n\t\tconst float p1[5] = float[5]( 21.5473, 3.82987, 0.19823, -1.97760, -4.32054 );\n\n\t\treturn mix( p1[i], p0[i], oneMinusAlphaSquared );\n\n\t}\n\n\tfloat velvetL( float x, float alpha ) {\n\n\t\tfloat oneMinusAlpha = 1.0 - alpha;\n\t\tfloat oneMinusAlphaSquared = oneMinusAlpha * oneMinusAlpha;\n\n\t\tfloat a = velvetParamsInterpolate( 0, oneMinusAlphaSquared );\n\t\tfloat b = velvetParamsInterpolate( 1, oneMinusAlphaSquared );\n\t\tfloat c = velvetParamsInterpolate( 2, oneMinusAlphaSquared );\n\t\tfloat d = velvetParamsInterpolate( 3, oneMinusAlphaSquared );\n\t\tfloat e = velvetParamsInterpolate( 4, oneMinusAlphaSquared );\n\n\t\treturn a / ( 1.0 + b * pow( abs( x ), c ) ) + d * x + e;\n\n\t}\n\n\t// See equation (3) in http://www.aconty.com/pdf/s2017_pbs_imageworks_sheen.pdf\n\tfloat velvetLambda( float cosTheta, float alpha ) {\n\n\t\treturn abs( cosTheta ) < 0.5 ? exp( velvetL( cosTheta, alpha ) ) : exp( 2.0 * velvetL( 0.5, alpha ) - velvetL( 1.0 - cosTheta, alpha ) );\n\n\t}\n\n\t// See Section 3, Shadowing Term, in http://www.aconty.com/pdf/s2017_pbs_imageworks_sheen.pdf\n\tfloat velvetG( float cosThetaO, float cosThetaI, float roughness ) {\n\n\t\tfloat alpha = max( roughness, 0.07 );\n\t\talpha = alpha * alpha;\n\n\t\treturn 1.0 / ( 1.0 + velvetLambda( cosThetaO, alpha ) + velvetLambda( cosThetaI, alpha ) );\n\n\t}\n\n\tfloat directionalAlbedoSheen( float cosTheta, float alpha ) {\n\n\t\tcosTheta = saturate( cosTheta );\n\n\t\tfloat c = 1.0 - cosTheta;\n\t\tfloat c3 = c * c * c;\n\n\t\treturn 0.65584461 * c3 + 1.0 / ( 4.16526551 + exp( -7.97291361 * sqrt( alpha ) + 6.33516894 ) );\n\n\t}\n\n\tfloat sheenAlbedoScaling( vec3 wo, vec3 wi, SurfaceRecord surf ) {\n\n\t\tfloat alpha = max( surf.sheenRoughness, 0.07 );\n\t\talpha = alpha * alpha;\n\n\t\tfloat maxSheenColor = max( max( surf.sheenColor.r, surf.sheenColor.g ), surf.sheenColor.b );\n\n\t\tfloat eWo = directionalAlbedoSheen( saturateCos( wo.z ), alpha );\n\t\tfloat eWi = directionalAlbedoSheen( saturateCos( wi.z ), alpha );\n\n\t\treturn min( 1.0 - maxSheenColor * eWo, 1.0 - maxSheenColor * eWi );\n\n\t}\n\n\t// See Section 5, Layering, in http://www.aconty.com/pdf/s2017_pbs_imageworks_sheen.pdf\n\tfloat sheenAlbedoScaling( vec3 wo, SurfaceRecord surf ) {\n\n\t\tfloat alpha = max( surf.sheenRoughness, 0.07 );\n\t\talpha = alpha * alpha;\n\n\t\tfloat maxSheenColor = max( max( surf.sheenColor.r, surf.sheenColor.g ), surf.sheenColor.b );\n\n\t\tfloat eWo = directionalAlbedoSheen( saturateCos( wo.z ), alpha );\n\n\t\treturn 1.0 - maxSheenColor * eWo;\n\n\t}\n\n`,zl=`\n\n#ifndef FOG_CHECK_ITERATIONS\n#define FOG_CHECK_ITERATIONS 30\n#endif\n\n// returns whether the given material is a fog material or not\nbool isMaterialFogVolume( sampler2D materials, uint materialIndex ) {\n\n\tuint i = materialIndex * 45u;\n\tvec4 s14 = texelFetch1D( materials, i + 14u );\n\treturn bool( int( s14.b ) & 4 );\n\n}\n\n// returns true if we're within the first fog volume we hit\nbool bvhIntersectFogVolumeHit(\n\tvec3 rayOrigin, vec3 rayDirection,\n\tusampler2D materialIndexAttribute, sampler2D materials,\n\tinout Material material\n) {\n\n\tmaterial.fogVolume = false;\n\n\tfor ( int i = 0; i < FOG_CHECK_ITERATIONS; i ++ ) {\n\n\t\t// find nearest hit\n\t\tuvec4 faceIndices = uvec4( 0u );\n\t\tvec3 faceNormal = vec3( 0.0, 0.0, 1.0 );\n\t\tvec3 barycoord = vec3( 0.0 );\n\t\tfloat side = 1.0;\n\t\tfloat dist = 0.0;\n\t\tbool hit = bvhIntersectFirstHit( bvh, rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist );\n\t\tif ( hit ) {\n\n\t\t\t// if it's a fog volume return whether we hit the front or back face\n\t\t\tuint materialIndex = uTexelFetch1D( materialIndexAttribute, faceIndices.x ).r;\n\t\t\tif ( isMaterialFogVolume( materials, materialIndex ) ) {\n\n\t\t\t\tmaterial = readMaterialInfo( materials, materialIndex );\n\t\t\t\treturn side == - 1.0;\n\n\t\t\t} else {\n\n\t\t\t\t// move the ray forward\n\t\t\t\trayOrigin = stepRayOrigin( rayOrigin, rayDirection, - faceNormal, dist );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn false;\n\n}\n\n`,Bl=`\n\n\t// step through multiple surface hits and accumulate color attenuation based on transmissive surfaces\n\t// returns true if a solid surface was hit\n\tbool attenuateHit(\n\t\tRenderState state,\n\t\tRay ray, float rayDist,\n\t\tout vec3 color\n\t) {\n\n\t\t// store the original bounce index so we can reset it after\n\t\tuint originalBounceIndex = sobolBounceIndex;\n\n\t\tint traversals = state.traversals;\n\t\tint transmissiveTraversals = state.transmissiveTraversals;\n\t\tbool isShadowRay = state.isShadowRay;\n\t\tMaterial fogMaterial = state.fogMaterial;\n\n\t\tvec3 startPoint = ray.origin;\n\n\t\t// hit results\n\t\tSurfaceHit surfaceHit;\n\n\t\tcolor = vec3( 1.0 );\n\n\t\tbool result = true;\n\t\tfor ( int i = 0; i < traversals; i ++ ) {\n\n\t\t\tsobolBounceIndex ++;\n\n\t\t\tint hitType = traceScene( ray, fogMaterial, surfaceHit );\n\n\t\t\tif ( hitType == FOG_HIT ) {\n\n\t\t\t\tresult = true;\n\t\t\t\tbreak;\n\n\t\t\t} else if ( hitType == SURFACE_HIT ) {\n\n\t\t\t\tfloat totalDist = distance( startPoint, ray.origin + ray.direction * surfaceHit.dist );\n\t\t\t\tif ( totalDist > rayDist ) {\n\n\t\t\t\t\tresult = false;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\t// TODO: attenuate the contribution based on the PDF of the resulting ray including refraction values\n\t\t\t\t// Should be able to work using the material BSDF functions which will take into account specularity, etc.\n\t\t\t\t// TODO: should we account for emissive surfaces here?\n\n\t\t\t\tuint materialIndex = uTexelFetch1D( materialIndexAttribute, surfaceHit.faceIndices.x ).r;\n\t\t\t\tMaterial material = readMaterialInfo( materials, materialIndex );\n\n\t\t\t\t// adjust the ray to the new surface\n\t\t\t\tbool isEntering = surfaceHit.side == 1.0;\n\t\t\t\tray.origin = stepRayOrigin( ray.origin, ray.direction, - surfaceHit.faceNormal, surfaceHit.dist );\n\n\t\t\t\t#if FEATURE_FOG\n\n\t\t\t\tif ( material.fogVolume ) {\n\n\t\t\t\t\tfogMaterial = material;\n\t\t\t\t\tfogMaterial.fogVolume = surfaceHit.side == 1.0;\n\t\t\t\t\ti -= sign( transmissiveTraversals );\n\t\t\t\t\ttransmissiveTraversals --;\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t\tif ( ! material.castShadow && isShadowRay ) {\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\tvec2 uv = textureSampleBarycoord( attributesArray, ATTR_UV, surfaceHit.barycoord, surfaceHit.faceIndices.xyz ).xy;\n\t\t\t\tvec4 vertexColor = textureSampleBarycoord( attributesArray, ATTR_COLOR, surfaceHit.barycoord, surfaceHit.faceIndices.xyz );\n\n\t\t\t\t// albedo\n\t\t\t\tvec4 albedo = vec4( material.color, material.opacity );\n\t\t\t\tif ( material.map != - 1 ) {\n\n\t\t\t\t\tvec3 uvPrime = material.mapTransform * vec3( uv, 1 );\n\t\t\t\t\talbedo *= texture2D( textures, vec3( uvPrime.xy, material.map ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( material.vertexColors ) {\n\n\t\t\t\t\talbedo *= vertexColor;\n\n\t\t\t\t}\n\n\t\t\t\t// alphaMap\n\t\t\t\tif ( material.alphaMap != - 1 ) {\n\n\t\t\t\t\talbedo.a *= texture2D( textures, vec3( uv, material.alphaMap ) ).x;\n\n\t\t\t\t}\n\n\t\t\t\t// transmission\n\t\t\t\tfloat transmission = material.transmission;\n\t\t\t\tif ( material.transmissionMap != - 1 ) {\n\n\t\t\t\t\tvec3 uvPrime = material.transmissionMapTransform * vec3( uv, 1 );\n\t\t\t\t\ttransmission *= texture2D( textures, vec3( uvPrime.xy, material.transmissionMap ) ).r;\n\n\t\t\t\t}\n\n\t\t\t\t// metalness\n\t\t\t\tfloat metalness = material.metalness;\n\t\t\t\tif ( material.metalnessMap != - 1 ) {\n\n\t\t\t\t\tvec3 uvPrime = material.metalnessMapTransform * vec3( uv, 1 );\n\t\t\t\t\tmetalness *= texture2D( textures, vec3( uvPrime.xy, material.metalnessMap ) ).b;\n\n\t\t\t\t}\n\n\t\t\t\tfloat alphaTest = material.alphaTest;\n\t\t\t\tbool useAlphaTest = alphaTest != 0.0;\n\t\t\t\tfloat transmissionFactor = ( 1.0 - metalness ) * transmission;\n\t\t\t\tif (\n\t\t\t\t\ttransmissionFactor < rand( 9 ) && ! (\n\t\t\t\t\t\t// material sidedness\n\t\t\t\t\t\tmaterial.side != 0.0 && surfaceHit.side == material.side\n\n\t\t\t\t\t\t// alpha test\n\t\t\t\t\t\t|| useAlphaTest && albedo.a < alphaTest\n\n\t\t\t\t\t\t// opacity\n\t\t\t\t\t\t|| material.transparent && ! useAlphaTest && albedo.a < rand( 10 )\n\t\t\t\t\t)\n\t\t\t\t) {\n\n\t\t\t\t\tresult = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tif ( surfaceHit.side == 1.0 && isEntering ) {\n\n\t\t\t\t\t// only attenuate by surface color on the way in\n\t\t\t\t\tcolor *= mix( vec3( 1.0 ), albedo.rgb, transmissionFactor );\n\n\t\t\t\t} else if ( surfaceHit.side == - 1.0 ) {\n\n\t\t\t\t\t// attenuate by medium once we hit the opposite side of the model\n\t\t\t\t\tcolor *= transmissionAttenuation( surfaceHit.dist, material.attenuationColor, material.attenuationDistance );\n\n\t\t\t\t}\n\n\t\t\t\tbool isTransmissiveRay = dot( ray.direction, surfaceHit.faceNormal * surfaceHit.side ) < 0.0;\n\t\t\t\tif ( ( isTransmissiveRay || isEntering ) && transmissiveTraversals > 0 ) {\n\n\t\t\t\t\ti -= sign( transmissiveTraversals );\n\t\t\t\t\ttransmissiveTraversals --;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tresult = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// reset the bounce index\n\t\tsobolBounceIndex = originalBounceIndex;\n\t\treturn result;\n\n\t}\n\n`,Ul=`\n\n\tvec3 ndcToRayOrigin( vec2 coord ) {\n\n\t\tvec4 rayOrigin4 = cameraWorldMatrix * invProjectionMatrix * vec4( coord, - 1.0, 1.0 );\n\t\treturn rayOrigin4.xyz / rayOrigin4.w;\n\t}\n\n\tRay getCameraRay() {\n\n\t\tvec2 ssd = vec2( 1.0 ) / resolution;\n\n\t\t// Jitter the camera ray by finding a uv coordinate at a random sample\n\t\t// around this pixel's UV coordinate for AA\n\t\tvec2 ruv = rand2( 0 );\n\t\tvec2 jitteredUv = vUv + vec2( tentFilter( ruv.x ) * ssd.x, tentFilter( ruv.y ) * ssd.y );\n\t\tRay ray;\n\n\t\t#if CAMERA_TYPE == 2\n\n\t\t\t// Equirectangular projection\n\t\t\tvec4 rayDirection4 = vec4( equirectUvToDirection( jitteredUv ), 0.0 );\n\t\t\tvec4 rayOrigin4 = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\trayDirection4 = cameraWorldMatrix * rayDirection4;\n\t\t\trayOrigin4 = cameraWorldMatrix * rayOrigin4;\n\n\t\t\tray.direction = normalize( rayDirection4.xyz );\n\t\t\tray.origin = rayOrigin4.xyz / rayOrigin4.w;\n\n\t\t#else\n\n\t\t\t// get [- 1, 1] normalized device coordinates\n\t\t\tvec2 ndc = 2.0 * jitteredUv - vec2( 1.0 );\n\t\t\tray.origin = ndcToRayOrigin( ndc );\n\n\t\t\t#if CAMERA_TYPE == 1\n\n\t\t\t\t// Orthographic projection\n\t\t\t\tray.direction = ( cameraWorldMatrix * vec4( 0.0, 0.0, - 1.0, 0.0 ) ).xyz;\n\t\t\t\tray.direction = normalize( ray.direction );\n\n\t\t\t#else\n\n\t\t\t\t// Perspective projection\n\t\t\t\tray.direction = normalize( mat3( cameraWorldMatrix ) * ( invProjectionMatrix * vec4( ndc, 0.0, 1.0 ) ).xyz );\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t\t#if FEATURE_DOF\n\t\t{\n\n\t\t\t// depth of field\n\t\t\tvec3 focalPoint = ray.origin + normalize( ray.direction ) * physicalCamera.focusDistance;\n\n\t\t\t// get the aperture sample\n\t\t\t// if blades === 0 then we assume a circle\n\t\t\tvec3 shapeUVW= rand3( 1 );\n\t\t\tint blades = physicalCamera.apertureBlades;\n\t\t\tfloat anamorphicRatio = physicalCamera.anamorphicRatio;\n\t\t\tvec2 apertureSample = blades == 0 ? sampleCircle( shapeUVW.xy ) : sampleRegularPolygon( blades, shapeUVW );\n\t\t\tapertureSample *= physicalCamera.bokehSize * 0.5 * 1e-3;\n\n\t\t\t// rotate the aperture shape\n\t\t\tapertureSample =\n\t\t\t\trotateVector( apertureSample, physicalCamera.apertureRotation ) *\n\t\t\t\tsaturate( vec2( anamorphicRatio, 1.0 / anamorphicRatio ) );\n\n\t\t\t// create the new ray\n\t\t\tray.origin += ( cameraWorldMatrix * vec4( apertureSample, 0.0, 0.0 ) ).xyz;\n\t\t\tray.direction = focalPoint - ray.origin;\n\n\t\t}\n\t\t#endif\n\n\t\tray.direction = normalize( ray.direction );\n\n\t\treturn ray;\n\n\t}\n\n`,El=`\n\n\tvec3 directLightContribution( vec3 worldWo, SurfaceRecord surf, RenderState state, vec3 rayOrigin ) {\n\n\t\tvec3 result = vec3( 0.0 );\n\n\t\t// uniformly pick a light or environment map\n\t\tif( lightsDenom != 0.0 && rand( 5 ) < float( lights.count ) / lightsDenom ) {\n\n\t\t\t// sample a light or environment\n\t\t\tLightRecord lightRec = randomLightSample( lights.tex, iesProfiles, lights.count, rayOrigin, rand3( 6 ) );\n\n\t\t\tbool isSampleBelowSurface = ! surf.volumeParticle && dot( surf.faceNormal, lightRec.direction ) < 0.0;\n\t\t\tif ( isSampleBelowSurface ) {\n\n\t\t\t\tlightRec.pdf = 0.0;\n\n\t\t\t}\n\n\t\t\t// check if a ray could even reach the light area\n\t\t\tRay lightRay;\n\t\t\tlightRay.origin = rayOrigin;\n\t\t\tlightRay.direction = lightRec.direction;\n\t\t\tvec3 attenuatedColor;\n\t\t\tif (\n\t\t\t\tlightRec.pdf > 0.0 &&\n\t\t\t\tisDirectionValid( lightRec.direction, surf.normal, surf.faceNormal ) &&\n\t\t\t\t! attenuateHit( state, lightRay, lightRec.dist, attenuatedColor )\n\t\t\t) {\n\n\t\t\t\t// get the material pdf\n\t\t\t\tvec3 sampleColor;\n\t\t\t\tfloat lightMaterialPdf = bsdfResult( worldWo, lightRec.direction, surf, sampleColor );\n\t\t\t\tbool isValidSampleColor = all( greaterThanEqual( sampleColor, vec3( 0.0 ) ) );\n\t\t\t\tif ( lightMaterialPdf > 0.0 && isValidSampleColor ) {\n\n\t\t\t\t\t// weight the direct light contribution\n\t\t\t\t\tfloat lightPdf = lightRec.pdf / lightsDenom;\n\t\t\t\t\tfloat misWeight = lightRec.type == SPOT_LIGHT_TYPE || lightRec.type == DIR_LIGHT_TYPE || lightRec.type == POINT_LIGHT_TYPE ? 1.0 : misHeuristic( lightPdf, lightMaterialPdf );\n\t\t\t\t\tresult = attenuatedColor * lightRec.emission * state.throughputColor * sampleColor * misWeight / lightPdf;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( envMapInfo.totalSum != 0.0 && environmentIntensity != 0.0 ) {\n\n\t\t\t// find a sample in the environment map to include in the contribution\n\t\t\tvec3 envColor, envDirection;\n\t\t\tfloat envPdf = sampleEquirectProbability( rand2( 7 ), envColor, envDirection );\n\t\t\tenvDirection = invEnvRotation3x3 * envDirection;\n\n\t\t\t// this env sampling is not set up for transmissive sampling and yields overly bright\n\t\t\t// results so we ignore the sample in this case.\n\t\t\t// TODO: this should be improved but how? The env samples could traverse a few layers?\n\t\t\tbool isSampleBelowSurface = ! surf.volumeParticle && dot( surf.faceNormal, envDirection ) < 0.0;\n\t\t\tif ( isSampleBelowSurface ) {\n\n\t\t\t\tenvPdf = 0.0;\n\n\t\t\t}\n\n\t\t\t// check if a ray could even reach the surface\n\t\t\tRay envRay;\n\t\t\tenvRay.origin = rayOrigin;\n\t\t\tenvRay.direction = envDirection;\n\t\t\tvec3 attenuatedColor;\n\t\t\tif (\n\t\t\t\tenvPdf > 0.0 &&\n\t\t\t\tisDirectionValid( envDirection, surf.normal, surf.faceNormal ) &&\n\t\t\t\t! attenuateHit( state, envRay, INFINITY, attenuatedColor )\n\t\t\t) {\n\n\t\t\t\t// get the material pdf\n\t\t\t\tvec3 sampleColor;\n\t\t\t\tfloat envMaterialPdf = bsdfResult( worldWo, envDirection, surf, sampleColor );\n\t\t\t\tbool isValidSampleColor = all( greaterThanEqual( sampleColor, vec3( 0.0 ) ) );\n\t\t\t\tif ( envMaterialPdf > 0.0 && isValidSampleColor ) {\n\n\t\t\t\t\t// weight the direct light contribution\n\t\t\t\t\tenvPdf /= lightsDenom;\n\t\t\t\t\tfloat misWeight = misHeuristic( envPdf, envMaterialPdf );\n\t\t\t\t\tresult = attenuatedColor * environmentIntensity * envColor * state.throughputColor * sampleColor * misWeight / envPdf;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Function changed to have a single return statement to potentially help with crashes on Mac OS.\n\t\t// See issue #470\n\t\treturn result;\n\n\t}\n\n`,Gl=`\n\n\t#define SKIP_SURFACE 0\n\t#define HIT_SURFACE 1\n\tint getSurfaceRecord(\n\t\tMaterial material, SurfaceHit surfaceHit, sampler2DArray attributesArray,\n\t\tfloat accumulatedRoughness,\n\t\tinout SurfaceRecord surf\n\t) {\n\n\t\tif ( material.fogVolume ) {\n\n\t\t\tvec3 normal = vec3( 0, 0, 1 );\n\n\t\t\tSurfaceRecord fogSurface;\n\t\t\tfogSurface.volumeParticle = true;\n\t\t\tfogSurface.color = material.color;\n\t\t\tfogSurface.emission = material.emissiveIntensity * material.emissive;\n\t\t\tfogSurface.normal = normal;\n\t\t\tfogSurface.faceNormal = normal;\n\t\t\tfogSurface.clearcoatNormal = normal;\n\n\t\t\tsurf = fogSurface;\n\t\t\treturn HIT_SURFACE;\n\n\t\t}\n\n\t\t// uv coord for textures\n\t\tvec2 uv = textureSampleBarycoord( attributesArray, ATTR_UV, surfaceHit.barycoord, surfaceHit.faceIndices.xyz ).xy;\n\t\tvec4 vertexColor = textureSampleBarycoord( attributesArray, ATTR_COLOR, surfaceHit.barycoord, surfaceHit.faceIndices.xyz );\n\n\t\t// albedo\n\t\tvec4 albedo = vec4( material.color, material.opacity );\n\t\tif ( material.map != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.mapTransform * vec3( uv, 1 );\n\t\t\talbedo *= texture2D( textures, vec3( uvPrime.xy, material.map ) );\n\n\t\t}\n\n\t\tif ( material.vertexColors ) {\n\n\t\t\talbedo *= vertexColor;\n\n\t\t}\n\n\t\t// alphaMap\n\t\tif ( material.alphaMap != - 1 ) {\n\n\t\t\talbedo.a *= texture2D( textures, vec3( uv, material.alphaMap ) ).x;\n\n\t\t}\n\n\t\t// possibly skip this sample if it's transparent, alpha test is enabled, or we hit the wrong material side\n\t\t// and it's single sided.\n\t\t// - alpha test is disabled when it === 0\n\t\t// - the material sidedness test is complicated because we want light to pass through the back side but still\n\t\t// be able to see the front side. This boolean checks if the side we hit is the front side on the first ray\n\t\t// and we're rendering the other then we skip it. Do the opposite on subsequent bounces to get incoming light.\n\t\tfloat alphaTest = material.alphaTest;\n\t\tbool useAlphaTest = alphaTest != 0.0;\n\t\tif (\n\t\t\t// material sidedness\n\t\t\tmaterial.side != 0.0 && surfaceHit.side != material.side\n\n\t\t\t// alpha test\n\t\t\t|| useAlphaTest && albedo.a < alphaTest\n\n\t\t\t// opacity\n\t\t\t|| material.transparent && ! useAlphaTest && albedo.a < rand( 3 )\n\t\t) {\n\n\t\t\treturn SKIP_SURFACE;\n\n\t\t}\n\n\t\t// fetch the interpolated smooth normal\n\t\tvec3 normal = normalize( textureSampleBarycoord(\n\t\t\tattributesArray,\n\t\t\tATTR_NORMAL,\n\t\t\tsurfaceHit.barycoord,\n\t\t\tsurfaceHit.faceIndices.xyz\n\t\t).xyz );\n\n\t\t// roughness\n\t\tfloat roughness = material.roughness;\n\t\tif ( material.roughnessMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.roughnessMapTransform * vec3( uv, 1 );\n\t\t\troughness *= texture2D( textures, vec3( uvPrime.xy, material.roughnessMap ) ).g;\n\n\t\t}\n\n\t\t// metalness\n\t\tfloat metalness = material.metalness;\n\t\tif ( material.metalnessMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.metalnessMapTransform * vec3( uv, 1 );\n\t\t\tmetalness *= texture2D( textures, vec3( uvPrime.xy, material.metalnessMap ) ).b;\n\n\t\t}\n\n\t\t// emission\n\t\tvec3 emission = material.emissiveIntensity * material.emissive;\n\t\tif ( material.emissiveMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.emissiveMapTransform * vec3( uv, 1 );\n\t\t\temission *= texture2D( textures, vec3( uvPrime.xy, material.emissiveMap ) ).xyz;\n\n\t\t}\n\n\t\t// transmission\n\t\tfloat transmission = material.transmission;\n\t\tif ( material.transmissionMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.transmissionMapTransform * vec3( uv, 1 );\n\t\t\ttransmission *= texture2D( textures, vec3( uvPrime.xy, material.transmissionMap ) ).r;\n\n\t\t}\n\n\t\t// normal\n\t\tif ( material.flatShading ) {\n\n\t\t\t// if we're rendering a flat shaded object then use the face normals - the face normal\n\t\t\t// is provided based on the side the ray hits the mesh so flip it to align with the\n\t\t\t// interpolated vertex normals.\n\t\t\tnormal = surfaceHit.faceNormal * surfaceHit.side;\n\n\t\t}\n\n\t\tvec3 baseNormal = normal;\n\t\tif ( material.normalMap != - 1 ) {\n\n\t\t\tvec4 tangentSample = textureSampleBarycoord(\n\t\t\t\tattributesArray,\n\t\t\t\tATTR_TANGENT,\n\t\t\t\tsurfaceHit.barycoord,\n\t\t\t\tsurfaceHit.faceIndices.xyz\n\t\t\t);\n\n\t\t\t// some provided tangents can be malformed (0, 0, 0) causing the normal to be degenerate\n\t\t\t// resulting in NaNs and slow path tracing.\n\t\t\tif ( length( tangentSample.xyz ) > 0.0 ) {\n\n\t\t\t\tvec3 tangent = normalize( tangentSample.xyz );\n\t\t\t\tvec3 bitangent = normalize( cross( normal, tangent ) * tangentSample.w );\n\t\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\n\t\t\t\tvec3 uvPrime = material.normalMapTransform * vec3( uv, 1 );\n\t\t\t\tvec3 texNormal = texture2D( textures, vec3( uvPrime.xy, material.normalMap ) ).xyz * 2.0 - 1.0;\n\t\t\t\ttexNormal.xy *= material.normalScale;\n\t\t\t\tnormal = vTBN * texNormal;\n\n\t\t\t}\n\n\t\t}\n\n\t\tnormal *= surfaceHit.side;\n\n\t\t// clearcoat\n\t\tfloat clearcoat = material.clearcoat;\n\t\tif ( material.clearcoatMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.clearcoatMapTransform * vec3( uv, 1 );\n\t\t\tclearcoat *= texture2D( textures, vec3( uvPrime.xy, material.clearcoatMap ) ).r;\n\n\t\t}\n\n\t\t// clearcoatRoughness\n\t\tfloat clearcoatRoughness = material.clearcoatRoughness;\n\t\tif ( material.clearcoatRoughnessMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.clearcoatRoughnessMapTransform * vec3( uv, 1 );\n\t\t\tclearcoatRoughness *= texture2D( textures, vec3( uvPrime.xy, material.clearcoatRoughnessMap ) ).g;\n\n\t\t}\n\n\t\t// clearcoatNormal\n\t\tvec3 clearcoatNormal = baseNormal;\n\t\tif ( material.clearcoatNormalMap != - 1 ) {\n\n\t\t\tvec4 tangentSample = textureSampleBarycoord(\n\t\t\t\tattributesArray,\n\t\t\t\tATTR_TANGENT,\n\t\t\t\tsurfaceHit.barycoord,\n\t\t\t\tsurfaceHit.faceIndices.xyz\n\t\t\t);\n\n\t\t\t// some provided tangents can be malformed (0, 0, 0) causing the normal to be degenerate\n\t\t\t// resulting in NaNs and slow path tracing.\n\t\t\tif ( length( tangentSample.xyz ) > 0.0 ) {\n\n\t\t\t\tvec3 tangent = normalize( tangentSample.xyz );\n\t\t\t\tvec3 bitangent = normalize( cross( clearcoatNormal, tangent ) * tangentSample.w );\n\t\t\t\tmat3 vTBN = mat3( tangent, bitangent, clearcoatNormal );\n\n\t\t\t\tvec3 uvPrime = material.clearcoatNormalMapTransform * vec3( uv, 1 );\n\t\t\t\tvec3 texNormal = texture2D( textures, vec3( uvPrime.xy, material.clearcoatNormalMap ) ).xyz * 2.0 - 1.0;\n\t\t\t\ttexNormal.xy *= material.clearcoatNormalScale;\n\t\t\t\tclearcoatNormal = vTBN * texNormal;\n\n\t\t\t}\n\n\t\t}\n\n\t\tclearcoatNormal *= surfaceHit.side;\n\n\t\t// sheenColor\n\t\tvec3 sheenColor = material.sheenColor;\n\t\tif ( material.sheenColorMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.sheenColorMapTransform * vec3( uv, 1 );\n\t\t\tsheenColor *= texture2D( textures, vec3( uvPrime.xy, material.sheenColorMap ) ).rgb;\n\n\t\t}\n\n\t\t// sheenRoughness\n\t\tfloat sheenRoughness = material.sheenRoughness;\n\t\tif ( material.sheenRoughnessMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.sheenRoughnessMapTransform * vec3( uv, 1 );\n\t\t\tsheenRoughness *= texture2D( textures, vec3( uvPrime.xy, material.sheenRoughnessMap ) ).a;\n\n\t\t}\n\n\t\t// iridescence\n\t\tfloat iridescence = material.iridescence;\n\t\tif ( material.iridescenceMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.iridescenceMapTransform * vec3( uv, 1 );\n\t\t\tiridescence *= texture2D( textures, vec3( uvPrime.xy, material.iridescenceMap ) ).r;\n\n\t\t}\n\n\t\t// iridescence thickness\n\t\tfloat iridescenceThickness = material.iridescenceThicknessMaximum;\n\t\tif ( material.iridescenceThicknessMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.iridescenceThicknessMapTransform * vec3( uv, 1 );\n\t\t\tfloat iridescenceThicknessSampled = texture2D( textures, vec3( uvPrime.xy, material.iridescenceThicknessMap ) ).g;\n\t\t\tiridescenceThickness = mix( material.iridescenceThicknessMinimum, material.iridescenceThicknessMaximum, iridescenceThicknessSampled );\n\n\t\t}\n\n\t\tiridescence = iridescenceThickness == 0.0 ? 0.0 : iridescence;\n\n\t\t// specular color\n\t\tvec3 specularColor = material.specularColor;\n\t\tif ( material.specularColorMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.specularColorMapTransform * vec3( uv, 1 );\n\t\t\tspecularColor *= texture2D( textures, vec3( uvPrime.xy, material.specularColorMap ) ).rgb;\n\n\t\t}\n\n\t\t// specular intensity\n\t\tfloat specularIntensity = material.specularIntensity;\n\t\tif ( material.specularIntensityMap != - 1 ) {\n\n\t\t\tvec3 uvPrime = material.specularIntensityMapTransform * vec3( uv, 1 );\n\t\t\tspecularIntensity *= texture2D( textures, vec3( uvPrime.xy, material.specularIntensityMap ) ).a;\n\n\t\t}\n\n\t\tsurf.volumeParticle = false;\n\n\t\tsurf.faceNormal = surfaceHit.faceNormal;\n\t\tsurf.normal = normal;\n\n\t\tsurf.metalness = metalness;\n\t\tsurf.color = albedo.rgb;\n\t\tsurf.emission = emission;\n\n\t\tsurf.ior = material.ior;\n\t\tsurf.transmission = transmission;\n\t\tsurf.thinFilm = material.thinFilm;\n\t\tsurf.attenuationColor = material.attenuationColor;\n\t\tsurf.attenuationDistance = material.attenuationDistance;\n\n\t\tsurf.clearcoatNormal = clearcoatNormal;\n\t\tsurf.clearcoat = clearcoat;\n\n\t\tsurf.sheen = material.sheen;\n\t\tsurf.sheenColor = sheenColor;\n\n\t\tsurf.iridescence = iridescence;\n\t\tsurf.iridescenceIor = material.iridescenceIor;\n\t\tsurf.iridescenceThickness = iridescenceThickness;\n\n\t\tsurf.specularColor = specularColor;\n\t\tsurf.specularIntensity = specularIntensity;\n\n\t\t// apply perceptual roughness factor from gltf. sheen perceptual roughness is\n\t\t// applied by its brdf function\n\t\t// https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#microfacet-surfaces\n\t\tsurf.roughness = roughness * roughness;\n\t\tsurf.clearcoatRoughness = clearcoatRoughness * clearcoatRoughness;\n\t\tsurf.sheenRoughness = sheenRoughness;\n\n\t\t// frontFace is used to determine transmissive properties and PDF. If no transmission is used\n\t\t// then we can just always assume this is a front face.\n\t\tsurf.frontFace = surfaceHit.side == 1.0 || transmission == 0.0;\n\t\tsurf.eta = material.thinFilm || surf.frontFace ? 1.0 / material.ior : material.ior;\n\t\tsurf.f0 = iorRatioToF0( surf.eta );\n\n\t\t// Compute the filtered roughness value to use during specular reflection computations.\n\t\t// The accumulated roughness value is scaled by a user setting and a \"magic value\" of 5.0.\n\t\t// If we're exiting something transmissive then scale the factor down significantly so we can retain\n\t\t// sharp internal reflections\n\t\tsurf.filteredRoughness = applyFilteredGlossy( surf.roughness, accumulatedRoughness );\n\t\tsurf.filteredClearcoatRoughness = applyFilteredGlossy( surf.clearcoatRoughness, accumulatedRoughness );\n\n\t\t// get the normal frames\n\t\tsurf.normalBasis = getBasisFromNormal( surf.normal );\n\t\tsurf.normalInvBasis = inverse( surf.normalBasis );\n\n\t\tsurf.clearcoatBasis = getBasisFromNormal( surf.clearcoatNormal );\n\t\tsurf.clearcoatInvBasis = inverse( surf.clearcoatBasis );\n\n\t\treturn HIT_SURFACE;\n\n\t}\n`,Vl=`\n\n\tstruct Ray {\n\n\t\tvec3 origin;\n\t\tvec3 direction;\n\n\t};\n\n\tstruct SurfaceHit {\n\n\t\tuvec4 faceIndices;\n\t\tvec3 barycoord;\n\t\tvec3 faceNormal;\n\t\tfloat side;\n\t\tfloat dist;\n\n\t};\n\n\tstruct RenderState {\n\n\t\tbool firstRay;\n\t\tbool transmissiveRay;\n\t\tbool isShadowRay;\n\t\tfloat accumulatedRoughness;\n\t\tint transmissiveTraversals;\n\t\tint traversals;\n\t\tuint depth;\n\t\tvec3 throughputColor;\n\t\tMaterial fogMaterial;\n\n\t};\n\n\tRenderState initRenderState() {\n\n\t\tRenderState result;\n\t\tresult.firstRay = true;\n\t\tresult.transmissiveRay = true;\n\t\tresult.isShadowRay = false;\n\t\tresult.accumulatedRoughness = 0.0;\n\t\tresult.transmissiveTraversals = 0;\n\t\tresult.traversals = 0;\n\t\tresult.throughputColor = vec3( 1.0 );\n\t\tresult.depth = 0u;\n\t\tresult.fogMaterial.fogVolume = false;\n\t\treturn result;\n\n\t}\n\n`,Wl=`\n\n\t#define NO_HIT 0\n\t#define SURFACE_HIT 1\n\t#define LIGHT_HIT 2\n\t#define FOG_HIT 3\n\n\t// Passing the global variable 'lights' into this function caused shader program errors.\n\t// So global variables like 'lights' and 'bvh' were moved out of the function parameters.\n\t// For more information, refer to: https://github.com/gkjohnson/three-gpu-pathtracer/pull/457\n\tint traceScene(\n\t\tRay ray, Material fogMaterial, inout SurfaceHit surfaceHit\n\t) {\n\n\t\tint result = NO_HIT;\n\t\tbool hit = bvhIntersectFirstHit( bvh, ray.origin, ray.direction, surfaceHit.faceIndices, surfaceHit.faceNormal, surfaceHit.barycoord, surfaceHit.side, surfaceHit.dist );\n\n\t\t#if FEATURE_FOG\n\n\t\tif ( fogMaterial.fogVolume ) {\n\n\t\t\t// offset the distance so we don't run into issues with particles on the same surface\n\t\t\t// as other objects\n\t\t\tfloat particleDist = intersectFogVolume( fogMaterial, rand( 1 ) );\n\t\t\tif ( particleDist + RAY_OFFSET < surfaceHit.dist ) {\n\n\t\t\t\tsurfaceHit.side = 1.0;\n\t\t\t\tsurfaceHit.faceNormal = normalize( - ray.direction );\n\t\t\t\tsurfaceHit.dist = particleDist;\n\t\t\t\treturn FOG_HIT;\n\n\t\t\t}\n\n\t\t}\n\n\t\t#endif\n\n\t\tif ( hit ) {\n\n\t\t\tresult = SURFACE_HIT;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n`;class jl extends Vr{onBeforeRender(){this.setDefine(\"FEATURE_DOF\",this.physicalCamera.bokehSize===0?0:1),this.setDefine(\"FEATURE_BACKGROUND_MAP\",this.backgroundMap?1:0),this.setDefine(\"FEATURE_FOG\",this.materials.features.isUsed(\"FOG\")?1:0)}constructor(e){super({transparent:!0,depthWrite:!1,defines:{FEATURE_MIS:1,FEATURE_RUSSIAN_ROULETTE:1,FEATURE_DOF:1,FEATURE_BACKGROUND_MAP:0,FEATURE_FOG:1,RANDOM_TYPE:2,CAMERA_TYPE:0,DEBUG_MODE:0,ATTR_NORMAL:0,ATTR_TANGENT:1,ATTR_UV:2,ATTR_COLOR:3},uniforms:{resolution:{value:new h.Vector2},opacity:{value:1},bounces:{value:10},transmissiveBounces:{value:10},filterGlossyFactor:{value:0},physicalCamera:{value:new Ec},cameraWorldMatrix:{value:new h.Matrix4},invProjectionMatrix:{value:new h.Matrix4},bvh:{value:new oc},attributesArray:{value:new Jc},materialIndexAttribute:{value:new Vi},materials:{value:new il},textures:{value:new cs().texture},lights:{value:new $c},iesProfiles:{value:new cs(360,180,{type:h.HalfFloatType,wrapS:h.ClampToEdgeWrapping,wrapT:h.ClampToEdgeWrapping}).texture},environmentIntensity:{value:1},environmentRotation:{value:new h.Matrix4},envMapInfo:{value:new Wc},backgroundBlur:{value:0},backgroundMap:{value:null},backgroundAlpha:{value:1},backgroundIntensity:{value:1},backgroundRotation:{value:new h.Matrix4},seed:{value:0},sobolTexture:{value:null},stratifiedTexture:{value:new fl},stratifiedOffsetTexture:{value:new yl(64,1)}},vertexShader:`\n\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec4 mvPosition = vec4( position, 1.0 );\n\t\t\t\t\tmvPosition = modelViewMatrix * mvPosition;\n\t\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t\t\tvUv = uv;\n\n\t\t\t\t}\n\n\t\t\t`,fragmentShader:`\n\t\t\t\t#define RAY_OFFSET 1e-4\n\t\t\t\t#define INFINITY 1e20\n\n\t\t\t\tprecision highp isampler2D;\n\t\t\t\tprecision highp usampler2D;\n\t\t\t\tprecision highp sampler2DArray;\n\t\t\t\tvec4 envMapTexelToLinear( vec4 a ) { return a; }\n\t\t\t\t#include <common>\n\n\t\t\t\t// bvh intersection\n\t\t\t\t${lc}\n\t\t\t\t${hc}\n\t\t\t\t${uc}\n\n\t\t\t\t// uniform structs\n\t\t\t\t${xl}\n\t\t\t\t${wl}\n\t\t\t\t${bl}\n\t\t\t\t${_l}\n\t\t\t\t${Tl}\n\n\t\t\t\t// random\n\t\t\t\t#if RANDOM_TYPE == 2 \t// Stratified List\n\n\t\t\t\t\t${Fl}\n\n\t\t\t\t#elif RANDOM_TYPE == 1 \t// Sobol\n\n\t\t\t\t\t${hs}\n\t\t\t\t\t${es}\n\t\t\t\t\t${kc}\n\n\t\t\t\t\t#define rand(v) sobol(v)\n\t\t\t\t\t#define rand2(v) sobol2(v)\n\t\t\t\t\t#define rand3(v) sobol3(v)\n\t\t\t\t\t#define rand4(v) sobol4(v)\n\n\t\t\t\t#else \t\t\t\t\t// PCG\n\n\t\t\t\t${hs}\n\n\t\t\t\t\t// Using the sobol functions seems to break the the compiler on MacOS\n\t\t\t\t\t// - specifically the \"sobolReverseBits\" function.\n\t\t\t\t\tuint sobolPixelIndex = 0u;\n\t\t\t\t\tuint sobolPathIndex = 0u;\n\t\t\t\t\tuint sobolBounceIndex = 0u;\n\n\t\t\t\t\t#define rand(v) pcgRand()\n\t\t\t\t\t#define rand2(v) pcgRand2()\n\t\t\t\t\t#define rand3(v) pcgRand3()\n\t\t\t\t\t#define rand4(v) pcgRand4()\n\n\t\t\t\t#endif\n\n\t\t\t\t// common\n\t\t\t\t${Dl}\n\t\t\t\t${Il}\n\t\t\t\t${us}\n\t\t\t\t${Cl}\n\t\t\t\t${Pl}\n\n\t\t\t\t// environment\n\t\t\t\tuniform EquirectHdrInfo envMapInfo;\n\t\t\t\tuniform mat4 environmentRotation;\n\t\t\t\tuniform float environmentIntensity;\n\n\t\t\t\t// lighting\n\t\t\t\tuniform sampler2DArray iesProfiles;\n\t\t\t\tuniform LightsInfo lights;\n\n\t\t\t\t// background\n\t\t\t\tuniform float backgroundBlur;\n\t\t\t\tuniform float backgroundAlpha;\n\t\t\t\t#if FEATURE_BACKGROUND_MAP\n\n\t\t\t\tuniform sampler2D backgroundMap;\n\t\t\t\tuniform mat4 backgroundRotation;\n\t\t\t\tuniform float backgroundIntensity;\n\n\t\t\t\t#endif\n\n\t\t\t\t// camera\n\t\t\t\tuniform mat4 cameraWorldMatrix;\n\t\t\t\tuniform mat4 invProjectionMatrix;\n\t\t\t\t#if FEATURE_DOF\n\n\t\t\t\tuniform PhysicalCamera physicalCamera;\n\n\t\t\t\t#endif\n\n\t\t\t\t// geometry\n\t\t\t\tuniform sampler2DArray attributesArray;\n\t\t\t\tuniform usampler2D materialIndexAttribute;\n\t\t\t\tuniform sampler2D materials;\n\t\t\t\tuniform sampler2DArray textures;\n\t\t\t\tuniform BVH bvh;\n\n\t\t\t\t// path tracer\n\t\t\t\tuniform int bounces;\n\t\t\t\tuniform int transmissiveBounces;\n\t\t\t\tuniform float filterGlossyFactor;\n\t\t\t\tuniform int seed;\n\n\t\t\t\t// image\n\t\t\t\tuniform vec2 resolution;\n\t\t\t\tuniform float opacity;\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t// globals\n\t\t\t\tmat3 envRotation3x3;\n\t\t\t\tmat3 invEnvRotation3x3;\n\t\t\t\tfloat lightsDenom;\n\n\t\t\t\t// sampling\n\t\t\t\t${Al}\n\t\t\t\t${Sl}\n\t\t\t\t${Ml}\n\n\t\t\t\t${zl}\n\t\t\t\t${Ll}\n\t\t\t\t${kl}\n\t\t\t\t${Nl}\n\t\t\t\t${Ol}\n\t\t\t\t${Rl}\n\n\t\t\t\tfloat applyFilteredGlossy( float roughness, float accumulatedRoughness ) {\n\n\t\t\t\t\treturn clamp(\n\t\t\t\t\t\tmax(\n\t\t\t\t\t\t\troughness,\n\t\t\t\t\t\t\taccumulatedRoughness * filterGlossyFactor * 5.0 ),\n\t\t\t\t\t\t0.0,\n\t\t\t\t\t\t1.0\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t\tvec3 sampleBackground( vec3 direction, vec2 uv ) {\n\n\t\t\t\t\tvec3 sampleDir = sampleHemisphere( direction, uv ) * 0.5 * backgroundBlur;\n\n\t\t\t\t\t#if FEATURE_BACKGROUND_MAP\n\n\t\t\t\t\tsampleDir = normalize( mat3( backgroundRotation ) * direction + sampleDir );\n\t\t\t\t\treturn backgroundIntensity * sampleEquirectColor( backgroundMap, sampleDir );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\tsampleDir = normalize( envRotation3x3 * direction + sampleDir );\n\t\t\t\t\treturn environmentIntensity * sampleEquirectColor( envMapInfo.map, sampleDir );\n\n\t\t\t\t\t#endif\n\n\t\t\t\t}\n\n\t\t\t\t${Vl}\n\t\t\t\t${Ul}\n\t\t\t\t${Wl}\n\t\t\t\t${Bl}\n\t\t\t\t${El}\n\t\t\t\t${Gl}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t// init\n\t\t\t\t\trng_initialize( gl_FragCoord.xy, seed );\n\t\t\t\t\tsobolPixelIndex = ( uint( gl_FragCoord.x ) << 16 ) | uint( gl_FragCoord.y );\n\t\t\t\t\tsobolPathIndex = uint( seed );\n\n\t\t\t\t\t// get camera ray\n\t\t\t\t\tRay ray = getCameraRay();\n\n\t\t\t\t\t// inverse environment rotation\n\t\t\t\t\tenvRotation3x3 = mat3( environmentRotation );\n\t\t\t\t\tinvEnvRotation3x3 = inverse( envRotation3x3 );\n\t\t\t\t\tlightsDenom =\n\t\t\t\t\t\t( environmentIntensity == 0.0 || envMapInfo.totalSum == 0.0 ) && lights.count != 0u ?\n\t\t\t\t\t\t\tfloat( lights.count ) :\n\t\t\t\t\t\t\tfloat( lights.count + 1u );\n\n\t\t\t\t\t// final color\n\t\t\t\t\tgl_FragColor = vec4( 0, 0, 0, 1 );\n\n\t\t\t\t\t// surface results\n\t\t\t\t\tSurfaceHit surfaceHit;\n\t\t\t\t\tScatterRecord scatterRec;\n\n\t\t\t\t\t// path tracing state\n\t\t\t\t\tRenderState state = initRenderState();\n\t\t\t\t\tstate.transmissiveTraversals = transmissiveBounces;\n\t\t\t\t\t#if FEATURE_FOG\n\n\t\t\t\t\tstate.fogMaterial.fogVolume = bvhIntersectFogVolumeHit(\n\t\t\t\t\t\tray.origin, - ray.direction,\n\t\t\t\t\t\tmaterialIndexAttribute, materials,\n\t\t\t\t\t\tstate.fogMaterial\n\t\t\t\t\t);\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfor ( int i = 0; i < bounces; i ++ ) {\n\n\t\t\t\t\t\tsobolBounceIndex ++;\n\n\t\t\t\t\t\tstate.depth ++;\n\t\t\t\t\t\tstate.traversals = bounces - i;\n\t\t\t\t\t\tstate.firstRay = i == 0 && state.transmissiveTraversals == transmissiveBounces;\n\n\t\t\t\t\t\tint hitType = traceScene( ray, state.fogMaterial, surfaceHit );\n\n\t\t\t\t\t\t// check if we intersect any lights and accumulate the light contribution\n\t\t\t\t\t\t// TODO: we can add support for light surface rendering in the else condition if we\n\t\t\t\t\t\t// add the ability to toggle visibility of the the light\n\t\t\t\t\t\tif ( ! state.firstRay && ! state.transmissiveRay ) {\n\n\t\t\t\t\t\t\tLightRecord lightRec;\n\t\t\t\t\t\t\tfloat lightDist = hitType == NO_HIT ? INFINITY : surfaceHit.dist;\n\t\t\t\t\t\t\tfor ( uint i = 0u; i < lights.count; i ++ ) {\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tintersectLightAtIndex( lights.tex, ray.origin, ray.direction, i, lightRec ) &&\n\t\t\t\t\t\t\t\t\tlightRec.dist < lightDist\n\t\t\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\t\t\t#if FEATURE_MIS\n\n\t\t\t\t\t\t\t\t\t// weight the contribution\n\t\t\t\t\t\t\t\t\t// NOTE: Only area lights are supported for forward sampling and can be hit\n\t\t\t\t\t\t\t\t\tfloat misWeight = misHeuristic( scatterRec.pdf, lightRec.pdf / lightsDenom );\n\t\t\t\t\t\t\t\t\tgl_FragColor.rgb += lightRec.emission * state.throughputColor * misWeight;\n\n\t\t\t\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\t\t\tgl_FragColor.rgb += lightRec.emission * state.throughputColor;\n\n\t\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( hitType == NO_HIT ) {\n\n\t\t\t\t\t\t\tif ( state.firstRay || state.transmissiveRay ) {\n\n\t\t\t\t\t\t\t\tgl_FragColor.rgb += sampleBackground( ray.direction, rand2( 2 ) ) * state.throughputColor;\n\t\t\t\t\t\t\t\tgl_FragColor.a = backgroundAlpha;\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t#if FEATURE_MIS\n\n\t\t\t\t\t\t\t\t// get the PDF of the hit envmap point\n\t\t\t\t\t\t\t\tvec3 envColor;\n\t\t\t\t\t\t\t\tfloat envPdf = sampleEquirect( envRotation3x3 * ray.direction, envColor );\n\t\t\t\t\t\t\t\tenvPdf /= lightsDenom;\n\n\t\t\t\t\t\t\t\t// and weight the contribution\n\t\t\t\t\t\t\t\tfloat misWeight = misHeuristic( scatterRec.pdf, envPdf );\n\t\t\t\t\t\t\t\tgl_FragColor.rgb += environmentIntensity * envColor * state.throughputColor * misWeight;\n\n\t\t\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\t\tgl_FragColor.rgb +=\n\t\t\t\t\t\t\t\t\tenvironmentIntensity *\n\t\t\t\t\t\t\t\t\tsampleEquirectColor( envMapInfo.map, envRotation3x3 * ray.direction ) *\n\t\t\t\t\t\t\t\t\tstate.throughputColor;\n\n\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuint materialIndex = uTexelFetch1D( materialIndexAttribute, surfaceHit.faceIndices.x ).r;\n\t\t\t\t\t\tMaterial material = readMaterialInfo( materials, materialIndex );\n\n\t\t\t\t\t\t#if FEATURE_FOG\n\n\t\t\t\t\t\tif ( hitType == FOG_HIT ) {\n\n\t\t\t\t\t\t\tmaterial = state.fogMaterial;\n\t\t\t\t\t\t\tstate.accumulatedRoughness += 0.2;\n\n\t\t\t\t\t\t} else if ( material.fogVolume ) {\n\n\t\t\t\t\t\t\tstate.fogMaterial = material;\n\t\t\t\t\t\t\tstate.fogMaterial.fogVolume = surfaceHit.side == 1.0;\n\n\t\t\t\t\t\t\tray.origin = stepRayOrigin( ray.origin, ray.direction, - surfaceHit.faceNormal, surfaceHit.dist );\n\n\t\t\t\t\t\t\ti -= sign( state.transmissiveTraversals );\n\t\t\t\t\t\t\tstate.transmissiveTraversals -= sign( state.transmissiveTraversals );\n\t\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t// early out if this is a matte material\n\t\t\t\t\t\tif ( material.matte && state.firstRay ) {\n\n\t\t\t\t\t\t\tgl_FragColor = vec4( 0.0 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// if we've determined that this is a shadow ray and we've hit an item with no shadow casting\n\t\t\t\t\t\t// then skip it\n\t\t\t\t\t\tif ( ! material.castShadow && state.isShadowRay ) {\n\n\t\t\t\t\t\t\tray.origin = stepRayOrigin( ray.origin, ray.direction, - surfaceHit.faceNormal, surfaceHit.dist );\n\t\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tSurfaceRecord surf;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetSurfaceRecord(\n\t\t\t\t\t\t\t\tmaterial, surfaceHit, attributesArray, state.accumulatedRoughness,\n\t\t\t\t\t\t\t\tsurf\n\t\t\t\t\t\t\t) == SKIP_SURFACE\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\t// only allow a limited number of transparency discards otherwise we could\n\t\t\t\t\t\t\t// crash the context with too long a loop.\n\t\t\t\t\t\t\ti -= sign( state.transmissiveTraversals );\n\t\t\t\t\t\t\tstate.transmissiveTraversals -= sign( state.transmissiveTraversals );\n\n\t\t\t\t\t\t\tray.origin = stepRayOrigin( ray.origin, ray.direction, - surfaceHit.faceNormal, surfaceHit.dist );\n\t\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tscatterRec = bsdfSample( - ray.direction, surf );\n\t\t\t\t\t\tstate.isShadowRay = scatterRec.specularPdf < rand( 4 );\n\n\t\t\t\t\t\tbool isBelowSurface = ! surf.volumeParticle && dot( scatterRec.direction, surf.faceNormal ) < 0.0;\n\t\t\t\t\t\tvec3 hitPoint = stepRayOrigin( ray.origin, ray.direction, isBelowSurface ? - surf.faceNormal : surf.faceNormal, surfaceHit.dist );\n\n\t\t\t\t\t\t// next event estimation\n\t\t\t\t\t\t#if FEATURE_MIS\n\n\t\t\t\t\t\tgl_FragColor.rgb += directLightContribution( - ray.direction, surf, state, hitPoint );\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t// accumulate a roughness value to offset diffuse, specular, diffuse rays that have high contribution\n\t\t\t\t\t\t// to a single pixel resulting in fireflies\n\t\t\t\t\t\t// TODO: handle transmissive surfaces\n\t\t\t\t\t\tif ( ! surf.volumeParticle && ! isBelowSurface ) {\n\n\t\t\t\t\t\t\t// determine if this is a rough normal or not by checking how far off straight up it is\n\t\t\t\t\t\t\tvec3 halfVector = normalize( - ray.direction + scatterRec.direction );\n\t\t\t\t\t\t\tstate.accumulatedRoughness += max(\n\t\t\t\t\t\t\t\tsin( acosApprox( dot( halfVector, surf.normal ) ) ),\n\t\t\t\t\t\t\t\tsin( acosApprox( dot( halfVector, surf.clearcoatNormal ) ) )\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tstate.transmissiveRay = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// accumulate emissive color\n\t\t\t\t\t\tgl_FragColor.rgb += ( surf.emission * state.throughputColor );\n\n\t\t\t\t\t\t// skip the sample if our PDF or ray is impossible\n\t\t\t\t\t\tif ( scatterRec.pdf <= 0.0 || ! isDirectionValid( scatterRec.direction, surf.normal, surf.faceNormal ) ) {\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// if we're bouncing around the inside a transmissive material then decrement\n\t\t\t\t\t\t// perform this separate from a bounce\n\t\t\t\t\t\tbool isTransmissiveRay = ! surf.volumeParticle && dot( scatterRec.direction, surf.faceNormal * surfaceHit.side ) < 0.0;\n\t\t\t\t\t\tif ( ( isTransmissiveRay || isBelowSurface ) && state.transmissiveTraversals > 0 ) {\n\n\t\t\t\t\t\t\tstate.transmissiveTraversals --;\n\t\t\t\t\t\t\ti --;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//\n\n\t\t\t\t\t\t// handle throughput color transformation\n\t\t\t\t\t\t// attenuate the throughput color by the medium color\n\t\t\t\t\t\tif ( ! surf.frontFace ) {\n\n\t\t\t\t\t\t\tstate.throughputColor *= transmissionAttenuation( surfaceHit.dist, surf.attenuationColor, surf.attenuationDistance );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#if FEATURE_RUSSIAN_ROULETTE\n\n\t\t\t\t\t\t// russian roulette path termination\n\t\t\t\t\t\t// https://www.arnoldrenderer.com/research/physically_based_shader_design_in_arnold.pdf\n\t\t\t\t\t\tuint minBounces = 3u;\n\t\t\t\t\t\tfloat depthProb = float( state.depth < minBounces );\n\n\t\t\t\t\t\tfloat rrProb = luminance( state.throughputColor * scatterRec.color / scatterRec.pdf );\n\t\t\t\t\t\trrProb /= luminance( state.throughputColor );\n\t\t\t\t\t\trrProb = sqrt( rrProb );\n\t\t\t\t\t\trrProb = max( rrProb, depthProb );\n\t\t\t\t\t\trrProb = min( rrProb, 1.0 );\n\t\t\t\t\t\tif ( rand( 8 ) > rrProb ) {\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// perform sample clamping here to avoid bright pixels\n\t\t\t\t\t\tstate.throughputColor *= min( 1.0 / rrProb, 20.0 );\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t// adjust the throughput and discard and exit if we find discard the sample if there are any NaNs\n\t\t\t\t\t\tstate.throughputColor *= scatterRec.color / scatterRec.pdf;\n\t\t\t\t\t\tif ( any( isnan( state.throughputColor ) ) || any( isinf( state.throughputColor ) ) ) {\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//\n\n\t\t\t\t\t\t// prepare for next ray\n\t\t\t\t\t\tray.direction = scatterRec.direction;\n\t\t\t\t\t\tray.origin = hitPoint;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl_FragColor.a *= opacity;\n\n\t\t\t\t\t#if DEBUG_MODE == 1\n\n\t\t\t\t\t// output the number of rays checked in the path and number of\n\t\t\t\t\t// transmissive rays encountered.\n\t\t\t\t\tgl_FragColor.rgb = vec3(\n\t\t\t\t\t\tfloat( state.depth ),\n\t\t\t\t\t\ttransmissiveBounces - state.transmissiveTraversals,\n\t\t\t\t\t\t0.0\n\t\t\t\t\t);\n\t\t\t\t\tgl_FragColor.a = 1.0;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t}\n\n\t\t\t`}),this.setValues(e)}}function*ql(){const{_renderer:s,_fsQuad:e,_blendQuad:t,_primaryTarget:n,_blendTargets:r,_sobolTarget:o,_subframe:i,alpha:a,material:c}=this,f=new h.Vector4,d=new h.Vector4,u=t.material;let[l,g]=r;for(;;){a?(u.opacity=this._opacityFactor/(this.samples+1),c.blending=h.NoBlending,c.opacity=1):(c.opacity=this._opacityFactor/(this.samples+1),c.blending=h.NormalBlending);const[y,w,m,x]=i,b=n.width,T=n.height;c.resolution.set(b*m,T*x),c.sobolTexture=o.texture,c.stratifiedTexture.init(20,c.bounces+c.transmissiveBounces+5),c.stratifiedTexture.next(),c.seed++;const M=this.tiles.x||1,A=this.tiles.y||1,I=M*A,P=Math.ceil(b*m),D=Math.ceil(T*x),R=Math.floor(y*b),O=Math.floor(w*T),k=Math.ceil(P/M),L=Math.ceil(D/A);for(let V=0;V<A;V++)for(let G=0;G<M;G++){const Q=s.getRenderTarget(),J=s.autoClear,me=s.getScissorTest();s.getScissor(f),s.getViewport(d);let Ce=G,ge=V;if(!this.stableTiles){const nt=this._currentTile%(M*A);Ce=nt%M,ge=~~(nt/M),this._currentTile=nt+1}const ye=A-ge-1;n.scissor.set(R+Ce*k,O+ye*L,Math.min(k,P-Ce*k),Math.min(L,D-ye*L)),n.viewport.set(R,O,P,D),s.setRenderTarget(n),s.setScissorTest(!0),s.autoClear=!1,e.render(s),s.setViewport(d),s.setScissor(f),s.setScissorTest(me),s.setRenderTarget(Q),s.autoClear=J,a&&(u.target1=l.texture,u.target2=n.texture,s.setRenderTarget(g),t.render(s),s.setRenderTarget(Q)),this.samples+=1/I,G===M-1&&V===A-1&&(this.samples=Math.round(this.samples)),yield}[l,g]=[g,l]}}const fs=new h.Color;class ds{get material(){return this._fsQuad.material}set material(e){this._fsQuad.material.removeEventListener(\"recompilation\",this._compileFunction),e.addEventListener(\"recompilation\",this._compileFunction),this._fsQuad.material=e}get target(){return this._alpha?this._blendTargets[1]:this._primaryTarget}set alpha(e){this._alpha!==e&&(e||(this._blendTargets[0].dispose(),this._blendTargets[1].dispose()),this._alpha=e,this.reset())}get alpha(){return this._alpha}get isCompiling(){return!!this._compilePromise}constructor(e){this.camera=null,this.tiles=new h.Vector2(3,3),this.stableNoise=!1,this.stableTiles=!0,this.samples=0,this._subframe=new h.Vector4(0,0,1,1),this._opacityFactor=1,this._renderer=e,this._alpha=!1,this._fsQuad=new Zt(new jl),this._blendQuad=new Zt(new Lc),this._task=null,this._currentTile=0,this._compilePromise=null,this._sobolTarget=new Bc().generate(e),this._primaryTarget=new h.WebGLRenderTarget(1,1,{format:h.RGBAFormat,type:h.FloatType,magFilter:h.NearestFilter,minFilter:h.NearestFilter}),this._blendTargets=[new h.WebGLRenderTarget(1,1,{format:h.RGBAFormat,type:h.FloatType,magFilter:h.NearestFilter,minFilter:h.NearestFilter}),new h.WebGLRenderTarget(1,1,{format:h.RGBAFormat,type:h.FloatType,magFilter:h.NearestFilter,minFilter:h.NearestFilter})],this._compileFunction=()=>{const t=this.compileMaterial(this._fsQuad._mesh);t.then(()=>{this._compilePromise===t&&(this._compilePromise=null)}),this._compilePromise=t},this.material.addEventListener(\"recompilation\",this._compileFunction)}compileMaterial(){return this._renderer.compileAsync(this._fsQuad._mesh)}setCamera(e){const{material:t}=this;t.cameraWorldMatrix.copy(e.matrixWorld),t.invProjectionMatrix.copy(e.projectionMatrixInverse),t.physicalCamera.updateFrom(e);let n=0;e.projectionMatrix.elements[15]>0&&(n=1),e.isEquirectCamera&&(n=2),t.setDefine(\"CAMERA_TYPE\",n),this.camera=e}setSize(e,t){e=Math.ceil(e),t=Math.ceil(t),!(this._primaryTarget.width===e&&this._primaryTarget.height===t)&&(this._primaryTarget.setSize(e,t),this._blendTargets[0].setSize(e,t),this._blendTargets[1].setSize(e,t),this.reset())}getSize(e){e.x=this._primaryTarget.width,e.y=this._primaryTarget.height}dispose(){this._primaryTarget.dispose(),this._blendTargets[0].dispose(),this._blendTargets[1].dispose(),this._sobolTarget.dispose(),this._fsQuad.dispose(),this._blendQuad.dispose(),this._task=null}reset(){const{_renderer:e,_primaryTarget:t,_blendTargets:n}=this,r=e.getRenderTarget(),o=e.getClearAlpha();e.getClearColor(fs),e.setRenderTarget(t),e.setClearColor(0,0),e.clearColor(),e.setRenderTarget(n[0]),e.setClearColor(0,0),e.clearColor(),e.setRenderTarget(n[1]),e.setClearColor(0,0),e.clearColor(),e.setClearColor(fs,o),e.setRenderTarget(r),this.samples=0,this._task=null,this.material.stratifiedTexture.stableNoise=this.stableNoise,this.stableNoise&&(this.material.seed=0,this.material.stratifiedTexture.reset())}update(){this.material.onBeforeRender(),!this.isCompiling&&(this._task||(this._task=ql.call(this)),this._task.next())}}const Dt=new h.Vector2,ps=new h.Vector2,qn=new h.Spherical,Zn=new h.Color;class Zl extends h.DataTexture{constructor(e=512,t=512){super(new Float32Array(e*t*4),e,t,h.RGBAFormat,h.FloatType,h.EquirectangularReflectionMapping,h.RepeatWrapping,h.ClampToEdgeWrapping,h.LinearFilter,h.LinearFilter),this.generationCallback=null}update(){this.dispose(),this.needsUpdate=!0;const{data:e,width:t,height:n}=this.image;for(let r=0;r<t;r++)for(let o=0;o<n;o++){ps.set(t,n),Dt.set(r/t,o/n),Dt.x-=.5,Dt.y=1-Dt.y,qn.theta=Dt.x*2*Math.PI,qn.phi=Dt.y*Math.PI,qn.radius=1,this.generationCallback(qn,Dt,ps,Zn);const a=4*(o*t+r);e[a+0]=Zn.r,e[a+1]=Zn.g,e[a+2]=Zn.b,e[a+3]=1}}copy(e){return super.copy(e),this.generationCallback=e.generationCallback,this}}const ms=new h.Vector3;class Yl extends Zl{constructor(e=512){super(e,e),this.topColor=new h.Color().set(16777215),this.bottomColor=new h.Color().set(0),this.exponent=2,this.generationCallback=(t,n,r,o)=>{ms.setFromSpherical(t);const i=ms.y*.5+.5;o.lerpColors(this.bottomColor,this.topColor,i**this.exponent)}}copy(e){return super.copy(e),this.topColor.copy(e.topColor),this.bottomColor.copy(e.bottomColor),this}}class Kl extends h.ShaderMaterial{get map(){return this.uniforms.map.value}set map(e){this.uniforms.map.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}constructor(e){super({uniforms:{map:{value:null},opacity:{value:1}},vertexShader:`\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\t\t\t\tuniform sampler2D map;\n\t\t\t\tuniform float opacity;\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\tvec4 clampedTexelFatch( sampler2D map, ivec2 px, int lod ) {\n\n\t\t\t\t\tvec4 res = texelFetch( map, ivec2( px.x, px.y ), 0 );\n\n\t\t\t\t\t#if defined( TONE_MAPPING )\n\n\t\t\t\t\tres.xyz = toneMapping( res.xyz );\n\n\t\t\t\t\t#endif\n\n\t\t\t  \t\treturn linearToOutputTexel( res );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec2 size = vec2( textureSize( map, 0 ) );\n\t\t\t\t\tvec2 pxUv = vUv * size;\n\t\t\t\t\tvec2 pxCurr = floor( pxUv );\n\t\t\t\t\tvec2 pxFrac = fract( pxUv ) - 0.5;\n\t\t\t\t\tvec2 pxOffset;\n\t\t\t\t\tpxOffset.x = pxFrac.x > 0.0 ? 1.0 : - 1.0;\n\t\t\t\t\tpxOffset.y = pxFrac.y > 0.0 ? 1.0 : - 1.0;\n\n\t\t\t\t\tvec2 pxNext = clamp( pxOffset + pxCurr, vec2( 0.0 ), size - 1.0 );\n\t\t\t\t\tvec2 alpha = abs( pxFrac );\n\n\t\t\t\t\tvec4 p1 = mix(\n\t\t\t\t\t\tclampedTexelFatch( map, ivec2( pxCurr.x, pxCurr.y ), 0 ),\n\t\t\t\t\t\tclampedTexelFatch( map, ivec2( pxNext.x, pxCurr.y ), 0 ),\n\t\t\t\t\t\talpha.x\n\t\t\t\t\t);\n\n\t\t\t\t\tvec4 p2 = mix(\n\t\t\t\t\t\tclampedTexelFatch( map, ivec2( pxCurr.x, pxNext.y ), 0 ),\n\t\t\t\t\t\tclampedTexelFatch( map, ivec2( pxNext.x, pxNext.y ), 0 ),\n\t\t\t\t\t\talpha.x\n\t\t\t\t\t);\n\n\t\t\t\t\tgl_FragColor = mix( p1, p2, alpha.y );\n\t\t\t\t\tgl_FragColor.a *= opacity;\n\t\t\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t\t\t}\n\t\t\t`}),this.setValues(e)}}class Xl extends h.ShaderMaterial{constructor(){super({uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:`\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}`,fragmentShader:`\n\t\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\n\t\t\t\tuniform samplerCube envMap;\n\t\t\t\tuniform float flipEnvMap;\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#include <common>\n\t\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\t\t${us}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 rayDirection = equirectUvToDirection( vUv );\n\t\t\t\t\trayDirection.x *= flipEnvMap;\n\t\t\t\t\tgl_FragColor = textureCube( envMap, rayDirection );\n\n\t\t\t\t}`}),this.depthWrite=!1,this.depthTest=!1}}class gs{constructor(e){this._renderer=e,this._quad=new Zt(new Xl)}generate(e,t=null,n=null){if(!e.isCubeTexture)throw new Error(\"CubeToEquirectMaterial: Source can only be cube textures.\");const r=e.images[0],o=this._renderer,i=this._quad;t===null&&(t=4*r.height),n===null&&(n=2*r.height);const a=new h.WebGLRenderTarget(t,n,{type:h.FloatType,colorSpace:r.colorSpace}),c=r.height,f=Math.log2(c)-2,d=1/c,u=1/(3*Math.max(Math.pow(2,f),7*16));i.material.defines.CUBEUV_MAX_MIP=`${f}.0`,i.material.defines.CUBEUV_TEXEL_WIDTH=u,i.material.defines.CUBEUV_TEXEL_HEIGHT=d,i.material.uniforms.envMap.value=e,i.material.uniforms.flipEnvMap.value=e.isRenderTargetTexture?1:-1,i.material.needsUpdate=!0;const l=o.getRenderTarget(),g=o.autoClear;o.autoClear=!0,o.setRenderTarget(a),i.render(o),o.setRenderTarget(l),o.autoClear=g;const y=new Uint16Array(t*n*4),w=new Float32Array(t*n*4);o.readRenderTargetPixels(a,0,0,t,n,w),a.dispose();for(let x=0,b=w.length;x<b;x++)y[x]=h.DataUtils.toHalfFloat(w[x]);const m=new h.DataTexture(y,t,n,h.RGBAFormat,h.HalfFloatType);return m.minFilter=h.LinearMipMapLinearFilter,m.magFilter=h.LinearFilter,m.wrapS=h.RepeatWrapping,m.wrapT=h.RepeatWrapping,m.mapping=h.EquirectangularReflectionMapping,m.needsUpdate=!0,m}dispose(){this._quad.dispose()}}function $l(s){return s.extensions.get(\"EXT_float_blend\")}const Xt=new h.Vector2;class Ql{get multipleImportanceSampling(){return!!this._pathTracer.material.defines.FEATURE_MIS}set multipleImportanceSampling(e){this._pathTracer.material.setDefine(\"FEATURE_MIS\",e?1:0)}get transmissiveBounces(){return this._pathTracer.material.transmissiveBounces}set transmissiveBounces(e){this._pathTracer.material.transmissiveBounces=e}get bounces(){return this._pathTracer.material.bounces}set bounces(e){this._pathTracer.material.bounces=e}get filterGlossyFactor(){return this._pathTracer.material.filterGlossyFactor}set filterGlossyFactor(e){this._pathTracer.material.filterGlossyFactor=e}get samples(){return this._pathTracer.samples}get target(){return this._pathTracer.target}get tiles(){return this._pathTracer.tiles}get stableNoise(){return this._pathTracer.stableNoise}set stableNoise(e){this._pathTracer.stableNoise=e}get isCompiling(){return!!this._pathTracer.isCompiling}constructor(e){this._renderer=e,this._generator=new Dc,this._pathTracer=new ds(e),this._queueReset=!1,this._clock=new h.Clock,this._compilePromise=null,this._lowResPathTracer=new ds(e),this._lowResPathTracer.tiles.set(1,1),this._quad=new Zt(new Kl({map:null,transparent:!0,blending:h.NoBlending,premultipliedAlpha:e.getContextAttributes().premultipliedAlpha})),this._materials=null,this._previousEnvironment=null,this._previousBackground=null,this._internalBackground=null,this.renderDelay=100,this.minSamples=5,this.fadeDuration=500,this.enablePathTracing=!0,this.pausePathTracing=!1,this.dynamicLowRes=!1,this.lowResScale=.25,this.renderScale=1,this.synchronizeRenderSize=!0,this.rasterizeScene=!0,this.renderToCanvas=!0,this.textureSize=new h.Vector2(1024,1024),this.rasterizeSceneCallback=(t,n)=>{this._renderer.render(t,n)},this.renderToCanvasCallback=(t,n,r)=>{const o=n.autoClear;n.autoClear=!1,r.render(n),n.autoClear=o},this.setScene(new h.Scene,new h.PerspectiveCamera)}setBVHWorker(e){this._generator.setBVHWorker(e)}setScene(e,t,n={}){e.updateMatrixWorld(!0),t.updateMatrixWorld();const r=this._generator;if(r.setObjects(e),this._buildAsync)return r.generateAsync(n.onProgress).then(o=>this._updateFromResults(e,t,o));{const o=r.generate();return this._updateFromResults(e,t,o)}}setSceneAsync(...e){this._buildAsync=!0;const t=this.setScene(...e);return this._buildAsync=!1,t}setCamera(e){this.camera=e,this.updateCamera()}updateCamera(){const e=this.camera;e.updateMatrixWorld(),this._pathTracer.setCamera(e),this._lowResPathTracer.setCamera(e),this.reset()}updateMaterials(){const e=this._pathTracer.material,t=this._renderer,n=this._materials,r=this.textureSize,o=tl(n);e.textures.setTextures(t,o,r.x,r.y),e.materials.updateFrom(n,o),this.reset()}updateLights(){const e=this.scene,t=this._renderer,n=this._pathTracer.material,r=nl(e),o=el(r);n.lights.updateFrom(r,o),n.iesProfiles.setTextures(t,o),this.reset()}updateEnvironment(){const e=this.scene,t=this._pathTracer.material;if(this._internalBackground&&(this._internalBackground.dispose(),this._internalBackground=null),t.backgroundBlur=e.backgroundBlurriness,t.backgroundIntensity=e.backgroundIntensity??1,t.backgroundRotation.makeRotationFromEuler(e.backgroundRotation).invert(),e.background===null)t.backgroundMap=null,t.backgroundAlpha=0;else if(e.background.isColor){this._colorBackground=this._colorBackground||new Yl(16);const n=this._colorBackground;n.topColor.equals(e.background)||(n.topColor.set(e.background),n.bottomColor.set(e.background),n.update()),t.backgroundMap=n,t.backgroundAlpha=1}else if(e.background.isCubeTexture){if(e.background!==this._previousBackground){const n=new gs(this._renderer).generate(e.background);this._internalBackground=n,t.backgroundMap=n,t.backgroundAlpha=1}}else t.backgroundMap=e.background,t.backgroundAlpha=1;if(t.environmentIntensity=e.environmentIntensity??1,t.environmentRotation.makeRotationFromEuler(e.environmentRotation).invert(),this._previousEnvironment!==e.environment)if(e.environment!==null)if(e.environment.isCubeTexture){const n=new gs(this._renderer).generate(e.environment);t.envMapInfo.updateFrom(n)}else t.envMapInfo.updateFrom(e.environment);else t.environmentIntensity=0;this._previousEnvironment=e.environment,this._previousBackground=e.background,this.reset()}_updateFromResults(e,t,n){const{materials:r,geometry:o,bvh:i,bvhChanged:a}=n;this._materials=r;const f=this._pathTracer.material;return a&&(f.bvh.updateFrom(i),f.attributesArray.updateFrom(o.attributes.normal,o.attributes.tangent,o.attributes.uv,o.attributes.color),f.materialIndexAttribute.updateFrom(o.attributes.materialIndex)),this._previousScene=e,this.scene=e,this.camera=t,this.updateCamera(),this.updateMaterials(),this.updateEnvironment(),this.updateLights(),n}renderSample(){const e=this._lowResPathTracer,t=this._pathTracer,n=this._renderer,r=this._clock,o=this._quad;this._updateScale(),this._queueReset&&(t.reset(),e.reset(),this._queueReset=!1,o.material.opacity=0,r.start());const i=r.getDelta()*1e3,a=r.getElapsedTime()*1e3;if(!this.pausePathTracing&&this.enablePathTracing&&this.renderDelay<=a&&!this.isCompiling&&t.update(),t.alpha=t.material.backgroundAlpha!==1||!$l(n),e.alpha=t.alpha,this.renderToCanvas){const c=this._renderer,f=this.minSamples;if(a>=this.renderDelay&&this.samples>=this.minSamples&&(this.fadeDuration!==0?o.material.opacity=Math.min(o.material.opacity+i/this.fadeDuration,1):o.material.opacity=1),!this.enablePathTracing||this.samples<f||o.material.opacity<1){if(this.dynamicLowRes&&!this.isCompiling){e.samples<1&&(e.material=t.material,e.update());const d=o.material.opacity;o.material.opacity=1-o.material.opacity,o.material.map=e.target.texture,o.render(c),o.material.opacity=d}(!this.dynamicLowRes&&this.rasterizeScene||this.dynamicLowRes&&this.isCompiling)&&this.rasterizeSceneCallback(this.scene,this.camera)}this.enablePathTracing&&o.material.opacity>0&&(o.material.opacity<1&&(o.material.blending=this.dynamicLowRes?h.AdditiveBlending:h.NormalBlending),o.material.map=t.target.texture,this.renderToCanvasCallback(t.target,c,o),o.material.blending=h.NoBlending)}}reset(){this._queueReset=!0,this._pathTracer.samples=0}dispose(){this._renderQuad.dispose(),this._renderQuad.material.dispose(),this._pathTracer.dispose()}_updateScale(){if(this.synchronizeRenderSize){this._renderer.getDrawingBufferSize(Xt);const e=Math.floor(this.renderScale*Xt.x),t=Math.floor(this.renderScale*Xt.y);if(this._pathTracer.getSize(Xt),Xt.x!==e||Xt.y!==t){const n=this.lowResScale;this._pathTracer.setSize(e,t),this._lowResPathTracer.setSize(Math.floor(e*n),Math.floor(t*n))}}}}function vs(s){return typeof s==\"object\"&&s!==null&&\"getInternalRenderer\"in s&&typeof s.getInternalRenderer==\"function\"}let Jl=0;const ys=new Set;class Hl{constructor(){this.pathTracer=null,this.enabled=!1,this.renderer=null,this.sampleCount=0,this.createAttempts=0,this.maxCreateAttempts=10,this.sceneInitialized=!1,this.environmentWaitFrames=0,this.maxEnvironmentWaitFrames=300,this.disposed=!1,this.convertedEnvTexture=null,this.lastResetTime=0,this.pausedFrameBase64=null,this.imageOverlay=null,this.events=new xn,this.instanceId=++Jl,ys.add(this),this.settings={samples:300,bounces:4,transmissiveBounces:2,renderScale:.5,lowResScale:.5,dynamicLowRes:!0,enablePathTracing:!0}}convertToDataTexture(e){if(!e.image||!(e.image instanceof HTMLImageElement))return null;const t=e.image,n=document.createElement(\"canvas\");n.width=t.width,n.height=t.height;const r=n.getContext(\"2d\");if(!r)return null;r.drawImage(t,0,0);const o=r.getImageData(0,0,n.width,n.height),i=new Float32Array(o.data.length);for(let c=0;c<o.data.length;c++)i[c]=o.data[c]/255;const a=new S.DataTexture(i,n.width,n.height,S.RGBAFormat,S.FloatType);return a.mapping=e.mapping,a.wrapS=e.wrapS,a.wrapT=e.wrapT,a.magFilter=e.magFilter,a.minFilter=e.minFilter,a.anisotropy=e.anisotropy,a.needsUpdate=!0,a}async initialize(e){try{return this.renderer=e.renderer,this.enabled=e.enabled,this.isSupported()?W.ok(void 0):W.err(new H(\"Path tracing is not supported in this environment\",te.PATH_TRACING_INIT_FAILED,{reason:\"WebGL2 or required extensions not available\"}))}catch(t){return W.err(new H(\"Failed to initialize path tracing\",te.PATH_TRACING_INIT_FAILED,{originalError:t}))}}createPathTracer(){if(this.disposed)return W.err(new H(\"Instance is disposed\",te.INVALID_STATE));try{let e=null,t=0;for(;!e&&t<3;){if(st(this.renderer)&&(e=this.renderer.getInternalRenderer()),!e&&t<2)return W.err(new H(\"Renderer not ready, will retry\",te.RENDERER_NOT_INITIALIZED));t++}return e?(this.pathTracer=new Ql(e),this.pathTracer.tiles&&\"set\"in this.pathTracer.tiles&&this.pathTracer.tiles.set(1,1),this.pathTracer.bounces=this.settings.bounces,this.settings.transmissiveBounces!==void 0&&(this.pathTracer.transmissiveBounces=this.settings.transmissiveBounces),this.pathTracer.renderScale=this.settings.renderScale,this.pathTracer.dynamicLowRes=this.settings.dynamicLowRes,this.pathTracer.lowResScale=this.settings.lowResScale,this.pathTracer.environmentIntensity!==void 0&&(this.pathTracer.environmentIntensity=2),e.toneMapping!==S.ACESFilmicToneMapping&&(e.toneMapping=S.ACESFilmicToneMapping,e.toneMappingExposure=1.5),e.autoClear=!1,e.setRenderTarget(null),W.ok(void 0)):W.err(new H(\"Three.js renderer not available\",te.RENDERER_NOT_INITIALIZED))}catch(e){return W.err(new H(\"Failed to create path tracer\",te.PATH_TRACING_INIT_FAILED,{originalError:e}))}}setEnabled(e){if(this.enabled!==e&&(this.enabled=e,!e)){this.reset(),this.sceneInitialized=!1;const t=st(this.renderer)?this.renderer.getInternalRenderer():null;t&&(t.__pathTracingActive=!1,t.autoClear=!0)}}updateSettings(e){this.settings={...this.settings,...e},e.enablePathTracing!==void 0&&this.setEnabled(e.enablePathTracing),this.pathTracer&&(e.bounces!==void 0&&(this.pathTracer.bounces=e.bounces),e.transmissiveBounces!==void 0&&(this.pathTracer.transmissiveBounces=e.transmissiveBounces),e.renderScale!==void 0&&(this.pathTracer.renderScale=e.renderScale),e.lowResScale!==void 0&&(this.pathTracer.lowResScale=e.lowResScale),e.dynamicLowRes!==void 0&&(this.pathTracer.dynamicLowRes=e.dynamicLowRes))}async render(e,t){var n,r;if(this.disposed||!this.renderer)return W.ok(void 0);if(!this.enabled){if(this.sampleCount>=this.settings.samples&&this.sampleCount>0)return this.pathTracer&&st(this.renderer)&&this.renderer.getInternalRenderer().setRenderTarget(null),W.ok(void 0);const o=this.renderer.render(e,t);return o.ok,o}if(!this.pathTracer){this.createAttempts++;const o=this.createPathTracer();if(!o.ok){if(this.createAttempts<this.maxCreateAttempts&&((n=o.error)==null?void 0:n.message)===\"Renderer not ready, will retry\")return this.renderer.render(e,t);{this.enabled=!1,this.createAttempts=0;const i=this.renderer.render(e,t);return i.ok,i}}this.createAttempts=0}try{let o=null,i=null;if(e&&vs(e)&&(o=e.getInternalRenderer()),t&&vs(t)&&(i=t.getInternalRenderer()),!o||!i)return W.err(new H(\"Could not extract Three.js scene or camera\",te.INVALID_PARAMETER));if(!this.sceneInitialized)try{const a=o.__originalEnvironmentTexture;if(!o.environment&&!a)return this.environmentWaitFrames++,this.environmentWaitFrames>=this.maxEnvironmentWaitFrames&&(this.enabled=!1,this.environmentWaitFrames=0),this.renderer.render(e,t);this.environmentWaitFrames=0;let c=null;if(a&&a.mapping===S.EquirectangularReflectionMapping){if(c=a,a.image instanceof HTMLImageElement)if(this.convertedEnvTexture)c=this.convertedEnvTexture;else{const d=this.convertToDataTexture(a);if(d)this.convertedEnvTexture=d,c=d;else throw new Error(\"Failed to convert environment texture to DataTexture\")}const f=o.environment;o.environment=c;try{a.image&&!a.image.data&&a.image instanceof HTMLImageElement&&!a.image.complete&&await new Promise(d=>{a.image.onload=()=>{a.needsUpdate=!0,d()},a.image.onerror=u=>{d()},a.image.complete&&d()}),this.pathTracer&&this.pathTracer.setScene(o,i),this.sceneInitialized=!0,o.environment=f}catch(d){throw o.environment=f,d}}else if(((r=o.environment)==null?void 0:r.mapping)===S.EquirectangularReflectionMapping)this.pathTracer&&this.pathTracer.setScene(o,i),this.sceneInitialized=!0;else return this.enabled=!1,this.renderer.render(e,t)}catch(a){return console.warn(\"Scene initialization error:\",a),this.renderer.render(e,t)}if(this.sceneInitialized){if(this.sampleCount===0)try{this.pathTracer&&this.pathTracer.updateLights()}catch(f){console.warn(\"Failed to update lights for path tracing:\",f)}const a=this.renderer.render(e,t);if(!a.ok)return a;const c=st(this.renderer)?this.renderer.getInternalRenderer():null;if(c){const f=c.autoClear,d=c.getRenderTarget();c.autoClear=!1,this.pathTracer&&this.pathTracer.renderSample(),c.autoClear=f,c.setRenderTarget(d)}else throw new Error(\"Three.js renderer not available\");if(this.sampleCount++,this.sampleCount===this.settings.samples){const f=st(this.renderer)?this.renderer.getInternalRenderer():null;if(f&&this.pathTracer)try{const d=f.autoClear;f.autoClear=!0,f.setRenderTarget(null),f.clear(!0,!0,!0);const u=this.pathTracer.copyQuad;u&&typeof u.render==\"function\"?u.render(f):(f.autoClear=!1,this.pathTracer.renderSample());const l=f.domElement,g=l.toDataURL(\"image/png\");this.pausedFrameBase64=g,this.createImageOverlay(l,g),f.autoClear=d}catch(d){console.warn(\"Failed to capture path traced result:\",d)}return this.enabled=!1,this.events.emit(\"pathtracing:paused\",{samples:this.sampleCount}),setTimeout(()=>{this.disposePathTracingResources()},100),W.ok(void 0)}}else return this.renderer.render(e,t);return W.ok(void 0)}catch(o){return W.err(new H(\"Failed to render with path tracing\",te.RENDER_FAILED,{originalError:o}))}}getSampleCount(){return this.sampleCount}isEnabled(){return this.enabled}isPathTracerDisposed(){return this.disposed}reset(){const e=performance.now();e-this.lastResetTime<50||(this.lastResetTime=e,this.sampleCount=0,this.pathTracer&&(this.pathTracer.reset(),this.sceneInitialized=!1))}createImageOverlay(e,t){const n=document.createElement(\"img\");n.src=t,n.style.position=\"absolute\",n.style.top=\"0\",n.style.left=\"0\",n.style.width=\"100%\",n.style.height=\"100%\",n.style.pointerEvents=\"none\",n.style.zIndex=\"1000\",this.imageOverlay=n;const r=e.parentElement;r?(window.getComputedStyle(r).position===\"static\"&&(r.style.position=\"relative\"),n.onload=()=>{r.appendChild(n),e.style.visibility=\"hidden\"},n.onerror=i=>{console.error(\"Failed to load path traced image overlay\")}):console.warn(\"Cannot create image overlay: canvas has no parent element\")}disposePathTracingResources(){if(this.pathTracer){try{this.pathTracer.dispose()}catch(e){console.warn(\"Failed to dispose path tracer:\",e)}this.pathTracer=null}if(this.convertedEnvTexture&&(this.convertedEnvTexture.dispose(),this.convertedEnvTexture=null),this.renderer){const e=st(this.renderer)?this.renderer.getInternalRenderer():null;e&&(e.__pathTracingActive=!1,e.autoClear=!0)}this.sceneInitialized=!1,this.createAttempts=0}dispose(){if(this.disposed=!0,ys.delete(this),this.imageOverlay&&this.imageOverlay.parentElement&&(this.imageOverlay.parentElement.removeChild(this.imageOverlay),this.imageOverlay=null),this.renderer){const e=st(this.renderer)?this.renderer.getInternalRenderer():null;e&&(e.__pathTracingActive=!1)}if(this.pathTracer){try{this.pathTracer.dispose()}catch(e){console.warn(\"Failed to dispose path tracer during service disposal:\",e)}this.pathTracer=null}this.convertedEnvTexture&&(this.convertedEnvTexture.dispose(),this.convertedEnvTexture=null),this.sampleCount=0,this.sceneInitialized=!1,this.createAttempts=0,this.renderer=null}isSupported(){return document.createElement(\"canvas\").getContext(\"webgl2\")!==null}getPausedFrameBase64(){return this.pausedFrameBase64}hasImageOverlay(){return this.imageOverlay!==null}removeImageOverlay(){if(this.imageOverlay&&this.imageOverlay.parentElement){if(this.imageOverlay.parentElement.removeChild(this.imageOverlay),this.imageOverlay=null,this.renderer){const e=st(this.renderer)?this.renderer.getInternalRenderer():null;e&&e.domElement&&(e.domElement.style.visibility=\"visible\")}this.pausedFrameBase64=null}}}/*!\nfflate - fast JavaScript compression/decompression\n<https://101arrowz.github.io/fflate>\nLicensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE\nversion 0.8.2\n*/var qe=Uint8Array,$t=Uint16Array,eu=Int32Array,xs=new qe([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),bs=new qe([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),tu=new qe([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ws=function(s,e){for(var t=new $t(31),n=0;n<31;++n)t[n]=e+=1<<s[n-1];for(var r=new eu(t[30]),n=1;n<30;++n)for(var o=t[n];o<t[n+1];++o)r[o]=o-t[n]<<5|n;return{b:t,r}},_s=ws(xs,2),Ts=_s.b,nu=_s.r;Ts[28]=258,nu[258]=28;for(var ru=ws(bs,0),iu=ru.b,Yr=new $t(32768),pe=0;pe<32768;++pe){var bt=(pe&43690)>>1|(pe&21845)<<1;bt=(bt&52428)>>2|(bt&13107)<<2,bt=(bt&61680)>>4|(bt&3855)<<4,Yr[pe]=((bt&65280)>>8|(bt&255)<<8)>>1}for(var hn=function(s,e,t){for(var n=s.length,r=0,o=new $t(e);r<n;++r)s[r]&&++o[s[r]-1];var i=new $t(e);for(r=1;r<e;++r)i[r]=i[r-1]+o[r-1]<<1;var a;if(t){a=new $t(1<<e);var c=15-e;for(r=0;r<n;++r)if(s[r])for(var f=r<<4|s[r],d=e-s[r],u=i[s[r]-1]++<<d,l=u|(1<<d)-1;u<=l;++u)a[Yr[u]>>c]=f}else for(a=new $t(n),r=0;r<n;++r)s[r]&&(a[r]=Yr[i[s[r]-1]++]>>15-s[r]);return a},fn=new qe(288),pe=0;pe<144;++pe)fn[pe]=8;for(var pe=144;pe<256;++pe)fn[pe]=9;for(var pe=256;pe<280;++pe)fn[pe]=7;for(var pe=280;pe<288;++pe)fn[pe]=8;for(var Ss=new qe(32),pe=0;pe<32;++pe)Ss[pe]=5;var su=hn(fn,9,1),ou=hn(Ss,5,1),Kr=function(s){for(var e=s[0],t=1;t<s.length;++t)s[t]>e&&(e=s[t]);return e},et=function(s,e,t){var n=e/8|0;return(s[n]|s[n+1]<<8)>>(e&7)&t},Xr=function(s,e){var t=e/8|0;return(s[t]|s[t+1]<<8|s[t+2]<<16)>>(e&7)},au=function(s){return(s+7)/8|0},cu=function(s,e,t){return(t==null||t>s.length)&&(t=s.length),new qe(s.subarray(e,t))},lu=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],tt=function(s,e,t){var n=new Error(e||lu[s]);if(n.code=s,Error.captureStackTrace&&Error.captureStackTrace(n,tt),!t)throw n;return n},uu=function(s,e,t,n){var r=s.length,o=0;if(!r||e.f&&!e.l)return t||new qe(0);var i=!t,a=i||e.i!=2,c=e.i;i&&(t=new qe(r*3));var f=function(mn){var er=t.length;if(mn>er){var gn=new qe(Math.max(er*2,mn));gn.set(t),t=gn}},d=e.f||0,u=e.p||0,l=e.b||0,g=e.l,y=e.d,w=e.m,m=e.n,x=r*8;do{if(!g){d=et(s,u,1);var b=et(s,u+1,3);if(u+=3,b)if(b==1)g=su,y=ou,w=9,m=5;else if(b==2){var I=et(s,u,31)+257,P=et(s,u+10,15)+4,D=I+et(s,u+5,31)+1;u+=14;for(var R=new qe(D),O=new qe(19),k=0;k<P;++k)O[tu[k]]=et(s,u+k*3,7);u+=P*3;for(var L=Kr(O),V=(1<<L)-1,G=hn(O,L,1),k=0;k<D;){var Q=G[et(s,u,V)];u+=Q&15;var T=Q>>4;if(T<16)R[k++]=T;else{var J=0,me=0;for(T==16?(me=3+et(s,u,3),u+=2,J=R[k-1]):T==17?(me=3+et(s,u,7),u+=3):T==18&&(me=11+et(s,u,127),u+=7);me--;)R[k++]=J}}var Ce=R.subarray(0,I),ge=R.subarray(I);w=Kr(Ce),m=Kr(ge),g=hn(Ce,w,1),y=hn(ge,m,1)}else tt(1);else{var T=au(u)+4,M=s[T-4]|s[T-3]<<8,A=T+M;if(A>r){c&&tt(0);break}a&&f(l+M),t.set(s.subarray(T,A),l),e.b=l+=M,e.p=u=A*8,e.f=d;continue}if(u>x){c&&tt(0);break}}a&&f(l+131072);for(var ye=(1<<w)-1,nt=(1<<m)-1,we=u;;we=u){var J=g[Xr(s,u)&ye],Te=J>>4;if(u+=J&15,u>x){c&&tt(0);break}if(J||tt(2),Te<256)t[l++]=Te;else if(Te==256){we=u,g=null;break}else{var ut=Te-254;if(Te>264){var k=Te-257,_t=xs[k];ut=et(s,u,(1<<_t)-1)+Ts[k],u+=_t}var ue=y[Xr(s,u)&nt],rt=ue>>4;ue||tt(3),u+=ue&15;var ge=iu[rt];if(rt>3){var _t=bs[rt];ge+=Xr(s,u)&(1<<_t)-1,u+=_t}if(u>x){c&&tt(0);break}a&&f(l+131072);var ht=l+ut;if(l<ge){var Hn=o-ge,ti=Math.min(ge,ht);for(Hn+l<0&&tt(3);l<ti;++l)t[l]=n[Hn+l]}for(;l<ht;++l)t[l]=t[l-ge]}}e.l=g,e.p=we,e.b=l,e.f=d,g&&(d=1,e.m=w,e.d=y,e.n=m)}while(!d);return l!=t.length&&i?cu(t,0,l):t.subarray(0,l)},hu=new qe(0),fu=function(s,e){return((s[0]&15)!=8||s[0]>>4>7||(s[0]<<8|s[1])%31)&&tt(6,\"invalid zlib data\"),(s[1]>>5&1)==1&&tt(6,\"invalid zlib data: \"+(s[1]&32?\"need\":\"unexpected\")+\" dictionary\"),(s[1]>>3&4)+2};function Yn(s,e){return uu(s.subarray(fu(s),-4),{i:2},e,e)}var du=typeof TextDecoder<\"u\"&&new TextDecoder,pu=0;try{du.decode(hu,{stream:!0}),pu=1}catch{}class mu extends h.DataTextureLoader{constructor(e){super(e),this.type=h.HalfFloatType}parse(e){const R=Math.pow(2.7182818,2.2);function O(p,v){let _=0;for(let N=0;N<65536;++N)(N==0||p[N>>3]&1<<(N&7))&&(v[_++]=N);const C=_-1;for(;_<65536;)v[_++]=0;return C}function k(p){for(let v=0;v<16384;v++)p[v]={},p[v].len=0,p[v].lit=0,p[v].p=null}const L={l:0,c:0,lc:0};function V(p,v,_,C,N){for(;_<p;)v=v<<8|Ws(C,N),_+=8;_-=p,L.l=v>>_&(1<<p)-1,L.c=v,L.lc=_}const G=new Array(59);function Q(p){for(let _=0;_<=58;++_)G[_]=0;for(let _=0;_<65537;++_)G[p[_]]+=1;let v=0;for(let _=58;_>0;--_){const C=v+G[_]>>1;G[_]=v,v=C}for(let _=0;_<65537;++_){const C=p[_];C>0&&(p[_]=C|G[C]++<<6)}}function J(p,v,_,C,N,F){const U=v;let j=0,E=0;for(;C<=N;C++){if(U.value-v.value>_)return!1;V(6,j,E,p,U);const B=L.l;if(j=L.c,E=L.lc,F[C]=B,B==63){if(U.value-v.value>_)throw new Error(\"Something wrong with hufUnpackEncTable\");V(8,j,E,p,U);let z=L.l+6;if(j=L.c,E=L.lc,C+z>N+1)throw new Error(\"Something wrong with hufUnpackEncTable\");for(;z--;)F[C++]=0;C--}else if(B>=59){let z=B-59+2;if(C+z>N+1)throw new Error(\"Something wrong with hufUnpackEncTable\");for(;z--;)F[C++]=0;C--}}Q(F)}function me(p){return p&63}function Ce(p){return p>>6}function ge(p,v,_,C){for(;v<=_;v++){const N=Ce(p[v]),F=me(p[v]);if(N>>F)throw new Error(\"Invalid table entry\");if(F>14){const U=C[N>>F-14];if(U.len)throw new Error(\"Invalid table entry\");if(U.lit++,U.p){const j=U.p;U.p=new Array(U.lit);for(let E=0;E<U.lit-1;++E)U.p[E]=j[E]}else U.p=new Array(1);U.p[U.lit-1]=v}else if(F){let U=0;for(let j=1<<14-F;j>0;j--){const E=C[(N<<14-F)+U];if(E.len||E.p)throw new Error(\"Invalid table entry\");E.len=F,E.lit=v,U++}}}return!0}const ye={c:0,lc:0};function nt(p,v,_,C){p=p<<8|Ws(_,C),v+=8,ye.c=p,ye.lc=v}const we={c:0,lc:0};function Te(p,v,_,C,N,F,U,j,E){if(p==v){C<8&&(nt(_,C,N,F),_=ye.c,C=ye.lc),C-=8;let B=_>>C;if(B=new Uint8Array([B])[0],j.value+B>E)return!1;const z=U[j.value-1];for(;B-- >0;)U[j.value++]=z}else if(j.value<E)U[j.value++]=p;else return!1;we.c=_,we.lc=C}function ut(p){return p&65535}function _t(p){const v=ut(p);return v>32767?v-65536:v}const ue={a:0,b:0};function rt(p,v){const _=_t(p),N=_t(v),F=_+(N&1)+(N>>1),U=F,j=F-N;ue.a=U,ue.b=j}function ht(p,v){const _=ut(p),C=ut(v),N=_-(C>>1)&65535,F=C+N-32768&65535;ue.a=F,ue.b=N}function Hn(p,v,_,C,N,F,U){const j=U<16384,E=_>N?N:_;let B=1,z,q;for(;B<=E;)B<<=1;for(B>>=1,z=B,B>>=1;B>=1;){q=0;const X=q+F*(N-z),Z=F*B,ee=F*z,Y=C*B,$=C*z;let re,he,xe,Ge;for(;q<=X;q+=ee){let ve=q;const oe=q+C*(_-z);for(;ve<=oe;ve+=$){const Ie=ve+Y,Ke=ve+Z,Pe=Ke+Y;j?(rt(p[ve+v],p[Ke+v]),re=ue.a,xe=ue.b,rt(p[Ie+v],p[Pe+v]),he=ue.a,Ge=ue.b,rt(re,he),p[ve+v]=ue.a,p[Ie+v]=ue.b,rt(xe,Ge),p[Ke+v]=ue.a,p[Pe+v]=ue.b):(ht(p[ve+v],p[Ke+v]),re=ue.a,xe=ue.b,ht(p[Ie+v],p[Pe+v]),he=ue.a,Ge=ue.b,ht(re,he),p[ve+v]=ue.a,p[Ie+v]=ue.b,ht(xe,Ge),p[Ke+v]=ue.a,p[Pe+v]=ue.b)}if(_&B){const Ie=ve+Z;j?rt(p[ve+v],p[Ie+v]):ht(p[ve+v],p[Ie+v]),re=ue.a,p[Ie+v]=ue.b,p[ve+v]=re}}if(N&B){let ve=q;const oe=q+C*(_-z);for(;ve<=oe;ve+=$){const Ie=ve+Y;j?rt(p[ve+v],p[Ie+v]):ht(p[ve+v],p[Ie+v]),re=ue.a,p[Ie+v]=ue.b,p[ve+v]=re}}z=B,B>>=1}return q}function ti(p,v,_,C,N,F,U,j,E){let B=0,z=0;const q=U,X=Math.trunc(C.value+(N+7)/8);for(;C.value<X;)for(nt(B,z,_,C),B=ye.c,z=ye.lc;z>=14;){const ee=B>>z-14&16383,Y=v[ee];if(Y.len)z-=Y.len,Te(Y.lit,F,B,z,_,C,j,E,q),B=we.c,z=we.lc;else{if(!Y.p)throw new Error(\"hufDecode issues\");let $;for($=0;$<Y.lit;$++){const re=me(p[Y.p[$]]);for(;z<re&&C.value<X;)nt(B,z,_,C),B=ye.c,z=ye.lc;if(z>=re&&Ce(p[Y.p[$]])==(B>>z-re&(1<<re)-1)){z-=re,Te(Y.p[$],F,B,z,_,C,j,E,q),B=we.c,z=we.lc;break}}if($==Y.lit)throw new Error(\"hufDecode issues\")}}const Z=8-N&7;for(B>>=Z,z-=Z;z>0;){const ee=v[B<<14-z&16383];if(ee.len)z-=ee.len,Te(ee.lit,F,B,z,_,C,j,E,q),B=we.c,z=we.lc;else throw new Error(\"hufDecode issues\")}return!0}function mn(p,v,_,C,N,F){const U={value:0},j=_.value,E=Ye(v,_),B=Ye(v,_);_.value+=4;const z=Ye(v,_);if(_.value+=4,E<0||E>=65537||B<0||B>=65537)throw new Error(\"Something wrong with HUF_ENCSIZE\");const q=new Array(65537),X=new Array(16384);k(X);const Z=C-(_.value-j);if(J(p,_,Z,E,B,q),z>8*(C-(_.value-j)))throw new Error(\"Something wrong with hufUncompress\");ge(q,E,B,X),ti(q,X,p,_,z,B,F,N,U)}function er(p,v,_){for(let C=0;C<_;++C)v[C]=p[v[C]]}function gn(p){for(let v=1;v<p.length;v++){const _=p[v-1]+p[v]-128;p[v]=_}}function Es(p,v){let _=0,C=Math.floor((p.length+1)/2),N=0;const F=p.length-1;for(;!(N>F||(v[N++]=p[_++],N>F));)v[N++]=p[C++]}function Gs(p){let v=p.byteLength;const _=new Array;let C=0;const N=new DataView(p);for(;v>0;){const F=N.getInt8(C++);if(F<0){const U=-F;v-=U+1;for(let j=0;j<U;j++)_.push(N.getUint8(C++))}else{const U=F;v-=2;const j=N.getUint8(C++);for(let E=0;E<U+1;E++)_.push(j)}}return _}function mh(p,v,_,C,N,F){let U=new DataView(F.buffer);const j=_[p.idx[0]].width,E=_[p.idx[0]].height,B=3,z=Math.floor(j/8),q=Math.ceil(j/8),X=Math.ceil(E/8),Z=j-(q-1)*8,ee=E-(X-1)*8,Y={value:0},$=new Array(B),re=new Array(B),he=new Array(B),xe=new Array(B),Ge=new Array(B);for(let oe=0;oe<B;++oe)Ge[oe]=v[p.idx[oe]],$[oe]=oe<1?0:$[oe-1]+q*X,re[oe]=new Float32Array(64),he[oe]=new Uint16Array(64),xe[oe]=new Uint16Array(q*64);for(let oe=0;oe<X;++oe){let Ie=8;oe==X-1&&(Ie=ee);let Ke=8;for(let ae=0;ae<q;++ae){ae==q-1&&(Ke=Z);for(let fe=0;fe<B;++fe)he[fe].fill(0),he[fe][0]=N[$[fe]++],gh(Y,C,he[fe]),vh(he[fe],re[fe]),yh(re[fe]);xh(re);for(let fe=0;fe<B;++fe)bh(re[fe],xe[fe],ae*64)}let Pe=0;for(let ae=0;ae<B;++ae){const fe=_[p.idx[ae]].type;for(let ft=8*oe;ft<8*oe+Ie;++ft){Pe=Ge[ae][ft];for(let yn=0;yn<z;++yn){const it=yn*64+(ft&7)*8;U.setUint16(Pe+0*2*fe,xe[ae][it+0],!0),U.setUint16(Pe+1*2*fe,xe[ae][it+1],!0),U.setUint16(Pe+2*2*fe,xe[ae][it+2],!0),U.setUint16(Pe+3*2*fe,xe[ae][it+3],!0),U.setUint16(Pe+4*2*fe,xe[ae][it+4],!0),U.setUint16(Pe+5*2*fe,xe[ae][it+5],!0),U.setUint16(Pe+6*2*fe,xe[ae][it+6],!0),U.setUint16(Pe+7*2*fe,xe[ae][it+7],!0),Pe+=8*2*fe}}if(z!=q)for(let ft=8*oe;ft<8*oe+Ie;++ft){const yn=Ge[ae][ft]+8*z*2*fe,it=z*64+(ft&7)*8;for(let nr=0;nr<Ke;++nr)U.setUint16(yn+nr*2*fe,xe[ae][it+nr],!0)}}}const ve=new Uint16Array(j);U=new DataView(F.buffer);for(let oe=0;oe<B;++oe){_[p.idx[oe]].decoded=!0;const Ie=_[p.idx[oe]].type;if(_[oe].type==2)for(let Ke=0;Ke<E;++Ke){const Pe=Ge[oe][Ke];for(let ae=0;ae<j;++ae)ve[ae]=U.getUint16(Pe+ae*2*Ie,!0);for(let ae=0;ae<j;++ae)U.setFloat32(Pe+ae*2*Ie,K(ve[ae]),!0)}}}function gh(p,v,_){let C,N=1;for(;N<64;)C=v[p.value],C==65280?N=64:C>>8==255?N+=C&255:(_[N]=C,N++),p.value++}function vh(p,v){v[0]=K(p[0]),v[1]=K(p[1]),v[2]=K(p[5]),v[3]=K(p[6]),v[4]=K(p[14]),v[5]=K(p[15]),v[6]=K(p[27]),v[7]=K(p[28]),v[8]=K(p[2]),v[9]=K(p[4]),v[10]=K(p[7]),v[11]=K(p[13]),v[12]=K(p[16]),v[13]=K(p[26]),v[14]=K(p[29]),v[15]=K(p[42]),v[16]=K(p[3]),v[17]=K(p[8]),v[18]=K(p[12]),v[19]=K(p[17]),v[20]=K(p[25]),v[21]=K(p[30]),v[22]=K(p[41]),v[23]=K(p[43]),v[24]=K(p[9]),v[25]=K(p[11]),v[26]=K(p[18]),v[27]=K(p[24]),v[28]=K(p[31]),v[29]=K(p[40]),v[30]=K(p[44]),v[31]=K(p[53]),v[32]=K(p[10]),v[33]=K(p[19]),v[34]=K(p[23]),v[35]=K(p[32]),v[36]=K(p[39]),v[37]=K(p[45]),v[38]=K(p[52]),v[39]=K(p[54]),v[40]=K(p[20]),v[41]=K(p[22]),v[42]=K(p[33]),v[43]=K(p[38]),v[44]=K(p[46]),v[45]=K(p[51]),v[46]=K(p[55]),v[47]=K(p[60]),v[48]=K(p[21]),v[49]=K(p[34]),v[50]=K(p[37]),v[51]=K(p[47]),v[52]=K(p[50]),v[53]=K(p[56]),v[54]=K(p[59]),v[55]=K(p[61]),v[56]=K(p[35]),v[57]=K(p[36]),v[58]=K(p[48]),v[59]=K(p[49]),v[60]=K(p[57]),v[61]=K(p[58]),v[62]=K(p[62]),v[63]=K(p[63])}function yh(p){const v=.5*Math.cos(.7853975),_=.5*Math.cos(3.14159/16),C=.5*Math.cos(3.14159/8),N=.5*Math.cos(3*3.14159/16),F=.5*Math.cos(5*3.14159/16),U=.5*Math.cos(3*3.14159/8),j=.5*Math.cos(7*3.14159/16),E=new Array(4),B=new Array(4),z=new Array(4),q=new Array(4);for(let X=0;X<8;++X){const Z=X*8;E[0]=C*p[Z+2],E[1]=U*p[Z+2],E[2]=C*p[Z+6],E[3]=U*p[Z+6],B[0]=_*p[Z+1]+N*p[Z+3]+F*p[Z+5]+j*p[Z+7],B[1]=N*p[Z+1]-j*p[Z+3]-_*p[Z+5]-F*p[Z+7],B[2]=F*p[Z+1]-_*p[Z+3]+j*p[Z+5]+N*p[Z+7],B[3]=j*p[Z+1]-F*p[Z+3]+N*p[Z+5]-_*p[Z+7],z[0]=v*(p[Z+0]+p[Z+4]),z[3]=v*(p[Z+0]-p[Z+4]),z[1]=E[0]+E[3],z[2]=E[1]-E[2],q[0]=z[0]+z[1],q[1]=z[3]+z[2],q[2]=z[3]-z[2],q[3]=z[0]-z[1],p[Z+0]=q[0]+B[0],p[Z+1]=q[1]+B[1],p[Z+2]=q[2]+B[2],p[Z+3]=q[3]+B[3],p[Z+4]=q[3]-B[3],p[Z+5]=q[2]-B[2],p[Z+6]=q[1]-B[1],p[Z+7]=q[0]-B[0]}for(let X=0;X<8;++X)E[0]=C*p[16+X],E[1]=U*p[16+X],E[2]=C*p[48+X],E[3]=U*p[48+X],B[0]=_*p[8+X]+N*p[24+X]+F*p[40+X]+j*p[56+X],B[1]=N*p[8+X]-j*p[24+X]-_*p[40+X]-F*p[56+X],B[2]=F*p[8+X]-_*p[24+X]+j*p[40+X]+N*p[56+X],B[3]=j*p[8+X]-F*p[24+X]+N*p[40+X]-_*p[56+X],z[0]=v*(p[X]+p[32+X]),z[3]=v*(p[X]-p[32+X]),z[1]=E[0]+E[3],z[2]=E[1]-E[2],q[0]=z[0]+z[1],q[1]=z[3]+z[2],q[2]=z[3]-z[2],q[3]=z[0]-z[1],p[0+X]=q[0]+B[0],p[8+X]=q[1]+B[1],p[16+X]=q[2]+B[2],p[24+X]=q[3]+B[3],p[32+X]=q[3]-B[3],p[40+X]=q[2]-B[2],p[48+X]=q[1]-B[1],p[56+X]=q[0]-B[0]}function xh(p){for(let v=0;v<64;++v){const _=p[0][v],C=p[1][v],N=p[2][v];p[0][v]=_+1.5747*N,p[1][v]=_-.1873*C-.4682*N,p[2][v]=_+1.8556*C}}function bh(p,v,_){for(let C=0;C<64;++C)v[_+C]=h.DataUtils.toHalfFloat(wh(p[C]))}function wh(p){return p<=1?Math.sign(p)*Math.pow(Math.abs(p),2.2):Math.sign(p)*Math.pow(R,Math.abs(p)-1)}function ni(p){return new DataView(p.array.buffer,p.offset.value,p.size)}function _h(p){const v=p.viewer.buffer.slice(p.offset.value,p.offset.value+p.size),_=new Uint8Array(Gs(v)),C=new Uint8Array(_.length);return gn(_),Es(_,C),new DataView(C.buffer)}function ri(p){const v=p.array.slice(p.offset.value,p.offset.value+p.size),_=Yn(v),C=new Uint8Array(_.length);return gn(_),Es(_,C),new DataView(C.buffer)}function Th(p){const v=p.viewer,_={value:p.offset.value},C=new Uint16Array(p.columns*p.lines*(p.inputChannels.length*p.type)),N=new Uint8Array(8192);let F=0;const U=new Array(p.inputChannels.length);for(let ee=0,Y=p.inputChannels.length;ee<Y;ee++)U[ee]={},U[ee].start=F,U[ee].end=U[ee].start,U[ee].nx=p.columns,U[ee].ny=p.lines,U[ee].size=p.type,F+=U[ee].nx*U[ee].ny*U[ee].size;const j=vn(v,_),E=vn(v,_);if(E>=8192)throw new Error(\"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE\");if(j<=E)for(let ee=0;ee<E-j+1;ee++)N[ee+j]=Tt(v,_);const B=new Uint16Array(65536),z=O(N,B),q=Ye(v,_);mn(p.array,v,_,q,C,F);for(let ee=0;ee<p.inputChannels.length;++ee){const Y=U[ee];for(let $=0;$<U[ee].size;++$)Hn(C,Y.start+$,Y.nx,Y.size,Y.ny,Y.nx*Y.size,z)}er(B,C,F);let X=0;const Z=new Uint8Array(C.buffer.byteLength);for(let ee=0;ee<p.lines;ee++)for(let Y=0;Y<p.inputChannels.length;Y++){const $=U[Y],re=$.nx*$.size,he=new Uint8Array(C.buffer,$.end*2,re*2);Z.set(he,X),X+=re*2,$.end+=re}return new DataView(Z.buffer)}function Sh(p){const v=p.array.slice(p.offset.value,p.offset.value+p.size),_=Yn(v),C=p.inputChannels.length*p.lines*p.columns*p.totalBytes,N=new ArrayBuffer(C),F=new DataView(N);let U=0,j=0;const E=new Array(4);for(let B=0;B<p.lines;B++)for(let z=0;z<p.inputChannels.length;z++){let q=0;switch(p.inputChannels[z].pixelType){case 1:E[0]=U,E[1]=E[0]+p.columns,U=E[1]+p.columns;for(let Z=0;Z<p.columns;++Z){const ee=_[E[0]++]<<8|_[E[1]++];q+=ee,F.setUint16(j,q,!0),j+=2}break;case 2:E[0]=U,E[1]=E[0]+p.columns,E[2]=E[1]+p.columns,U=E[2]+p.columns;for(let Z=0;Z<p.columns;++Z){const ee=_[E[0]++]<<24|_[E[1]++]<<16|_[E[2]++]<<8;q+=ee,F.setUint32(j,q,!0),j+=4}break}}return F}function Vs(p){const v=p.viewer,_={value:p.offset.value},C=new Uint8Array(p.columns*p.lines*(p.inputChannels.length*p.type*2)),N={version:Ee(v,_),unknownUncompressedSize:Ee(v,_),unknownCompressedSize:Ee(v,_),acCompressedSize:Ee(v,_),dcCompressedSize:Ee(v,_),rleCompressedSize:Ee(v,_),rleUncompressedSize:Ee(v,_),rleRawSize:Ee(v,_),totalAcUncompressedCount:Ee(v,_),totalDcUncompressedCount:Ee(v,_),acCompression:Ee(v,_)};if(N.version<2)throw new Error(\"EXRLoader.parse: \"+Ft.compression+\" version \"+N.version+\" is unsupported\");const F=new Array;let U=vn(v,_)-2;for(;U>0;){const Y=tr(v.buffer,_),$=Tt(v,_),re=$>>2&3,he=($>>4)-1,xe=new Int8Array([he])[0],Ge=Tt(v,_);F.push({name:Y,index:xe,type:Ge,compression:re}),U-=Y.length+3}const j=Ft.channels,E=new Array(p.inputChannels.length);for(let Y=0;Y<p.inputChannels.length;++Y){const $=E[Y]={},re=j[Y];$.name=re.name,$.compression=0,$.decoded=!1,$.type=re.pixelType,$.pLinear=re.pLinear,$.width=p.columns,$.height=p.lines}const B={idx:new Array(3)};for(let Y=0;Y<p.inputChannels.length;++Y){const $=E[Y];for(let re=0;re<F.length;++re){const he=F[re];$.name==he.name&&($.compression=he.compression,he.index>=0&&(B.idx[he.index]=Y),$.offset=Y)}}let z,q,X;if(N.acCompressedSize>0)switch(N.acCompression){case 0:z=new Uint16Array(N.totalAcUncompressedCount),mn(p.array,v,_,N.acCompressedSize,z,N.totalAcUncompressedCount);break;case 1:const Y=p.array.slice(_.value,_.value+N.totalAcUncompressedCount),$=Yn(Y);z=new Uint16Array($.buffer),_.value+=N.totalAcUncompressedCount;break}if(N.dcCompressedSize>0){const Y={array:p.array,offset:_,size:N.dcCompressedSize};q=new Uint16Array(ri(Y).buffer),_.value+=N.dcCompressedSize}if(N.rleRawSize>0){const Y=p.array.slice(_.value,_.value+N.rleCompressedSize),$=Yn(Y);X=Gs($.buffer),_.value+=N.rleCompressedSize}let Z=0;const ee=new Array(E.length);for(let Y=0;Y<ee.length;++Y)ee[Y]=new Array;for(let Y=0;Y<p.lines;++Y)for(let $=0;$<E.length;++$)ee[$].push(Z),Z+=E[$].width*p.type*2;mh(B,ee,E,z,q,C);for(let Y=0;Y<E.length;++Y){const $=E[Y];if(!$.decoded)switch($.compression){case 2:let re=0,he=0;for(let xe=0;xe<p.lines;++xe){let Ge=ee[Y][re];for(let ve=0;ve<$.width;++ve){for(let oe=0;oe<2*$.type;++oe)C[Ge++]=X[he+oe*$.width*$.height];he++}re++}break;case 1:default:throw new Error(\"EXRLoader.parse: unsupported channel compression\")}}return new DataView(C.buffer)}function tr(p,v){const _=new Uint8Array(p);let C=0;for(;_[v.value+C]!=0;)C+=1;const N=new TextDecoder().decode(_.slice(v.value,v.value+C));return v.value=v.value+C+1,N}function Mh(p,v,_){const C=new TextDecoder().decode(new Uint8Array(p).slice(v.value,v.value+_));return v.value=v.value+_,C}function Ah(p,v){const _=Ze(p,v),C=Ye(p,v);return[_,C]}function Ih(p,v){const _=Ye(p,v),C=Ye(p,v);return[_,C]}function Ze(p,v){const _=p.getInt32(v.value,!0);return v.value=v.value+4,_}function Ye(p,v){const _=p.getUint32(v.value,!0);return v.value=v.value+4,_}function Ws(p,v){const _=p[v.value];return v.value=v.value+1,_}function Tt(p,v){const _=p.getUint8(v.value);return v.value=v.value+1,_}const Ee=function(p,v){let _;return\"getBigInt64\"in DataView.prototype?_=Number(p.getBigInt64(v.value,!0)):_=p.getUint32(v.value+4,!0)+Number(p.getUint32(v.value,!0)<<32),v.value+=8,_};function De(p,v){const _=p.getFloat32(v.value,!0);return v.value+=4,_}function Ch(p,v){return h.DataUtils.toHalfFloat(De(p,v))}function K(p){const v=(p&31744)>>10,_=p&1023;return(p>>15?-1:1)*(v?v===31?_?NaN:1/0:Math.pow(2,v-15)*(1+_/1024):6103515625e-14*(_/1024))}function vn(p,v){const _=p.getUint16(v.value,!0);return v.value+=2,_}function Ph(p,v){return K(vn(p,v))}function Dh(p,v,_,C){const N=_.value,F=[];for(;_.value<N+C-1;){const U=tr(v,_),j=Ze(p,_),E=Tt(p,_);_.value+=3;const B=Ze(p,_),z=Ze(p,_);F.push({name:U,pixelType:j,pLinear:E,xSampling:B,ySampling:z})}return _.value+=1,F}function Fh(p,v){const _=De(p,v),C=De(p,v),N=De(p,v),F=De(p,v),U=De(p,v),j=De(p,v),E=De(p,v),B=De(p,v);return{redX:_,redY:C,greenX:N,greenY:F,blueX:U,blueY:j,whiteX:E,whiteY:B}}function Rh(p,v){const _=[\"NO_COMPRESSION\",\"RLE_COMPRESSION\",\"ZIPS_COMPRESSION\",\"ZIP_COMPRESSION\",\"PIZ_COMPRESSION\",\"PXR24_COMPRESSION\",\"B44_COMPRESSION\",\"B44A_COMPRESSION\",\"DWAA_COMPRESSION\",\"DWAB_COMPRESSION\"],C=Tt(p,v);return _[C]}function Oh(p,v){const _=Ze(p,v),C=Ze(p,v),N=Ze(p,v),F=Ze(p,v);return{xMin:_,yMin:C,xMax:N,yMax:F}}function Lh(p,v){const _=[\"INCREASING_Y\",\"DECREASING_Y\",\"RANDOM_Y\"],C=Tt(p,v);return _[C]}function Nh(p,v){const _=[\"ENVMAP_LATLONG\",\"ENVMAP_CUBE\"],C=Tt(p,v);return _[C]}function kh(p,v){const _=[\"ONE_LEVEL\",\"MIPMAP_LEVELS\",\"RIPMAP_LEVELS\"],C=[\"ROUND_DOWN\",\"ROUND_UP\"],N=Ye(p,v),F=Ye(p,v),U=Tt(p,v);return{xSize:N,ySize:F,levelMode:_[U&15],roundingMode:C[U>>4]}}function zh(p,v){const _=De(p,v),C=De(p,v);return[_,C]}function Bh(p,v){const _=De(p,v),C=De(p,v),N=De(p,v);return[_,C,N]}function Uh(p,v,_,C,N){if(C===\"string\"||C===\"stringvector\"||C===\"iccProfile\")return Mh(v,_,N);if(C===\"chlist\")return Dh(p,v,_,N);if(C===\"chromaticities\")return Fh(p,_);if(C===\"compression\")return Rh(p,_);if(C===\"box2i\")return Oh(p,_);if(C===\"envmap\")return Nh(p,_);if(C===\"tiledesc\")return kh(p,_);if(C===\"lineOrder\")return Lh(p,_);if(C===\"float\")return De(p,_);if(C===\"v2f\")return zh(p,_);if(C===\"v3f\")return Bh(p,_);if(C===\"int\")return Ze(p,_);if(C===\"rational\")return Ah(p,_);if(C===\"timecode\")return Ih(p,_);if(C===\"preview\")return _.value+=N,\"skipped\";_.value+=N}function Eh(p,v){const _=Math.log2(p);return v==\"ROUND_DOWN\"?Math.floor(_):Math.ceil(_)}function Gh(p,v,_){let C=0;switch(p.levelMode){case\"ONE_LEVEL\":C=1;break;case\"MIPMAP_LEVELS\":C=Eh(Math.max(v,_),p.roundingMode)+1;break;case\"RIPMAP_LEVELS\":throw new Error(\"THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.\")}return C}function js(p,v,_,C){const N=new Array(p);for(let F=0;F<p;F++){const U=1<<F;let j=v/U|0;C==\"ROUND_UP\"&&j*U<v&&(j+=1);const E=Math.max(j,1);N[F]=(E+_-1)/_|0}return N}function Vh(){const p=this,v=p.offset,_={value:0};for(let C=0;C<p.tileCount;C++){const N=Ze(p.viewer,v),F=Ze(p.viewer,v);v.value+=8,p.size=Ye(p.viewer,v);const U=N*p.blockWidth,j=F*p.blockHeight;p.columns=U+p.blockWidth>p.width?p.width-U:p.blockWidth,p.lines=j+p.blockHeight>p.height?p.height-j:p.blockHeight;const E=p.columns*p.totalBytes,z=p.size<p.lines*E?p.uncompress(p):ni(p);v.value+=p.size;for(let q=0;q<p.lines;q++){const X=q*p.columns*p.totalBytes;for(let Z=0;Z<p.inputChannels.length;Z++){const ee=Ft.channels[Z].name,Y=p.channelByteOffsets[ee]*p.columns,$=p.decodeChannels[ee];if($===void 0)continue;_.value=X+Y;const re=(p.height-(1+j+q))*p.outLineWidth;for(let he=0;he<p.columns;he++){const xe=re+(he+U)*p.outputChannels+$;p.byteArray[xe]=p.getter(z,_)}}}}}function Wh(){const p=this,v=p.offset,_={value:0};for(let C=0;C<p.height/p.blockHeight;C++){const N=Ze(p.viewer,v)-Ft.dataWindow.yMin;p.size=Ye(p.viewer,v),p.lines=N+p.blockHeight>p.height?p.height-N:p.blockHeight;const F=p.columns*p.totalBytes,j=p.size<p.lines*F?p.uncompress(p):ni(p);v.value+=p.size;for(let E=0;E<p.blockHeight;E++){const B=C*p.blockHeight,z=E+p.scanOrder(B);if(z>=p.height)continue;const q=E*F,X=(p.height-1-z)*p.outLineWidth;for(let Z=0;Z<p.inputChannels.length;Z++){const ee=Ft.channels[Z].name,Y=p.channelByteOffsets[ee]*p.columns,$=p.decodeChannels[ee];if($!==void 0){_.value=q+Y;for(let re=0;re<p.columns;re++){const he=X+re*p.outputChannels+$;p.byteArray[he]=p.getter(j,_)}}}}}}function jh(p,v,_){const C={};if(p.getUint32(0,!0)!=20000630)throw new Error(\"THREE.EXRLoader: Provided file doesn't appear to be in OpenEXR format.\");C.version=p.getUint8(4);const N=p.getUint8(5);C.spec={singleTile:!!(N&2),longName:!!(N&4),deepFormat:!!(N&8),multiPart:!!(N&16)},_.value=8;let F=!0;for(;F;){const U=tr(v,_);if(U===\"\")F=!1;else{const j=tr(v,_),E=Ye(p,_),B=Uh(p,v,_,j,E);B===void 0?console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${j}'.`):C[U]=B}}if((N&-7)!=0)throw console.error(\"THREE.EXRHeader:\",C),new Error(\"THREE.EXRLoader: Provided file is currently unsupported.\");return C}function qh(p,v,_,C,N){const F={size:0,viewer:v,array:_,offset:C,width:p.dataWindow.xMax-p.dataWindow.xMin+1,height:p.dataWindow.yMax-p.dataWindow.yMin+1,inputChannels:p.channels,channelByteOffsets:{},scanOrder:null,totalBytes:null,columns:null,lines:null,type:null,uncompress:null,getter:null,format:null,colorSpace:h.LinearSRGBColorSpace};switch(p.compression){case\"NO_COMPRESSION\":F.blockHeight=1,F.uncompress=ni;break;case\"RLE_COMPRESSION\":F.blockHeight=1,F.uncompress=_h;break;case\"ZIPS_COMPRESSION\":F.blockHeight=1,F.uncompress=ri;break;case\"ZIP_COMPRESSION\":F.blockHeight=16,F.uncompress=ri;break;case\"PIZ_COMPRESSION\":F.blockHeight=32,F.uncompress=Th;break;case\"PXR24_COMPRESSION\":F.blockHeight=16,F.uncompress=Sh;break;case\"DWAA_COMPRESSION\":F.blockHeight=32,F.uncompress=Vs;break;case\"DWAB_COMPRESSION\":F.blockHeight=256,F.uncompress=Vs;break;default:throw new Error(\"EXRLoader.parse: \"+p.compression+\" is unsupported\")}const U={};for(const z of p.channels)switch(z.name){case\"Y\":case\"R\":case\"G\":case\"B\":case\"A\":U[z.name]=!0,F.type=z.pixelType}let j=!1;if(U.R&&U.G&&U.B)j=!U.A,F.outputChannels=4,F.decodeChannels={R:0,G:1,B:2,A:3};else if(U.Y)F.outputChannels=1,F.decodeChannels={Y:0};else throw new Error(\"EXRLoader.parse: file contains unsupported data channels.\");if(F.type==1)switch(N){case h.FloatType:F.getter=Ph;break;case h.HalfFloatType:F.getter=vn;break}else if(F.type==2)switch(N){case h.FloatType:F.getter=De;break;case h.HalfFloatType:F.getter=Ch}else throw new Error(\"EXRLoader.parse: unsupported pixelType \"+F.type+\" for \"+p.compression+\".\");F.columns=F.width;const E=F.width*F.height*F.outputChannels;switch(N){case h.FloatType:F.byteArray=new Float32Array(E),j&&F.byteArray.fill(1,0,E);break;case h.HalfFloatType:F.byteArray=new Uint16Array(E),j&&F.byteArray.fill(15360,0,E);break;default:console.error(\"THREE.EXRLoader: unsupported type: \",N);break}let B=0;for(const z of p.channels)F.decodeChannels[z.name]!==void 0&&(F.channelByteOffsets[z.name]=B),B+=z.pixelType*2;if(F.totalBytes=B,F.outLineWidth=F.width*F.outputChannels,p.lineOrder===\"INCREASING_Y\"?F.scanOrder=z=>z:F.scanOrder=z=>F.height-1-z,F.outputChannels==4?(F.format=h.RGBAFormat,F.colorSpace=h.LinearSRGBColorSpace):(F.format=h.RedFormat,F.colorSpace=h.NoColorSpace),p.spec.singleTile){F.blockHeight=p.tiles.ySize,F.blockWidth=p.tiles.xSize;const z=Gh(p.tiles,F.width,F.height),q=js(z,F.width,p.tiles.xSize,p.tiles.roundingMode),X=js(z,F.height,p.tiles.ySize,p.tiles.roundingMode);F.tileCount=q[0]*X[0];for(let Z=0;Z<z;Z++)for(let ee=0;ee<X[Z];ee++)for(let Y=0;Y<q[Z];Y++)Ee(v,C);F.decode=Vh.bind(F)}else{F.blockWidth=F.width;const z=Math.ceil(F.height/F.blockHeight);for(let q=0;q<z;q++)Ee(v,C);F.decode=Wh.bind(F)}return F}const qs={value:0},Zs=new DataView(e),Zh=new Uint8Array(e),Ft=jh(Zs,e,qs),Ht=qh(Ft,Zs,Zh,qs,this.type);return Ht.decode(),{header:Ft,width:Ht.width,height:Ht.height,data:Ht.byteArray,format:Ht.format,colorSpace:Ht.colorSpace,type:this.type}}setDataType(e){return this.type=e,this}load(e,t,n,r){function o(i,a){i.colorSpace=a.colorSpace,i.minFilter=h.LinearFilter,i.magFilter=h.LinearFilter,i.generateMipmaps=!1,i.flipY=!1,t&&t(i,a)}return super.load(e,o,n,r)}}class gu extends h.DataTextureLoader{constructor(e){super(e),this.type=h.HalfFloatType}parse(e){const i=function(D,R){switch(D){case 1:throw new Error(\"THREE.RGBELoader: Read Error: \"+(R||\"\"));case 2:throw new Error(\"THREE.RGBELoader: Write Error: \"+(R||\"\"));case 3:throw new Error(\"THREE.RGBELoader: Bad File Format: \"+(R||\"\"));default:case 4:throw new Error(\"THREE.RGBELoader: Memory Error: \"+(R||\"\"))}},d=`\n`,u=function(D,R,O){R=R||1024;let L=D.pos,V=-1,G=0,Q=\"\",J=String.fromCharCode.apply(null,new Uint16Array(D.subarray(L,L+128)));for(;0>(V=J.indexOf(d))&&G<R&&L<D.byteLength;)Q+=J,G+=J.length,L+=128,J+=String.fromCharCode.apply(null,new Uint16Array(D.subarray(L,L+128)));return-1<V?(D.pos+=G+V+1,Q+J.slice(0,V)):!1},l=function(D){const R=/^#\\?(\\S+)/,O=/^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,k=/^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,L=/^\\s*FORMAT=(\\S+)\\s*$/,V=/^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/,G={valid:0,string:\"\",comments:\"\",programtype:\"RGBE\",format:\"\",gamma:1,exposure:1,width:0,height:0};let Q,J;for((D.pos>=D.byteLength||!(Q=u(D)))&&i(1,\"no header found\"),(J=Q.match(R))||i(3,\"bad initial token\"),G.valid|=1,G.programtype=J[1],G.string+=Q+`\n`;Q=u(D),Q!==!1;){if(G.string+=Q+`\n`,Q.charAt(0)===\"#\"){G.comments+=Q+`\n`;continue}if((J=Q.match(O))&&(G.gamma=parseFloat(J[1])),(J=Q.match(k))&&(G.exposure=parseFloat(J[1])),(J=Q.match(L))&&(G.valid|=2,G.format=J[1]),(J=Q.match(V))&&(G.valid|=4,G.height=parseInt(J[1],10),G.width=parseInt(J[2],10)),G.valid&2&&G.valid&4)break}return G.valid&2||i(3,\"missing format specifier\"),G.valid&4||i(3,\"missing image size specifier\"),G},g=function(D,R,O){const k=R;if(k<8||k>32767||D[0]!==2||D[1]!==2||D[2]&128)return new Uint8Array(D);k!==(D[2]<<8|D[3])&&i(3,\"wrong scanline width\");const L=new Uint8Array(4*R*O);L.length||i(4,\"unable to allocate buffer space\");let V=0,G=0;const Q=4*k,J=new Uint8Array(4),me=new Uint8Array(Q);let Ce=O;for(;Ce>0&&G<D.byteLength;){G+4>D.byteLength&&i(1),J[0]=D[G++],J[1]=D[G++],J[2]=D[G++],J[3]=D[G++],(J[0]!=2||J[1]!=2||(J[2]<<8|J[3])!=k)&&i(3,\"bad rgbe scanline format\");let ge=0,ye;for(;ge<Q&&G<D.byteLength;){ye=D[G++];const we=ye>128;if(we&&(ye-=128),(ye===0||ge+ye>Q)&&i(3,\"bad scanline data\"),we){const Te=D[G++];for(let ut=0;ut<ye;ut++)me[ge++]=Te}else me.set(D.subarray(G,G+ye),ge),ge+=ye,G+=ye}const nt=k;for(let we=0;we<nt;we++){let Te=0;L[V]=me[we+Te],Te+=k,L[V+1]=me[we+Te],Te+=k,L[V+2]=me[we+Te],Te+=k,L[V+3]=me[we+Te],V+=4}Ce--}return L},y=function(D,R,O,k){const L=D[R+3],V=Math.pow(2,L-128)/255;O[k+0]=D[R+0]*V,O[k+1]=D[R+1]*V,O[k+2]=D[R+2]*V,O[k+3]=1},w=function(D,R,O,k){const L=D[R+3],V=Math.pow(2,L-128)/255;O[k+0]=h.DataUtils.toHalfFloat(Math.min(D[R+0]*V,65504)),O[k+1]=h.DataUtils.toHalfFloat(Math.min(D[R+1]*V,65504)),O[k+2]=h.DataUtils.toHalfFloat(Math.min(D[R+2]*V,65504)),O[k+3]=h.DataUtils.toHalfFloat(1)},m=new Uint8Array(e);m.pos=0;const x=l(m),b=x.width,T=x.height,M=g(m.subarray(m.pos),b,T);let A,I,P;switch(this.type){case h.FloatType:P=M.length/4;const D=new Float32Array(P*4);for(let O=0;O<P;O++)y(M,O*4,D,O*4);A=D,I=h.FloatType;break;case h.HalfFloatType:P=M.length/4;const R=new Uint16Array(P*4);for(let O=0;O<P;O++)w(M,O*4,R,O*4);A=R,I=h.HalfFloatType;break;default:throw new Error(\"THREE.RGBELoader: Unsupported type: \"+this.type)}return{width:b,height:T,data:A,header:x.string,gamma:x.gamma,exposure:x.exposure,type:I}}setDataType(e){return this.type=e,this}load(e,t,n,r){function o(i,a){switch(i.type){case h.FloatType:case h.HalfFloatType:i.colorSpace=h.LinearSRGBColorSpace,i.minFilter=h.LinearFilter,i.magFilter=h.LinearFilter,i.generateMipmaps=!1,i.flipY=!0;break}t&&t(i,a)}return super.load(e,o,n,r)}}class vu extends h.Scene{constructor(){super();const e=new h.BoxGeometry;e.deleteAttribute(\"uv\");const t=new h.MeshStandardMaterial({side:h.BackSide}),n=new h.MeshStandardMaterial,r=new h.PointLight(16777215,900,28,2);r.position.set(.418,16.199,.3),this.add(r);const o=new h.Mesh(e,t);o.position.set(-.757,13.219,.717),o.scale.set(31.713,28.305,28.591),this.add(o);const i=new h.InstancedMesh(e,n,6),a=new h.Object3D;a.position.set(-10.906,2.009,1.846),a.rotation.set(0,-.195,0),a.scale.set(2.328,7.905,4.651),a.updateMatrix(),i.setMatrixAt(0,a.matrix),a.position.set(-5.607,-.754,-.758),a.rotation.set(0,.994,0),a.scale.set(1.97,1.534,3.955),a.updateMatrix(),i.setMatrixAt(1,a.matrix),a.position.set(6.167,.857,7.803),a.rotation.set(0,.561,0),a.scale.set(3.927,6.285,3.687),a.updateMatrix(),i.setMatrixAt(2,a.matrix),a.position.set(-2.017,.018,6.124),a.rotation.set(0,.333,0),a.scale.set(2.002,4.566,2.064),a.updateMatrix(),i.setMatrixAt(3,a.matrix),a.position.set(2.291,-.756,-2.621),a.rotation.set(0,-.286,0),a.scale.set(1.546,1.552,1.496),a.updateMatrix(),i.setMatrixAt(4,a.matrix),a.position.set(-2.193,-.369,-5.547),a.rotation.set(0,.516,0),a.scale.set(3.875,3.487,2.986),a.updateMatrix(),i.setMatrixAt(5,a.matrix),this.add(i);const c=new h.Mesh(e,Qt(50));c.position.set(-16.116,14.37,8.208),c.scale.set(.1,2.428,2.739),this.add(c);const f=new h.Mesh(e,Qt(50));f.position.set(-16.109,18.021,-8.207),f.scale.set(.1,2.425,2.751),this.add(f);const d=new h.Mesh(e,Qt(17));d.position.set(14.904,12.198,-1.832),d.scale.set(.15,4.265,6.331),this.add(d);const u=new h.Mesh(e,Qt(43));u.position.set(-.462,8.89,14.52),u.scale.set(4.38,5.441,.088),this.add(u);const l=new h.Mesh(e,Qt(20));l.position.set(3.235,11.486,-12.541),l.scale.set(2.5,2,.1),this.add(l);const g=new h.Mesh(e,Qt(100));g.position.set(0,20,0),g.scale.set(1,.1,1),this.add(g)}dispose(){const e=new Set;this.traverse(t=>{t.isMesh&&(e.add(t.geometry),e.add(t.material))});for(const t of e)t.dispose()}}function Qt(s){const e=new h.MeshBasicMaterial;return e.color.setScalar(s),e}class yu{constructor(){this.pmremGenerator=null,this.loadedTextures=new Map}async initialize(e){var t;try{const n=e.renderer;let r=n.renderer||((t=n.getThreeRenderer)==null?void 0:t.call(n));if(!r&&n.getDomElement){const o=n.getDomElement();if(o&&\"parentElement\"in o&&o.parentElement){const i=o.parentElement.renderer;i instanceof S.WebGLRenderer&&(r=i)}}return r?(this.pmremGenerator=new S.PMREMGenerator(r),this.pmremGenerator.compileEquirectangularShader(),W.ok(void 0)):W.err(new H(\"Could not access Three.js renderer\",te.INITIALIZATION_FAILED))}catch(n){return W.err(new H(\"Failed to initialize environment service\",te.INITIALIZATION_FAILED,{originalError:n}))}}async loadEnvironmentMap(e){var t;try{const n=this.loadedTextures.get(e);if(n)return W.ok(new Jt(n));const r=(t=e.split(\".\").pop())==null?void 0:t.toLowerCase();let o;switch(r){case\"hdr\":o=new gu;break;case\"exr\":o=new mu;break;case\"jpg\":case\"jpeg\":case\"png\":o=new S.TextureLoader;break;default:return W.err(new H(`Unsupported environment map format: ${r}`,te.UNSUPPORTED_FORMAT,{url:e,extension:r}))}const i=await new Promise((a,c)=>{o.load(e,f=>{a(f)},void 0,f=>c(f))});if(this.pmremGenerator){i.mapping=S.EquirectangularReflectionMapping;const a=this.pmremGenerator.fromEquirectangular(i).texture;return this.loadedTextures.set(e,a),this.loadedTextures.set(e+\"_original\",i),W.ok(new Jt(a))}return this.loadedTextures.set(e,i),W.ok(new Jt(i))}catch(n){return W.err(new H(\"Failed to load environment map\",te.TEXTURE_LOAD_FAILED,{url:e,originalError:n}))}}applyToScene(e,t,n){try{if(!(e instanceof St))return W.err(new H(\"Scene must be ThreeSceneAdapter\",te.INVALID_PARAMETER));if(!(t instanceof Jt))return W.err(new H(\"Texture must be ThreeTextureAdapter\",te.INVALID_PARAMETER));const r=e.getThreeScene(),o=t.getThreeTexture();if(r.environment=o,n&&(n.backgroundBlurriness!==void 0&&(r.backgroundBlurriness=n.backgroundBlurriness),n.backgroundIntensity!==void 0&&(r.backgroundIntensity=n.backgroundIntensity),n.environmentIntensity!==void 0&&(r.environmentIntensity=n.environmentIntensity)),o.mapping===S.CubeUVReflectionMapping){const a=Array.from(this.loadedTextures.entries()).find(([c,f])=>c.endsWith(\"_original\")&&f.mapping===S.EquirectangularReflectionMapping);a&&(r.__originalEnvironmentTexture=a[1])}else o.mapping===S.EquirectangularReflectionMapping&&(r.__originalEnvironmentTexture=o);if(o.mapping===S.EquirectangularReflectionMapping)r.background=o;else if(o.mapping===S.CubeUVReflectionMapping){const a=Array.from(this.loadedTextures.entries()).find(([c,f])=>c.endsWith(\"_original\")&&f.mapping===S.EquirectangularReflectionMapping);a?r.background=a[1]:r.background=o}else r.background=o;return W.ok(void 0)}catch(r){return W.err(new H(\"Failed to apply environment to scene\",te.SCENE_OPERATION_FAILED,{originalError:r}))}}getOriginalEnvironmentTexture(e){const t=this.loadedTextures.get(e+\"_original\");return t?new Jt(t):null}createStudioEnvironment(e={}){try{if(!this.pmremGenerator)return W.err(new H(\"Environment service not initialized\",te.INITIALIZATION_FAILED));const t=new vu,n=this.pmremGenerator.fromScene(t).texture;return t.dispose(),W.ok(new Jt(n))}catch(t){return W.err(new H(\"Failed to create studio environment\",te.TEXTURE_LOAD_FAILED,{originalError:t}))}}dispose(){this.loadedTextures.forEach(e=>e.dispose()),this.loadedTextures.clear(),this.pmremGenerator&&(this.pmremGenerator.dispose(),this.pmremGenerator=null)}}class Jt{constructor(e){this.texture=e}get id(){return this.texture.uuid}get image(){return this.texture.image}get needsUpdate(){return this.texture.needsUpdate}set needsUpdate(e){this.texture.needsUpdate=e}dispose(){this.texture.dispose()}getThreeTexture(){return this.texture}}class xu{constructor(e){this.object=e,this.boundingBox=new S.Box3().setFromObject(this.object)}alignToFloor(){const e=this.calculateFloorOffset();this.applyOffset(e)}calculateFloorOffset(){const e=this.boundingBox.min.y,t=this.boundingBox.max.y-e,n=new S.Vector3;return t>0?n.y=-e:n.y=0,n}applyOffset(e){this.object.position.add(e)}}class bu{alignToFloor(e){try{let t=null;return\"getThreeObject\"in e&&typeof e.getThreeObject==\"function\"?t=e.getThreeObject():e instanceof S.Object3D&&(t=e),t?(new xu(t).alignToFloor(),W.ok(void 0)):W.err(new H(\"Could not get Three.js object for floor alignment\",te.INVALID_PARAMETER))}catch(t){return W.err(new H(\"Failed to align object to floor\",te.OPERATION_FAILED,{originalError:t}))}}}var Kn=(s=>(s.MapControls=\"MapControls\",s.OrbitControls=\"OrbitControls\",s))(Kn||{});class wu{static convertRendererOptions(e){const t={antialias:e.antialias,alpha:e.alpha,premultipliedAlpha:e.premultipliedAlpha,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference,pixelRatio:e.pixelRatio};return(e.shadowMapEnabled!==void 0||e.shadowMapType!==void 0)&&(t.shadowMap={enabled:e.shadowMapEnabled??!0,type:this.convertShadowMapType(e.shadowMapType)}),(e.toneMapping!==void 0||e.toneMappingExposure!==void 0)&&(t.toneMapping={type:this.convertToneMappingType(e.toneMapping),exposure:e.toneMappingExposure??1}),t}static convertShadowMapType(e){if(typeof e==\"number\"){if(e===S.BasicShadowMap)return\"basic\";if(e===S.PCFShadowMap)return\"pcf\";if(e===S.PCFSoftShadowMap)return\"pcfsoft\";if(e===S.VSMShadowMap)return\"vsm\"}return typeof e==\"string\"?e:void 0}static convertToneMappingType(e){if(typeof e==\"number\"){if(e===S.NoToneMapping)return\"none\";if(e===S.LinearToneMapping)return\"linear\";if(e===S.ReinhardToneMapping)return\"reinhard\";if(e===S.CineonToneMapping)return\"cineon\";if(e===S.ACESFilmicToneMapping)return\"aces\"}return typeof e==\"string\"?e:\"aces\"}}class _u{static createViewer(e,t){var w;const n=new to(e),r=new St,o=this.createCamera(t),i=this.createControls(o.getThreeCamera(),e,t),a=new Tu().createDefaultLoader(),c=new ia,f=new yu;let d;(((w=t.pathTracing)==null?void 0:w.enabled)??!1)&&(d=new Hl);const l=new bu,g=wu.convertRendererOptions(t.renderer||{}),y={renderer:n,scene:r,camera:o,controls:i,modelLoader:a,options:t,rendererOptions:g,sceneSetupService:c,environmentService:f,pathTracingService:d,floorAlignmentService:l};return new Hs(y)}static createCamera(e){const n=e.camera||{},r=n.fov||n.cameraFov||75,o=n.near||n.cameraNear||.1,i=n.far||n.cameraFar||1e5,a=n.position||n.cameraPosition,c=n.target||n.cameraTarget,f=or.create(r,1,o,i);return a&&f.position.set(a[0],a[1],a[2]),c&&f.lookAt({x:c[0],y:c[1],z:c[2],set:()=>{},copy:()=>{},add:()=>{},multiply:()=>{},normalize:()=>{},length:()=>0}),f}static createControls(e,t,n){const r=n.controls||{},o=r.type||Kn.OrbitControls;let i;o===Kn.MapControls?i=new bi(e,t):i=new xi(e,t),i.enabled=r.enabled??!0,i.enableDamping=r.enableDamping??!0,i.dampingFactor=r.dampingFactor??.25,i.enableZoom=r.enableZoom??!0,i.enableRotate=r.enableRotate??!0,i.enablePan=r.enablePan??!0,r.minDistance!==void 0&&(i.minDistance=r.minDistance),r.maxDistance!==void 0&&(i.maxDistance=r.maxDistance),r.minPolarAngle!==void 0&&(i.minPolarAngle=r.minPolarAngle),r.maxPolarAngle!==void 0&&(i.maxPolarAngle=r.maxPolarAngle);const c=n.camera||{},f=c.target||c.cameraTarget;return f&&i.target&&(i.target.set(f[0],f[1],f[2]),i.update()),i}}class Tu extends di{createDefaultLoader(){return di.createLoader(\"model.glb\")}}const Ms={staticScene:!1,backgroundColor:\"#f0f0f7\",replaceWithScreenshotOnComplete:!0,animationLoop:null,pathTracing:{enabled:!1,maxSamples:16,bounces:16,transmissiveBounces:4,renderScale:.8,lowResScale:.25,dynamicLowRes:!0},camera:{position:[60,60,60],target:[0,0,0],fov:45,near:.1,far:1e5,autoFitToObject:!0},environment:{url:\"https://dl.polyhaven.org/file/ph-assets/HDRIs/extra/Tonemapped%20JPG/industrial_sunset_puresky.jpg\",backgroundBlurriness:.15,backgroundIntensity:1,environmentIntensity:1},lighting:{ambientLight:{color:\"#404040\",intensity:Math.PI},hemisphereLight:{skyColor:\"#ffffbb\",groundColor:\"#080820\",intensity:1},directionalLight:{color:\"#ffffff\",intensity:Math.PI,position:[72,72,72],castShadow:!0,shadow:{mapSize:{width:4096,height:4096},camera:{near:.5,far:200,left:-50,right:50,top:50,bottom:-50},bias:-1e-4,radius:1}}},renderer:{antialias:!0,alpha:!1,shadowMapEnabled:!0,pixelRatio:window.devicePixelRatio,shadowMapType:2,toneMapping:6,toneMappingExposure:1.5},controls:{type:Kn.OrbitControls,enabled:!0,enableDamping:!0,dampingFactor:.25,enableZoom:!0,enableRotate:!0,enablePan:!0},helpers:{grid:{type:\"hexagonal_wire\",size:20,divisions:20,colorGrid:4473924,opacity:.5,styleOptions:{}},axes:!1,stats:!1,gizmo:!1,studioEnvironment:!0,darkStudioMode:!1}};function Su(s){const e=ne.useRef(s),t=ne.useMemo(()=>JSON.stringify({pathTracing:s.pathTracing,staticScene:s.staticScene,renderer:s.renderer,camera:s.camera,controls:s.controls,backgroundColor:s.backgroundColor,environment:s.environment,lighting:s.lighting,helpers:s.helpers}),[s.pathTracing,s.staticScene,s.renderer,s.camera,s.controls,s.backgroundColor,s.environment,s.lighting,s.helpers]);return ne.useMemo(()=>{e.current=s},[t,s]),e.current}function Mu(s,e){const t=ne.useRef(null),[n,r]=ne.useState(new $e),[o,i]=ne.useState(!1),a=Su(e);ne.useEffect(()=>{if(!s.current||t.current)return;const f={...Ms,...a},d=_u.createViewer(s.current,f);t.current=d;const u=d.onStateChange(l=>{r(l)});return d.initialize().then(l=>{l.ok?i(!0):console.error(\"Failed to initialize viewer:\",l.error)}),()=>{u(),d.dispose(),t.current=null,i(!1)}},[s,a]);const c=ne.useRef({width:0,height:0});return ne.useEffect(()=>{if(!t.current||!s.current)return;let f=null;const d=g=>{if(s.current&&t.current){const y=s.current.parentElement||s.current;let{clientWidth:w,clientHeight:m}=y;if(g&&g[0]){const{width:x,height:b}=g[0].contentRect;w=Math.floor(x),m=Math.floor(b)}if(c.current.width===w&&c.current.height===m)return;f!==null&&cancelAnimationFrame(f),f=requestAnimationFrame(()=>{t.current&&s.current&&(t.current.resize(w,m),c.current={width:w,height:m})})}};d();const u=()=>d();window.addEventListener(\"resize\",u);let l=null;return typeof ResizeObserver<\"u\"&&s.current.parentElement&&(l=new ResizeObserver(d),l.observe(s.current.parentElement)),()=>{window.removeEventListener(\"resize\",u),l==null||l.disconnect(),f!==null&&cancelAnimationFrame(f)}},[o,s]),{viewer:t.current,state:n,isInitialized:o}}function Au(s,e){const t=ne.useRef(e);t.current=e,ne.useEffect(()=>{if(!s)return;const n=s.getEvents(),r=[];return Object.keys(e).forEach(o=>{if(e[o]){const a=c=>{const f=t.current[o];f&&f(c)};n.on(o,a),r.push(()=>n.off(o,a))}}),()=>{r.forEach(o=>o())}},[s])}const As=ne.createContext(null);function Iu({viewer:s,canvasRef:e,children:t}){return Se.jsx(As.Provider,{value:{viewer:s,canvasRef:e},children:t})}function Cu(){const s=ne.useContext(As);if(!s)throw new Error(\"useViewerContext must be used within ViewerProvider\");return s}function Pu(){const{canvasRef:s}=Cu();return Se.jsx(\"canvas\",{ref:s,style:{width:\"100%\",height:\"100%\",display:\"block\",imageRendering:\"auto\",background:\"transparent\"}})}(function(){try{if(typeof document<\"u\"){var s=document.createElement(\"style\");s.appendChild(document.createTextNode(\".gizmo-default{width:100px;height:100px;position:absolute;top:0;right:0;z-index:2;cursor:pointer}.custom-gizmo-style{width:360px;height:360px;position:absolute;top:0;right:0;z-index:2;cursor:pointer}.map-gizmo-style,.cad-gizmo-style{width:96px;height:96px;position:absolute;top:0;right:0;z-index:2;cursor:pointer}.example-container{position:relative;width:640px;height:360px;background-color:#3d5361;border-radius:6px;overflow:hidden}body{background-color:#f0f0f0;margin:0;padding:0}.content{display:flex;justify-content:center;align-items:center;flex-direction:column;height:100vh}.example-select{margin-bottom:24px}\")),document.head.appendChild(s)}}catch(e){console.error(\"vite-plugin-css-injected-by-js\",e)}})();const Du=(s,e,t,n,r,o)=>{const i=performance.now(),a=()=>{const c=performance.now()-i,f=Math.min(c/r,1);s.position.lerpVectors(t,n,f),e==null||e.update(),o(),f<1&&requestAnimationFrame(a)};requestAnimationFrame(a)},Is={type:\"change\"},$r={type:\"start\"},Cs={type:\"end\"},Xn=new h.Ray,Ps=new h.Plane,Fu=Math.cos(70*h.MathUtils.DEG2RAD),Ae=new h.Vector3,ze=2*Math.PI,le={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},Qr=1e-6;class Ds extends h.Controls{constructor(e,t=null){super(e,t),this.state=le.NONE,this.target=new h.Vector3,this.cursor=new h.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:\"ArrowLeft\",UP:\"ArrowUp\",RIGHT:\"ArrowRight\",BOTTOM:\"ArrowDown\"},this.mouseButtons={LEFT:h.MOUSE.ROTATE,MIDDLE:h.MOUSE.DOLLY,RIGHT:h.MOUSE.PAN},this.touches={ONE:h.TOUCH.ROTATE,TWO:h.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new h.Vector3,this._lastQuaternion=new h.Quaternion,this._lastTargetPosition=new h.Vector3,this._quat=new h.Quaternion().setFromUnitVectors(e.up,new h.Vector3(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new h.Spherical,this._sphericalDelta=new h.Spherical,this._scale=1,this._panOffset=new h.Vector3,this._rotateStart=new h.Vector2,this._rotateEnd=new h.Vector2,this._rotateDelta=new h.Vector2,this._panStart=new h.Vector2,this._panEnd=new h.Vector2,this._panDelta=new h.Vector2,this._dollyStart=new h.Vector2,this._dollyEnd=new h.Vector2,this._dollyDelta=new h.Vector2,this._dollyDirection=new h.Vector3,this._mouse=new h.Vector2,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Ou.bind(this),this._onPointerDown=Ru.bind(this),this._onPointerUp=Lu.bind(this),this._onContextMenu=Gu.bind(this),this._onMouseWheel=zu.bind(this),this._onKeyDown=Bu.bind(this),this._onTouchStart=Uu.bind(this),this._onTouchMove=Eu.bind(this),this._onMouseDown=Nu.bind(this),this._onMouseMove=ku.bind(this),this._interceptControlDown=Vu.bind(this),this._interceptControlUp=Wu.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(e){super.connect(e),this.domElement.addEventListener(\"pointerdown\",this._onPointerDown),this.domElement.addEventListener(\"pointercancel\",this._onPointerUp),this.domElement.addEventListener(\"contextmenu\",this._onContextMenu),this.domElement.addEventListener(\"wheel\",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener(\"keydown\",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction=\"none\"}disconnect(){this.domElement.removeEventListener(\"pointerdown\",this._onPointerDown),this.domElement.removeEventListener(\"pointermove\",this._onPointerMove),this.domElement.removeEventListener(\"pointerup\",this._onPointerUp),this.domElement.removeEventListener(\"pointercancel\",this._onPointerUp),this.domElement.removeEventListener(\"wheel\",this._onMouseWheel),this.domElement.removeEventListener(\"contextmenu\",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener(\"keydown\",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction=\"auto\"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(e){e.addEventListener(\"keydown\",this._onKeyDown),this._domElementKeyEvents=e}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener(\"keydown\",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(Is),this.update(),this.state=le.NONE}update(e=null){const t=this.object.position;Ae.copy(t).sub(this.target),Ae.applyQuaternion(this._quat),this._spherical.setFromVector3(Ae),this.autoRotate&&this.state===le.NONE&&this._rotateLeft(this._getAutoRotationAngle(e)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let n=this.minAzimuthAngle,r=this.maxAzimuthAngle;isFinite(n)&&isFinite(r)&&(n<-Math.PI?n+=ze:n>Math.PI&&(n-=ze),r<-Math.PI?r+=ze:r>Math.PI&&(r-=ze),n<=r?this._spherical.theta=Math.max(n,Math.min(r,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+r)/2?Math.max(n,this._spherical.theta):Math.min(r,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let o=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const i=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),o=i!=this._spherical.radius}if(Ae.setFromSpherical(this._spherical),Ae.applyQuaternion(this._quatInverse),t.copy(this.target).add(Ae),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let i=null;if(this.object.isPerspectiveCamera){const a=Ae.length();i=this._clampDistance(a*this._scale);const c=a-i;this.object.position.addScaledVector(this._dollyDirection,c),this.object.updateMatrixWorld(),o=!!c}else if(this.object.isOrthographicCamera){const a=new h.Vector3(this._mouse.x,this._mouse.y,0);a.unproject(this.object);const c=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),o=c!==this.object.zoom;const f=new h.Vector3(this._mouse.x,this._mouse.y,0);f.unproject(this.object),this.object.position.sub(f).add(a),this.object.updateMatrixWorld(),i=Ae.length()}else console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.\"),this.zoomToCursor=!1;i!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(i).add(this.object.position):(Xn.origin.copy(this.object.position),Xn.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(Xn.direction))<Fu?this.object.lookAt(this.target):(Ps.setFromNormalAndCoplanarPoint(this.object.up,this.target),Xn.intersectPlane(Ps,this.target))))}else if(this.object.isOrthographicCamera){const i=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),i!==this.object.zoom&&(this.object.updateProjectionMatrix(),o=!0)}return this._scale=1,this._performCursorZoom=!1,o||this._lastPosition.distanceToSquared(this.object.position)>Qr||8*(1-this._lastQuaternion.dot(this.object.quaternion))>Qr||this._lastTargetPosition.distanceToSquared(this.target)>Qr?(this.dispatchEvent(Is),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(e){return e!==null?ze/60*this.autoRotateSpeed*e:ze/60/60*this.autoRotateSpeed}_getZoomScale(e){const t=Math.abs(e*.01);return Math.pow(.95,this.zoomSpeed*t)}_rotateLeft(e){this._sphericalDelta.theta-=e}_rotateUp(e){this._sphericalDelta.phi-=e}_panLeft(e,t){Ae.setFromMatrixColumn(t,0),Ae.multiplyScalar(-e),this._panOffset.add(Ae)}_panUp(e,t){this.screenSpacePanning===!0?Ae.setFromMatrixColumn(t,1):(Ae.setFromMatrixColumn(t,0),Ae.crossVectors(this.object.up,Ae)),Ae.multiplyScalar(e),this._panOffset.add(Ae)}_pan(e,t){const n=this.domElement;if(this.object.isPerspectiveCamera){const r=this.object.position;Ae.copy(r).sub(this.target);let o=Ae.length();o*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*e*o/n.clientHeight,this.object.matrix),this._panUp(2*t*o/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(e*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(t*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\"),this.enablePan=!1)}_dollyOut(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=e:(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),this.enableZoom=!1)}_dollyIn(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=e:(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),this.enableZoom=!1)}_updateZoomParameters(e,t){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),r=e-n.left,o=t-n.top,i=n.width,a=n.height;this._mouse.x=r/i*2-1,this._mouse.y=-(o/a)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(e){return Math.max(this.minDistance,Math.min(this.maxDistance,e))}_handleMouseDownRotate(e){this._rotateStart.set(e.clientX,e.clientY)}_handleMouseDownDolly(e){this._updateZoomParameters(e.clientX,e.clientX),this._dollyStart.set(e.clientX,e.clientY)}_handleMouseDownPan(e){this._panStart.set(e.clientX,e.clientY)}_handleMouseMoveRotate(e){this._rotateEnd.set(e.clientX,e.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this._rotateLeft(ze*this._rotateDelta.x/t.clientHeight),this._rotateUp(ze*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(e){this._dollyEnd.set(e.clientX,e.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(e){this._panEnd.set(e.clientX,e.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(e){this._updateZoomParameters(e.clientX,e.clientY),e.deltaY<0?this._dollyIn(this._getZoomScale(e.deltaY)):e.deltaY>0&&this._dollyOut(this._getZoomScale(e.deltaY)),this.update()}_handleKeyDown(e){let t=!1;switch(e.code){case this.keys.UP:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(ze*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),t=!0;break;case this.keys.BOTTOM:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(-ze*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),t=!0;break;case this.keys.LEFT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(ze*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),t=!0;break;case this.keys.RIGHT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(-ze*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),t=!0;break}t&&(e.preventDefault(),this.update())}_handleTouchStartRotate(e){if(this._pointers.length===1)this._rotateStart.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._rotateStart.set(n,r)}}_handleTouchStartPan(e){if(this._pointers.length===1)this._panStart.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panStart.set(n,r)}}_handleTouchStartDolly(e){const t=this._getSecondPointerPosition(e),n=e.pageX-t.x,r=e.pageY-t.y,o=Math.sqrt(n*n+r*r);this._dollyStart.set(0,o)}_handleTouchStartDollyPan(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enablePan&&this._handleTouchStartPan(e)}_handleTouchStartDollyRotate(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enableRotate&&this._handleTouchStartRotate(e)}_handleTouchMoveRotate(e){if(this._pointers.length==1)this._rotateEnd.set(e.pageX,e.pageY);else{const n=this._getSecondPointerPosition(e),r=.5*(e.pageX+n.x),o=.5*(e.pageY+n.y);this._rotateEnd.set(r,o)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this._rotateLeft(ze*this._rotateDelta.x/t.clientHeight),this._rotateUp(ze*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(e){if(this._pointers.length===1)this._panEnd.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panEnd.set(n,r)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(e){const t=this._getSecondPointerPosition(e),n=e.pageX-t.x,r=e.pageY-t.y,o=Math.sqrt(n*n+r*r);this._dollyEnd.set(0,o),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const i=(e.pageX+t.x)*.5,a=(e.pageY+t.y)*.5;this._updateZoomParameters(i,a)}_handleTouchMoveDollyPan(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enablePan&&this._handleTouchMovePan(e)}_handleTouchMoveDollyRotate(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enableRotate&&this._handleTouchMoveRotate(e)}_addPointer(e){this._pointers.push(e.pointerId)}_removePointer(e){delete this._pointerPositions[e.pointerId];for(let t=0;t<this._pointers.length;t++)if(this._pointers[t]==e.pointerId){this._pointers.splice(t,1);return}}_isTrackingPointer(e){for(let t=0;t<this._pointers.length;t++)if(this._pointers[t]==e.pointerId)return!0;return!1}_trackPointer(e){let t=this._pointerPositions[e.pointerId];t===void 0&&(t=new h.Vector2,this._pointerPositions[e.pointerId]=t),t.set(e.pageX,e.pageY)}_getSecondPointerPosition(e){const t=e.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[t]}_customWheelEvent(e){const t=e.deltaMode,n={clientX:e.clientX,clientY:e.clientY,deltaY:e.deltaY};switch(t){case 1:n.deltaY*=16;break;case 2:n.deltaY*=100;break}return e.ctrlKey&&!this._controlActive&&(n.deltaY*=10),n}}function Ru(s){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(s.pointerId),this.domElement.addEventListener(\"pointermove\",this._onPointerMove),this.domElement.addEventListener(\"pointerup\",this._onPointerUp)),!this._isTrackingPointer(s)&&(this._addPointer(s),s.pointerType===\"touch\"?this._onTouchStart(s):this._onMouseDown(s)))}function Ou(s){this.enabled!==!1&&(s.pointerType===\"touch\"?this._onTouchMove(s):this._onMouseMove(s))}function Lu(s){switch(this._removePointer(s),this._pointers.length){case 0:this.domElement.releasePointerCapture(s.pointerId),this.domElement.removeEventListener(\"pointermove\",this._onPointerMove),this.domElement.removeEventListener(\"pointerup\",this._onPointerUp),this.dispatchEvent(Cs),this.state=le.NONE;break;case 1:const e=this._pointers[0],t=this._pointerPositions[e];this._onTouchStart({pointerId:e,pageX:t.x,pageY:t.y});break}}function Nu(s){let e;switch(s.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case h.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(s),this.state=le.DOLLY;break;case h.MOUSE.ROTATE:if(s.ctrlKey||s.metaKey||s.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(s),this.state=le.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(s),this.state=le.ROTATE}break;case h.MOUSE.PAN:if(s.ctrlKey||s.metaKey||s.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(s),this.state=le.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(s),this.state=le.PAN}break;default:this.state=le.NONE}this.state!==le.NONE&&this.dispatchEvent($r)}function ku(s){switch(this.state){case le.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(s);break;case le.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(s);break;case le.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(s);break}}function zu(s){this.enabled===!1||this.enableZoom===!1||this.state!==le.NONE||(s.preventDefault(),this.dispatchEvent($r),this._handleMouseWheel(this._customWheelEvent(s)),this.dispatchEvent(Cs))}function Bu(s){this.enabled!==!1&&this._handleKeyDown(s)}function Uu(s){switch(this._trackPointer(s),this._pointers.length){case 1:switch(this.touches.ONE){case h.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(s),this.state=le.TOUCH_ROTATE;break;case h.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(s),this.state=le.TOUCH_PAN;break;default:this.state=le.NONE}break;case 2:switch(this.touches.TWO){case h.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(s),this.state=le.TOUCH_DOLLY_PAN;break;case h.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(s),this.state=le.TOUCH_DOLLY_ROTATE;break;default:this.state=le.NONE}break;default:this.state=le.NONE}this.state!==le.NONE&&this.dispatchEvent($r)}function Eu(s){switch(this._trackPointer(s),this.state){case le.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(s),this.update();break;case le.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(s),this.update();break;case le.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(s),this.update();break;case le.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(s),this.update();break;default:this.state=le.NONE}}function Gu(s){this.enabled!==!1&&s.preventDefault()}function Vu(s){s.key===\"Control\"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener(\"keyup\",this._interceptControlUp,{passive:!0,capture:!0}))}function Wu(s){s.key===\"Control\"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener(\"keyup\",this._interceptControlUp,{passive:!0,capture:!0}))}class ju extends Ds{constructor(e,t){super(e,t),this.screenSpacePanning=!1,this.mouseButtons={LEFT:h.MOUSE.PAN,MIDDLE:h.MOUSE.DOLLY,RIGHT:h.MOUSE.ROTATE},this.touches={ONE:h.TOUCH.PAN,TWO:h.TOUCH.DOLLY_ROTATE}}}const se={CUBE_SIZE:1.8,EDGE_SECTION_SIZE:.35,FACE_THICKNESS:.35,CANVAS_SIZE:256,FONT_SIZE:\"62px\",TEXT_COLOR:\"#000000\",TEXT_ALIGN:\"center\",TEXT_BASELINE:\"middle\",FACE_COLOR:\"#EFF3F2\",EDGE_COLOR:\"#EFF3F2\",CORNER_COLOR:\"#EFF3F2\",LINE_COLOR:0};var wt=(s=>(s.FRONT=\"FRONT\",s.BACK=\"BACK\",s.RIGHT=\"RIGHT\",s.LEFT=\"LEFT\",s.TOP=\"TOP\",s.BOTTOM=\"BOTTOM\",s))(wt||{});new S.Vector3(0,1,0);const dn=\"rotation-arrows-name\",Jr=\"left-rotation-arrow-name\",$n=\"right-rotation-arrow-name\",qu=\"gizmo-group-name\",Zu=[$n,Jr],Qn={GIZMO_DISTANCE:8,DEFAULT_UP:new S.Vector3(0,1,0),FORWARD:new S.Vector3(0,0,-1)},Hr=s=>Qn.FORWARD.clone().applyQuaternion(s),Fs=(s,e,t=new S.Vector3)=>t.clone().add(s.multiplyScalar(-e));class Yu{constructor(e,t=dn){this.gizmoScene=e,this.gizmoArrowsName=t}syncGizmoWithMain(e,t){e.quaternion.copy(t.quaternion),e.up.copy(t.up);const n=Hr(e.quaternion).normalize();e.position.copy(Fs(n,Qn.GIZMO_DISTANCE)),e.camera.updateMatrixWorld(!0);const r=this.gizmoScene.getObjectByName(this.gizmoArrowsName);r&&r.rotation.copy(e.camera.rotation)}syncMainWithGizmo(e,t,n){const r=n.target.clone(),o=e.position.distanceTo(r),i=e.camera instanceof S.PerspectiveCamera;n instanceof ju&&!i?this.syncMapControls(e,t,r,o):this.syncOrbitControls(e,t,r,o),e.camera.updateMatrix(),e.camera.updateMatrixWorld(!0),n.update()}syncMapControls(e,t,n,r){const o=e.position.y-n.y,i=Hr(t.quaternion);i.y=0,i.normalize();const a=n.clone();a.y+=o,a.add(i.multiplyScalar(-r)),e.position.copy(a),e.up.copy(Qn.DEFAULT_UP),e.camera.lookAt(n)}syncOrbitControls(e,t,n,r){const o=Hr(t.quaternion),i=Qn.DEFAULT_UP.clone().applyQuaternion(t.quaternion),a=Fs(o,r,n);e.position.copy(a),e.up.copy(i),e.camera.lookAt(n)}}const Rs=s=>new Yu(s),Os=(s,e,t)=>{Rs(t).syncGizmoWithMain({camera:s,position:s.position,quaternion:s.quaternion,up:s.up},{camera:e,position:e.position,quaternion:e.quaternion,up:e.up})},Ku=(s,e,t)=>{Rs(e.userData.scene).syncMainWithGizmo({camera:s,position:s.position,quaternion:s.quaternion,up:s.up},{camera:e,position:e.position,quaternion:e.quaternion,up:e.up},t)},Xu=()=>{try{const s=document.createElement(\"canvas\");return!!(window.WebGLRenderingContext&&(s.getContext(\"webgl\")||s.getContext(\"experimental-webgl\")))}catch{return!1}},$u=()=>Xu()?new S.WebGLRenderer({alpha:!0,antialias:!1}):(console.error(\"WebGL is not supported in this environment.\"),null),Qu=s=>{const e=new S.AmbientLight(16777215,1);s.add(e);const t=new S.DirectionalLight(16777215,1);t.position.set(5,10,5),s.add(t);const n=new S.DirectionalLight(16777215,1);n.position.set(-5,-10,5),s.add(n);const r=new S.PointLight(16777215,1,100);r.position.set(0,0,5),s.add(r),t.castShadow=!1,n.castShadow=!1,r.castShadow=!1};class Ju{static createTextTexture(e){const t=document.createElement(\"canvas\"),n=t.getContext(\"2d\");t.width=se.CANVAS_SIZE,t.height=se.CANVAS_SIZE,n&&(n.clearRect(0,0,t.width,t.height),n.font=`${se.FONT_SIZE} Arial`,n.fillStyle=se.TEXT_COLOR,n.textAlign=se.TEXT_ALIGN,n.textBaseline=se.TEXT_BASELINE,n.fillText(e,t.width/2,t.height/2));const r=new S.CanvasTexture(t);return r.needsUpdate=!0,r}}class Jn{static createWireframe([e,t,n]){const r=new S.BoxGeometry(e,t,n),o=new S.EdgesGeometry(r),i=new S.LineBasicMaterial({color:se.LINE_COLOR}),a=new S.LineSegments(o,i);return a.name=\"Wireframe\",a}static createEdgeBox(e,t,n){const r=se.CUBE_SIZE-se.EDGE_SECTION_SIZE,o={x:se.EDGE_SECTION_SIZE,y:se.EDGE_SECTION_SIZE,z:se.EDGE_SECTION_SIZE};o[t]=r;const i=new S.BoxGeometry(o.x,o.y,o.z),a=new S.MeshStandardMaterial({color:se.EDGE_COLOR}),c=new S.Mesh(i,a);return c.position.copy(e),c.name=`Edge Box ${n}`,c}static createCornerCube(e,t){const n=new S.BoxGeometry(se.EDGE_SECTION_SIZE,se.EDGE_SECTION_SIZE,se.EDGE_SECTION_SIZE),r=new S.MeshStandardMaterial({color:se.CORNER_COLOR}),o=new S.Mesh(n,r);return o.position.copy(e),o.name=`Corner Cube ${t}`,o}static createFace(e,t,n){const r=new S.Group,o=new S.BoxGeometry(se.CUBE_SIZE-se.EDGE_SECTION_SIZE,se.CUBE_SIZE-se.EDGE_SECTION_SIZE,se.FACE_THICKNESS),i=new S.MeshStandardMaterial({color:se.FACE_COLOR}),a=new S.Mesh(o,i);a.name=`Face Box ${n}`,r.add(a);const c=new S.PlaneGeometry(se.CUBE_SIZE-se.EDGE_SECTION_SIZE,se.CUBE_SIZE-se.EDGE_SECTION_SIZE),f=new S.MeshStandardMaterial({map:Ju.createTextTexture(n),transparent:!0,depthWrite:!1}),d=new S.Mesh(c,f);return d.position.set(0,0,se.FACE_THICKNESS/2+.01),r.add(d),r.position.copy(e),r.rotation.copy(t),r}}const Hu=(s,e)=>{const t=document.createElement(\"canvas\");t.width=64,t.height=64;const n=t.getContext(\"2d\");n.fillStyle=\"rgba(0, 0, 0, 0)\",n.fillRect(0,0,t.width,t.height),n.font=\"Bold 48px Arial\",n.fillStyle=`#${e.toString(16).padStart(6,\"0\")}`,n.textAlign=\"center\",n.textBaseline=\"middle\",n.fillText(s,t.width/2,t.height/2);const r=new S.CanvasTexture(t),o=new S.SpriteMaterial({map:r}),i=new S.Sprite(o);return i.scale.set(.5,.5,.5),i};class eh{constructor(e){this.hoveredObject=null,this.originalColor=null,this.config=e}get vectorToCube(){var e;return(e=this.hoveredObject)==null?void 0:e.userData.vectorToCube}getInitialRotation(){switch(this.config.initialFace){case wt.BACK:return new S.Euler(0,Math.PI,0);case wt.RIGHT:return new S.Euler(0,-Math.PI/2,0);case wt.LEFT:return new S.Euler(0,Math.PI/2,0);case wt.TOP:return new S.Euler(Math.PI/2,0,0);case wt.BOTTOM:return new S.Euler(-Math.PI/2,0,0);case wt.FRONT:default:return new S.Euler(0,0,0)}}createWireframe(){const e=se.CUBE_SIZE+se.EDGE_SECTION_SIZE,t=Jn.createWireframe([e,e,e]);return t.userData.gizmoCube=this,t}createEdgeBox(e,t,n){const r=Jn.createEdgeBox(e,t,n);return r.userData.gizmoCube=this,r}createCornerCube(e,t){const n=Jn.createCornerCube(e,t);return n.userData.gizmoCube=this,n}createFace(e,t,n){const r=Jn.createFace(e,t,n),o=r.getObjectByName(`Face Box ${n}`);return o.userData.gizmoCube=this,r}createEdges(e){const t=se.CUBE_SIZE/2;[{axis:\"x\",pos:new S.Vector3(0,t,-t)},{axis:\"x\",pos:new S.Vector3(0,t,t)},{axis:\"x\",pos:new S.Vector3(0,-t,-t)},{axis:\"x\",pos:new S.Vector3(0,-t,t)},{axis:\"y\",pos:new S.Vector3(t,0,-t)},{axis:\"y\",pos:new S.Vector3(t,0,t)},{axis:\"y\",pos:new S.Vector3(-t,0,-t)},{axis:\"y\",pos:new S.Vector3(-t,0,t)},{axis:\"z\",pos:new S.Vector3(t,t,0)},{axis:\"z\",pos:new S.Vector3(t,-t,0)},{axis:\"z\",pos:new S.Vector3(-t,t,0)},{axis:\"z\",pos:new S.Vector3(-t,-t,0)}].forEach(({axis:n,pos:r},o)=>{const i=this.createEdgeBox(r,n,o+1);e.add(i)})}createCorners(e){const t=se.CUBE_SIZE/2;[new S.Vector3(-t,-t,-t),new S.Vector3(-t,-t,t),new S.Vector3(-t,t,-t),new S.Vector3(-t,t,t),new S.Vector3(t,-t,-t),new S.Vector3(t,-t,t),new S.Vector3(t,t,-t),new S.Vector3(t,t,t)].forEach((n,r)=>{const o=this.createCornerCube(n,r+1);e.add(o)})}createFaces(e){const t=se.CUBE_SIZE/2;[{pos:new S.Vector3(0,0,t),rotation:new S.Euler(0,0,0),label:\"FRONT\"},{pos:new S.Vector3(0,0,-t),rotation:new S.Euler(0,Math.PI,0),label:\"BACK\"},{pos:new S.Vector3(t,0,0),rotation:new S.Euler(0,Math.PI/2,0),label:\"RIGHT\"},{pos:new S.Vector3(-t,0,0),rotation:new S.Euler(0,-Math.PI/2,0),label:\"LEFT\"},{pos:new S.Vector3(0,t,0),rotation:new S.Euler(-Math.PI/2,0,0),label:\"TOP\"},{pos:new S.Vector3(0,-t,0),rotation:new S.Euler(Math.PI/2,0,0),label:\"BOTTOM\"}].forEach(({pos:n,rotation:r,label:o})=>{const i=this.createFace(n,r,o);e.add(i)})}createAxis(e){const{color:t,direction:n,length:r,origin:o,lineWidth:i,label:a}=e,c=new S.Group,f=i/2,d=new S.CylinderGeometry(f,f,r,32),u=new S.MeshBasicMaterial({color:t}),l=new S.Mesh(d,u);if(l.position.copy(o).add(n.clone().multiplyScalar(r/2)),!n.equals(new S.Vector3(0,1,0))){const y=new S.Vector3(0,1,0).cross(n).normalize(),w=Math.acos(new S.Vector3(0,1,0).dot(n));l.setRotationFromAxisAngle(y,w)}c.add(l);const g=Hu(a,t);return g.position.copy(o).add(n.clone().multiplyScalar(r+.1)),c.add(g),c}createCoordinateAxes(){const e=new S.Group,t=se.CUBE_SIZE,n=se.EDGE_SECTION_SIZE,r=-1.075,o=a=>{const c=new S.Vector3(1,1,1);return new S.Vector3(a,a,a).add(c.clone().normalize().negate().multiplyScalar(.04))},i=t+1.25*n;return[{color:16711680,direction:new S.Vector3(1,0,0),length:i,origin:o(r),lineWidth:.04,label:\"X\"},{color:65280,direction:new S.Vector3(0,1,0),length:i,origin:o(r),lineWidth:.04,label:\"Y\"},{color:255,direction:new S.Vector3(0,0,1),length:i,origin:o(r),lineWidth:.04,label:\"Z\"}].forEach(a=>{const c=this.createAxis(a);e.add(c)}),e}create(){const e=new S.Group;e.name=qu;const t=this.createWireframe();e.add(t),this.createEdges(e),this.createCorners(e),this.createFaces(e);const n=this.createCoordinateAxes();e.add(n);const r=this.getInitialRotation();return e.setRotationFromEuler(r),e}highlightObject(e){if(this.hoveredObject!==e)if(this.hoveredObject&&this.originalColor&&this.hoveredObject.material.color.set(this.originalColor),e&&e instanceof S.Mesh){const t=e.material;this.hoveredObject=e,this.originalColor=t.color.clone(),t.color.set(11519973)}else this.hoveredObject=null,this.originalColor=null}handleClick(){if(this.hoveredObject){let e=new S.Vector3;e=this.hoveredObject.getWorldPosition(e).clone();const t=new S.Vector3(0,0,0),n=e.sub(t).normalize();this.hoveredObject.userData.vectorToCube=n}}}class th{constructor(e){this.onChangeMainControlsListener=()=>{},this.onChangeGizmoControlsListener=()=>{},this.animationId=0;const{gizmoParams:t,mainParams:n,syncFunctions:r,options:o}=e;this.gizmoDiv=t.gizmoDiv,this.gizmoScene=t.gizmoScene,this.gizmoRenderer=t.gizmoRenderer,this.gizmoCamera=t.gizmoCamera,this.mainCamera=n.mainCamera,this.mainControls=n.mainControls,this.renderGizmo=n.renderGizmo,this.syncFunctions=r,this.options=o,this.gizmoControls=new Ds(this.gizmoCamera,this.gizmoRenderer.domElement),this.initializeRenderer(),this.initializeScene(),this.initializeControls(),this.startAnimationLoop()}initializeRenderer(){var e;this.gizmoRenderer.setPixelRatio(window.devicePixelRatio),this.gizmoRenderer.setSize(this.gizmoDiv.clientWidth,this.gizmoDiv.clientHeight);const t=this.gizmoDiv.clientWidth/this.gizmoDiv.clientHeight;this.gizmoCamera.aspect=t,this.gizmoCamera.updateProjectionMatrix(),(e=this.options)!=null&&e.up&&this.gizmoCamera.up.copy(this.options.up),this.gizmoDiv.appendChild(this.gizmoRenderer.domElement)}initializeScene(){var e;const t=new eh({initialFace:((e=this.options)==null?void 0:e.initialFace)??wt.FRONT}).create();this.gizmoScene.add(t),Qu(this.gizmoScene)}initializeControls(){this.onChangeMainControlsListener=()=>this.syncFunctions.syncGizmoCameraWithMain(this.gizmoCamera,this.mainCamera,this.gizmoScene),this.mainControls.addEventListener(\"change\",this.onChangeMainControlsListener),this.gizmoControls.enableZoom=!1,this.gizmoControls.enablePan=!1,this.gizmoControls.rotateSpeed=.5,this.gizmoControls.update(),this.onChangeGizmoControlsListener=()=>{const e=this.gizmoScene.getObjectByName(dn);e==null||e.rotation.copy(this.gizmoCamera.rotation),this.syncFunctions.syncMainCameraWithGizmo(this.mainCamera,this.gizmoCamera,this.mainControls),this.renderGizmo()},this.gizmoControls.addEventListener(\"change\",this.onChangeGizmoControlsListener)}startAnimationLoop(){const e=()=>{this.gizmoRenderer.render(this.gizmoScene,this.gizmoCamera)},t=()=>{this.animationId=requestAnimationFrame(t),e()};t()}dispose(){this.mainControls.removeEventListener(\"change\",this.onChangeMainControlsListener),this.gizmoControls.removeEventListener(\"change\",this.onChangeGizmoControlsListener),this.gizmoScene.clear(),cancelAnimationFrame(this.animationId)}}const nh=(s,e)=>{let t;return function(...n){t||(s.apply(this,n),t=!0,setTimeout(()=>t=!1,e))}};function Ls(s,e,t){if(!e)return;const n=e.domElement.getBoundingClientRect();t.x=(s.clientX-n.left)/n.width*2-1,t.y=-((s.clientY-n.top)/n.height)*2+1}const Ns=(s,e,t,n)=>(n.setFromCamera(s,e),n.intersectObjects(t.children,!0)),ks=s=>{var e;const t=[\"Wireframe\",\"\"];return((e=s.find(n=>!t.includes(n.object.name)))==null?void 0:e.object)||null};function rh(s,e,t,n){if(!e||!t)return null;const r=Ns(s,e,t,n);return ks(r)}function ih(s,e){const t=s==null?void 0:s.userData.gizmoCube;if(s&&t){t.handleClick();const n=t.vectorToCube;n&&e(n)}}const sh={radius:2.1,color:12369854,tubeRadius:.1,tubeSegments:8,numPoints:64,tubeOffset:1.5},oh={size:.2,depth:.1,heightRatio:1.4,segments:1};class ah{constructor(e={}){this.config={...sh,...e},this.material=new S.MeshBasicMaterial({color:this.config.color})}create(){const e=new S.Group,t=this.createQuarterCircleCurves();return e.add(...this.createTubes(t),...this.createArrowHeads(t)),e.name=dn,e}createQuarterCircleCurves(){const e=this.generateQuarterCirclePoints(),t=Math.floor(e.length/2);return[new S.CatmullRomCurve3(e.slice(0,t-this.config.tubeOffset)),new S.CatmullRomCurve3(e.slice(t+this.config.tubeOffset))]}generateQuarterCirclePoints(){const e=Math.PI/2,t=e/2,n=e/4;return Array.from({length:this.config.numPoints+1},(r,o)=>{const i=o/this.config.numPoints,a=n+t*i,c=this.config.radius*Math.sin(a),f=this.config.radius*Math.cos(a);return new S.Vector3(c,f,0)})}createTubes([e,t]){const n=(r,o)=>{const i=new S.TubeGeometry(r,this.config.numPoints,this.config.tubeRadius,this.config.tubeSegments,!1),a=new S.Mesh(i,this.material);return a.name=o,a};return[n(e,Jr),n(t,$n)]}createArrowHeads([e,t]){const{size:n,depth:r,heightRatio:o,segments:i}=oh,a=this.createArrowShape(n,o),c=new S.ExtrudeGeometry(a,{steps:i,depth:r,bevelEnabled:!1}).center(),f=(d,u,l)=>{const g=new S.Mesh(c,this.material);return g.position.copy(d),g.rotation.z=u,g.name=l,g};return[f(e.getPoint(0),this.calculateArrowRotation(e.getTangent(0))+Math.PI/2,Jr),f(t.getPoint(1),this.calculateArrowRotation(t.getTangent(1))-Math.PI/2,$n)]}createArrowShape(e,t){return new S.Shape().moveTo(0,0).lineTo(e,-e*t).lineTo(-e,-e*t).lineTo(0,0)}calculateArrowRotation(e){return Math.atan2(e.y,e.x)}}const ch=s=>{const e=s.rotation,t=.01,n=Math.PI,r=(Math.abs(e.x)%(2*n)+2*n)%(2*n),o=(Math.abs(e.y)%(2*n)+2*n)%(2*n),i=Math.abs(r-n/2)<t||Math.abs(r-3*n/2)<t||Math.abs(o-n/2)<t||Math.abs(o-3*n/2)<t,a=(Math.abs(r)<t||Math.abs(r-n)<t)&&(Math.abs(o)<t||Math.abs(o-n)<t);return!(i||a)},lh=25,uh=200;function hh({gizmoRenderer:s,gizmoScene:e,gizmoCamera:t,alignCameraWithVector:n,gizmoControlRef:r}){const o=ne.useRef(null),i=ne.useRef(null),a=ne.useRef(new S.Raycaster).current,c=ne.useRef(new S.Vector2).current,f=ne.useCallback(()=>{const w=e.getObjectByName(dn),m=ch(t);if(w&&m){e.remove(w);return}if(w||m)return;const x=new ah().create();x.rotation.copy(t.rotation),e.add(x)},[e,t]),d=ne.useCallback(()=>{const w=e.getObjectByName(dn);w&&e.remove(w)},[e]),u=ne.useCallback(nh(w=>{if(!r.current||!s)return;Ls(w,s,c);const m=Ns(c,t,e,a),x=ks(m);x!=null&&x.userData.gizmoCube?x.userData.gizmoCube.highlightObject(x):e.traverse(b=>{b.userData.gizmoCube&&b.userData.gizmoCube.highlightObject(null)}),m.length>0?f():d()},1e3/lh),[r,s,t,e,a,c,f,d]),l=ne.useCallback(w=>{o.current=Date.now(),i.current={x:w.clientX,y:w.clientY}},[]),g=ne.useCallback(w=>{var m;const x=w.name===$n?1:-1,b=90*Math.PI/180,T=new S.Vector3(0,0,0),M=x*b,A=new S.Matrix4;A.makeRotationZ(M),t.up.applyMatrix4(A),t.lookAt(T),(m=r.current)==null||m.gizmoControls.update()},[t,r]),y=ne.useCallback(w=>{if((o.current?Date.now()-o.current:0)<uh){Ls(w,s,c);const m=rh(c,t,e,a);m!=null&&m.name&&Zu.includes(m.name)?g(m):ih(m,n)}o.current=null,i.current=null},[g,n,s,t,e,a,c]);return{onMouseDown:l,onMouseMove:u,onMouseUp:y,onMouseLeave:d}}const fh=({camera:s,controls:e,className:t,render:n,options:r})=>{const o=ne.useRef(null),i=ne.useRef(new S.Scene).current,[a]=ne.useState(()=>$u()),c=30,f=1,d=.1,u=10,l=new S.PerspectiveCamera(c,f,d,u),g=ne.useRef(l).current,y=ne.useRef(null),w=ne.useCallback(()=>{a&&(n(),a.render(i,g))},[n,a,i,g]),m=ne.useCallback(A=>{if(!s||!e)return;const I=s.position.length(),P=A.clone().multiplyScalar(I),D=400,R=new S.Matrix4;R.lookAt(P,new S.Vector3(0,0,0),new S.Vector3(0,1,0));const O=new S.Quaternion;O.setFromRotationMatrix(R),s.quaternion.copy(O),Du(s,e,s.position.clone(),P,D,w),s.up.set(0,1,0),s.lookAt(new S.Vector3(0,0,0)),e.target.set(0,0,0),e.update()},[s,e,w,i]),{onMouseDown:x,onMouseMove:b,onMouseUp:T,onMouseLeave:M}=hh({gizmoRenderer:a,gizmoScene:i,gizmoCamera:g,alignCameraWithVector:m,gizmoControlRef:y});return ne.useEffect(()=>{const A=o.current;if(!A||!s||!e||!a)return;y.current&&y.current.dispose();const I={gizmoDiv:A,gizmoScene:i,gizmoRenderer:a,gizmoCamera:g},P={mainCamera:s,mainControls:e,renderGizmo:w},D={syncGizmoCameraWithMain:Os,syncMainCameraWithGizmo:Ku};return y.current=new th({gizmoParams:I,mainParams:P,syncFunctions:D,options:r}),A.addEventListener(\"mousedown\",x),A.addEventListener(\"mousemove\",b),A.addEventListener(\"mouseup\",T),A.addEventListener(\"mouseleave\",M),()=>{y.current&&(y.current.dispose(),y.current=null),A.removeEventListener(\"mousedown\",x),A.removeEventListener(\"mousemove\",b),A.removeEventListener(\"mouseup\",T),A.removeEventListener(\"mouseleave\",M)}},[s,e,w,b,x,T]),ne.useEffect(()=>{s&&(Os(g,s,i),w())},[s,w]),Se.jsx(\"div\",{className:t?`${t}`:\"gizmo-default\",ref:o})},dh=({camera:s,controls:e,render:t,placement:n=\"top-right\",size:r=128})=>{const o=ne.useRef(null);if(ne.useEffect(()=>{if(!o.current)return;const a=o.current;a.style.position=\"absolute\",a.style.width=`${r}px`,a.style.height=`${r}px`,a.style.zIndex=\"1000\",a.style.top=\"auto\",a.style.bottom=\"auto\",a.style.left=\"auto\",a.style.right=\"auto\";const c=\"10px\";switch(n){case\"top-left\":a.style.top=c,a.style.left=c;break;case\"top-right\":a.style.top=c,a.style.right=c;break;case\"bottom-left\":a.style.bottom=c,a.style.left=c;break;case\"bottom-right\":a.style.bottom=c,a.style.right=c;break}},[n,r]),!s||!e)return null;const i=e;return Se.jsx(\"div\",{ref:o,className:\"viewer-gizmo-container\",children:Se.jsx(fh,{camera:s,controls:i,render:t})})};class ph extends ne.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(\"ViewerErrorBoundary caught error:\",e,t)}render(){var e;return this.state.hasError?this.props.fallback?this.props.fallback:Se.jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:\"#f0f0f0\",color:\"#333\",fontFamily:\"sans-serif\",padding:\"20px\",textAlign:\"center\"},children:Se.jsxs(\"div\",{children:[Se.jsx(\"h3\",{children:\"Error Loading 3D Viewer\"}),Se.jsx(\"p\",{children:((e=this.state.error)==null?void 0:e.message)||\"An unexpected error occurred\"})]})}):this.props.children}}class zs{static toThreeObject(e){if(\"getThreeObject\"in e&&typeof e.getThreeObject==\"function\")return e.getThreeObject();if(e instanceof S.Object3D)return e;const t=new S.Object3D;return t.position.set(e.position.x,e.position.y,e.position.z),t.rotation.set(e.rotation.x,e.rotation.y,e.rotation.z),t.scale.set(e.scale.x,e.scale.y,e.scale.z),t}static toThreeCamera(e){return\"getThreeCamera\"in e&&typeof e.getThreeCamera==\"function\"?e.getThreeCamera():e instanceof S.Camera?e:new S.PerspectiveCamera}static toThreeControls(e){return\"getThreeControls\"in e&&typeof e.getThreeControls==\"function\"?e.getThreeControls():e}static convertModelLoaded(e){return{model:this.toThreeObject(e.model),loadTime:e.loadTime}}static convertControlsChange(e){return{type:e.type,camera:e.camera?this.toThreeCamera(e.camera):void 0,controls:e.controls?this.toThreeControls(e.controls):void 0}}static convertObjectSelected(e){return{object:this.toThreeObject(e.object)}}static convertInitialized(e,t){return{viewer:t}}static convertDisposed(e,t){return{viewer:t}}}const Bs=ne.forwardRef(({object:s,options:e={}},t)=>{var M,A;const n=ne.useRef(null),{viewer:r,isInitialized:o}=Mu(n,e),i=ne.useRef(new xn),a=ne.useRef(void 0),c=ne.useMemo(()=>{if(typeof s==\"string\")return s;if(s)return`object-${s.uuid||\"no-uuid\"}`},[s]);ne.useMemo(()=>{a.current=s},[c,s]),ne.useEffect(()=>{if(!r||!o||!a.current)return;const I=typeof a.current==\"string\"?a.current:new Fe(a.current);r.loadModel(I).then(P=>{P.ok||console.error(\"Failed to load model:\",P.error)})},[r,o,c]);const f=ne.useMemo(()=>({\"model:loaded\":I=>i.current.emit(\"model:loaded\",zs.convertModelLoaded(I)),\"model:error\":I=>i.current.emit(\"model:error\",I),\"render:complete\":I=>i.current.emit(\"render:complete\",I),\"controls:change\":I=>i.current.emit(\"controls:change\",zs.convertControlsChange(I)),error:I=>i.current.emit(\"error\",I)}),[]);Au(r,f);const d=ne.useCallback(I=>{if(I&&typeof I==\"object\"){const P=I;if(typeof P.getThreeScene==\"function\")return P.getThreeScene()}return null},[]),u=ne.useCallback(I=>{if(I&&typeof I==\"object\"){const P=I;if(typeof P.getThreeCamera==\"function\")return P.getThreeCamera()}return null},[]),l=ne.useCallback(I=>{if(I&&typeof I==\"object\"){const P=I;if(typeof P.getThreeRenderer==\"function\")return P.getThreeRenderer()}return null},[]),g=ne.useCallback(I=>{if(I&&typeof I==\"object\"){const P=I;if(typeof P.getThreeControls==\"function\")return P.getThreeControls()}return null},[]),y=r?u(r.camera):null,w=r?g(r.controls):null,m=r?l(r.renderer):null,x=ne.useCallback(()=>{if(m&&r){const I=r;I.renderLoopManager&&typeof I.renderLoopManager.requestRender==\"function\"&&I.renderLoopManager.requestRender()}},[r,m]),b=((M=e.helpers)==null?void 0:M.gizmo)!==void 0&&e.helpers.gizmo!==!1,T=typeof((A=e.helpers)==null?void 0:A.gizmo)==\"object\"?e.helpers.gizmo:{};return ne.useImperativeHandle(t,()=>({scene:r?d(r.scene):null,camera:y,renderer:m,controls:w,events:i.current}),[r,y,m,w,d]),Se.jsx(ph,{children:Se.jsx(Iu,{viewer:r,canvasRef:n,children:Se.jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\"},children:[Se.jsx(Pu,{}),b&&o&&y&&w&&Se.jsx(dh,{camera:y,controls:w,render:x,placement:T.placement,size:T.size})]})})})});Bs.displayName=\"SimpleViewer\";const Us=ne.forwardRef((s,e)=>Se.jsx(Bs,{ref:e,...s}));Us.displayName=\"SimpleViewer\",Xe.SimpleViewer=Us,Xe.TypedEventEmitter=xn,Xe.defaultOptions=Ms,Object.defineProperty(Xe,Symbol.toStringTag,{value:\"Module\"})});\n"]}