rayzee 11.14.0 → 11.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +37 -19
  2. package/dist/{ActiveColor-7CZdmrsz.js → ActiveColor-DakLCifA.js} +1 -1
  3. package/dist/{ArchiveImporter-DBMmDG98.js → ArchiveImporter-DuWqpbXf.js} +260 -260
  4. package/dist/{BidirectionalIntegrator-D6rcU7N1.js → BidirectionalIntegrator-BEXXxmZH.js} +99 -99
  5. package/dist/{BufferLayout-SvkefbAs.js → BufferLayout-ny3WneEc.js} +1 -1
  6. package/dist/{ColorManagement-D9eYhssc.js → ColorManagement-CKN2pTRS.js} +88 -60
  7. package/dist/{DepthPass-D4Zh108s.js → DepthPass-u5g7hr7J.js} +4 -4
  8. package/dist/{EngineEvents-CLckhYbL.js → EngineEvents-oQGofgRf.js} +16 -2
  9. package/dist/{EngineIssues-B14FGIHX.js → EngineIssues-t5p7TEjb.js} +1 -0
  10. package/dist/{FileFormats-B_VqIVDq.js → FileFormats-C91JE5DM.js} +1 -1
  11. package/dist/LocalExposure-Cw1g8rdU.js +344 -0
  12. package/dist/{Logger-dDDGj9Av.js → Logger-CH-TZ1co.js} +1 -1
  13. package/dist/{NeuralRetouch-Cyh0AwUT.js → NeuralRetouch-CLtoW6Vt.js} +5 -5
  14. package/dist/{NeuralSuperRes-BPp05Ipu.js → NeuralSuperRes-PlLjWpMF.js} +14 -14
  15. package/dist/{PackedRayBuffer-BtJJxs43.js → PackedRayBuffer-DwhV931f.js} +6 -6
  16. package/dist/{PathTracer-BLV2bVqi.js → PathTracer-BMtUFjdP.js} +4532 -3349
  17. package/dist/{PhysicalSky-VonV_lAD.js → PhysicalSky-DqanSS2m.js} +7 -7
  18. package/dist/PictureView-DpHE_jDr.js +96 -0
  19. package/dist/RayzeeRenderer-C9zGAMJo.js +3281 -0
  20. package/dist/{sceneCachePolicy-DcEWCTKO.js → SceneMetadata-BUfzHMSj.js} +334 -301
  21. package/dist/{SolarLimb-DSig_M0f.js → SolarLimb-BiVdxxmL.js} +1 -1
  22. package/dist/{TextureBuckets-CcSAhgVc.js → TextureBuckets-D09iX9_y.js} +1 -1
  23. package/dist/{TextureSampling-C4Sg4Yw_.js → TextureSampling-CvMi8LNc.js} +19 -16
  24. package/dist/{ToneMapGPU-l_79riZd.js → ToneMapGPU-tJZo_-7S.js} +2 -2
  25. package/dist/{ViewTransforms-Crdom11t.js → ViewTransforms-Bh7hSjSb.js} +1 -1
  26. package/dist/{WorkingMatrix-DWJV2JM2.js → WorkingMatrix-CDGicYGE.js} +1 -1
  27. package/dist/{ZipReader-Bva4oiva.js → ZipReader-KPFbIuOs.js} +1 -1
  28. package/dist/addons/archives.es.js +2 -2
  29. package/dist/addons/bidirectional.es.js +1 -1
  30. package/dist/addons/color.es.js +3 -3
  31. package/dist/addons/formats.es.js +1 -1
  32. package/dist/addons/physical-sky.es.js +1 -1
  33. package/dist/addons/storage.es.js +3 -3
  34. package/dist/archiveFormats-j39rQeKs.js +37 -0
  35. package/dist/encoders.es.js +1 -1
  36. package/dist/identity-x_UfobDa.js +65 -0
  37. package/dist/{openStorage-D6DBv9_I.js → openStorage-CxLMw2_a.js} +61 -62
  38. package/dist/rayzee-core.es.js +13 -13
  39. package/dist/rayzee.es.js +769 -1030
  40. package/dist/rayzee.umd.js +121 -115
  41. package/package.json +2 -2
  42. package/src/AssetConfig.js +1 -1
  43. package/src/EngineDefaults.js +1 -1
  44. package/src/EngineEvents.js +26 -0
  45. package/src/EngineIssues.js +1 -0
  46. package/src/Platform.js +40 -0
  47. package/src/RayzeeRenderer.js +186 -1343
  48. package/src/RenderSettings.js +3 -3
  49. package/src/addons/archives.js +2 -2
  50. package/src/addons/bidirectional.js +1 -1
  51. package/src/addons/color.js +6 -6
  52. package/src/addons/formats.js +1 -1
  53. package/src/addons/physicalSky.js +1 -1
  54. package/src/addons/storage.js +3 -3
  55. package/src/{Processor → bvh}/BVHBuilder.js +2 -2
  56. package/src/{Processor → bvh}/BVHLeafFold.js +1 -1
  57. package/src/{Processor/Workers → bvh}/BVHRefitWorker.js +2 -2
  58. package/src/{Processor → bvh}/BVHRefitter.js +1 -1
  59. package/src/{Processor/Workers → bvh}/BVHSubtreeWorker.js +2 -2
  60. package/src/{Processor/Workers → bvh}/BVHWorker.js +3 -3
  61. package/src/{Processor → bvh}/ParallelBVHBuilder.js +3 -3
  62. package/src/{Processor → bvh}/SplitBLAS.js +2 -2
  63. package/src/{Processor → bvh}/TLASBuilder.js +4 -4
  64. package/src/{Processor/Workers → bvh}/TLASWorker.js +2 -2
  65. package/src/{Color → color}/ColorManagement.js +87 -41
  66. package/src/{Color → color}/OcioRuntime.js +1 -1
  67. package/src/core.js +8 -8
  68. package/src/{Processor/Workers → environment}/CDFWorker.js +1 -1
  69. package/src/{Processor → environment}/EnvironmentExactTable.js +2 -2
  70. package/src/{managers → environment}/EnvironmentManager.js +10 -10
  71. package/src/{Processor → environment}/EquirectHDRInfo.js +1 -1
  72. package/src/{Processor → environment}/PhysicalSky.js +5 -5
  73. package/src/{Processor → environment}/SolarLimb.js +1 -1
  74. package/src/index.js +46 -46
  75. package/src/{Processor → lights}/EmissiveTriangleBuilder.js +5 -5
  76. package/src/{managers → lights}/LightManager.js +3 -3
  77. package/src/{Processor → lights}/LightSerializer.js +1 -1
  78. package/src/{Processor → loaders}/AssetLoader.js +115 -11
  79. package/src/loaders/SceneLoading.js +730 -0
  80. package/src/{Processor → loaders/archives}/ArchiveCache.js +3 -3
  81. package/src/{Processor → loaders/archives}/ArchiveImporter.js +15 -15
  82. package/src/{Processor/PBRT → loaders/pbrt}/PBRTSceneBuilder.js +2 -3
  83. package/src/{Processor/USD → loaders/usd}/USDScene.js +1 -1
  84. package/src/{Processor/USD → loaders/usd}/index.js +1 -1
  85. package/src/{managers → materials}/MaterialDataManager.js +8 -8
  86. package/src/{Processor → materials}/MaterialPacking.js +1 -1
  87. package/src/{Processor/Workers → materials}/PackWorker.js +1 -1
  88. package/src/{Processor → materials}/TextureCreator.js +6 -6
  89. package/src/{Processor/Workers → materials}/TexturesWorker.js +1 -1
  90. package/src/{Processor → memory}/HostMemory.js +1 -1
  91. package/src/memory/SceneSpill.js +477 -0
  92. package/src/node/nodePlatform.js +4 -2
  93. package/src/output/Pictures.js +460 -0
  94. package/src/{Processor → output}/ToneMapCPU.js +2 -2
  95. package/src/{Processor → output}/ToneMapGPU.js +2 -2
  96. package/src/{integrators → pathtracer}/BidirectionalIntegrator.js +16 -16
  97. package/src/{Processor → pathtracer}/KernelManager.js +29 -4
  98. package/src/{Processor → pathtracer}/PackedRayBuffer.js +3 -3
  99. package/src/{Stages → pathtracer}/PathTracer.js +272 -180
  100. package/src/{Stages → pathtracer}/PathTracerStage.js +21 -25
  101. package/src/{Processor → pathtracer}/QueueManager.js +42 -13
  102. package/src/{Processor → pathtracer}/ShaderBuilder.js +1 -1
  103. package/src/{Processor → pathtracer}/StorageTexturePool.js +2 -2
  104. package/src/{managers → pathtracer}/UniformManager.js +2 -2
  105. package/src/{Pipeline → pipeline}/CompletionTracker.js +8 -1
  106. package/src/{Stages → pipeline}/Compositor.js +23 -10
  107. package/src/{Processor → scene}/BuildTimer.js +1 -1
  108. package/src/{Processor → scene}/GeometryExtractor.js +46 -6
  109. package/src/scene/SceneEdits.js +260 -0
  110. package/src/{Processor → scene}/SceneProcessor.js +64 -1105
  111. package/src/scene/SceneRefit.js +823 -0
  112. package/src/{TSL → shaders}/Atmosphere.js +1 -1
  113. package/src/{TSL → shaders}/BVHTraversal.js +1 -1
  114. package/src/{TSL → shaders}/CameraRay.js +1 -1
  115. package/src/{TSL → shaders}/Common.js +1 -1
  116. package/src/{TSL → shaders}/EmissiveSampling.js +1 -1
  117. package/src/{TSL → shaders}/Environment.js +1 -1
  118. package/src/{TSL → shaders}/LightGuide.js +1 -1
  119. package/src/{TSL → shaders}/LightVisibility.js +1 -1
  120. package/src/{TSL → shaders}/Sun.js +1 -1
  121. package/src/{TSL → shaders}/TextureSampling.js +1 -1
  122. package/src/{TSL → shaders/kernels}/CompactKernel.js +2 -2
  123. package/src/{TSL → shaders/kernels}/ConnectKernel.js +10 -10
  124. package/src/{TSL → shaders/kernels}/DebugKernel.js +4 -4
  125. package/src/{TSL → shaders/kernels}/DepthPass.js +10 -10
  126. package/src/{TSL → shaders/kernels}/ExtendKernel.js +5 -5
  127. package/src/{TSL → shaders/kernels}/FinalWriteKernel.js +14 -4
  128. package/src/{TSL → shaders/kernels}/GenerateKernel.js +5 -5
  129. package/src/{TSL → shaders/kernels}/LightGenerateKernel.js +14 -14
  130. package/src/{TSL → shaders/kernels}/LightSplatKernel.js +9 -9
  131. package/src/{TSL → shaders/kernels}/MergeKernel.js +7 -7
  132. package/src/{TSL → shaders/kernels}/ShadeKernel.js +27 -27
  133. package/src/{TSL → shaders/kernels}/SortGlobalKernels.js +2 -2
  134. package/src/{TSL → shaders}/patches.js +1 -1
  135. package/src/{Storage → storage}/BLASCache.js +1 -1
  136. package/src/{Storage → storage}/DownloadCache.js +10 -0
  137. package/src/{Headless.js → viewer/Headless.js} +15 -3
  138. package/src/{PathTracerApp.js → viewer/PathTracerApp.js} +54 -32
  139. package/src/{SceneState → viewer}/SceneState.js +3 -3
  140. package/src/{managers → viewer/animation}/AnimationManager.js +1 -1
  141. package/src/{managers/timeline → viewer/animation}/CameraTrack.js +1 -1
  142. package/src/{managers/timeline → viewer/animation}/TimelineManager.js +1 -1
  143. package/src/{managers → viewer/animation}/VideoRenderManager.js +4 -4
  144. package/src/{managers → viewer/camera}/CameraManager.js +10 -10
  145. package/src/{managers → viewer/camera}/InteractionManager.js +4 -4
  146. package/src/{Stages → viewer/denoise}/DenoiserSettings.js +1 -1
  147. package/src/{managers → viewer/denoise}/DenoisingManager.js +27 -17
  148. package/src/{Stages → viewer/denoise}/MotionVector.js +3 -3
  149. package/src/{Stages → viewer/denoise}/NRD.js +4 -4
  150. package/src/{Stages → viewer/denoise}/NormalDepth.js +8 -8
  151. package/src/{Passes → viewer/denoise}/OIDNDenoiser.js +94 -25
  152. package/src/{Passes → viewer/denoise}/OIDNTemporalHistory.js +1 -1
  153. package/src/{managers → viewer/lights}/GoboManager.js +3 -3
  154. package/src/{managers → viewer/lights}/IESManager.js +4 -4
  155. package/src/{Processor → viewer/lights}/IESParser.js +1 -1
  156. package/src/{managers → viewer/overlays}/OverlayManager.js +10 -10
  157. package/src/{managers/helpers → viewer/overlays}/TransformGizmoHelper.js +1 -1
  158. package/src/{managers → viewer/overlays}/TransformManager.js +1 -1
  159. package/src/{managers/helpers → viewer/overlays}/ViewOverlayRenderer.js +2 -12
  160. package/src/{Passes → viewer/picture}/AIUpscaler.js +3 -3
  161. package/src/{Processor/Workers → viewer/picture}/AIUpscalerWorker.js +2 -2
  162. package/src/{Stages → viewer/picture}/AutoExposure.js +2 -2
  163. package/src/{Stages → viewer/picture}/LocalExposure.js +2 -2
  164. package/src/{neural → viewer/picture}/NeuralRetouch.js +3 -3
  165. package/src/{neural → viewer/picture}/NeuralSuperRes.js +5 -5
  166. package/src/viewer/picture/PictureView.js +205 -0
  167. package/dist/RayzeeRenderer-D1NeGoVA.js +0 -4051
  168. package/dist/SceneMetadata-BBx6k2EY.js +0 -183
  169. package/dist/identity-CtOwEU7N.js +0 -49
  170. package/dist/shared-ubP8eJlr.js +0 -17
  171. package/src/Processor/generateMaterialSpheres.js +0 -71
  172. package/src/Processor/utils.js +0 -613
  173. /package/dist/{AssetConfig-BY4jDfTH.js → AssetConfig-C8BsprCp.js} +0 -0
  174. /package/src/{utils/Logger.js → Logger.js} +0 -0
  175. /package/src/{Processor → bvh}/ReinsertionOptimizer.js +0 -0
  176. /package/src/{Color → color}/ActiveColor.js +0 -0
  177. /package/src/{Color → color}/BakedViews.js +0 -0
  178. /package/src/{Color → color}/BasicColor.js +0 -0
  179. /package/src/{Color → color}/BuiltinViews.js +0 -0
  180. /package/src/{Color → color}/ColorSpaces.js +0 -0
  181. /package/src/{Color → color}/Displays.js +0 -0
  182. /package/src/{Color → color}/InputColorSpaces.js +0 -0
  183. /package/src/{Color → color}/LutBake.js +0 -0
  184. /package/src/{Color → color}/OcioViews.js +0 -0
  185. /package/src/{Color → color}/ViewTransforms.js +0 -0
  186. /package/src/{Color → color}/WorkingMatrix.js +0 -0
  187. /package/src/{Processor → environment}/AtmosphereModel.js +0 -0
  188. /package/src/{Processor → environment}/SimpleSky.js +0 -0
  189. /package/src/{Processor → environment}/SunPosition.js +0 -0
  190. /package/src/{Processor → lights}/LightBVHBuilder.js +0 -0
  191. /package/src/{Processor → lights}/blackbody.js +0 -0
  192. /package/src/{Processor → loaders}/FileFormats.js +0 -0
  193. /package/src/{Processor → loaders}/GLTFDecoders.js +0 -0
  194. /package/src/{Processor → loaders}/GLTFDiffuseTransmission.js +0 -0
  195. /package/src/{Processor → loaders}/PlatformImageLoader.js +0 -0
  196. /package/src/{Processor → loaders}/SceneMetadata.js +0 -0
  197. /package/src/{Processor → loaders/archives}/ArchiveReader.js +0 -0
  198. /package/src/{Processor → loaders/archives}/ZipReader.js +0 -0
  199. /package/src/{Processor → loaders/archives}/archiveFormats.js +0 -0
  200. /package/src/{Processor/PBRT → loaders/pbrt}/EqualAreaOctahedral.js +0 -0
  201. /package/src/{Processor/PBRT → loaders/pbrt}/LoopSubdivision.js +0 -0
  202. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTAnimation.js +0 -0
  203. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTCurves.js +0 -0
  204. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTMaterials.js +0 -0
  205. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTMath.js +0 -0
  206. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTParser.js +0 -0
  207. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTScattering.js +0 -0
  208. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTTextureBake.js +0 -0
  209. /package/src/{Processor/PBRT → loaders/pbrt}/PBRTTokenizer.js +0 -0
  210. /package/src/{Processor/PBRT → loaders/pbrt}/PFM.js +0 -0
  211. /package/src/{Processor/PBRT → loaders/pbrt}/buffers.js +0 -0
  212. /package/src/{Processor/PBRT → loaders/pbrt}/index.js +0 -0
  213. /package/src/{Processor/USD → loaders/usd}/USDLayer.js +0 -0
  214. /package/src/{Processor/USD → loaders/usd}/USDStage.js +0 -0
  215. /package/src/{Processor/USD → loaders/usd}/USDText.js +0 -0
  216. /package/src/{Processor → materials}/ResampleRGBA8.js +0 -0
  217. /package/src/{Processor → materials}/TextureBuckets.js +0 -0
  218. /package/src/{Processor → memory}/ChunkedRecords.js +0 -0
  219. /package/src/{Processor → memory}/VRAMTracker.js +0 -0
  220. /package/src/{Processor → output}/ImageEncoders.js +0 -0
  221. /package/src/{Processor → output}/TextureReadback.js +0 -0
  222. /package/src/{Processor → pathtracer}/CameraOptimizer.js +0 -0
  223. /package/src/{Pipeline → pipeline}/BindingAudit.js +0 -0
  224. /package/src/{Pipeline → pipeline}/EventDispatcher.js +0 -0
  225. /package/src/{Pipeline → pipeline}/PipelineContext.js +0 -0
  226. /package/src/{Pipeline → pipeline}/RenderPipeline.js +0 -0
  227. /package/src/{Pipeline → pipeline}/RenderStage.js +0 -0
  228. /package/src/{SceneState/portable.js → portable.js} +0 -0
  229. /package/src/{Processor → scene}/BufferLayout.js +0 -0
  230. /package/src/{Processor → scene}/InstanceTable.js +0 -0
  231. /package/src/{SceneHelpers.js → scene/SceneHelpers.js} +0 -0
  232. /package/src/{managers → scene}/ViewCamera.js +0 -0
  233. /package/src/{TSL → shaders}/Bidirectional.js +0 -0
  234. /package/src/{TSL → shaders}/BidirectionalLamps.js +0 -0
  235. /package/src/{TSL → shaders}/Clearcoat.js +0 -0
  236. /package/src/{TSL → shaders}/Debugger.js +0 -0
  237. /package/src/{TSL → shaders}/Displacement.js +0 -0
  238. /package/src/{TSL → shaders}/EnvironmentCDF.js +0 -0
  239. /package/src/{TSL → shaders}/Fresnel.js +0 -0
  240. /package/src/{TSL → shaders}/HitFacet.js +0 -0
  241. /package/src/{TSL → shaders}/LightBVHSampling.js +0 -0
  242. /package/src/{TSL → shaders}/LightsCore.js +0 -0
  243. /package/src/{TSL → shaders}/LightsDirect.js +0 -0
  244. /package/src/{TSL → shaders}/LightsIndirect.js +0 -0
  245. /package/src/{TSL → shaders}/LightsSampling.js +0 -0
  246. /package/src/{TSL → shaders}/MaterialEvaluation.js +0 -0
  247. /package/src/{TSL → shaders}/MaterialProperties.js +0 -0
  248. /package/src/{TSL → shaders}/MaterialSampling.js +0 -0
  249. /package/src/{TSL → shaders}/MaterialTransmission.js +0 -0
  250. /package/src/{TSL → shaders}/PathTracerCore.js +0 -0
  251. /package/src/{TSL → shaders}/Random.js +0 -0
  252. /package/src/{TSL → shaders}/SceneResources.js +0 -0
  253. /package/src/{TSL → shaders}/ShadowTerminator.js +0 -0
  254. /package/src/{TSL → shaders}/Struct.js +0 -0
  255. /package/src/{TSL → shaders}/Subsurface.js +0 -0
  256. /package/src/{Storage → storage}/CDFCache.js +0 -0
  257. /package/src/{Storage → storage}/GeometrySpill.js +0 -0
  258. /package/src/{Storage → storage}/SceneGraphCodec.js +0 -0
  259. /package/src/{Storage → storage}/SpillStore.js +0 -0
  260. /package/src/{Storage → storage}/StorageManager.js +0 -0
  261. /package/src/{Storage → storage}/StorageOps.js +0 -0
  262. /package/src/{Storage → storage}/StorageWorker.js +0 -0
  263. /package/src/{Storage → storage}/areas.js +0 -0
  264. /package/src/{Storage → storage}/events.js +0 -0
  265. /package/src/{Storage → storage}/identity.js +0 -0
  266. /package/src/{Storage → storage}/index.js +0 -0
  267. /package/src/{Storage → storage}/inlineTransport.js +0 -0
  268. /package/src/{Storage → storage}/locks.js +0 -0
  269. /package/src/{Storage → storage}/openStorage.js +0 -0
  270. /package/src/{Storage → storage}/sceneCachePolicy.js +0 -0
  271. /package/src/{Storage → storage}/shared.js +0 -0
  272. /package/src/{Storage → storage}/transport.js +0 -0
  273. /package/src/{managers → viewer/camera}/WalkControls.js +0 -0
  274. /package/src/{managers/helpers → viewer/overlays}/OutlineHelper.js +0 -0
  275. /package/src/{managers/helpers → viewer/overlays}/TileHelper.js +0 -0
  276. /package/src/{managers/helpers → viewer/overlays}/overlaySurface.js +0 -0
