@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5

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 (384) hide show
  1. package/dist/global/blue/BlueClasses.js +200 -0
  2. package/dist/global/blue/BlueClasses.js.map +1 -0
  3. package/dist/global/blue/IBlueClasses.js +79 -0
  4. package/dist/global/blue/IBlueClasses.js.map +1 -0
  5. package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
  6. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
  7. package/dist/global/blue/blue.js +8 -2
  8. package/dist/global/blue/blue.js.map +1 -1
  9. package/dist/global/blue/index.js +2 -0
  10. package/dist/global/blue/index.js.map +1 -1
  11. package/dist/global/consts/index.js +0 -1
  12. package/dist/global/consts/index.js.map +1 -1
  13. package/dist/global/consts/renderContext/formats.js +26 -25
  14. package/dist/global/consts/renderContext/formats.js.map +1 -1
  15. package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
  16. package/dist/global/imageio/BitmapDimensions.js.map +1 -0
  17. package/dist/global/imageio/Cutout.js +28 -0
  18. package/dist/global/imageio/Cutout.js.map +1 -0
  19. package/dist/global/imageio/HostBitmap.js +1106 -0
  20. package/dist/global/imageio/HostBitmap.js.map +1 -0
  21. package/dist/global/imageio/ImageIOResult.js +99 -0
  22. package/dist/global/imageio/ImageIOResult.js.map +1 -0
  23. package/dist/global/imageio/ImageUtility.js +205 -0
  24. package/dist/global/imageio/ImageUtility.js.map +1 -0
  25. package/dist/global/imageio/LoadParameters.js +86 -0
  26. package/dist/global/imageio/LoadParameters.js.map +1 -0
  27. package/dist/global/imageio/Metadata.js +22 -0
  28. package/dist/global/imageio/Metadata.js.map +1 -0
  29. package/dist/global/imageio/index.js +8 -0
  30. package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
  31. package/dist/global/index.js +2 -1
  32. package/dist/global/index.js.map +1 -1
  33. package/dist/global/math/color.js +1 -1
  34. package/dist/global/math/color.js.map +1 -1
  35. package/dist/global/schema/CjsSchema.js +8 -0
  36. package/dist/global/schema/CjsSchema.js.map +1 -1
  37. package/dist/index.js +12 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/resource/CjsResMan.js +47 -7
  40. package/dist/resource/CjsResMan.js.map +1 -1
  41. package/dist/resource/Tr2LightProfileRes.js +37 -0
  42. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  43. package/dist/resource/format/CjsByteWriter.js +46 -46
  44. package/dist/resource/format/CjsByteWriter.js.map +1 -1
  45. package/dist/resource/format/CjsFormat.js +7 -8
  46. package/dist/resource/format/CjsFormat.js.map +1 -1
  47. package/dist/resource/format/CjsFormatStore.js +8 -8
  48. package/dist/resource/format/CjsFormatStore.js.map +1 -1
  49. package/dist/resource/format/CjsGeometryFormat.js +114 -0
  50. package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
  51. package/dist/resource/format/CjsImageFormat.js +282 -0
  52. package/dist/resource/format/CjsImageFormat.js.map +1 -0
  53. package/dist/resource/format/CjsResourceProbe.js +12 -48
  54. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  55. package/dist/resource/format/CjsStringTable.js +37 -37
  56. package/dist/resource/format/CjsStringTable.js.map +1 -1
  57. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
  58. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
  59. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
  60. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
  61. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
  62. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
  63. package/dist/resource/format/index.js +3 -1
  64. package/dist/resource/format/index.js.map +1 -1
  65. package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
  66. package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
  67. package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
  68. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  69. package/dist/resource/formats/bnk/core/helpers.js +1 -3
  70. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  71. package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
  72. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  73. package/dist/resource/formats/cmf/core/constants.js +1 -2
  74. package/dist/resource/formats/cmf/core/constants.js.map +1 -1
  75. package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
  76. package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
  77. package/dist/resource/formats/cmf/core/helpers.js +13 -13
  78. package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
  79. package/dist/resource/formats/cmf/core/writer.js +24 -24
  80. package/dist/resource/formats/cmf/core/writer.js.map +1 -1
  81. package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
  82. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  83. package/dist/resource/formats/dds/core/helpers.js +125 -40
  84. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  85. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
  86. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  87. package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
  88. package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
  89. package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
  90. package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
  91. package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
  92. package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
  93. package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
  94. package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
  95. package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
  96. package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
  97. package/dist/resource/formats/dxbc/core/decoder.js +2 -2
  98. package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
  99. package/dist/resource/formats/dxbc/core/helpers.js +3 -3
  100. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  101. package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
  102. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  103. package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
  104. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  105. package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
  106. package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
  107. package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
  108. package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
  109. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
  110. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
  111. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
  112. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
  113. package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
  114. package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
  115. package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
  116. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  117. package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
  118. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  119. package/dist/resource/formats/gltf/core/helpers.js +3 -12
  120. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  121. package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
  122. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  123. package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
  124. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  125. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
  126. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
  127. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
  128. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
  129. package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
  130. package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
  131. package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
  132. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  133. package/dist/resource/formats/jpeg/core/helpers.js +3 -5
  134. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  135. package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
  136. package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
  137. package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
  138. package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
  139. package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
  140. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  141. package/dist/resource/formats/mp3/core/helpers.js +3 -5
  142. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
  144. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  145. package/dist/resource/formats/mp4/core/helpers.js +3 -5
  146. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  147. package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
  148. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  149. package/dist/resource/formats/obj/core/helpers.js +5 -113
  150. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  151. package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
  152. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  153. package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
  154. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  155. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
  156. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  157. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
  158. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
  159. package/dist/resource/formats/png/CjsPngFormat.js +40 -15
  160. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  161. package/dist/resource/formats/png/core/helpers.js +4 -6
  162. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  163. package/dist/resource/formats/red/CjsRedFormat.js +22 -28
  164. package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
  165. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
  166. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  167. package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
  168. package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
  169. package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
  170. package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  171. package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
  172. package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
  173. package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
  174. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  175. package/dist/resource/formats/stl/core/helpers.js +5 -19
  176. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
  178. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  179. package/dist/resource/formats/tga/core/helpers.js +3 -5
  180. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
  182. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  183. package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
  184. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  185. package/dist/resource/formats/wav/core/helpers.js +3 -5
  186. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
  188. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  189. package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
  190. package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
  191. package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
  192. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  193. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
  194. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  195. package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
  196. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
  197. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
  198. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  199. package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
  200. package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
  201. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  202. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
  203. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  204. package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
  205. package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
  206. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
  207. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
  208. package/dist/resource/formats/webgpu/core/helpers.js +1 -1
  209. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  210. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
  211. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
  212. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
  213. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  214. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
  215. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
  216. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
  217. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
  218. package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
  219. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  220. package/dist/resource/formats/webm/core/helpers.js +3 -5
  221. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  222. package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
  223. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  224. package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
  225. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  226. package/dist/resource/formats/wem/core/bitStream.js +35 -35
  227. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  228. package/dist/resource/formats/wem/core/helpers.js +1 -3
  229. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  230. package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
  231. package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
  232. package/dist/resource/imageio/ImageIO.js +142 -0
  233. package/dist/resource/imageio/ImageIO.js.map +1 -0
  234. package/dist/resource/imageio/index.js +17 -0
  235. package/dist/resource/imageio/index.js.map +1 -0
  236. package/dist/resource/index.js +7 -0
  237. package/dist/resource/index.js.map +1 -1
  238. package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
  239. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  240. package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
  241. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  242. package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
  243. package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
  244. package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
  245. package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
  246. package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
  247. package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
  248. package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
  249. package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
  250. package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
  251. package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
  252. package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
  253. package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
  254. package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
  255. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
  256. package/dist/resource/texture/Tr2ImageRes.js +100 -68
  257. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  258. package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
  259. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  260. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
  261. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  262. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
  263. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  264. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
  265. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  266. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
  267. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  268. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
  269. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  270. package/dist/resource/texture/TriTextureRes.js +151 -29
  271. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  272. package/dist/resource/texture/index.js +7 -0
  273. package/dist/resource/texture/index.js.map +1 -1
  274. package/dist/resource/texture/registerTextureResources.js +83 -0
  275. package/dist/resource/texture/registerTextureResources.js.map +1 -0
  276. package/dist/resource/texture/solidColorTexture.js +10 -19
  277. package/dist/resource/texture/solidColorTexture.js.map +1 -1
  278. package/dist/sof/EveSOF.js +39 -7
  279. package/dist/sof/EveSOF.js.map +1 -1
  280. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
  281. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
  282. package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
  283. package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
  284. package/dist/trinity/core/Tr2RenderUtils.js +1 -1
  285. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
  286. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
  287. package/dist/trinity/core/Tr2TextureReference.js +114 -0
  288. package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
  289. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  290. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  291. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
  292. package/dist/trinity/core/index.js +1 -0
  293. package/dist/trinity/core/index.js.map +1 -1
  294. package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
  295. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  296. package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
  297. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
  298. package/dist/trinity/core/procedural/gradientTexture.js +10 -13
  299. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
  300. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
  301. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  302. package/dist/trinity/eve/EveImpactOverlay.js +102 -50
  303. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  304. package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
  305. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  306. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
  307. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  308. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
  309. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  310. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
  311. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  312. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
  313. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  314. package/dist/trinity/eve/child/EveChildMesh.js +242 -234
  315. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  316. package/dist/trinity/eve/child/EveChildTurret.js +57 -16
  317. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  318. package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
  319. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  320. package/dist/trinity/eve/index.js +2 -2
  321. package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
  322. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  323. package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
  324. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  325. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
  326. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  327. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
  328. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  329. package/dist/trinity/generated/index.js +0 -1
  330. package/dist/trinity/generated/index.js.map +1 -1
  331. package/dist/trinity/generated/trinityCore/index.js +0 -1
  332. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  333. package/dist/trinity/index.js +3 -3
  334. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
  335. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  336. package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
  337. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  338. package/dist/trinity/shader/Tr2Material.js +1 -1
  339. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
  340. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
  341. package/dist/trinityal/index.js +1 -1
  342. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
  343. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  344. package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
  345. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  346. package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
  347. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  348. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
  349. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  350. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
  351. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  352. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
  353. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  354. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
  355. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
  356. package/dist/trinityal/webgpu/internal.js +1 -0
  357. package/dist/trinityal/webgpu/internal.js.map +1 -1
  358. package/docs/global/reference/classes/README.md +90 -0
  359. package/docs/resource/concepts/format-capabilities.md +3 -3
  360. package/docs/resource/formats/README.md +1 -1
  361. package/docs/resource/reference/classes/core.md +31 -1
  362. package/docs/resource/reference/classes/formats.md +7 -7
  363. package/docs/resource/reference/classes/resources.md +76 -16
  364. package/docs/trinity/reference/classes/generated.md +0 -10
  365. package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
  366. package/docs/trinityal/reference/classes/README.md +0 -10
  367. package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
  368. package/package.json +4 -3
  369. package/dist/global/consts/webgpu/index.js +0 -2
  370. package/dist/global/consts/webgpu/textureFormats.js +0 -180
  371. package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
  372. package/dist/resource/formats/dxbc/core/container.js.map +0 -1
  373. package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
  374. package/dist/resource/formats/dxbc/core/program.js.map +0 -1
  375. package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
  376. package/dist/resource/formats/stl/core/targets.js.map +0 -1
  377. package/dist/resource/formats/webgl/core/errors.js.map +0 -1
  378. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
  379. package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
  380. package/dist/resource/texture/texturePipelineBehavior.js +0 -332
  381. package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
  382. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
  383. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
  384. package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CjsCmfFormat.js","sources":["../../../../../src/resource/formats/cmf/CjsCmfFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\n/**\n * Exposed CarbonEngineJS-facing CMF format class.\n *\n * CMF is expected to become the common CarbonEngineJS geometry container, so\n * this public wrapper keeps parsing details under core/ and exposes CMF-native\n * data by default.\n */\n\nimport { packGraphBuffers } from \"./core/pack.js\";\nimport { buildCmfFromShared } from \"./core/shared.js\";\nimport { writeCmf, writeCmfAsync } from \"./core/writer.js\";\nimport {\n CLASS_KEYS,\n DEFAULT_VALUES,\n OUTPUT_CMF,\n OUTPUT_CMF_JSON,\n OUTPUT_GR2,\n OUTPUT_JSON,\n OUTPUT_NATIVE,\n OUTPUT_RAW,\n OUTPUT_SHARED,\n inspectRawCmfResult,\n loadNativeWithValues,\n loadSharedWithValues,\n normalizeValues,\n readRawInput,\n readRawInputAsync,\n readWithValues,\n readWithValuesAsync,\n toJsonValue,\n validateClass,\n validateClassKey\n} from \"./core/helpers.js\";\n\n/**\n * CarbonEngineJS-facing CMF reader.\n *\n * The Cjs prefix marks this as a JavaScript format/construction boundary. It\n * can load CMF files, load CMF-native JSON, construct CMF-native data from\n * shared geometry, emit shared geometry when requested, or hydrate\n * caller-supplied CarbonEngineJS-style classes.\n */\nexport class CjsCmfFormat extends CjsFormat\n{\n #emit = DEFAULT_VALUES.emit;\n #validateCrc = DEFAULT_VALUES.validateCrc;\n #decodeBuffers = DEFAULT_VALUES.decodeBuffers;\n #classes = {};\n\n /**\n * Create a reusable format profile.\n *\n * @param {object} [options] Default format/build values.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Set format values for this reusable profile.\n *\n * @param {object} [options] Values to merge into the profile.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetValues(options = {})\n {\n const values = normalizeValues(this.GetValues(), options);\n\n this.#emit = values.emit;\n this.#validateCrc = values.validateCrc;\n this.#decodeBuffers = values.decodeBuffers;\n this.#classes = values.classes;\n\n return this;\n }\n\n /**\n * Get this profile's current values, optionally with per-call overrides.\n *\n * @param {object} [options] Optional values to merge into a copy.\n * @returns {object} A copy of the effective values.\n */\n GetValues(options = {})\n {\n return normalizeValues({\n emit: this.#emit,\n validateCrc: this.#validateCrc,\n decodeBuffers: this.#decodeBuffers,\n classes: this.#classes\n }, options);\n }\n\n /**\n * Set multiple CMF JSON node constructors for this profile.\n *\n * @param {object} [classes] Map of node class keys to constructors.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetClasses(classes = {})\n {\n return this.SetValues({ classes });\n }\n\n /**\n * Set a CMF JSON node constructor for this profile.\n *\n * @param {string} type Node class key.\n * @param {Function|null|undefined} Class Constructor to use, or nullish to delete.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetClass(type, Class)\n {\n validateClassKey(type);\n if (Class === null || Class === undefined)\n {\n delete this.#classes[type];\n return this;\n }\n\n validateClass(type, Class);\n this.#classes = { ...this.#classes, [type]: Class };\n return this;\n }\n\n /**\n * Get a configured CMF JSON node constructor.\n *\n * @param {string} type Node class key.\n * @returns {Function|undefined}\n */\n GetClass(type)\n {\n validateClassKey(type);\n return this.#classes[type];\n }\n\n /**\n * Whether this reader has a constructor for a CMF JSON node key.\n *\n * @param {string} type Node class key.\n * @returns {boolean}\n */\n HasClass(type)\n {\n return !!this.GetClass(type);\n }\n\n /**\n * Parse a .cmf buffer and return CMF-native JSON by default, shared\n * geometry when `emit` is \"shared\", or raw parsed data when `emit` is\n * \"raw\".\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Read(input, options = {})\n {\n return readWithValues(this, input, this.GetValues(options));\n }\n\n /**\n * Load CMF-native JSON. Shared geometry uses LoadShared.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Load(input, options = {})\n {\n return loadNativeWithValues(input, this.GetValues(options));\n }\n\n /**\n * Build CMF-native JSON from shared CarbonEngineJS geometry.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n LoadShared(input, options = {})\n {\n return loadSharedWithValues(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadShared(input, options = {})\n {\n return this.Read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer with async meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadAsync(input, options = {})\n {\n return readWithValuesAsync(this, input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer asynchronously and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadSharedAsync(input, options = {})\n {\n return this.ReadAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadRaw(input, options = {})\n {\n return readRawInput(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph with async\n * meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadRawAsync(input, options = {})\n {\n return readRawInputAsync(input, this.GetValues(options));\n }\n\n /**\n * Return a stable, lightweight summary for a CMF buffer or raw result.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Inspect(input, options = {})\n {\n return inspectRawCmfResult(input, this.GetValues(options));\n }\n\n /**\n * Convert format output to plain JSON-compatible data.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes without compression.\n *\n * Use WriteAsync for meshoptimizer-compressed GPU sections. The graph\n * shape matches Read output: meshes/skeletons/animations plus optional\n * metadata and a `buffers` list supplying uncompressed bytes per\n * BufferView index.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n Write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes with meshoptimizer\n * compression enabled by default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry (e.g. from the GR2/OBJ/glTF\n * readers) straight to binary .cmf bytes without compression.\n *\n * Channels are interleaved into GPU buffers per the generated\n * declaration. Skeletons/animations must already be CMF-native shaped.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n WriteShared(input, options = {})\n {\n return CjsCmfFormat.writeShared(input, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry to compressed .cmf bytes.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteSharedAsync(input, options = {})\n {\n return CjsCmfFormat.writeSharedAsync(input, options);\n }\n\n /**\n * Static one-shot read. Static methods use camelCase by convention.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static read(input, options = {})\n {\n return readWithValues(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot CMF-native JSON load.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static load(input, options = {})\n {\n return loadNativeWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot shared geometry to CMF-native JSON construction.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static loadShared(input, options = {})\n {\n return loadSharedWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readShared(input, options = {})\n {\n return CjsCmfFormat.read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot async read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readAsync(input, options = {})\n {\n return readWithValuesAsync(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readSharedAsync(input, options = {})\n {\n return CjsCmfFormat.readAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readRaw(input, options = {})\n {\n return readRawInput(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readRawAsync(input, options = {})\n {\n return readRawInputAsync(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot inspection.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static inspect(input, options = {})\n {\n return inspectRawCmfResult(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static JSON-compatible conversion.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Static one-shot binary write without compression.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Static one-shot binary write with meshoptimizer compression enabled by\n * default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Static one-shot shared-geometry write without compression.\n *\n * Equivalent to `loadShared` + buffer packing + `write`; this is the\n * GR2/OBJ/glTF → CMF conversion entry point.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static writeShared(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmf({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Static one-shot shared-geometry write with meshoptimizer compression\n * enabled by default.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeSharedAsync(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmfAsync({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n CMF: OUTPUT_CMF,\n CMF_JSON: OUTPUT_CMF_JSON,\n GR2: OUTPUT_GR2,\n NATIVE: OUTPUT_NATIVE,\n RAW: OUTPUT_RAW,\n SHARED: OUTPUT_SHARED\n });\n static CLASS_KEYS = CLASS_KEYS;\n static id = \"cmf\";\n static mediaTypes = Object.freeze([ \"geometry\" ]);\n // The writer's own graph is the default: `write` takes a CMF-native graph,\n // while `writeShared` converts a shared geometry root through it first.\n // Both are lossless - CMF is the container this package writes for keeps.\n static inputs = CjsFormat.defineInputs({\n cmf: { default: true, payloadType: \"geometry\", options: [ \"compress\" ] },\n shared: { payloadType: \"geometry\", options: [ \"compress\" ] }\n });\n\n static outputs = CjsFormat.defineOutputs({\n cmf: { default: true, decoded: true },\n gr2: { decoded: true },\n shared: { decoded: true },\n json: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n cmfJson: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n raw: { role: \"debug\", decoded: true }\n });\n static extensions = Object.freeze([ \".cmf\" ]);\n}\n\nexport default CjsCmfFormat;\n"],"names":["CjsCmfFormat","CjsFormat","DEFAULT_VALUES","emit","validateCrc","decodeBuffers","constructor","options","SetValues","values","normalizeValues","GetValues","classes","SetClasses","SetClass","type","Class","validateClassKey","undefined","validateClass","GetClass","HasClass","Read","input","readWithValues","Load","loadNativeWithValues","LoadShared","loadSharedWithValues","ReadShared","OUTPUT_SHARED","ReadAsync","readWithValuesAsync","ReadSharedAsync","ReadRaw","readRawInput","ReadRawAsync","readRawInputAsync","Inspect","inspectRawCmfResult","ToJSON","value","toJsonValue","Write","graph","writeCmf","WriteAsync","writeCmfAsync","WriteShared","writeShared","WriteSharedAsync","writeSharedAsync","read","load","loadShared","readShared","readAsync","readSharedAsync","readRaw","readRawAsync","inspect","toJSON","write","writeAsync","packed","packGraphBuffers","buildCmfFromShared","buffers","Output","Object","freeze","JSON","OUTPUT_JSON","CMF","OUTPUT_CMF","CMF_JSON","OUTPUT_CMF_JSON","GR2","OUTPUT_GR2","NATIVE","OUTPUT_NATIVE","RAW","OUTPUT_RAW","SHARED","CLASS_KEYS","id","mediaTypes","inputs","defineInputs","cmf","default","payloadType","shared","outputs","defineOutputs","decoded","gr2","json","role","cmfJson","raw","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsCmfFormat.js","sources":["../../../../../src/resource/formats/cmf/CjsCmfFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport { CjsGeometryFormat } from \"../../format/CjsGeometryFormat.js\";\n/**\n * Exposed CarbonEngineJS-facing CMF format class.\n *\n * CMF is expected to become the common CarbonEngineJS geometry container, so\n * this public wrapper keeps parsing details under core/ and exposes CMF-native\n * data by default.\n */\n\nimport { packGraphBuffers } from \"./core/pack.js\";\nimport { buildCmfFromShared } from \"./core/shared.js\";\nimport { writeCmf, writeCmfAsync } from \"./core/writer.js\";\nimport {\n CLASS_KEYS,\n DEFAULT_VALUES,\n OUTPUT_CMF,\n OUTPUT_CMF_JSON,\n OUTPUT_GR2,\n OUTPUT_JSON,\n OUTPUT_NATIVE,\n OUTPUT_RAW,\n OUTPUT_SHARED,\n inspectRawCmfResult,\n loadNativeWithValues,\n loadSharedWithValues,\n normalizeValues,\n readRawInput,\n readRawInputAsync,\n readWithValues,\n readWithValuesAsync,\n toJsonValue,\n} from \"./core/helpers.js\";\n\n/**\n * CarbonEngineJS-facing CMF reader.\n *\n * The Cjs prefix marks this as a JavaScript format/construction boundary. It\n * can load CMF files, load CMF-native JSON, construct CMF-native data from\n * shared geometry, emit shared geometry when requested, or hydrate\n * caller-supplied CarbonEngineJS-style classes.\n */\nexport class CjsCmfFormat extends CjsGeometryFormat\n{\n _emit = DEFAULT_VALUES.emit;\n _validateCrc = DEFAULT_VALUES.validateCrc;\n _decodeBuffers = DEFAULT_VALUES.decodeBuffers;\n _classes = {};\n\n /**\n * Create a reusable format profile.\n *\n * @param {object} [options] Default format/build values.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Set format values for this reusable profile.\n *\n * @param {object} [options] Values to merge into the profile.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetValues(options = {})\n {\n const values = normalizeValues(this.GetValues(), options);\n\n this._emit = values.emit;\n this._validateCrc = values.validateCrc;\n this._decodeBuffers = values.decodeBuffers;\n this._classes = values.classes;\n\n return this;\n }\n\n /**\n * Get this profile's current values, optionally with per-call overrides.\n *\n * @param {object} [options] Optional values to merge into a copy.\n * @returns {object} A copy of the effective values.\n */\n GetValues(options = {})\n {\n return normalizeValues({\n emit: this._emit,\n validateCrc: this._validateCrc,\n decodeBuffers: this._decodeBuffers,\n classes: this._classes\n }, options);\n }\n\n /**\n * Parse a .cmf buffer and return CMF-native JSON by default, shared\n * geometry when `emit` is \"shared\", or raw parsed data when `emit` is\n * \"raw\".\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Read(input, options = {})\n {\n return readWithValues(this, input, this.GetValues(options));\n }\n\n /**\n * Load CMF-native JSON. Shared geometry uses LoadShared.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Load(input, options = {})\n {\n return loadNativeWithValues(input, this.GetValues(options));\n }\n\n /**\n * Build CMF-native JSON from shared CarbonEngineJS geometry.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n LoadShared(input, options = {})\n {\n return loadSharedWithValues(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadShared(input, options = {})\n {\n return this.Read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer with async meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadAsync(input, options = {})\n {\n return readWithValuesAsync(this, input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer asynchronously and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadSharedAsync(input, options = {})\n {\n return this.ReadAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadRaw(input, options = {})\n {\n return readRawInput(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph with async\n * meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadRawAsync(input, options = {})\n {\n return readRawInputAsync(input, this.GetValues(options));\n }\n\n /**\n * Return a stable, lightweight summary for a CMF buffer or raw result.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Inspect(input, options = {})\n {\n return inspectRawCmfResult(input, this.GetValues(options));\n }\n\n /**\n * Convert format output to plain JSON-compatible data.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes without compression.\n *\n * Use WriteAsync for meshoptimizer-compressed GPU sections. The graph\n * shape matches Read output: meshes/skeletons/animations plus optional\n * metadata and a `buffers` list supplying uncompressed bytes per\n * BufferView index.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n Write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes with meshoptimizer\n * compression enabled by default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry (e.g. from the GR2/OBJ/glTF\n * readers) straight to binary .cmf bytes without compression.\n *\n * Channels are interleaved into GPU buffers per the generated\n * declaration. Skeletons/animations must already be CMF-native shaped.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n WriteShared(input, options = {})\n {\n return CjsCmfFormat.writeShared(input, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry to compressed .cmf bytes.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteSharedAsync(input, options = {})\n {\n return CjsCmfFormat.writeSharedAsync(input, options);\n }\n\n /**\n * Static one-shot read. Static methods use camelCase by convention.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static read(input, options = {})\n {\n return readWithValues(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot CMF-native JSON load.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static load(input, options = {})\n {\n return loadNativeWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot shared geometry to CMF-native JSON construction.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static loadShared(input, options = {})\n {\n return loadSharedWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readShared(input, options = {})\n {\n return CjsCmfFormat.read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot async read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readAsync(input, options = {})\n {\n return readWithValuesAsync(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readSharedAsync(input, options = {})\n {\n return CjsCmfFormat.readAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readRaw(input, options = {})\n {\n return readRawInput(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readRawAsync(input, options = {})\n {\n return readRawInputAsync(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot inspection.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static inspect(input, options = {})\n {\n return inspectRawCmfResult(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static JSON-compatible conversion.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Static one-shot binary write without compression.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Static one-shot binary write with meshoptimizer compression enabled by\n * default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Static one-shot shared-geometry write without compression.\n *\n * Equivalent to `loadShared` + buffer packing + `write`; this is the\n * GR2/OBJ/glTF → CMF conversion entry point.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static writeShared(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmf({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Static one-shot shared-geometry write with meshoptimizer compression\n * enabled by default.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeSharedAsync(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmfAsync({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static classKeys = CLASS_KEYS;\n static id = \"CjsCmfFormat\";\n // The writer's own graph is the default: `write` takes a CMF-native graph,\n // while `writeShared` converts a shared geometry root through it first.\n // Both are lossless - CMF is the container this package writes for keeps.\n static inputs = CjsFormat.defineInputs({\n cmf: { default: true, payloadType: \"geometry\", options: [ \"compress\" ] },\n shared: { payloadType: \"geometry\", options: [ \"compress\" ] }\n });\n\n static outputs = CjsFormat.defineOutputs({\n cmf: { default: true, decoded: true },\n gr2: { decoded: true },\n shared: { decoded: true },\n json: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n cmfJson: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n raw: { role: \"debug\", decoded: true }\n });\n static extensions = [ \".cmf\" ];\n}\n\nexport default CjsCmfFormat;\n"],"names":["CjsCmfFormat","CjsGeometryFormat","_emit","DEFAULT_VALUES","emit","_validateCrc","validateCrc","_decodeBuffers","decodeBuffers","_classes","constructor","options","SetValues","values","normalizeValues","GetValues","classes","Read","input","readWithValues","Load","loadNativeWithValues","LoadShared","loadSharedWithValues","ReadShared","OUTPUT_SHARED","ReadAsync","readWithValuesAsync","ReadSharedAsync","ReadRaw","readRawInput","ReadRawAsync","readRawInputAsync","Inspect","inspectRawCmfResult","ToJSON","value","toJsonValue","Write","graph","writeCmf","WriteAsync","writeCmfAsync","WriteShared","writeShared","WriteSharedAsync","writeSharedAsync","read","load","loadShared","readShared","readAsync","readSharedAsync","readRaw","readRawAsync","inspect","toJSON","write","writeAsync","packed","packGraphBuffers","buildCmfFromShared","buffers","classKeys","CLASS_KEYS","id","inputs","CjsFormat","defineInputs","cmf","default","payloadType","shared","outputs","defineOutputs","decoded","gr2","json","role","cmfJson","raw","extensions"],"mappings":"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"}