@@ -1,15 +1,15 @@
1
- import { n as e } from "./BidirectionalIntegrator-D6rcU7N1.js";
2
- import { A as t, B as n, J as r, T as i, X as a, n as o, r as s, v as c, x as l } from "./sceneCachePolicy-DcEWCTKO.js";
3
- import { n as u, r as d, t as f } from "./EngineIssues-B14FGIHX.js";
4
- import { r as p } from "./shared-ubP8eJlr.js";
5
- import { i as m, n as h, o as g, r as _ } from "./identity-CtOwEU7N.js";
6
- import { a as v, s as y, t as b } from "./SceneMetadata-BBx6k2EY.js";
7
- import { n as x, t as S } from "./ZipReader-Bva4oiva.js";
1
+ import { n as e } from "./BidirectionalIntegrator-BEXXxmZH.js";
2
+ import { n as t, r as n, t as r } from "./EngineIssues-t5p7TEjb.js";
3
+ import { D as i, F as a, M as o, R as s, a as c, c as l, j as u, l as d, t as f, w as p } from "./SceneMetadata-BUfzHMSj.js";
4
+ import { i as m, l as h, n as g, o as _, r as v } from "./identity-x_UfobDa.js";
5
+ import { a as y } from "./EngineEvents-oQGofgRf.js";
6
+ import { t as b } from "./archiveFormats-j39rQeKs.js";
7
+ import { n as x, t as S } from "./ZipReader-KPFbIuOs.js";
8
8
  import { AnimationClip as C, BooleanKeyframeTrack as w, BoxGeometry as T, BufferAttribute as E, BufferGeometry as D, CapsuleGeometry as ee, ClampToEdgeWrapping as te, Color as O, ConeGeometry as ne, CylinderGeometry as re, DataTexture as k, DirectionalLight as ie, DoubleSide as A, EquirectangularReflectionMapping as ae, Euler as oe, Float32BufferAttribute as j, FloatType as se, FrontSide as ce, Group as le, InstancedBufferAttribute as ue, InstancedMesh as de, LinearFilter as fe, LoadingManager as pe, MaterialLoader as me, Matrix4 as M, Mesh as he, MeshPhysicalMaterial as N, MirroredRepeatWrapping as ge, NoColorSpace as _e, NumberKeyframeTrack as ve, Object3D as ye, OrthographicCamera as be, PerspectiveCamera as xe, PlaneGeometry as Se, PointLight as Ce, Quaternion as we, QuaternionKeyframeTrack as Te, RGBAFormat as Ee, RectAreaLight as De, RepeatWrapping as Oe, SRGBColorSpace as P, SphereGeometry as ke, SpotLight as Ae, Texture as je, Uint32BufferAttribute as F, Vector3 as I, VectorKeyframeTrack as Me } from "three";
9
9
  import { HDRLoader as Ne } from "three/addons/loaders/HDRLoader.js";
10
10
  import { Gunzip as Pe, strFromU8 as Fe } from "three/addons/libs/fflate.module.js";
11
11
  import { EXRLoader as Ie } from "three/addons/loaders/EXRLoader.js";
12
- //#region src/Processor/ArchiveReader.js
12
+ //#region src/loaders/archives/ArchiveReader.js
13
13
  var L = 512, Le = 4 << 20, Re = 15e8, ze = new TextDecoder();
14
14
  function Be(e) {
15
15
  return e.length >= 2 && e[0] === 31 && e[1] === 139;
@@ -331,59 +331,59 @@ function lt(e) {
331
331
  };
332
332
  }
333
333
  //#endregion
334
- //#region src/Processor/ArchiveCache.js
334
+ //#region src/loaders/archives/ArchiveCache.js
335
335
  var ut = 1, dt = 3;
336
336
  async function ft(e, t) {
337
- return `${e}:${m(await h(t))}`;
338
- }
339
- async function pt(e, { storage: t, label: n = e.name, onProgress: r = null, filter: i = null, part: a = null }) {
340
- if (!t || typeof DecompressionStream > "u") return null;
341
- let o = t.area(p.ARCHIVES), s = await ft("gunzip", e), c = s, l = await o.open(s);
342
- !l && i && (l = await o.open(c = `${s}|${a}`));
343
- let d = !!l;
344
- if (!l) {
345
- let s = await o.create(c, i ? { label: `${n} (${a})` } : {
346
- label: n,
337
+ return `${e}:${m(await g(t))}`;
338
+ }
339
+ async function pt(e, { storage: n, label: r = e.name, onProgress: i = null, filter: a = null, part: o = null }) {
340
+ if (!n || typeof DecompressionStream > "u") return null;
341
+ let s = n.area(h.ARCHIVES), c = await ft("gunzip", e), l = c, u = await s.open(c);
342
+ !u && a && (u = await s.open(l = `${c}|${o}`));
343
+ let d = !!u;
344
+ if (!u) {
345
+ let c = await s.create(l, a ? { label: `${r} (${o})` } : {
346
+ label: r,
347
347
  expectedBytes: e.size * dt
348
348
  });
349
- if (!s) return null;
350
- let d = null, f = at(i ? {
351
- filter: i,
349
+ if (!c) return null;
350
+ let d = null, f = at(a ? {
351
+ filter: a,
352
352
  sink: (e) => d.enqueue(e)
353
- } : {}), m = new TransformStream({
353
+ } : {}), p = new TransformStream({
354
354
  start(e) {
355
355
  d = e;
356
356
  },
357
357
  transform(e, t) {
358
- f.push(e), i || t.enqueue(e);
358
+ f.push(e), a || t.enqueue(e);
359
359
  }
360
360
  });
361
361
  try {
362
- let t = e.stream().pipeThrough(new DecompressionStream("gzip")).pipeThrough(m), n = await s.writeStream("data.tar", t, { onProgress: r });
363
- await s.writeJSON("index.json", {
362
+ let t = e.stream().pipeThrough(new DecompressionStream("gzip")).pipeThrough(p), n = await c.writeStream("data.tar", t, { onProgress: i });
363
+ await c.writeJSON("index.json", {
364
364
  v: ut,
365
365
  listing: f.finish()
366
- }), await s.commit({
366
+ }), await c.commit({
367
367
  compressedBytes: e.size,
368
368
  tarBytes: n
369
369
  });
370
370
  } catch (e) {
371
- if (await s.abort(), e?.name !== "QuotaExceededError") throw e;
372
- return t._issue(u.STORAGE_QUOTA_EXCEEDED, `ran out of room unpacking ${n}; reading it in memory instead`, { area: p.ARCHIVES }), null;
371
+ if (await c.abort(), e?.name !== "QuotaExceededError") throw e;
372
+ return n._issue(t.STORAGE_QUOTA_EXCEEDED, `ran out of room unpacking ${r}; reading it in memory instead`, { area: h.ARCHIVES }), null;
373
373
  }
374
- if (l = await o.open(c, { wait: !0 }), !l) return null;
374
+ if (u = await s.open(l, { wait: !0 }), !u) return null;
375
375
  }
376
- let f = await l.file("data.tar"), m = await l.json("index.json");
377
- return !f || m?.v !== ut ? (l.release(), null) : {
376
+ let f = await u.file("data.tar"), p = await u.json("index.json");
377
+ return !f || p?.v !== ut ? (u.release(), null) : {
378
378
  file: f,
379
- index: m,
380
- release: () => l.release(),
379
+ index: p,
380
+ release: () => u.release(),
381
381
  cached: d
382
382
  };
383
383
  }
384
384
  async function mt(e, t) {
385
385
  if (!t) return null;
386
- let n = await t.area(p.ARCHIVES).open(await ft("tarindex", e));
386
+ let n = await t.area(h.ARCHIVES).open(await ft("tarindex", e));
387
387
  if (!n) return null;
388
388
  try {
389
389
  let e = await n.json("index.json");
@@ -394,7 +394,7 @@ async function mt(e, t) {
394
394
  }
395
395
  async function ht(e, t, n) {
396
396
  if (!t || !n) return !1;
397
- let r = await t.area(p.ARCHIVES).create(await ft("tarindex", e), { label: `${e.name} (index)` });
397
+ let r = await t.area(h.ARCHIVES).create(await ft("tarindex", e), { label: `${e.name} (index)` });
398
398
  if (!r) return !1;
399
399
  try {
400
400
  return await r.writeJSON("index.json", n), await r.commit(), !0;
@@ -746,7 +746,7 @@ async function Ht(e, t, { loadTexture: n }) {
746
746
  };
747
747
  }
748
748
  //#endregion
749
- //#region src/Processor/PBRT/buffers.js
749
+ //#region src/loaders/pbrt/buffers.js
750
750
  var Ut = (e) => e.byteOffset === 0 && e.byteLength === e.buffer.byteLength && typeof e.buffer.transfer == "function" && !(typeof SharedArrayBuffer < "u" && e.buffer instanceof SharedArrayBuffer);
751
751
  function R(e) {
752
752
  e && Ut(e) && e.buffer.transfer(0);
@@ -758,7 +758,7 @@ function z(e, t) {
758
758
  return r.set(t < e.length ? e.subarray(0, t) : e), r;
759
759
  }
760
760
  //#endregion
761
- //#region src/Processor/PBRT/PBRTTokenizer.js
761
+ //#region src/loaders/pbrt/PBRTTokenizer.js
762
762
  var B = {
763
763
  STRING: "string",
764
764
  NUMBER: "number",
@@ -861,7 +861,7 @@ var mn = class {
861
861
  }
862
862
  };
863
863
  //#endregion
864
- //#region src/Processor/PBRT/PBRTMath.js
864
+ //#region src/loaders/pbrt/PBRTMath.js
865
865
  function hn() {
866
866
  return [
867
867
  1,
@@ -1043,7 +1043,7 @@ function Tn(e) {
1043
1043
  ];
1044
1044
  }
1045
1045
  //#endregion
1046
- //#region src/Processor/PBRT/PBRTParser.js
1046
+ //#region src/loaders/pbrt/PBRTParser.js
1047
1047
  var En = 8, Dn = 1, On = 2, kn = 3, An = new Set([
1048
1048
  "Identity",
1049
1049
  "Transform",
@@ -2104,7 +2104,7 @@ function zn(e, t) {
2104
2104
  return (r + i) / 2;
2105
2105
  }
2106
2106
  //#endregion
2107
- //#region src/Processor/PBRT/PBRTMaterials.js
2107
+ //#region src/loaders/pbrt/PBRTMaterials.js
2108
2108
  var Bn = {
2109
2109
  au: [
2110
2110
  1,
@@ -2471,7 +2471,7 @@ async function tr(e, t) {
2471
2471
  return s && t.resolveNormalMap && (i.normalMap = await t.resolveNormalMap(s)), i.clearcoat > 0 && i.normalMap && (i.clearcoatNormalMap = i.normalMap), i.roughness = Math.max(0, Math.min(1, i.roughness)), i;
2472
2472
  }
2473
2473
  //#endregion
2474
- //#region src/Processor/PBRT/PBRTTextureBake.js
2474
+ //#region src/loaders/pbrt/PBRTTextureBake.js
2475
2475
  var nr = 4096, rr = (e) => e?.key ?? "", ir = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, ar = (e) => e <= .0031308 ? e * 12.92 : 1.055 * e ** (1 / 2.4) - .055;
2476
2476
  function or(e, { channels: t, decode: n = null, scale: r = 1, invert: i = !1, mapping: a = null }) {
2477
2477
  let { width: o, height: s } = e, c = e.channels ?? 4, l = new Float32Array(o * s * t), u = e.topDown !== !1, d = n && (e.data instanceof Uint8Array || e.data instanceof Uint8ClampedArray) ? Float64Array.from({ length: 256 }, (e, t) => n(t / 255)) : null, f = d ? (t) => d[e.data[t]] : (t) => n ? n(e.data[t] / 255) : e.data[t], p = t === 1 && c === 4 && sr(e), m = t === 1 && c >= 3 && !p;
@@ -2650,7 +2650,7 @@ function hr(e, t, n, r) {
2650
2650
  };
2651
2651
  }
2652
2652
  //#endregion
2653
- //#region src/Processor/PBRT/LoopSubdivision.js
2653
+ //#region src/loaders/pbrt/LoopSubdivision.js
2654
2654
  function gr(e) {
2655
2655
  return e === 3 ? 3 / 16 : 3 / (8 * e);
2656
2656
  }
@@ -2738,7 +2738,7 @@ function xr(e, t, n, r = 2e6) {
2738
2738
  };
2739
2739
  }
2740
2740
  //#endregion
2741
- //#region src/Processor/PBRT/EqualAreaOctahedral.js
2741
+ //#region src/loaders/pbrt/EqualAreaOctahedral.js
2742
2742
  function Sr(e, t, n) {
2743
2743
  let r = Math.abs(e), i = Math.abs(t), a = Math.sqrt(Math.max(0, 1 - Math.abs(n))), o = Math.max(r, i), s = o === 0 ? 0 : Math.min(r, i) / o, c = 2 / Math.PI * Math.atan(s);
2744
2744
  r < i && (c = 1 - c);
@@ -2791,7 +2791,7 @@ function Tr(e, t, n = 1, r = 0) {
2791
2791
  };
2792
2792
  }
2793
2793
  //#endregion
2794
- //#region src/Processor/PBRT/PBRTCurves.js
2794
+ //#region src/loaders/pbrt/PBRTCurves.js
2795
2795
  var Er = 2;
2796
2796
  function Dr(e, t) {
2797
2797
  let n = e * e, r = n * e;
@@ -3086,7 +3086,7 @@ async function Hr(e, t = null) {
3086
3086
  };
3087
3087
  }
3088
3088
  //#endregion
3089
- //#region src/Processor/PBRT/PBRTSceneBuilder.js
3089
+ //#region src/loaders/pbrt/PBRTSceneBuilder.js
3090
3090
  var Ur = new Set([
3091
3091
  "distant",
3092
3092
  "point",
@@ -3506,27 +3506,27 @@ var Ri = class {
3506
3506
  return this._countedGeometries.has(e) || (this._countedGeometries.add(e), this.triangleCount += t), t;
3507
3507
  }
3508
3508
  async _buildInstances(e, t) {
3509
- let r = 0;
3509
+ let n = 0;
3510
3510
  e.skippedInstances > 0 && (this.skippedForBudget += e.skippedInstances);
3511
- let i = new Float64Array(16), a = new M(), o = /* @__PURE__ */ new Map(), s = (e, s, c, l, u, d, f) => {
3511
+ let r = new Float64Array(16), i = new M(), o = /* @__PURE__ */ new Map(), s = (e, s, c, l, u, d, f) => {
3512
3512
  let p = l ? Array.prototype.join.call(l, ",") : "", m = o.get(e);
3513
3513
  m || o.set(e, m = /* @__PURE__ */ new Map());
3514
3514
  let h = m.get(p), g = Math.max(0, this.maxPlacements - this.placementCount), _ = h ? h.count : Math.min(e.count, g);
3515
3515
  if (!h && _ < e.count && (this.skippedForBudget += e.count - _), _ === 0) return;
3516
3516
  let v = new de(s, c, _);
3517
- if (v.name = `instance_${r++}`, v.frustumCulled = !1, h) v.instanceMatrix = h.attribute;
3517
+ if (v.name = `instance_${n++}`, v.frustumCulled = !1, h) v.instanceMatrix = h.attribute;
3518
3518
  else {
3519
3519
  for (let t = 0; t < _; t++) {
3520
- if (l) _n(i, e.matrices, t * 16, l);
3521
- else for (let n = 0; n < 16; n++) i[n] = e.matrices[t * 16 + n];
3522
- v.setMatrixAt(t, a.fromArray(this.convertHandedness ? V(Gr, i) : i));
3520
+ if (l) _n(r, e.matrices, t * 16, l);
3521
+ else for (let n = 0; n < 16; n++) r[n] = e.matrices[t * 16 + n];
3522
+ v.setMatrixAt(t, i.fromArray(this.convertHandedness ? V(Gr, r) : r));
3523
3523
  }
3524
3524
  v.instanceMatrix.needsUpdate = !0, m.set(p, {
3525
3525
  attribute: v.instanceMatrix,
3526
3526
  count: _
3527
3527
  }), this.placementCount += _;
3528
3528
  }
3529
- n(v), t.add(v), this.reportedMeshes += _, this.report.length < Xr && this.report.push({
3529
+ a(v), t.add(v), this.reportedMeshes += _, this.report.length < Xr && this.report.push({
3530
3530
  mesh: `${v.name} ×${_}`,
3531
3531
  shape: u,
3532
3532
  material: d,
@@ -3825,26 +3825,26 @@ var Ri = class {
3825
3825
  return a && a.length && n.setIndex(qr(a)), r || n.computeVertexNormals(), n;
3826
3826
  }
3827
3827
  _curve(e) {
3828
- let n = U(e, "P")?.value;
3829
- if (!n || n.length < 12) return this.warn("curve needs at least 4 control points"), null;
3830
- let r = Math.round(G(e, "degree", 3));
3831
- if (r !== 3) return this.warn(`curve degree ${r} not supported — only cubic`), null;
3832
- let i = K(e, "type", "flat"), a = G(e, "width", 1), o = Lr({
3833
- P: n,
3828
+ let t = U(e, "P")?.value;
3829
+ if (!t || t.length < 12) return this.warn("curve needs at least 4 control points"), null;
3830
+ let n = Math.round(G(e, "degree", 3));
3831
+ if (n !== 3) return this.warn(`curve degree ${n} not supported — only cubic`), null;
3832
+ let r = K(e, "type", "flat"), i = G(e, "width", 1), a = Lr({
3833
+ P: t,
3834
3834
  basis: K(e, "basis", "bezier"),
3835
- width0: G(e, "width0", a),
3836
- width1: G(e, "width1", a),
3835
+ width0: G(e, "width0", i),
3836
+ width1: G(e, "width1", i),
3837
3837
  N: U(e, "N")?.value || null,
3838
3838
  steps: this.curveSteps,
3839
- sides: this.curveSides ?? ii[i] ?? 1,
3839
+ sides: this.curveSides ?? ii[r] ?? 1,
3840
3840
  tolerance: this.curveTolerance
3841
3841
  });
3842
- if (!o) return this.warn("curve could not be tessellated"), null;
3843
- let s = new D();
3844
- return s.setAttribute("position", new E(o.positions, 3)), s.setIndex(new E(o.indices, 1)), s.computeVertexNormals(), t(s, "normal"), s;
3842
+ if (!a) return this.warn("curve could not be tessellated"), null;
3843
+ let o = new D();
3844
+ return o.setAttribute("position", new E(a.positions, 3)), o.setIndex(new E(a.indices, 1)), o.computeVertexNormals(), s(o, "normal"), o;
3845
3845
  }
3846
3846
  async _curves(e) {
3847
- let n = await Hr({
3847
+ let t = await Hr({
3848
3848
  P: U(e, "P").value,
3849
3849
  counts: U(e, "counts").value,
3850
3850
  widths: U(e, "widths")?.value ?? null,
@@ -3858,10 +3858,10 @@ var Ri = class {
3858
3858
  sides: this.curveSides ?? 1,
3859
3859
  tolerance: this.curveTolerance
3860
3860
  }, () => this._tick());
3861
- if (!n) return this.warn("curves could not be tessellated"), null;
3862
- n.skipped > 0 && this.warn(`${n.skipped} curve(s) of an unsupported basis or too few points skipped`);
3863
- let r = new D();
3864
- return r.setAttribute("position", new E(n.positions, 3)), r.setIndex(new E(n.indices, 1)), r.computeVertexNormals(), t(r, "normal"), r;
3861
+ if (!t) return this.warn("curves could not be tessellated"), null;
3862
+ t.skipped > 0 && this.warn(`${t.skipped} curve(s) of an unsupported basis or too few points skipped`);
3863
+ let n = new D();
3864
+ return n.setAttribute("position", new E(t.positions, 3)), n.setIndex(new E(t.indices, 1)), n.computeVertexNormals(), s(n, "normal"), n;
3865
3865
  }
3866
3866
  _loopSubdiv(e) {
3867
3867
  let t = U(e, "P")?.value, n = U(e, "indices")?.value;
@@ -4830,7 +4830,7 @@ function ea(e) {
4830
4830
  }, e;
4831
4831
  }
4832
4832
  //#endregion
4833
- //#region src/Processor/PBRT/index.js
4833
+ //#region src/loaders/pbrt/index.js
4834
4834
  var ta = 2e6, na = new TextDecoder();
4835
4835
  function ra(e) {
4836
4836
  let t = e.replace(/\\/g, "/").split("/"), n = [];
@@ -5040,7 +5040,7 @@ function ya(e) {
5040
5040
  return `${t.length > 1 ? t[t.length - 2] : t[0].replace(/\d+\.pbrt$/i, "") || "frames"} · frames ${e[0].number}–${e[e.length - 1].number}`;
5041
5041
  }
5042
5042
  //#endregion
5043
- //#region src/Processor/USD/USDLayer.js
5043
+ //#region src/loaders/usd/USDLayer.js
5044
5044
  var ba = class {
5045
5045
  constructor(e, t) {
5046
5046
  this.asset = e, this.path = t;
@@ -5687,7 +5687,7 @@ function Ga(e, t = "") {
5687
5687
  return r;
5688
5688
  }
5689
5689
  //#endregion
5690
- //#region src/Processor/USD/USDText.js
5690
+ //#region src/loaders/usd/USDText.js
5691
5691
  var Ka = new Set([
5692
5692
  "prepend",
5693
5693
  "append",
@@ -6054,7 +6054,7 @@ function fo(e, t = "") {
6054
6054
  return new uo(e).parse(t);
6055
6055
  }
6056
6056
  //#endregion
6057
- //#region src/Processor/USD/USDStage.js
6057
+ //#region src/loaders/usd/USDStage.js
6058
6058
  var po = {
6059
6059
  local: 0,
6060
6060
  inherit: 1,
@@ -8132,7 +8132,7 @@ async function ds(e) {
8132
8132
  };
8133
8133
  }
8134
8134
  //#endregion
8135
- //#region src/Processor/PBRT/PFM.js
8135
+ //#region src/loaders/pbrt/PFM.js
8136
8136
  function fs(e) {
8137
8137
  let t = 0, n = () => {
8138
8138
  for (; t < e.length && e[t] <= 32;) t++;
@@ -8162,7 +8162,7 @@ function ps(e) {
8162
8162
  return i.minFilter = fe, i.magFilter = fe, i.needsUpdate = !0, i;
8163
8163
  }
8164
8164
  //#endregion
8165
- //#region src/Processor/ArchiveImporter.js
8165
+ //#region src/loaders/archives/ArchiveImporter.js
8166
8166
  var ms = /* @__PURE__ */ e({
8167
8167
  ARCHIVE_ELEMENT_PROMPT_BYTES: () => Ss,
8168
8168
  ArchiveImporter: () => ws,
@@ -8184,7 +8184,7 @@ var ms = /* @__PURE__ */ e({
8184
8184
  let t = await vs(e);
8185
8185
  return t.byteOffset === 0 && t.byteLength === t.buffer.byteLength ? t.buffer : t.slice().buffer;
8186
8186
  }, Ss = 4e9, Cs = 1e9, ws = class {
8187
- static FORMATS = y;
8187
+ static FORMATS = b;
8188
8188
  constructor(e) {
8189
8189
  this.loader = e, this._store = null, this.lastPBRTStats = null, this.lastUSDStats = null;
8190
8190
  }
@@ -8195,7 +8195,7 @@ var ms = /* @__PURE__ */ e({
8195
8195
  return e instanceof Uint8Array ? e.subarray(0, t) : typeof e.slice == "function" && typeof e.arrayBuffer == "function" ? new Uint8Array(await e.slice(0, t).arrayBuffer()) : new Uint8Array((await this.loader.readFileAsArrayBuffer(e)).slice(0, t));
8196
8196
  }
8197
8197
  async inspectArchive(e) {
8198
- let t = Ue(await this._readHead(e)), n = (e) => a({
8198
+ let t = Ue(await this._readHead(e)), n = (e) => y({
8199
8199
  isLoading: !0,
8200
8200
  status: `Scanning archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
8201
8201
  progress: 4
@@ -8210,11 +8210,11 @@ var ms = /* @__PURE__ */ e({
8210
8210
  path: e.name,
8211
8211
  size: e.size
8212
8212
  }));
8213
- let { root: i, elements: o } = lt(r);
8213
+ let { root: i, elements: a } = lt(r);
8214
8214
  return {
8215
8215
  kind: t ?? "zip",
8216
8216
  root: i,
8217
- elements: o,
8217
+ elements: a,
8218
8218
  entryCount: r.length,
8219
8219
  totalBytes: r.reduce((e, t) => e + t.size, 0)
8220
8220
  };
@@ -8229,7 +8229,7 @@ var ms = /* @__PURE__ */ e({
8229
8229
  filter: ct(r),
8230
8230
  part: [...r].sort().join(",")
8231
8231
  } : {},
8232
- onProgress: (e) => a({
8232
+ onProgress: (e) => y({
8233
8233
  isLoading: !0,
8234
8234
  status: `Unpacking archive… ${(e / 1e9).toFixed(1)} GB`,
8235
8235
  progress: 4
@@ -8241,7 +8241,7 @@ var ms = /* @__PURE__ */ e({
8241
8241
  }
8242
8242
  async loadArchiveFromFile(e, t, { pbrtEntry: n = null, element: r = null, byteBudget: i, promptBytes: a, ...o } = {}) {
8243
8243
  try {
8244
- let s = Ue(await this._readHead(e)), c = this.loader.storage ? m(await h(e)) : null, l = {
8244
+ let s = Ue(await this._readHead(e)), c = this.loader.storage ? m(await g(e)) : null, l = {
8245
8245
  element: r,
8246
8246
  promptBytes: a,
8247
8247
  pbrtEntry: n,
@@ -8275,7 +8275,7 @@ var ms = /* @__PURE__ */ e({
8275
8275
  async loadFolder(e, { pbrtEntry: t = null, element: n = null, promptBytes: r, ...i } = {}) {
8276
8276
  let a = (Array.isArray(n) ? n : [n]).filter(Boolean), o = st(e, { filter: a.length ? ct(a) : null }), s = o.listing.reduce((e, t) => e + t.size, 0);
8277
8277
  a.length === 0 && this._requireElementChoice(e.name, o.listing, s, r), console.info(`Folder "${e.name}": ${o.listing.length} files, ${(s / 1e9).toFixed(1)} GB` + (a.length ? `, ${a.length} part${a.length > 1 ? "s" : ""} selected.` : "."));
8278
- let c = this.loader.storage ? m(await _(e)) : null;
8278
+ let c = this.loader.storage ? m(await v(e)) : null;
8279
8279
  return await this._loadSource(o, e.name, {
8280
8280
  element: n,
8281
8281
  pbrtEntry: t,
@@ -8313,25 +8313,25 @@ var ms = /* @__PURE__ */ e({
8313
8313
  }) : await this._loadNonPBRTArchive(c, t);
8314
8314
  return this.loader._sourceKey = this.loader._keyed(s, a), l;
8315
8315
  }
8316
- async _loadStoredGraph(e, t, { imageFromBytes: n, envFromBytes: r }) {
8317
- let i = this.loader.storage?.area(p.SCENES), o = i ? await i.open(e) : null;
8316
+ async _loadStoredGraph(e, n, { imageFromBytes: r, envFromBytes: i }) {
8317
+ let a = this.loader.storage?.area(h.SCENES), o = a ? await a.open(e) : null;
8318
8318
  if (!o) return null;
8319
8319
  let s = performance.now(), c = null;
8320
8320
  try {
8321
- a({
8321
+ y({
8322
8322
  isLoading: !0,
8323
8323
  status: "Opening the stored scene...",
8324
8324
  progress: 6
8325
8325
  });
8326
- let e = await o.json("graph.json"), i = await o.file("data.bin"), c = new aa({}, t), l = await Ht(e, i, { loadTexture: async (e, t) => {
8327
- let i = await c.readPath(e);
8328
- return i ? t === "environment" ? r(i, e) : n(i, e) : null;
8326
+ let e = await o.json("graph.json"), t = await o.file("data.bin"), a = new aa({}, n), c = await Ht(e, t, { loadTexture: async (e, t) => {
8327
+ let n = await a.readPath(e);
8328
+ return n ? t === "environment" ? i(n, e) : r(n, e) : null;
8329
8329
  } });
8330
8330
  return {
8331
- ...l.stats,
8332
- group: l.root,
8333
- environment: l.environment ? { texture: l.environment } : null,
8334
- animations: l.animations,
8331
+ ...c.stats,
8332
+ group: c.root,
8333
+ environment: c.environment ? { texture: c.environment } : null,
8334
+ animations: c.animations,
8335
8335
  report: null,
8336
8336
  parseMs: 0,
8337
8337
  buildMs: performance.now() - s,
@@ -8340,11 +8340,11 @@ var ms = /* @__PURE__ */ e({
8340
8340
  } catch (e) {
8341
8341
  return c = e, null;
8342
8342
  } finally {
8343
- o.release(), c && (console.warn(`The stored scene could not be used, parsing the archive instead: ${c.message}`), this.loader._issues?.warn(u.STORAGE_ENTRY_CORRUPT, `stored scene unusable: ${c.message}`, { key: e }), i.remove(e).catch(() => {}));
8343
+ o.release(), c && (console.warn(`The stored scene could not be used, parsing the archive instead: ${c.message}`), this.loader._issues?.warn(t.STORAGE_ENTRY_CORRUPT, `stored scene unusable: ${c.message}`, { key: e }), a.remove(e).catch(() => {}));
8344
8344
  }
8345
8345
  }
8346
8346
  _storeGraph(e, t, n) {
8347
- let r = this.loader.storage?.area(p.SCENES);
8347
+ let r = this.loader.storage?.area(h.SCENES);
8348
8348
  if (!r) return;
8349
8349
  let i;
8350
8350
  try {
@@ -8370,29 +8370,29 @@ var ms = /* @__PURE__ */ e({
8370
8370
  e instanceof Et ? console.info(`Scene not stored for next time: ${e.message}`) : console.warn("Scene not stored for next time:", e);
8371
8371
  return;
8372
8372
  }
8373
- let a, s = new AbortController(), c = {
8373
+ let a, o = new AbortController(), s = {
8374
8374
  key: e,
8375
8375
  encoded: i,
8376
8376
  label: n,
8377
8377
  model: t.group,
8378
8378
  writing: !1,
8379
- signal: s.signal,
8379
+ signal: o.signal,
8380
8380
  parseMs: (t.parseMs ?? 0) + (t.buildMs ?? 0),
8381
8381
  triangles: t.triangleCount ?? null,
8382
8382
  accepted: new Promise((e) => {
8383
8383
  a = e;
8384
8384
  }),
8385
8385
  decide: (e) => {
8386
- a(e), e || s.abort();
8386
+ a(e), e || o.abort();
8387
8387
  }
8388
8388
  };
8389
- this._store = c, o(c.parseMs, i.byteLength) && this._writeGraph(r, c);
8389
+ this._store = s, l(s.parseMs, i.byteLength) && this._writeGraph(r, s);
8390
8390
  }
8391
8391
  flushPendingGraph(e) {
8392
8392
  let t = this._store;
8393
8393
  if (!t || t.writing) return;
8394
- let n = this.loader.storage?.area(p.SCENES);
8395
- n && o(t.parseMs + e, t.encoded.byteLength) ? this._writeGraph(n, t) : this._store = null;
8394
+ let n = this.loader.storage?.area(h.SCENES);
8395
+ n && l(t.parseMs + e, t.encoded.byteLength) ? this._writeGraph(n, t) : this._store = null;
8396
8396
  }
8397
8397
  commitPendingGraph(e) {
8398
8398
  let t = this._store;
@@ -8417,66 +8417,66 @@ var ms = /* @__PURE__ */ e({
8417
8417
  }
8418
8418
  })();
8419
8419
  }
8420
- async _openSeekableArchive(e, t, n, r, { index: i = null, zip: o = !1 } = {}) {
8421
- let s = Array.isArray(n) ? n.filter(Boolean) : n ? [n] : [], c = s.length ? ct(s) : null, l;
8422
- if (o) l = await S(e, { filter: c });
8420
+ async _openSeekableArchive(e, t, n, r, { index: i = null, zip: a = !1 } = {}) {
8421
+ let o = Array.isArray(n) ? n.filter(Boolean) : n ? [n] : [], s = o.length ? ct(o) : null, c;
8422
+ if (a) c = await S(e, { filter: s });
8423
8423
  else {
8424
8424
  let t = i ?? await mt(e, this.loader.storage);
8425
- l = await ot(e, {
8425
+ c = await ot(e, {
8426
8426
  index: t,
8427
8427
  headersOnly: !0,
8428
- filter: c,
8429
- onProgress: (e) => a({
8428
+ filter: s,
8429
+ onProgress: (e) => y({
8430
8430
  isLoading: !0,
8431
8431
  status: `Indexing archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
8432
8432
  progress: 4
8433
8433
  })
8434
- }), t || ht(e, this.loader.storage, l.index).catch(() => {});
8434
+ }), t || ht(e, this.loader.storage, c.index).catch(() => {});
8435
8435
  }
8436
- let u = l.listing.reduce((e, t) => e + t.size, 0);
8437
- return s.length === 0 && this._requireElementChoice(t, l.listing, u, r), console.info(`Archive "${t}": indexed ${l.indexed} entries, ${(u / 1e9).toFixed(1)} GB, none resident` + (s.length ? `, ${s.length} part${s.length > 1 ? "s" : ""} selected.` : ".")), l;
8436
+ let l = c.listing.reduce((e, t) => e + t.size, 0);
8437
+ return o.length === 0 && this._requireElementChoice(t, c.listing, l, r), console.info(`Archive "${t}": indexed ${c.indexed} entries, ${(l / 1e9).toFixed(1)} GB, none resident` + (o.length ? `, ${o.length} part${o.length > 1 ? "s" : ""} selected.` : ".")), c;
8438
8438
  }
8439
- _requireElementChoice(e, t, n, r = Ss) {
8440
- if (n < r) return;
8441
- let { root: i, elements: a } = lt(t);
8442
- if (a.length < 2) return;
8443
- let o = /* @__PURE__ */ Error(`"${e}" holds ${(n / 1e9).toFixed(1)} GB across ${a.length} parts. Choose which to load — loading all of them at once may exhaust memory.`);
8444
- throw o.code = "ARCHIVE_NEEDS_ELEMENT", o.root = i, o.elements = a, o.totalBytes = n, this.loader._issues?.record(u.ASSET_ARCHIVE_TOO_LARGE, `archive holds ${(n / 1e9).toFixed(1)} GB across ${a.length} parts; choose which to load`, {
8445
- root: i,
8446
- elements: a.map((e) => e.prefix),
8447
- totalBytes: n
8448
- }, d.WARNING), o;
8449
- }
8450
- async _readStreamedArchive(e, t, n, r, i) {
8451
- let o = Array.isArray(r) ? r.filter(Boolean) : r ? [r] : [], { entries: s, listing: c, retainedBytes: l, truncated: f } = await nt(e, {
8452
- filter: o.length ? ct(o) : null,
8453
- ...i === void 0 ? {} : { byteBudget: i },
8454
- onProgress: (e) => a({
8439
+ _requireElementChoice(e, r, i, a = Ss) {
8440
+ if (i < a) return;
8441
+ let { root: o, elements: s } = lt(r);
8442
+ if (s.length < 2) return;
8443
+ let c = /* @__PURE__ */ Error(`"${e}" holds ${(i / 1e9).toFixed(1)} GB across ${s.length} parts. Choose which to load — loading all of them at once may exhaust memory.`);
8444
+ throw c.code = "ARCHIVE_NEEDS_ELEMENT", c.root = o, c.elements = s, c.totalBytes = i, this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `archive holds ${(i / 1e9).toFixed(1)} GB across ${s.length} parts; choose which to load`, {
8445
+ root: o,
8446
+ elements: s.map((e) => e.prefix),
8447
+ totalBytes: i
8448
+ }, n.WARNING), c;
8449
+ }
8450
+ async _readStreamedArchive(e, r, i, a, o) {
8451
+ let s = Array.isArray(a) ? a.filter(Boolean) : a ? [a] : [], { entries: c, listing: l, retainedBytes: u, truncated: d } = await nt(e, {
8452
+ filter: s.length ? ct(s) : null,
8453
+ ...o === void 0 ? {} : { byteBudget: o },
8454
+ onProgress: (e) => y({
8455
8455
  isLoading: !0,
8456
8456
  status: `Reading archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
8457
8457
  progress: 4
8458
8458
  })
8459
8459
  });
8460
- if (f && o.length === 0) {
8461
- let { root: e, elements: n } = lt(c), r = c.reduce((e, t) => e + t.size, 0), i = /* @__PURE__ */ Error(`"${t}" unpacks to ${(r / 1e9).toFixed(1)} GB, past the load budget. Load one of its ${n.length} parts instead.`);
8462
- throw i.code = "ARCHIVE_NEEDS_ELEMENT", i.root = e, i.elements = n, i.totalBytes = r, this.loader._issues?.record(u.ASSET_ARCHIVE_TOO_LARGE, `archive unpacks to ${(r / 1e9).toFixed(1)} GB; choose one of ${n.length} parts`, {
8460
+ if (d && s.length === 0) {
8461
+ let { root: e, elements: i } = lt(l), a = l.reduce((e, t) => e + t.size, 0), o = /* @__PURE__ */ Error(`"${r}" unpacks to ${(a / 1e9).toFixed(1)} GB, past the load budget. Load one of its ${i.length} parts instead.`);
8462
+ throw o.code = "ARCHIVE_NEEDS_ELEMENT", o.root = e, o.elements = i, o.totalBytes = a, this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `archive unpacks to ${(a / 1e9).toFixed(1)} GB; choose one of ${i.length} parts`, {
8463
8463
  root: e,
8464
- elements: n.map((e) => e.prefix),
8465
- totalBytes: r
8466
- }, d.WARNING), i;
8467
- }
8468
- if (f) {
8469
- let e = ct(o), t = c.filter((t) => e(t.path, t.size) && !s[t.path]).length;
8470
- this.loader._issues?.record(u.ASSET_ARCHIVE_TOO_LARGE, `${t} files of the chosen parts were left out: they did not fit the ${((i ?? 15e8) / 1e9).toFixed(1)} GB in-memory read budget`, {
8471
- elements: o,
8472
- missing: t,
8473
- retainedBytes: l
8474
- }, d.WARNING);
8475
- }
8476
- return o.length && console.info(`Archive "${t}": loaded ${o.map((e) => `"${e}"`).join(", ")} — ${Object.keys(s).length} of ${c.length} files, ${(l / 1048576).toFixed(1)} MB.`), s;
8477
- }
8478
- async loadPBRTFromZip(e, t, n = null, i = {}, o = null) {
8479
- if (a({
8464
+ elements: i.map((e) => e.prefix),
8465
+ totalBytes: a
8466
+ }, n.WARNING), o;
8467
+ }
8468
+ if (d) {
8469
+ let e = ct(s), r = l.filter((t) => e(t.path, t.size) && !c[t.path]).length;
8470
+ this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `${r} files of the chosen parts were left out: they did not fit the ${((o ?? 15e8) / 1e9).toFixed(1)} GB in-memory read budget`, {
8471
+ elements: s,
8472
+ missing: r,
8473
+ retainedBytes: u
8474
+ }, n.WARNING);
8475
+ }
8476
+ return s.length && console.info(`Archive "${r}": loaded ${s.map((e) => `"${e}"`).join(", ")} — ${Object.keys(c).length} of ${l.length} files, ${(u / 1048576).toFixed(1)} MB.`), c;
8477
+ }
8478
+ async loadPBRTFromZip(e, r, i = null, a = {}, o = null) {
8479
+ if (y({
8480
8480
  isLoading: !0,
8481
8481
  status: "Parsing PBRT scene...",
8482
8482
  progress: 5
@@ -8484,34 +8484,34 @@ var ms = /* @__PURE__ */ e({
8484
8484
  let { PLYLoader: e } = await import("three/examples/jsm/loaders/PLYLoader.js");
8485
8485
  this.loader.loaderCache.ply = new e();
8486
8486
  }
8487
- let c = (e) => this.loader.loaderCache.ply.parse(e), l = (e, t) => this._archiveImage(e, t), f = (e, t) => this._archiveEnvironment(e, t), p = performance.now(), m = {
8488
- animation: i.animation,
8489
- maxTriangles: i.maxTriangles,
8490
- maxPlacements: i.maxPlacements,
8491
- mergeShapesAbove: i.mergeShapesAbove,
8492
- curveSteps: i.curveSteps,
8493
- curveSides: i.curveSides,
8494
- curveTolerance: i.curveTolerance,
8495
- instanceIncludes: i.instanceIncludes
8496
- }, h = o?.archiveId ? this.loader._keyed(`pbrt:2.14:${s}`, `${o.archiveId}|${n ?? ""}|${[...o.elements ?? []].sort().join(",")}|${JSON.stringify(m)}`) : null, g = h ? await this._loadStoredGraph(h, o, {
8497
- imageFromBytes: l,
8498
- envFromBytes: f
8499
- }) : null, _ = g ?? await va({
8487
+ let s = (e) => this.loader.loaderCache.ply.parse(e), c = (e, t) => this._archiveImage(e, t), l = (e, t) => this._archiveEnvironment(e, t), f = performance.now(), p = {
8488
+ animation: a.animation,
8489
+ maxTriangles: a.maxTriangles,
8490
+ maxPlacements: a.maxPlacements,
8491
+ mergeShapesAbove: a.mergeShapesAbove,
8492
+ curveSteps: a.curveSteps,
8493
+ curveSides: a.curveSides,
8494
+ curveTolerance: a.curveTolerance,
8495
+ instanceIncludes: a.instanceIncludes
8496
+ }, m = o?.archiveId ? this.loader._keyed(`pbrt:2.14:${d}`, `${o.archiveId}|${i ?? ""}|${[...o.elements ?? []].sort().join(",")}|${JSON.stringify(p)}`) : null, h = m ? await this._loadStoredGraph(m, o, {
8497
+ imageFromBytes: c,
8498
+ envFromBytes: l
8499
+ }) : null, g = h ?? await va({
8500
8500
  vfs: e,
8501
8501
  source: o,
8502
- entryPath: n,
8503
- plyParser: c,
8504
- imageFromBytes: l,
8505
- envFromBytes: f,
8506
- ...m,
8507
- pause: this._buildPause(r())
8502
+ entryPath: i,
8503
+ plyParser: s,
8504
+ imageFromBytes: c,
8505
+ envFromBytes: l,
8506
+ ...p,
8507
+ pause: this._buildPause(u())
8508
8508
  });
8509
8509
  this.loader._throwDeferred();
8510
- let { group: v, environment: y, animations: b, report: x, warnings: S, meshCount: C, entryPath: w, candidates: T, frames: E, parseMs: D, buildMs: ee, triangleCount: te, placementCount: O, mergedShapes: ne, skippedForBudget: re, droppedNoTemplate: k, parameters: ie } = _;
8511
- g && console.info(`PBRT scene "${w}" opened from storage in ${(ee / 1e3).toFixed(1)} s, skipping the parse`), this.lastPBRTStats = {
8510
+ let { group: _, environment: v, animations: b, report: x, warnings: S, meshCount: C, entryPath: w, candidates: T, frames: E, parseMs: D, buildMs: ee, triangleCount: te, placementCount: O, mergedShapes: ne, skippedForBudget: re, droppedNoTemplate: k, parameters: ie } = g;
8511
+ h && console.info(`PBRT scene "${w}" opened from storage in ${(ee / 1e3).toFixed(1)} s, skipping the parse`), this.lastPBRTStats = {
8512
8512
  parseMs: D,
8513
8513
  buildMs: ee,
8514
- loaderMs: performance.now() - p,
8514
+ loaderMs: performance.now() - f,
8515
8515
  triangleCount: te,
8516
8516
  placementCount: O,
8517
8517
  mergedShapes: ne,
@@ -8521,37 +8521,37 @@ var ms = /* @__PURE__ */ e({
8521
8521
  frames: E?.length ?? 1
8522
8522
  };
8523
8523
  let A = new Set(E ?? [w]), ae = T.filter((e) => !A.has(e));
8524
- if (ae.length > 0 && (console.warn(`PBRT archive holds ${T.length} scenes; loaded "${w}". Others: ${ae.join(", ")}`), this.loader._issues?.record(u.ASSET_AMBIGUOUS_ENTRY, `archive holds ${T.length} pbrt scenes; loaded "${w}"`, {
8524
+ if (ae.length > 0 && (console.warn(`PBRT archive holds ${T.length} scenes; loaded "${w}". Others: ${ae.join(", ")}`), this.loader._issues?.record(t.ASSET_AMBIGUOUS_ENTRY, `archive holds ${T.length} pbrt scenes; loaded "${w}"`, {
8525
8525
  loaded: w,
8526
8526
  alternatives: ae
8527
- }, d.WARNING)), ie && this._reportParameters(ie, w), x && x.length && typeof console.table == "function") {
8527
+ }, n.WARNING)), ie && this._reportParameters(ie, w), x && x.length && typeof console.table == "function") {
8528
8528
  let e = x.length < C ? ` (first ${x.length} of ${C})` : "";
8529
8529
  console.groupCollapsed(`PBRT loader: ${C} mesh(es) from "${w}"${e}`), console.table(x), console.groupEnd();
8530
8530
  }
8531
- return S && S.length && (console.warn(`PBRT loader: ${S.length} warning(s) parsing "${w}"`), S.forEach((e) => console.warn(" •", e))), y?.texture && (y.texture.generateMipmaps = !0, this.loader.applyEnvironmentToScene(y.texture)), v.name = w || t, this.loader.releaseTargetModel(), this.loader._sourceKey = h, h && !g && this._storeGraph(h, _, t), this.loader.targetModel = v, this.loader.animations = b ?? [], this.loader.sceneMetadata = {
8532
- environment: y?.texture ? {
8531
+ return S && S.length && (console.warn(`PBRT loader: ${S.length} warning(s) parsing "${w}"`), S.forEach((e) => console.warn(" •", e))), v?.texture && (v.texture.generateMipmaps = !0, this.loader.applyEnvironmentToScene(v.texture)), _.name = w || r, this.loader.releaseTargetModel(), this.loader._sourceKey = m, m && !h && this._storeGraph(m, g, r), this.loader.targetModel = _, this.loader.animations = b ?? [], this.loader.sceneMetadata = {
8532
+ environment: v?.texture ? {
8533
8533
  rotation: 0,
8534
8534
  intensity: 1
8535
8535
  } : { enabled: !1 },
8536
- ..._.render ? { render: { ..._.render } } : {}
8537
- }, a({
8536
+ ...g.render ? { render: { ...g.render } } : {}
8537
+ }, y({
8538
8538
  isLoading: !0,
8539
8539
  status: "Processing PBRT geometry...",
8540
8540
  progress: 10
8541
8541
  }), await this.loader.onModelLoad(this.loader.targetModel), this.loader.dispatchEvent({
8542
8542
  type: "load",
8543
- model: v,
8544
- filename: `${w} (from ${t})`
8545
- }), v;
8546
- }
8547
- _reportParameters({ unused: e, approximated: t }, n) {
8548
- let r = Object.keys(e).length, i = Object.keys(t).length;
8549
- if (r + i === 0) return;
8550
- let a = `${r} pbrt parameter(s) ignored and ${i} approximated in "${n}"`, o = [...Object.entries(e).map(([e, t]) => ` ignored ${e} ×${t}`), ...Object.entries(t).map(([e, t]) => ` approximated ${e} ×${t}`)];
8551
- console.warn(`PBRT loader: ${a} (× directives that set it)\n${o.join("\n")}`), this.loader._issues?.warn(u.ASSET_PARAMETERS_IGNORED, a, {
8552
- entry: n,
8543
+ model: _,
8544
+ filename: `${w} (from ${r})`
8545
+ }), _;
8546
+ }
8547
+ _reportParameters({ unused: e, approximated: n }, r) {
8548
+ let i = Object.keys(e).length, a = Object.keys(n).length;
8549
+ if (i + a === 0) return;
8550
+ let o = `${i} pbrt parameter(s) ignored and ${a} approximated in "${r}"`, s = [...Object.entries(e).map(([e, t]) => ` ignored ${e} ×${t}`), ...Object.entries(n).map(([e, t]) => ` approximated ${e} ×${t}`)];
8551
+ console.warn(`PBRT loader: ${o} (× directives that set it)\n${s.join("\n")}`), this.loader._issues?.warn(t.ASSET_PARAMETERS_IGNORED, o, {
8552
+ entry: r,
8553
8553
  unused: e,
8554
- approximated: t
8554
+ approximated: n
8555
8555
  });
8556
8556
  }
8557
8557
  async _archiveImage(e, t) {
@@ -8559,7 +8559,7 @@ var ms = /* @__PURE__ */ e({
8559
8559
  try {
8560
8560
  n = await this._pbrtTextureFromBytes(e, t);
8561
8561
  } catch (e) {
8562
- if (e instanceof f) throw e;
8562
+ if (e instanceof r) throw e;
8563
8563
  return this.loader._reportImageFailure(t, e), null;
8564
8564
  }
8565
8565
  return n && (n.userData[_t] = t), n;
@@ -8571,38 +8571,38 @@ var ms = /* @__PURE__ */ e({
8571
8571
  loader: n === "exr" ? this._exrLoader() : null,
8572
8572
  quiet: !0
8573
8573
  }) : ps(e);
8574
- return a.mapping = ae, c(a, `bytes:${await g(r)}`), a.userData[_t] = t, a.userData[vt] = "environment", a;
8574
+ return a.mapping = ae, p(a, `bytes:${await _(r)}`), a.userData[_t] = t, a.userData[vt] = "environment", a;
8575
8575
  } finally {
8576
8576
  i && URL.revokeObjectURL(i);
8577
8577
  }
8578
8578
  }
8579
- async loadUSDScene(e, t, n = {}) {
8580
- a({
8579
+ async loadUSDScene(e, r, i = {}) {
8580
+ y({
8581
8581
  isLoading: !0,
8582
8582
  status: "Reading USD scene...",
8583
8583
  progress: 5
8584
8584
  });
8585
- let i = Object.keys(e), o = new vo(i, async (t) => e[t] ? vs(e[t]) : null, { omitted: (n.listing ?? []).filter((t) => !(t.path in e)).map((e) => e.path) }), s = ls(i);
8586
- if (s.length === 0) throw Error(`No USD layer found in ${t}`);
8585
+ let a = Object.keys(e), o = new vo(a, async (t) => e[t] ? vs(e[t]) : null, { omitted: (i.listing ?? []).filter((t) => !(t.path in e)).map((e) => e.path) }), s = ls(a);
8586
+ if (s.length === 0) throw Error(`No USD layer found in ${r}`);
8587
8587
  let c = s[0];
8588
- s.length > 1 && (console.warn(`${t} holds ${s.length} top-level USD layers; loaded "${c}". Others: ${s.slice(1).join(", ")}`), this.loader._issues?.record(u.ASSET_AMBIGUOUS_ENTRY, `${t} holds ${s.length} top-level USD layers; loaded "${c}"`, {
8588
+ s.length > 1 && (console.warn(`${r} holds ${s.length} top-level USD layers; loaded "${c}". Others: ${s.slice(1).join(", ")}`), this.loader._issues?.record(t.ASSET_AMBIGUOUS_ENTRY, `${r} holds ${s.length} top-level USD layers; loaded "${c}"`, {
8589
8589
  loaded: c,
8590
8590
  alternatives: s.slice(1)
8591
- }, d.WARNING)), (Array.isArray(n.element) ? n.element : [n.element]).filter(Boolean).length === 0 && await this._requireUSDPartChoice(t, o, c, n.listing ?? i.map((t) => ({
8591
+ }, n.WARNING)), (Array.isArray(i.element) ? i.element : [i.element]).filter(Boolean).length === 0 && await this._requireUSDPartChoice(r, o, c, i.listing ?? a.map((t) => ({
8592
8592
  path: t,
8593
8593
  size: e[t]?.size ?? e[t]?.byteLength ?? 0
8594
- })), n.promptBytes);
8595
- let l = performance.now(), f = r(), p = await ds({
8594
+ })), i.promptBytes);
8595
+ let l = performance.now(), d = u(), f = await ds({
8596
8596
  files: o,
8597
8597
  entryPath: c,
8598
8598
  pauseRead: (e, t) => {
8599
- let n = f();
8600
- return n && a({
8599
+ let n = d();
8600
+ return n && y({
8601
8601
  status: `${t ? "Counting" : "Reading"} USD scene... ${e.toLocaleString()} prims`,
8602
8602
  progress: t ? 5 : 6
8603
8603
  }), n;
8604
8604
  },
8605
- pauseBuild: this._buildPause(f),
8605
+ pauseBuild: this._buildPause(d),
8606
8606
  resolveImage: async (e) => {
8607
8607
  let t = await o.read(e);
8608
8608
  return t ? this._archiveImage(t, e) : null;
@@ -8611,63 +8611,63 @@ var ms = /* @__PURE__ */ e({
8611
8611
  let t = await o.read(e);
8612
8612
  return t ? this._archiveEnvironment(t, e) : null;
8613
8613
  },
8614
- maxTriangles: n.maxTriangles,
8615
- maxPlacements: n.maxPlacements,
8616
- mergeShapesAbove: n.mergeShapesAbove,
8617
- curveSteps: n.curveSteps,
8618
- curveSides: n.curveSides,
8619
- curveTolerance: n.curveTolerance
8614
+ maxTriangles: i.maxTriangles,
8615
+ maxPlacements: i.maxPlacements,
8616
+ mergeShapesAbove: i.mergeShapesAbove,
8617
+ curveSteps: i.curveSteps,
8618
+ curveSides: i.curveSides,
8619
+ curveTolerance: i.curveTolerance
8620
8620
  });
8621
8621
  this.loader._throwDeferred();
8622
- let { group: m, environment: h, warnings: g, triangleCount: _, placementCount: v, skippedForBudget: y, meshCount: b, parseMs: x, buildMs: S, fitNote: C } = p;
8622
+ let { group: p, environment: m, warnings: h, triangleCount: g, placementCount: _, skippedForBudget: v, meshCount: b, parseMs: x, buildMs: S, fitNote: C } = f;
8623
8623
  return this.lastUSDStats = {
8624
8624
  parseMs: x,
8625
8625
  buildMs: S,
8626
8626
  loaderMs: performance.now() - l,
8627
- triangleCount: _,
8628
- placementCount: v,
8629
- skippedForBudget: y,
8627
+ triangleCount: g,
8628
+ placementCount: _,
8629
+ skippedForBudget: v,
8630
8630
  meshCount: b,
8631
8631
  fitNote: C
8632
- }, (C || y > 0) && this.loader._issues?.record(u.SCENE_MEMORY_BUDGET, C ?? `${y.toLocaleString()} placements past the scene budgets left out`, {
8633
- triangleCount: _,
8634
- placementCount: v,
8635
- skippedForBudget: y
8636
- }, d.WARNING), g.length && (console.warn(`USD loader: ${g.length} warning(s) loading "${c}"`), g.forEach((e) => console.warn(" •", e))), h?.texture && (h.texture.generateMipmaps = !0, this.loader.applyEnvironmentToScene(h.texture)), m.name = c.split("/").pop(), this.loader.releaseTargetModel(), this.loader.targetModel = m, this.loader.animations = [], this.loader.sceneMetadata = h?.texture ? { environment: {
8637
- rotation: h.rotation,
8638
- intensity: h.intensity
8639
- } } : null, a({
8632
+ }, (C || v > 0) && this.loader._issues?.record(t.SCENE_MEMORY_BUDGET, C ?? `${v.toLocaleString()} placements past the scene budgets left out`, {
8633
+ triangleCount: g,
8634
+ placementCount: _,
8635
+ skippedForBudget: v
8636
+ }, n.WARNING), h.length && (console.warn(`USD loader: ${h.length} warning(s) loading "${c}"`), h.forEach((e) => console.warn(" •", e))), m?.texture && (m.texture.generateMipmaps = !0, this.loader.applyEnvironmentToScene(m.texture)), p.name = c.split("/").pop(), this.loader.releaseTargetModel(), this.loader.targetModel = p, this.loader.animations = [], this.loader.sceneMetadata = m?.texture ? { environment: {
8637
+ rotation: m.rotation,
8638
+ intensity: m.intensity
8639
+ } } : null, y({
8640
8640
  isLoading: !0,
8641
8641
  status: "Processing USD geometry...",
8642
8642
  progress: 10
8643
- }), await this.loader.onModelLoad(m), this.loader.dispatchEvent({
8643
+ }), await this.loader.onModelLoad(p), this.loader.dispatchEvent({
8644
8644
  type: "load",
8645
- model: m,
8646
- filename: `${c} (from ${t})`
8647
- }), m;
8645
+ model: p,
8646
+ filename: `${c} (from ${r})`
8647
+ }), p;
8648
8648
  }
8649
8649
  _buildPause(e) {
8650
8650
  return (t, n) => {
8651
8651
  let r = e();
8652
- return r && a({
8652
+ return r && y({
8653
8653
  status: `Building scene... ${t.toLocaleString()} of ${n.toLocaleString()} shapes`,
8654
8654
  progress: 8
8655
8655
  }), r;
8656
8656
  };
8657
8657
  }
8658
- async _requireUSDPartChoice(e, t, n, r, i = Cs) {
8659
- let a = r.reduce((e, t) => e + (cs.test(t.path) ? t.size : 0), 0);
8660
- if (a < i) return;
8661
- let o = new Eo(t);
8662
- await o.open(n);
8663
- let s = await us(o, r);
8664
- if (s.length < 2) return;
8665
- let c = r.reduce((e, t) => e + t.size, 0), l = /* @__PURE__ */ Error(`"${e}" holds ${(a / 1e9).toFixed(1)} GB of USD across ${s.length} parts. Choose which to load — loading all of them at once may exhaust memory.`);
8666
- throw l.code = "ARCHIVE_NEEDS_ELEMENT", l.root = n.includes("/") ? n.slice(0, n.lastIndexOf("/")) : "", l.elements = s, l.totalBytes = c, this.loader._issues?.record(u.ASSET_ARCHIVE_TOO_LARGE, `USD scene holds ${(a / 1e9).toFixed(1)} GB of layers across ${s.length} parts; choose which to load`, {
8667
- root: l.root,
8668
- elements: s.map((e) => e.prefix),
8669
- totalBytes: c
8670
- }, d.WARNING), l;
8658
+ async _requireUSDPartChoice(e, r, i, a, o = Cs) {
8659
+ let s = a.reduce((e, t) => e + (cs.test(t.path) ? t.size : 0), 0);
8660
+ if (s < o) return;
8661
+ let c = new Eo(r);
8662
+ await c.open(i);
8663
+ let l = await us(c, a);
8664
+ if (l.length < 2) return;
8665
+ let u = a.reduce((e, t) => e + t.size, 0), d = /* @__PURE__ */ Error(`"${e}" holds ${(s / 1e9).toFixed(1)} GB of USD across ${l.length} parts. Choose which to load — loading all of them at once may exhaust memory.`);
8666
+ throw d.code = "ARCHIVE_NEEDS_ELEMENT", d.root = i.includes("/") ? i.slice(0, i.lastIndexOf("/")) : "", d.elements = l, d.totalBytes = u, this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `USD scene holds ${(s / 1e9).toFixed(1)} GB of layers across ${l.length} parts; choose which to load`, {
8667
+ root: d.root,
8668
+ elements: l.map((e) => e.prefix),
8669
+ totalBytes: u
8670
+ }, n.WARNING), d;
8671
8671
  }
8672
8672
  _exrLoader() {
8673
8673
  return this.loader.loaderCache.exr ??= new Ie().setDataType(se);
@@ -8685,7 +8685,7 @@ var ms = /* @__PURE__ */ e({
8685
8685
  }
8686
8686
  r = await this._loadViaObjectURL(this.loader.loaderCache.tga, e), r.colorSpace = P;
8687
8687
  } else {
8688
- if (l().decodeImage) r = await v(e, t);
8688
+ if (i().decodeImage) r = await c(e, t);
8689
8689
  else if (typeof createImageBitmap == "function") r = new je(await createImageBitmap(new Blob([e])));
8690
8690
  else throw Error("no image decoder in this runtime: configurePlatform( nodePlatform( { decodeImage } ) ) — see \"Running in Node\"");
8691
8691
  r.colorSpace = P;
@@ -8748,39 +8748,39 @@ var ms = /* @__PURE__ */ e({
8748
8748
  usd: !o && cs.test(s)
8749
8749
  };
8750
8750
  }
8751
- async findAndLoadModelFromZip(e, t = "the ZIP archive") {
8752
- let n = this._mainModelPath(Object.keys(e));
8753
- if (!n) throw Error(`No supported model files found in ${t}`);
8754
- if (n.usd) return await this.loadUSDScene(e, t);
8755
- let { path: r, models: i } = n, a = i.filter((e) => e !== r && !cs.test(e));
8756
- return a.length > 0 && (console.warn(`${t} holds ${a.length + 1} models; loaded "${r}". Others: ${a.join(", ")}`), this.loader._issues?.record(u.ASSET_AMBIGUOUS_ENTRY, `${t} holds ${a.length + 1} models; loaded "${r}"`, {
8757
- loaded: r,
8758
- alternatives: a.slice(0, 50)
8759
- }, d.WARNING)), console.log(`Loading model file from ${t}: ${r}`), await this.loadModelFromZipEntry(e[r], r, r.split(".").pop().toLowerCase(), e, t);
8751
+ async findAndLoadModelFromZip(e, r = "the ZIP archive") {
8752
+ let i = this._mainModelPath(Object.keys(e));
8753
+ if (!i) throw Error(`No supported model files found in ${r}`);
8754
+ if (i.usd) return await this.loadUSDScene(e, r);
8755
+ let { path: a, models: o } = i, s = o.filter((e) => e !== a && !cs.test(e));
8756
+ return s.length > 0 && (console.warn(`${r} holds ${s.length + 1} models; loaded "${a}". Others: ${s.join(", ")}`), this.loader._issues?.record(t.ASSET_AMBIGUOUS_ENTRY, `${r} holds ${s.length + 1} models; loaded "${a}"`, {
8757
+ loaded: a,
8758
+ alternatives: s.slice(0, 50)
8759
+ }, n.WARNING)), console.log(`Loading model file from ${r}: ${a}`), await this.loadModelFromZipEntry(e[a], a, a.split(".").pop().toLowerCase(), e, r);
8760
8760
  }
8761
8761
  async loadModelFromZipEntry(e, t, n, r, i = "ZIP") {
8762
8762
  try {
8763
- a({
8763
+ y({
8764
8764
  isLoading: !0,
8765
8765
  status: `Processing ${n.toUpperCase()} from ${i}...`,
8766
8766
  progress: 5
8767
8767
  });
8768
- let o;
8768
+ let a;
8769
8769
  switch (n) {
8770
8770
  case "glb":
8771
8771
  case "gltf":
8772
- o = await this.handleGltfFromZip(n, e, t, r);
8772
+ a = await this.handleGltfFromZip(n, e, t, r);
8773
8773
  break;
8774
8774
  case "obj":
8775
- o = await this.handleObjFromZip(e, t, r);
8775
+ a = await this.handleObjFromZip(e, t, r);
8776
8776
  break;
8777
- default: o = await this.loader._loadModelFileByExtension(new File([e], t), t);
8777
+ default: a = await this.loader._loadModelFileByExtension(new File([e], t), t);
8778
8778
  }
8779
8779
  return this.loader.dispatchEvent({
8780
8780
  type: "load",
8781
8781
  model: this.loader.targetModel,
8782
8782
  filename: `${t} (from ${i})`
8783
- }), o;
8783
+ }), a;
8784
8784
  } catch (e) {
8785
8785
  throw console.error(`Error loading ${n} from ${i}:`, e), this.loader.dispatchEvent({
8786
8786
  type: "error",
@@ -8791,13 +8791,13 @@ var ms = /* @__PURE__ */ e({
8791
8791
  }
8792
8792
  async handleGltfFromZip(e, t, n, r) {
8793
8793
  if (e === "gltf") {
8794
- let e = await ys(t), a = new pe(), o = n.split("/").slice(0, -1).join("/");
8795
- a.setURLModifier((e) => this.resolveZipResource(e, o, r));
8794
+ let e = await ys(t), i = new pe(), a = n.split("/").slice(0, -1).join("/");
8795
+ i.setURLModifier((e) => this.resolveZipResource(e, a, r));
8796
8796
  let s = await this.loader.createGLTFLoader();
8797
- s.manager = a;
8797
+ s.manager = i;
8798
8798
  try {
8799
- let t = await i(() => new Promise((t, n) => s.parse(e, "", t, n)));
8800
- return this.loader._throwDeferred(), this.loader.releaseTargetModel(), this.loader.targetModel = t.scene, this.loader.sceneMetadata = b(t), await this.loader.onModelLoad(this.loader.targetModel), t;
8799
+ let t = await o(() => new Promise((t, n) => s.parse(e, "", t, n)));
8800
+ return this.loader._throwDeferred(), this.loader.releaseTargetModel(), this.loader.targetModel = t.scene, this.loader.sceneMetadata = f(t), await this.loader.onModelLoad(this.loader.targetModel), t;
8801
8801
  } finally {
8802
8802
  this.loader._disposeGLTFLoader(s);
8803
8803
  }
@@ -8812,17 +8812,17 @@ var ms = /* @__PURE__ */ e({
8812
8812
  return c.name = t, this.loader.releaseTargetModel(), this.loader.targetModel = c, await this.loader.onModelLoad(this.loader.targetModel), c;
8813
8813
  }
8814
8814
  async preloadMtlTextures(e) {
8815
- let t = [], n = e.loadTexture.bind(e);
8816
- if (e.loadTexture = (e, r, i, a, o) => {
8815
+ let n = [], r = e.loadTexture.bind(e);
8816
+ if (e.loadTexture = (e, t, i, a, o) => {
8817
8817
  let s;
8818
- return t.push(new Promise((e) => s = e)), n(e, r, (e) => {
8818
+ return n.push(new Promise((e) => s = e)), r(e, t, (e) => {
8819
8819
  s(), i?.(e);
8820
8820
  }, a, (e) => {
8821
8821
  s(), o?.(e);
8822
8822
  });
8823
- }, e.preload(), t.length === 0) return e;
8824
- let r, i = await Promise.race([Promise.all(t).then(() => !0), new Promise((e) => r = setTimeout(() => e(!1), hs))]);
8825
- return clearTimeout(r), i || this.loader._issues?.record(u.TEXTURE_BUILD_FAILED, `MTL textures did not decode within ${hs}ms; affected materials render untextured`, { pending: t.length }), e;
8823
+ }, e.preload(), n.length === 0) return e;
8824
+ let i, a = await Promise.race([Promise.all(n).then(() => !0), new Promise((e) => i = setTimeout(() => e(!1), hs))]);
8825
+ return clearTimeout(i), a || this.loader._issues?.record(t.TEXTURE_BUILD_FAILED, `MTL textures did not decode within ${hs}ms; affected materials render untextured`, { pending: n.length }), e;
8826
8826
  }
8827
8827
  async loadMtlFromZip(e, t, n) {
8828
8828
  let r = t.split("/").slice(0, -1).join("/"), i = [