@@ -4,7 +4,6 @@ const OUTPUT_JSON = "json";
4
4
  const OUTPUT_CMF = "cmf";
5
5
  const OUTPUT_CMF_JSON = "cmfJson";
6
6
  const OUTPUT_GR2 = "gr2";
7
- const OUTPUT_NATIVE = "native";
8
7
  const OUTPUT_RAW = "raw";
9
8
  const OUTPUT_SHARED = "shared";
10
9
  const STRUCT_SIZE = Object.freeze({
@@ -43,5 +42,5 @@ const CMF_CLASS_KEYS = Object.freeze(["Root", "Section", "Metadata", "MetadataEn
43
42
  const GR2_CLASS_KEYS = Object.freeze(["Root", "Mesh", "BoneBinding", "IndexGroup", "MorphTarget", "Model", "Skeleton", "Bone", "Animation", "TrackGroup", "TransformTrack", "VectorTrack", "Curve"]);
44
43
  const CLASS_KEYS = Object.freeze(Array.from(new Set([...CMF_CLASS_KEYS, ...GR2_CLASS_KEYS])));
45
44
 
46
- export { AnimationChannelTargetType, CLASS_KEYS, CMF_CLASS_KEYS, ElementType, FILE_SIGNATURE, FILE_VERSION, GR2_CLASS_KEYS, Interpolation, MeshTopology, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_NATIVE, OUTPUT_RAW, OUTPUT_SHARED, STRUCT_SIZE, SectionCompression, SectionType, Usage };
45
+ export { AnimationChannelTargetType, CLASS_KEYS, CMF_CLASS_KEYS, ElementType, FILE_SIGNATURE, FILE_VERSION, GR2_CLASS_KEYS, Interpolation, MeshTopology, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_SHARED, STRUCT_SIZE, SectionCompression, SectionType, Usage };
47
46
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../../src/resource/formats/cmf/core/constants.js"],"sourcesContent":["export const FILE_SIGNATURE = 0x66666D63;\r\nexport const FILE_VERSION = 1;\r\n\r\nexport const OUTPUT_JSON = \"json\";\r\nexport const OUTPUT_CMF = \"cmf\";\r\nexport const OUTPUT_CMF_JSON = \"cmfJson\";\r\nexport const OUTPUT_GR2 = \"gr2\";\r\nexport const OUTPUT_NATIVE = \"native\";\r\nexport const OUTPUT_RAW = \"raw\";\r\nexport const OUTPUT_SHARED = \"shared\";\r\n\r\nexport const STRUCT_SIZE = Object.freeze({\r\n BufferView: 16,\r\n VertexElement: 8,\r\n MeshArea: 64,\r\n LodMeshArea: 8,\r\n BoneBinding: 40,\r\n MorphTarget: 24,\r\n MorphTargets: 32,\r\n LodMorphTarget: 16,\r\n MeshLod: 72,\r\n AudioOcclusionMesh: 56,\r\n Transform: 40,\r\n BoneWeight: 8,\r\n BoneMask: 32,\r\n Skeleton: 96,\r\n AnimationChannel: 24,\r\n AnimationCurve: 40,\r\n Animation: 56,\r\n MetadataEntry: 32,\r\n Metadata: 16,\r\n Section: 16,\r\n Header: 32,\r\n Data: 48,\r\n Mesh: 216\r\n});\r\n\r\nexport const Usage = Object.freeze([\r\n \"Position\",\r\n \"Normal\",\r\n \"Tangent\",\r\n \"Binormal\",\r\n \"TexCoord\",\r\n \"Color\",\r\n \"BoneIndices\",\r\n \"BoneWeights\",\r\n \"PackedTangent\",\r\n \"PackedTangentLegacy\"\r\n]);\r\n\r\nexport const ElementType = Object.freeze([\r\n \"Float32\",\r\n \"Float16\",\r\n \"UInt16Norm\",\r\n \"UInt16\",\r\n \"Int16Norm\",\r\n \"Int16\",\r\n \"UInt8Norm\",\r\n \"UInt8\",\r\n \"Int8Norm\",\r\n \"Int8\"\r\n]);\r\n\r\nexport const MeshTopology = Object.freeze([\r\n \"TriangleList\",\r\n \"PointList\"\r\n]);\r\n\r\nexport const SectionType = Object.freeze([\r\n \"Data\",\r\n \"GpuBuffer\",\r\n \"Metadata\"\r\n]);\r\n\r\nexport const SectionCompression = Object.freeze([\r\n \"None\",\r\n \"MeshOptimizerVertexBuffer\",\r\n \"MeshOptimizerIndexBuffer\"\r\n]);\r\n\r\nexport const AnimationChannelTargetType = Object.freeze([\r\n \"BonePosition\",\r\n \"BoneRotation\",\r\n \"BoneScale\",\r\n \"MorphTarget\",\r\n \"Other\"\r\n]);\r\n\r\nexport const Interpolation = Object.freeze([\r\n \"Step\",\r\n \"Linear\"\r\n]);\r\n\r\nexport const CMF_CLASS_KEYS = Object.freeze([\r\n \"Root\",\r\n \"Section\",\r\n \"Metadata\",\r\n \"MetadataEntry\",\r\n \"Mesh\",\r\n \"IndexGroup\",\r\n \"VertexElement\",\r\n \"MeshLod\",\r\n \"MeshArea\",\r\n \"LodMeshArea\",\r\n \"BoneBinding\",\r\n \"MorphTargets\",\r\n \"MorphTarget\",\r\n \"LodMorphTarget\",\r\n \"AudioOcclusionMesh\",\r\n \"Skeleton\",\r\n \"BoneMask\",\r\n \"BoneWeight\",\r\n \"Animation\",\r\n \"AnimationChannel\",\r\n \"AnimationCurve\"\r\n]);\r\n\r\nexport const GR2_CLASS_KEYS = Object.freeze([\r\n \"Root\",\r\n \"Mesh\",\r\n \"BoneBinding\",\r\n \"IndexGroup\",\r\n \"MorphTarget\",\r\n \"Model\",\r\n \"Skeleton\",\r\n \"Bone\",\r\n \"Animation\",\n \"TrackGroup\",\n \"TransformTrack\",\n \"VectorTrack\",\n \"Curve\"\n]);\n\r\nexport const CLASS_KEYS = Object.freeze(Array.from(new Set([\r\n ...CMF_CLASS_KEYS,\r\n ...GR2_CLASS_KEYS\r\n])));\r\n"],"names":["FILE_SIGNATURE","FILE_VERSION","OUTPUT_JSON","OUTPUT_CMF","OUTPUT_CMF_JSON","OUTPUT_GR2","OUTPUT_NATIVE","OUTPUT_RAW","OUTPUT_SHARED","STRUCT_SIZE","Object","freeze","BufferView","VertexElement","MeshArea","LodMeshArea","BoneBinding","MorphTarget","MorphTargets","LodMorphTarget","MeshLod","AudioOcclusionMesh","Transform","BoneWeight","BoneMask","Skeleton","AnimationChannel","AnimationCurve","Animation","MetadataEntry","Metadata","Section","Header","Data","Mesh","Usage","ElementType","MeshTopology","SectionType","SectionCompression","AnimationChannelTargetType","Interpolation","CMF_CLASS_KEYS","GR2_CLASS_KEYS","CLASS_KEYS","Array","from","Set"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/resource/formats/cmf/core/constants.js"],"sourcesContent":["export const FILE_SIGNATURE = 0x66666D63;\r\nexport const FILE_VERSION = 1;\r\n\r\nexport const OUTPUT_JSON = \"json\";\r\nexport const OUTPUT_CMF = \"cmf\";\r\nexport const OUTPUT_CMF_JSON = \"cmfJson\";\r\nexport const OUTPUT_GR2 = \"gr2\";\r\nexport const OUTPUT_NATIVE = \"native\";\r\nexport const OUTPUT_RAW = \"raw\";\r\nexport const OUTPUT_SHARED = \"shared\";\r\n\r\nexport const STRUCT_SIZE = Object.freeze({\r\n BufferView: 16,\r\n VertexElement: 8,\r\n MeshArea: 64,\r\n LodMeshArea: 8,\r\n BoneBinding: 40,\r\n MorphTarget: 24,\r\n MorphTargets: 32,\r\n LodMorphTarget: 16,\r\n MeshLod: 72,\r\n AudioOcclusionMesh: 56,\r\n Transform: 40,\r\n BoneWeight: 8,\r\n BoneMask: 32,\r\n Skeleton: 96,\r\n AnimationChannel: 24,\r\n AnimationCurve: 40,\r\n Animation: 56,\r\n MetadataEntry: 32,\r\n Metadata: 16,\r\n Section: 16,\r\n Header: 32,\r\n Data: 48,\r\n Mesh: 216\r\n});\r\n\r\nexport const Usage = Object.freeze([\r\n \"Position\",\r\n \"Normal\",\r\n \"Tangent\",\r\n \"Binormal\",\r\n \"TexCoord\",\r\n \"Color\",\r\n \"BoneIndices\",\r\n \"BoneWeights\",\r\n \"PackedTangent\",\r\n \"PackedTangentLegacy\"\r\n]);\r\n\r\nexport const ElementType = Object.freeze([\r\n \"Float32\",\r\n \"Float16\",\r\n \"UInt16Norm\",\r\n \"UInt16\",\r\n \"Int16Norm\",\r\n \"Int16\",\r\n \"UInt8Norm\",\r\n \"UInt8\",\r\n \"Int8Norm\",\r\n \"Int8\"\r\n]);\r\n\r\nexport const MeshTopology = Object.freeze([\r\n \"TriangleList\",\r\n \"PointList\"\r\n]);\r\n\r\nexport const SectionType = Object.freeze([\r\n \"Data\",\r\n \"GpuBuffer\",\r\n \"Metadata\"\r\n]);\r\n\r\nexport const SectionCompression = Object.freeze([\r\n \"None\",\r\n \"MeshOptimizerVertexBuffer\",\r\n \"MeshOptimizerIndexBuffer\"\r\n]);\r\n\r\nexport const AnimationChannelTargetType = Object.freeze([\r\n \"BonePosition\",\r\n \"BoneRotation\",\r\n \"BoneScale\",\r\n \"MorphTarget\",\r\n \"Other\"\r\n]);\r\n\r\nexport const Interpolation = Object.freeze([\r\n \"Step\",\r\n \"Linear\"\r\n]);\r\n\r\nexport const CMF_CLASS_KEYS = Object.freeze([\r\n \"Root\",\r\n \"Section\",\r\n \"Metadata\",\r\n \"MetadataEntry\",\r\n \"Mesh\",\r\n \"IndexGroup\",\r\n \"VertexElement\",\r\n \"MeshLod\",\r\n \"MeshArea\",\r\n \"LodMeshArea\",\r\n \"BoneBinding\",\r\n \"MorphTargets\",\r\n \"MorphTarget\",\r\n \"LodMorphTarget\",\r\n \"AudioOcclusionMesh\",\r\n \"Skeleton\",\r\n \"BoneMask\",\r\n \"BoneWeight\",\r\n \"Animation\",\r\n \"AnimationChannel\",\r\n \"AnimationCurve\"\r\n]);\r\n\r\nexport const GR2_CLASS_KEYS = Object.freeze([\r\n \"Root\",\r\n \"Mesh\",\r\n \"BoneBinding\",\r\n \"IndexGroup\",\r\n \"MorphTarget\",\r\n \"Model\",\r\n \"Skeleton\",\r\n \"Bone\",\r\n \"Animation\",\n \"TrackGroup\",\n \"TransformTrack\",\n \"VectorTrack\",\n \"Curve\"\n]);\n\r\nexport const CLASS_KEYS = Object.freeze(Array.from(new Set([\r\n ...CMF_CLASS_KEYS,\r\n ...GR2_CLASS_KEYS\r\n])));\r\n"],"names":["FILE_SIGNATURE","FILE_VERSION","OUTPUT_JSON","OUTPUT_CMF","OUTPUT_CMF_JSON","OUTPUT_GR2","OUTPUT_RAW","OUTPUT_SHARED","STRUCT_SIZE","Object","freeze","BufferView","VertexElement","MeshArea","LodMeshArea","BoneBinding","MorphTarget","MorphTargets","LodMorphTarget","MeshLod","AudioOcclusionMesh","Transform","BoneWeight","BoneMask","Skeleton","AnimationChannel","AnimationCurve","Animation","MetadataEntry","Metadata","Section","Header","Data","Mesh","Usage","ElementType","MeshTopology","SectionType","SectionCompression","AnimationChannelTargetType","Interpolation","CMF_CLASS_KEYS","GR2_CLASS_KEYS","CLASS_KEYS","Array","from","Set"],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- export { CMF_CLASS_KEYS } from '../../cmf/core/constants.js';
2
- import { firstTriangle, bytesPerIndex, totalIndexCount } from '../../cmf/core/utils/indices.js';
3
- import { estimateStrideFromDecl, elementTypeSize } from '../../cmf/core/utils/vertex.js';
1
+ import { firstTriangle, bytesPerIndex, totalIndexCount } from './utils/indices.js';
2
+ import { estimateStrideFromDecl, elementTypeSize } from './utils/vertex.js';
4
3
 
5
4
  /**
6
- * Builds a CMF document from normalized shared geometry for the STL
7
- * shared-geometry adapter.
5
+ * Builds a single-LOD CMF document from flat shared geometry: meshes with a
6
+ * `vertex` channel map and index groups, no skeletons, animations or morphs.
7
+ * The OBJ and STL adapters use it; `shared.js` `buildCmfFromShared` is the
8
+ * full route (LODs, skeletons, animations, metadata).
8
9
  */
9
- function buildCmfFromShared(root) {
10
+ function buildCmfFromFlatShared(root) {
10
11
  return {
11
12
  version: 1,
12
13
  metadata: null,
@@ -100,5 +101,5 @@ function bounds(mesh) {
100
101
  };
101
102
  }
102
103
 
103
- export { buildCmfFromShared };
104
- //# sourceMappingURL=targets.js.map
104
+ export { buildCmfFromFlatShared };
105
+ //# sourceMappingURL=flatShared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatShared.js","sources":["../../../../../../src/resource/formats/cmf/core/flatShared.js"],"sourcesContent":["import { bytesPerIndex, firstTriangle, totalIndexCount } from \"./utils/indices.js\";\r\nimport { elementTypeSize, estimateStrideFromDecl } from \"./utils/vertex.js\";\r\n\r\n/**\r\n * Builds a single-LOD CMF document from flat shared geometry: meshes with a\r\n * `vertex` channel map and index groups, no skeletons, animations or morphs.\r\n * The OBJ and STL adapters use it; `shared.js` `buildCmfFromShared` is the\r\n * full route (LODs, skeletons, animations, metadata).\r\n */\r\nexport function buildCmfFromFlatShared(root)\r\n{\r\n return {\r\n version: 1,\r\n metadata: null,\r\n meshes: (root.meshes ?? []).map((mesh) => buildMesh(mesh)),\r\n skeletons: [],\r\n animations: []\r\n };\r\n}\r\nfunction buildMesh(mesh)\r\n{\r\n const\r\n vertex = mesh.vertex ?? {},\r\n indices = mesh.indices ?? [],\r\n stride = estimateVertexStride(vertex),\r\n vertexCount = stride === 0 ? 0 : Math.floor((vertex.position ?? []).length / 3);\r\n\r\n return {\r\n name: mesh.name ?? \"\",\r\n decl: buildDecl(vertex),\r\n lods: [ {\r\n vb: { index: 1, offset: 0, size: vertexCount * stride, stride },\r\n ib: { index: 2, offset: 0, size: totalIndexCount(indices) * bytesPerIndex(indices), stride: bytesPerIndex(indices) },\r\n areas: indices.map((group, index) => ({\r\n firstElement: firstTriangle(indices, index),\r\n elementCount: Math.floor((group.faces ?? []).length / 3)\r\n })),\r\n morphTargets: [],\r\n threshold: 0xffffffff,\r\n vertex,\r\n indices\r\n } ],\r\n areas: indices.map((group) => ({\r\n name: group.name ?? \"\",\r\n bounds: bounds(mesh),\r\n bones: [],\r\n affectedByBones: false,\r\n affectedByMorphTargets: false\r\n })),\r\n boneBindings: [],\r\n morphTargets: { decl: [], targets: [] },\r\n uvDensities: [],\r\n bounds: bounds(mesh),\r\n audioOcclusionMesh: {\r\n vertices: [],\r\n indices: [],\r\n bounds: { min: [ 0, 0, 0 ], max: [ 0, 0, 0 ] }\r\n },\r\n topology: \"TriangleList\",\r\n skeleton: null,\r\n vertex,\r\n indices\r\n };\r\n}\r\n\r\nfunction buildDecl(vertex)\r\n{\r\n const decl = [];\r\n let offset = 0;\r\n for (const channel of [\r\n [ \"position\", \"Position\", 3 ],\r\n [ \"normal\", \"Normal\", 3 ],\r\n [ \"tangent\", \"Tangent\", 3 ],\r\n [ \"binormal\", \"Binormal\", 3 ],\r\n [ \"texcoord0\", \"TexCoord\", 2, 0 ],\r\n [ \"texcoord1\", \"TexCoord\", 2, 1 ],\r\n [ \"color0\", \"Color\", 4, 0 ],\r\n [ \"blendIndice\", \"BoneIndices\", 4, 0, \"UInt16\" ],\r\n [ \"blendWeight\", \"BoneWeights\", 4, 0 ]\r\n ])\r\n {\r\n const [ name, usage, elementCount, usageIndex = 0, type = \"Float32\" ] = channel;\r\n if (!Array.isArray(vertex[name]) || vertex[name].length === 0) continue;\r\n decl.push({ usage, usageIndex, type, elementCount, offset });\r\n offset += elementCount * elementTypeSize(type);\r\n }\r\n return decl;\r\n}\r\n\r\nfunction estimateVertexStride(vertex)\r\n{\r\n return estimateStrideFromDecl(buildDecl(vertex));\r\n}\r\n\r\nfunction bounds(mesh)\r\n{\r\n return {\r\n min: mesh.minBounds ?? [ 0, 0, 0 ],\r\n max: mesh.maxBounds ?? [ 0, 0, 0 ]\r\n };\r\n}\r\n"],"names":["buildCmfFromFlatShared","root","version","metadata","meshes","map","mesh","buildMesh","skeletons","animations","vertex","indices","stride","estimateVertexStride","vertexCount","Math","floor","position","length","name","decl","buildDecl","lods","vb","index","offset","size","ib","totalIndexCount","bytesPerIndex","areas","group","firstElement","firstTriangle","elementCount","faces","morphTargets","threshold","bounds","bones","affectedByBones","affectedByMorphTargets","boneBindings","targets","uvDensities","audioOcclusionMesh","vertices","min","max","topology","skeleton","channel","usage","usageIndex","type","Array","isArray","push","elementTypeSize","estimateStrideFromDecl","minBounds","maxBounds"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { OUTPUT_NATIVE, OUTPUT_GR2, CLASS_KEYS, OUTPUT_RAW, OUTPUT_SHARED, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_JSON } from './constants.js';
1
+ import { OUTPUT_CMF, OUTPUT_GR2, OUTPUT_RAW, OUTPUT_SHARED, OUTPUT_CMF_JSON, OUTPUT_JSON, CLASS_KEYS } from './constants.js';
2
2
  import { readCmf, inspectCmf } from './schema.js';
3
3
  import { buildSharedFromCmf, buildCmfFromShared } from './shared.js';
4
4
  import { buildGr2Animations, buildGr2Models } from './gr2Compat.js';
@@ -6,15 +6,15 @@ import { hydrateCmf } from './utils/hydration.js';
6
6
  import { validateCmfGraph } from './validate.js';
7
7
 
8
8
  const DEFAULT_VALUES = Object.freeze({
9
- emit: OUTPUT_NATIVE,
9
+ emit: OUTPUT_CMF,
10
10
  validateCrc: true,
11
11
  decodeBuffers: true,
12
12
  classes: {}
13
13
  });
14
14
 
15
- /**
16
- * Normalizes reader options against their supported defaults for the CMF format
17
- * reader.
15
+ /**
16
+ * Normalizes reader options against their supported defaults for the CMF format
17
+ * reader.
18
18
  */
19
19
  function normalizeValues(base = {}, options = {}) {
20
20
  const values = {
@@ -35,7 +35,7 @@ function normalizeValues(base = {}, options = {}) {
35
35
  return values;
36
36
  }
37
37
  function normalizeEmit(emit) {
38
- if (emit === undefined || emit === OUTPUT_NATIVE || emit === OUTPUT_CMF || emit === OUTPUT_CMF_JSON || emit === OUTPUT_JSON) {
38
+ if (emit === undefined || emit === OUTPUT_CMF || emit === OUTPUT_CMF_JSON || emit === OUTPUT_JSON) {
39
39
  return OUTPUT_CMF;
40
40
  }
41
41
  if (emit === OUTPUT_GR2 || emit === OUTPUT_RAW || emit === OUTPUT_SHARED) return emit;
@@ -83,9 +83,9 @@ function readWithValues(owner, input, values) {
83
83
  });
84
84
  }
85
85
 
86
- /**
87
- * Reads input asynchronously using normalized format options for the CMF format
88
- * reader.
86
+ /**
87
+ * Reads input asynchronously using normalized format options for the CMF format
88
+ * reader.
89
89
  */
90
90
  async function readWithValuesAsync(owner, input, values) {
91
91
  const raw = await readRawInputAsync(input, values);
@@ -127,9 +127,9 @@ function loadNativeWithValues(input, values) {
127
127
  });
128
128
  }
129
129
 
130
- /**
131
- * Inspects raw CMF result without materializing the full CMF format reader
132
- * payload.
130
+ /**
131
+ * Inspects raw CMF result without materializing the full CMF format reader
132
+ * payload.
133
133
  */
134
134
  function inspectRawCmfResult(input, options = {}) {
135
135
  return inspectCmf(readRawInput(input, {
@@ -294,5 +294,5 @@ function createHydrationClasses(classes, hydrationOptions) {
294
294
  return map;
295
295
  }
296
296
 
297
- export { CLASS_KEYS, DEFAULT_VALUES, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_NATIVE, OUTPUT_RAW, OUTPUT_SHARED, inspectRawCmfResult, loadNativeWithValues, loadSharedWithValues, normalizeValues, readRawInput, readRawInputAsync, readWithValues, readWithValuesAsync, toJsonValue, validateClass, validateClassKey };
297
+ export { CLASS_KEYS, DEFAULT_VALUES, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_SHARED, inspectRawCmfResult, loadNativeWithValues, loadSharedWithValues, normalizeValues, readRawInput, readRawInputAsync, readWithValues, readWithValuesAsync, toJsonValue, validateClass, validateClassKey };
298
298
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/cmf/core/helpers.js"],"sourcesContent":["import { CLASS_KEYS, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_NATIVE, OUTPUT_RAW, OUTPUT_SHARED } from \"./constants.js\";\r\nimport { inspectCmf, readCmf } from \"./schema.js\";\nimport { buildCmfFromShared, buildSharedFromCmf } from \"./shared.js\";\nimport { buildGr2Animations, buildGr2Models } from \"./gr2Compat.js\";\nimport { hydrateCmf } from \"./utils/hydration.js\";\nimport { validateCmfGraph } from \"./validate.js\";\n\r\nexport { CLASS_KEYS, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_NATIVE, OUTPUT_RAW, OUTPUT_SHARED };\r\n\r\nexport const DEFAULT_VALUES = Object.freeze({\r\n emit: OUTPUT_NATIVE,\r\n validateCrc: true,\r\n decodeBuffers: true,\r\n classes: {}\r\n});\r\n\r\n/**\r\n * Normalizes reader options against their supported defaults for the CMF format\r\n * reader.\r\n */\r\nexport function normalizeValues(base = {}, options = {})\r\n{\r\n const values = {\r\n ...DEFAULT_VALUES,\r\n ...base,\r\n ...options,\r\n classes: {\r\n ...(base.classes ?? {}),\r\n ...(options.classes ?? {})\r\n }\r\n };\r\n\r\n values.emit = normalizeEmit(values.emit);\r\n if (values.emit === OUTPUT_GR2 && !hasClasses(values.classes))\r\n {\r\n throw new TypeError(\"CMF emit \\\"gr2\\\" requires explicit classes\");\r\n }\r\n\r\n validateClasses(values.classes);\r\n values.decodeBuffers = !!values.decodeBuffers;\r\n return values;\r\n}\r\n\r\nfunction normalizeEmit(emit)\r\n{\r\n if (emit === undefined || emit === OUTPUT_NATIVE || emit === OUTPUT_CMF || emit === OUTPUT_CMF_JSON || emit === OUTPUT_JSON)\r\n {\r\n return OUTPUT_CMF;\r\n }\r\n if (emit === OUTPUT_GR2 || emit === OUTPUT_RAW || emit === OUTPUT_SHARED) return emit;\r\n throw new TypeError(`CMF emit must be \"${OUTPUT_CMF}\", \"${OUTPUT_CMF_JSON}\", \"${OUTPUT_GR2}\", \"${OUTPUT_SHARED}\", or \"${OUTPUT_RAW}\"`);\r\n}\r\n\r\nfunction hasClasses(classes)\r\n{\r\n return !!classes && Object.values(classes).some((Class) => typeof Class === \"function\");\r\n}\r\n\r\n/** Reads and validates raw input bytes for the CMF format reader. */\r\nexport function readRawInput(input, options = {})\r\n{\r\n if (input && typeof input === \"object\" && Array.isArray(input.sections) && Array.isArray(input.meshes))\n {\n return validateCmfGraph(input, { phase: \"read\" });\n }\r\n\r\n return readCmf(input, options);\r\n}\r\n\r\n/** Reads and validates raw input bytes asynchronously for the CMF format reader. */\r\nexport async function readRawInputAsync(input, options = {})\r\n{\r\n if (input && typeof input === \"object\" && Array.isArray(input.sections) && Array.isArray(input.meshes))\n {\n return validateCmfGraph(input, { phase: \"read\" });\n }\r\n\r\n const { readCmfAsync } = await import(\"./schema.js\");\r\n return readCmfAsync(input, options);\r\n}\r\n\r\n/** Reads input using normalized format options for the CMF format reader. */\r\nexport function readWithValues(owner, input, values)\r\n{\r\n const raw = readRawInput(input, values);\r\n if (values.emit === OUTPUT_RAW)\r\n {\r\n return raw;\r\n }\r\n\r\n return values.emit === OUTPUT_SHARED\r\n ? buildSharedFromCmf(raw, values.classes, { source: values.source })\r\n : values.emit === OUTPUT_GR2\r\n ? buildGr2FromCmf(raw, values.classes, { source: values.source })\r\n : hydrateNativeRoot(raw, values.classes, { source: values.source });\r\n}\r\n\r\n/**\r\n * Reads input asynchronously using normalized format options for the CMF format\r\n * reader.\r\n */\r\nexport async function readWithValuesAsync(owner, input, values)\r\n{\r\n const raw = await readRawInputAsync(input, values);\r\n if (values.emit === OUTPUT_RAW)\r\n {\r\n return raw;\r\n }\r\n\r\n return values.emit === OUTPUT_SHARED\r\n ? buildSharedFromCmf(raw, values.classes, { source: values.source })\r\n : values.emit === OUTPUT_GR2\r\n ? buildGr2FromCmf(raw, values.classes, { source: values.source })\r\n : hydrateNativeRoot(raw, values.classes, { source: values.source });\r\n}\r\n\r\n/** Loads shared with values through the current CMF format reader. */\r\nexport function loadSharedWithValues(input, values)\r\n{\r\n const native = buildCmfFromShared(input);\r\n return values.emit === OUTPUT_SHARED\r\n ? buildSharedFromCmf(native, values.classes, { source: values.source })\r\n : values.emit === OUTPUT_GR2\r\n ? buildGr2FromCmf(native, values.classes, { source: values.source })\r\n : hydrateNativeRoot(native, values.classes, { source: values.source });\r\n}\r\n\r\n/** Loads native with values through the current CMF format reader. */\r\nexport function loadNativeWithValues(input, values)\r\n{\r\n if (values.emit === OUTPUT_RAW)\r\n {\r\n return input;\r\n }\r\n\r\n return values.emit === OUTPUT_SHARED\r\n ? buildSharedFromCmf(input, values.classes, { source: values.source })\r\n : values.emit === OUTPUT_GR2\r\n ? buildGr2FromCmf(input, values.classes, { source: values.source })\r\n : hydrateNativeRoot(input, values.classes, { source: values.source });\r\n}\r\n\r\n/**\r\n * Inspects raw CMF result without materializing the full CMF format reader\r\n * payload.\r\n */\r\nexport function inspectRawCmfResult(input, options = {})\r\n{\r\n return inspectCmf(readRawInput(input, { ...options, decodeBuffers: false }));\r\n}\r\n\r\nfunction buildGr2FromCmf(raw, classes, hydrationOptions = {})\r\n{\r\n const hydrationClasses = createHydrationClasses(classes, hydrationOptions);\r\n return hydrate(\"Root\", {\r\n grannyFileFormatRevision: raw.version,\n grannyFileSource: \"cmf\",\n meshes: raw.meshes.map((mesh) => hydrateGr2Mesh(mesh, hydrationClasses)),\n models: buildGr2Models(raw).map((model) => hydrateGr2Model(model, hydrationClasses)),\n animations: buildGr2Animations(raw).map((animation) => hydrateGr2Animation(animation, hydrationClasses))\n }, hydrationClasses, hydrationOptions);\n}\n\r\nfunction hydrateGr2Mesh(mesh, classes)\r\n{\r\n return hydrate(\"Mesh\", {\r\n name: mesh.name,\r\n morphTargets: (mesh.morphTargets?.targets ?? []).map((target, index) => hydrate(\"MorphTarget\", {\n ...target,\n dataIsDeltas: true,\n vertex: mesh.lods?.[0]?.morphTargets?.[index]?.vertex ?? target.vertex ?? null\n }, classes)),\r\n minBounds: mesh.bounds?.min ?? [ 0, 0, 0 ],\r\n maxBounds: mesh.bounds?.max ?? [ 0, 0, 0 ],\r\n boneBindings: (mesh.boneBindings ?? []).map((binding) => hydrate(\"BoneBinding\", {\r\n name: binding.name,\r\n minBounds: binding.bounds?.min ?? [ 0, 0, 0 ],\r\n maxBounds: binding.bounds?.max ?? [ 0, 0, 0 ]\r\n }, classes)),\r\n vertex: mesh.vertex ?? emptyGr2Vertex(),\r\n indices: (mesh.indices ?? []).map((group) => hydrate(\"IndexGroup\", {\r\n name: group.name ?? \"\",\r\n bytesPerIndex: group.bytesPerIndex ?? 2,\r\n faces: group.faces ?? []\r\n }, classes))\r\n }, classes);\n}\n\nfunction hydrateGr2Model(model, classes)\n{\n return hydrate(\"Model\", {\n ...model,\n skeleton: hydrate(\"Skeleton\", {\n ...model.skeleton,\n bones: model.skeleton.bones.map((bone) => hydrate(\"Bone\", bone, classes))\n }, classes)\n }, classes);\n}\n\nfunction hydrateGr2Animation(animation, classes)\n{\n return hydrate(\"Animation\", {\n ...animation,\n trackGroups: animation.trackGroups.map((group) => hydrate(\"TrackGroup\", {\n ...group,\n transformTracks: group.transformTracks.map((track) => hydrate(\"TransformTrack\", {\n ...track,\n orientation: hydrate(\"Curve\", track.orientation, classes),\n position: hydrate(\"Curve\", track.position, classes),\n scaleShear: hydrate(\"Curve\", track.scaleShear, classes)\n }, classes)),\n vectorTracks: group.vectorTracks.map((track) => hydrate(\"VectorTrack\", {\n ...track,\n valueCurve: hydrate(\"Curve\", track.valueCurve, classes)\n }, classes))\n }, classes))\n }, classes);\n}\n\r\nfunction emptyGr2Vertex()\r\n{\r\n return {\r\n position: [],\r\n normal: [],\r\n tangent: [],\r\n binormal: [],\r\n texcoord0: [],\r\n texcoord1: [],\r\n blendIndice: [],\r\n blendWeight: []\r\n };\r\n}\r\n\r\n/** Converts a parsed payload into a JSON-safe value for the CMF format reader. */\r\nexport function toJsonValue(value)\r\n{\r\n if (value === null || value === undefined)\r\n {\r\n return value;\r\n }\r\n\r\n if (Array.isArray(value))\r\n {\r\n return value.map((item) => toJsonValue(item));\r\n }\r\n\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return Array.from(value);\r\n }\r\n\r\n if (typeof value.toJSON === \"function\")\r\n {\r\n return toJsonValue(value.toJSON());\r\n }\r\n\r\n if (typeof value === \"object\")\r\n {\r\n const result = {};\r\n for (const [ key, child ] of Object.entries(value))\r\n {\r\n result[key] = toJsonValue(child);\r\n }\r\n return result;\r\n }\r\n\r\n return value;\r\n}\r\n\r\n/** Validates a requested runtime class key for the CMF format reader. */\r\nexport function validateClassKey(type)\r\n{\r\n if (!CLASS_KEYS.includes(type))\r\n {\r\n throw new TypeError(`Unknown CMF class key \"${type}\"`);\r\n }\r\n}\r\n\r\n/** Validates a resolved runtime class constructor for the CMF format reader. */\r\nexport function validateClass(type, Class)\r\n{\r\n validateClassKey(type);\r\n if (typeof Class !== \"function\")\r\n {\r\n throw new TypeError(`CMF class \"${type}\" must be a constructor`);\r\n }\r\n}\r\n\r\nfunction validateClasses(classes)\r\n{\r\n for (const [ type, Class ] of Object.entries(classes ?? {}))\r\n {\r\n validateClass(type, Class);\r\n }\r\n}\r\n\r\nfunction hydrateNativeRoot(raw, classes, hydrationOptions = {})\n{\n return hydrateCmf({\n signature: raw.signature,\n version: raw.version,\n headerSize: raw.headerSize,\n crc32: raw.crc32,\n sections: raw.sections ?? [],\n metadata: raw.metadata ?? null,\n meshes: raw.meshes ?? [],\n skeletons: raw.skeletons ?? [],\n animations: raw.animations ?? []\n }, classes, hydrationOptions);\n}\n\r\nfunction hydrate(type, fields, classes, hydrationOptions = {})\r\n{\r\n const Class = classes?.[type];\r\n if (!Class)\r\n {\r\n return fields;\r\n }\r\n\r\n const options = Object.keys(hydrationOptions).length > 0 ? hydrationOptions : classes?.__hydrationOptions || {};\r\n return populate(new Class(), fields, options);\r\n}\r\n\r\nfunction populate(instance, fields, hydrationOptions = {})\r\n{\r\n if (!instance || typeof instance.SetValues !== \"function\")\r\n {\r\n throw new TypeError(\"CjsCmfFormat class population requires classes to implement SetValues(values)\");\r\n }\r\n instance.SetValues(fields, { ...hydrationOptions, skipUpdate: true, skipEvents: true });\r\n return instance;\r\n}\r\n\r\nfunction createHydrationClasses(classes, hydrationOptions)\r\n{\r\n const map = Object.create(classes || null);\r\n Object.defineProperty(map, \"__hydrationOptions\", { value: hydrationOptions, enumerable: false });\r\n return map;\r\n}\r\n"],"names":["DEFAULT_VALUES","Object","freeze","emit","OUTPUT_NATIVE","validateCrc","decodeBuffers","classes","normalizeValues","base","options","values","normalizeEmit","OUTPUT_GR2","hasClasses","TypeError","validateClasses","undefined","OUTPUT_CMF","OUTPUT_CMF_JSON","OUTPUT_JSON","OUTPUT_RAW","OUTPUT_SHARED","some","Class","readRawInput","input","Array","isArray","sections","meshes","validateCmfGraph","phase","readCmf","readRawInputAsync","readCmfAsync","readWithValues","owner","raw","buildSharedFromCmf","source","buildGr2FromCmf","hydrateNativeRoot","readWithValuesAsync","loadSharedWithValues","native","buildCmfFromShared","loadNativeWithValues","inspectRawCmfResult","inspectCmf","hydrationOptions","hydrationClasses","createHydrationClasses","hydrate","grannyFileFormatRevision","version","grannyFileSource","map","mesh","hydrateGr2Mesh","models","buildGr2Models","model","hydrateGr2Model","animations","buildGr2Animations","animation","hydrateGr2Animation","name","morphTargets","targets","target","index","dataIsDeltas","vertex","lods","minBounds","bounds","min","maxBounds","max","boneBindings","binding","emptyGr2Vertex","indices","group","bytesPerIndex","faces","skeleton","bones","bone","trackGroups","transformTracks","track","orientation","position","scaleShear","vectorTracks","valueCurve","normal","tangent","binormal","texcoord0","texcoord1","blendIndice","blendWeight","toJsonValue","value","item","ArrayBuffer","isView","from","toJSON","result","key","child","entries","validateClassKey","type","CLASS_KEYS","includes","validateClass","hydrateCmf","signature","headerSize","crc32","metadata","skeletons","fields","keys","length","__hydrationOptions","populate","instance","SetValues","skipUpdate","skipEvents","create","defineProperty","enumerable"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/cmf/core/helpers.js"],"sourcesContent":["import { CLASS_KEYS, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_NATIVE, OUTPUT_RAW, OUTPUT_SHARED } from \"./constants.js\";\nimport { inspectCmf, readCmf } from \"./schema.js\";\nimport { buildCmfFromShared, buildSharedFromCmf } from \"./shared.js\";\nimport { buildGr2Animations, buildGr2Models } from \"./gr2Compat.js\";\nimport { hydrateCmf } from \"./utils/hydration.js\";\nimport { validateCmfGraph } from \"./validate.js\";\n\nexport { CLASS_KEYS, OUTPUT_CMF, OUTPUT_CMF_JSON, OUTPUT_GR2, OUTPUT_JSON, OUTPUT_NATIVE, OUTPUT_RAW, OUTPUT_SHARED };\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_CMF,\n validateCrc: true,\n decodeBuffers: true,\n classes: {}\n});\n\n/**\n * Normalizes reader options against their supported defaults for the CMF format\n * reader.\n */\nexport function normalizeValues(base = {}, options = {})\n{\n const values = {\n ...DEFAULT_VALUES,\n ...base,\n ...options,\n classes: {\n ...(base.classes ?? {}),\n ...(options.classes ?? {})\n }\n };\n\n values.emit = normalizeEmit(values.emit);\n if (values.emit === OUTPUT_GR2 && !hasClasses(values.classes))\n {\n throw new TypeError(\"CMF emit \\\"gr2\\\" requires explicit classes\");\n }\n\n validateClasses(values.classes);\n values.decodeBuffers = !!values.decodeBuffers;\n return values;\n}\n\nfunction normalizeEmit(emit)\n{\n if (emit === undefined || emit === OUTPUT_CMF || emit === OUTPUT_CMF_JSON || emit === OUTPUT_JSON)\n {\n return OUTPUT_CMF;\n }\n if (emit === OUTPUT_GR2 || emit === OUTPUT_RAW || emit === OUTPUT_SHARED) return emit;\n throw new TypeError(`CMF emit must be \"${OUTPUT_CMF}\", \"${OUTPUT_CMF_JSON}\", \"${OUTPUT_GR2}\", \"${OUTPUT_SHARED}\", or \"${OUTPUT_RAW}\"`);\n}\n\nfunction hasClasses(classes)\n{\n return !!classes && Object.values(classes).some((Class) => typeof Class === \"function\");\n}\n\n/** Reads and validates raw input bytes for the CMF format reader. */\nexport function readRawInput(input, options = {})\n{\n if (input && typeof input === \"object\" && Array.isArray(input.sections) && Array.isArray(input.meshes))\n {\n return validateCmfGraph(input, { phase: \"read\" });\n }\n\n return readCmf(input, options);\n}\n\n/** Reads and validates raw input bytes asynchronously for the CMF format reader. */\nexport async function readRawInputAsync(input, options = {})\n{\n if (input && typeof input === \"object\" && Array.isArray(input.sections) && Array.isArray(input.meshes))\n {\n return validateCmfGraph(input, { phase: \"read\" });\n }\n\n const { readCmfAsync } = await import(\"./schema.js\");\n return readCmfAsync(input, options);\n}\n\n/** Reads input using normalized format options for the CMF format reader. */\nexport function readWithValues(owner, input, values)\n{\n const raw = readRawInput(input, values);\n if (values.emit === OUTPUT_RAW)\n {\n return raw;\n }\n\n return values.emit === OUTPUT_SHARED\n ? buildSharedFromCmf(raw, values.classes, { source: values.source })\n : values.emit === OUTPUT_GR2\n ? buildGr2FromCmf(raw, values.classes, { source: values.source })\n : hydrateNativeRoot(raw, values.classes, { source: values.source });\n}\n\n/**\n * Reads input asynchronously using normalized format options for the CMF format\n * reader.\n */\nexport async function readWithValuesAsync(owner, input, values)\n{\n const raw = await readRawInputAsync(input, values);\n if (values.emit === OUTPUT_RAW)\n {\n return raw;\n }\n\n return values.emit === OUTPUT_SHARED\n ? buildSharedFromCmf(raw, values.classes, { source: values.source })\n : values.emit === OUTPUT_GR2\n ? buildGr2FromCmf(raw, values.classes, { source: values.source })\n : hydrateNativeRoot(raw, values.classes, { source: values.source });\n}\n\n/** Loads shared with values through the current CMF format reader. */\nexport function loadSharedWithValues(input, values)\n{\n const native = buildCmfFromShared(input);\n return values.emit === OUTPUT_SHARED\n ? buildSharedFromCmf(native, values.classes, { source: values.source })\n : values.emit === OUTPUT_GR2\n ? buildGr2FromCmf(native, values.classes, { source: values.source })\n : hydrateNativeRoot(native, values.classes, { source: values.source });\n}\n\n/** Loads native with values through the current CMF format reader. */\nexport function loadNativeWithValues(input, values)\n{\n if (values.emit === OUTPUT_RAW)\n {\n return input;\n }\n\n return values.emit === OUTPUT_SHARED\n ? buildSharedFromCmf(input, values.classes, { source: values.source })\n : values.emit === OUTPUT_GR2\n ? buildGr2FromCmf(input, values.classes, { source: values.source })\n : hydrateNativeRoot(input, values.classes, { source: values.source });\n}\n\n/**\n * Inspects raw CMF result without materializing the full CMF format reader\n * payload.\n */\nexport function inspectRawCmfResult(input, options = {})\n{\n return inspectCmf(readRawInput(input, { ...options, decodeBuffers: false }));\n}\n\nfunction buildGr2FromCmf(raw, classes, hydrationOptions = {})\n{\n const hydrationClasses = createHydrationClasses(classes, hydrationOptions);\n return hydrate(\"Root\", {\n grannyFileFormatRevision: raw.version,\n grannyFileSource: \"cmf\",\n meshes: raw.meshes.map((mesh) => hydrateGr2Mesh(mesh, hydrationClasses)),\n models: buildGr2Models(raw).map((model) => hydrateGr2Model(model, hydrationClasses)),\n animations: buildGr2Animations(raw).map((animation) => hydrateGr2Animation(animation, hydrationClasses))\n }, hydrationClasses, hydrationOptions);\n}\n\nfunction hydrateGr2Mesh(mesh, classes)\n{\n return hydrate(\"Mesh\", {\n name: mesh.name,\n morphTargets: (mesh.morphTargets?.targets ?? []).map((target, index) => hydrate(\"MorphTarget\", {\n ...target,\n dataIsDeltas: true,\n vertex: mesh.lods?.[0]?.morphTargets?.[index]?.vertex ?? target.vertex ?? null\n }, classes)),\n minBounds: mesh.bounds?.min ?? [ 0, 0, 0 ],\n maxBounds: mesh.bounds?.max ?? [ 0, 0, 0 ],\n boneBindings: (mesh.boneBindings ?? []).map((binding) => hydrate(\"BoneBinding\", {\n name: binding.name,\n minBounds: binding.bounds?.min ?? [ 0, 0, 0 ],\n maxBounds: binding.bounds?.max ?? [ 0, 0, 0 ]\n }, classes)),\n vertex: mesh.vertex ?? emptyGr2Vertex(),\n indices: (mesh.indices ?? []).map((group) => hydrate(\"IndexGroup\", {\n name: group.name ?? \"\",\n bytesPerIndex: group.bytesPerIndex ?? 2,\n faces: group.faces ?? []\n }, classes))\n }, classes);\n}\n\nfunction hydrateGr2Model(model, classes)\n{\n return hydrate(\"Model\", {\n ...model,\n skeleton: hydrate(\"Skeleton\", {\n ...model.skeleton,\n bones: model.skeleton.bones.map((bone) => hydrate(\"Bone\", bone, classes))\n }, classes)\n }, classes);\n}\n\nfunction hydrateGr2Animation(animation, classes)\n{\n return hydrate(\"Animation\", {\n ...animation,\n trackGroups: animation.trackGroups.map((group) => hydrate(\"TrackGroup\", {\n ...group,\n transformTracks: group.transformTracks.map((track) => hydrate(\"TransformTrack\", {\n ...track,\n orientation: hydrate(\"Curve\", track.orientation, classes),\n position: hydrate(\"Curve\", track.position, classes),\n scaleShear: hydrate(\"Curve\", track.scaleShear, classes)\n }, classes)),\n vectorTracks: group.vectorTracks.map((track) => hydrate(\"VectorTrack\", {\n ...track,\n valueCurve: hydrate(\"Curve\", track.valueCurve, classes)\n }, classes))\n }, classes))\n }, classes);\n}\n\nfunction emptyGr2Vertex()\n{\n return {\n position: [],\n normal: [],\n tangent: [],\n binormal: [],\n texcoord0: [],\n texcoord1: [],\n blendIndice: [],\n blendWeight: []\n };\n}\n\n/** Converts a parsed payload into a JSON-safe value for the CMF format reader. */\nexport function toJsonValue(value)\n{\n if (value === null || value === undefined)\n {\n return value;\n }\n\n if (Array.isArray(value))\n {\n return value.map((item) => toJsonValue(item));\n }\n\n if (ArrayBuffer.isView(value))\n {\n return Array.from(value);\n }\n\n if (typeof value.toJSON === \"function\")\n {\n return toJsonValue(value.toJSON());\n }\n\n if (typeof value === \"object\")\n {\n const result = {};\n for (const [ key, child ] of Object.entries(value))\n {\n result[key] = toJsonValue(child);\n }\n return result;\n }\n\n return value;\n}\n\n/** Validates a requested runtime class key for the CMF format reader. */\nexport function validateClassKey(type)\n{\n if (!CLASS_KEYS.includes(type))\n {\n throw new TypeError(`Unknown CMF class key \"${type}\"`);\n }\n}\n\n/** Validates a resolved runtime class constructor for the CMF format reader. */\nexport function validateClass(type, Class)\n{\n validateClassKey(type);\n if (typeof Class !== \"function\")\n {\n throw new TypeError(`CMF class \"${type}\" must be a constructor`);\n }\n}\n\nfunction validateClasses(classes)\n{\n for (const [ type, Class ] of Object.entries(classes ?? {}))\n {\n validateClass(type, Class);\n }\n}\n\nfunction hydrateNativeRoot(raw, classes, hydrationOptions = {})\n{\n return hydrateCmf({\n signature: raw.signature,\n version: raw.version,\n headerSize: raw.headerSize,\n crc32: raw.crc32,\n sections: raw.sections ?? [],\n metadata: raw.metadata ?? null,\n meshes: raw.meshes ?? [],\n skeletons: raw.skeletons ?? [],\n animations: raw.animations ?? []\n }, classes, hydrationOptions);\n}\n\nfunction hydrate(type, fields, classes, hydrationOptions = {})\n{\n const Class = classes?.[type];\n if (!Class)\n {\n return fields;\n }\n\n const options = Object.keys(hydrationOptions).length > 0 ? hydrationOptions : classes?.__hydrationOptions || {};\n return populate(new Class(), fields, options);\n}\n\nfunction populate(instance, fields, hydrationOptions = {})\n{\n if (!instance || typeof instance.SetValues !== \"function\")\n {\n throw new TypeError(\"CjsCmfFormat class population requires classes to implement SetValues(values)\");\n }\n instance.SetValues(fields, { ...hydrationOptions, skipUpdate: true, skipEvents: true });\n return instance;\n}\n\nfunction createHydrationClasses(classes, hydrationOptions)\n{\n const map = Object.create(classes || null);\n Object.defineProperty(map, \"__hydrationOptions\", { value: hydrationOptions, enumerable: false });\n return map;\n}\n"],"names":["DEFAULT_VALUES","Object","freeze","emit","OUTPUT_CMF","validateCrc","decodeBuffers","classes","normalizeValues","base","options","values","normalizeEmit","OUTPUT_GR2","hasClasses","TypeError","validateClasses","undefined","OUTPUT_CMF_JSON","OUTPUT_JSON","OUTPUT_RAW","OUTPUT_SHARED","some","Class","readRawInput","input","Array","isArray","sections","meshes","validateCmfGraph","phase","readCmf","readRawInputAsync","readCmfAsync","readWithValues","owner","raw","buildSharedFromCmf","source","buildGr2FromCmf","hydrateNativeRoot","readWithValuesAsync","loadSharedWithValues","native","buildCmfFromShared","loadNativeWithValues","inspectRawCmfResult","inspectCmf","hydrationOptions","hydrationClasses","createHydrationClasses","hydrate","grannyFileFormatRevision","version","grannyFileSource","map","mesh","hydrateGr2Mesh","models","buildGr2Models","model","hydrateGr2Model","animations","buildGr2Animations","animation","hydrateGr2Animation","name","morphTargets","targets","target","index","dataIsDeltas","vertex","lods","minBounds","bounds","min","maxBounds","max","boneBindings","binding","emptyGr2Vertex","indices","group","bytesPerIndex","faces","skeleton","bones","bone","trackGroups","transformTracks","track","orientation","position","scaleShear","vectorTracks","valueCurve","normal","tangent","binormal","texcoord0","texcoord1","blendIndice","blendWeight","toJsonValue","value","item","ArrayBuffer","isView","from","toJSON","result","key","child","entries","validateClassKey","type","CLASS_KEYS","includes","validateClass","hydrateCmf","signature","headerSize","crc32","metadata","skeletons","fields","keys","length","__hydrationOptions","populate","instance","SetValues","skipUpdate","skipEvents","create","defineProperty","enumerable"],"mappings":"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"}
@@ -40,30 +40,30 @@ function enumValue(names, value, label) {
40
40
  * Growable little-endian struct buffer with tagged span support.
41
41
  */
42
42
  class Flattener {
43
- #bytes = new Uint8Array(1024);
44
- #view = new DataView(this.#bytes.buffer);
45
- #chunkCache = new Map();
43
+ _bytes = new Uint8Array(1024);
44
+ _view = new DataView(this._bytes.buffer);
45
+ _chunkCache = new Map();
46
46
  size = 0;
47
47
 
48
48
  /**
49
49
  * Grows the output buffer when the requested write would exceed capacity for
50
50
  * the CMF binary writer.
51
51
  */
52
- #ensure(capacity) {
53
- if (capacity <= this.#bytes.length) return;
54
- let next = this.#bytes.length * 2;
52
+ _ensure(capacity) {
53
+ if (capacity <= this._bytes.length) return;
54
+ let next = this._bytes.length * 2;
55
55
  while (next < capacity) next *= 2;
56
56
  const grown = new Uint8Array(next);
57
- grown.set(this.#bytes.subarray(0, this.size));
58
- this.#bytes = grown;
59
- this.#view = new DataView(grown.buffer);
57
+ grown.set(this._bytes.subarray(0, this.size));
58
+ this._bytes = grown;
59
+ this._view = new DataView(grown.buffer);
60
60
  }
61
61
 
62
62
  /** Reserves output storage in the current CMF binary writer. */
63
63
  reserve(byteLength) {
64
64
  const offset = this.size;
65
- this.#ensure(offset + byteLength);
66
- this.#bytes.fill(0, offset, offset + byteLength);
65
+ this._ensure(offset + byteLength);
66
+ this._bytes.fill(0, offset, offset + byteLength);
67
67
  this.size = offset + byteLength;
68
68
  return offset;
69
69
  }
@@ -71,8 +71,8 @@ class Flattener {
71
71
  /** Reserves aligned in the current CMF binary writer. */
72
72
  reserveAligned(byteLength, alignment = 8) {
73
73
  const padded = Math.ceil(this.size / alignment) * alignment;
74
- this.#ensure(padded);
75
- this.#bytes.fill(0, this.size, padded);
74
+ this._ensure(padded);
75
+ this._bytes.fill(0, this.size, padded);
76
76
  this.size = padded;
77
77
  return this.reserve(byteLength);
78
78
  }
@@ -82,7 +82,7 @@ class Flattener {
82
82
  * writer.
83
83
  */
84
84
  u8(offset, value) {
85
- this.#view.setUint8(offset, value);
85
+ this._view.setUint8(offset, value);
86
86
  }
87
87
 
88
88
  /**
@@ -90,7 +90,7 @@ class Flattener {
90
90
  * the CMF binary writer.
91
91
  */
92
92
  u16(offset, value) {
93
- this.#view.setUint16(offset, value, true);
93
+ this._view.setUint16(offset, value, true);
94
94
  }
95
95
 
96
96
  /**
@@ -98,7 +98,7 @@ class Flattener {
98
98
  * the CMF binary writer.
99
99
  */
100
100
  u32(offset, value) {
101
- this.#view.setUint32(offset, value, true);
101
+ this._view.setUint32(offset, value, true);
102
102
  }
103
103
 
104
104
  /**
@@ -106,7 +106,7 @@ class Flattener {
106
106
  * binary writer.
107
107
  */
108
108
  f32(offset, value) {
109
- this.#view.setFloat32(offset, value ?? 0, true);
109
+ this._view.setFloat32(offset, value ?? 0, true);
110
110
  }
111
111
 
112
112
  /**
@@ -114,7 +114,7 @@ class Flattener {
114
114
  * the CMF binary writer.
115
115
  */
116
116
  i64(offset, value) {
117
- this.#view.setBigInt64(offset, BigInt(value), true);
117
+ this._view.setBigInt64(offset, BigInt(value), true);
118
118
  }
119
119
 
120
120
  /**
@@ -122,7 +122,7 @@ class Flattener {
122
122
  * the CMF binary writer.
123
123
  */
124
124
  u64(offset, value) {
125
- this.#view.setBigUint64(offset, BigInt(value), true);
125
+ this._view.setBigUint64(offset, BigInt(value), true);
126
126
  }
127
127
 
128
128
  /**
@@ -130,7 +130,7 @@ class Flattener {
130
130
  * writer.
131
131
  */
132
132
  setBytes(offset, bytes) {
133
- this.#bytes.set(bytes, offset);
133
+ this._bytes.set(bytes, offset);
134
134
  }
135
135
 
136
136
  /**
@@ -157,15 +157,15 @@ class Flattener {
157
157
  for (let i = 0; i < count; i++) writeElement(scratch, scratchOffset + i * elementSize, elements[i]);
158
158
  const chunk = scratch.bytes();
159
159
  const key = chunkKey(chunk);
160
- const cached = this.#chunkCache.get(key);
161
- if (cached !== undefined && bytesEqual(this.#bytes, cached, chunk)) {
160
+ const cached = this._chunkCache.get(key);
161
+ if (cached !== undefined && bytesEqual(this._bytes, cached, chunk)) {
162
162
  this.i64(fieldOffset, cached - fieldOffset + 1);
163
163
  this.u64(fieldOffset + 8, byteSize);
164
164
  return;
165
165
  }
166
166
  const chunkOffset = this.reserveAligned(byteSize);
167
167
  this.setBytes(chunkOffset, chunk);
168
- this.#chunkCache.set(key, chunkOffset);
168
+ this._chunkCache.set(key, chunkOffset);
169
169
  this.i64(fieldOffset, chunkOffset - fieldOffset + 1);
170
170
  this.u64(fieldOffset + 8, byteSize);
171
171
  return;
@@ -192,7 +192,7 @@ class Flattener {
192
192
  * binary writer.
193
193
  */
194
194
  bytes() {
195
- return this.#bytes.slice(0, this.size);
195
+ return this._bytes.slice(0, this.size);
196
196
  }
197
197
  }
198
198
  function chunkKey(bytes) {