@carbonenginejs/runtime-resource 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/FORMAT-PROVENANCE.md +135 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +29 -0
  4. package/README.md +241 -0
  5. package/dist/CjsMotherLode.js +56 -0
  6. package/dist/CjsMotherLode.js.map +1 -0
  7. package/dist/CjsResMan.js +740 -0
  8. package/dist/CjsResMan.js.map +1 -0
  9. package/dist/CjsResManQueue.js +214 -0
  10. package/dist/CjsResManQueue.js.map +1 -0
  11. package/dist/CjsResource.js +366 -0
  12. package/dist/CjsResource.js.map +1 -0
  13. package/dist/CjsResourceSource.js +59 -0
  14. package/dist/CjsResourceSource.js.map +1 -0
  15. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -0
  16. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  17. package/dist/format/CjsFormat.js +178 -0
  18. package/dist/format/CjsFormat.js.map +1 -0
  19. package/dist/format/CjsResourceProbe.js +269 -0
  20. package/dist/format/CjsResourceProbe.js.map +1 -0
  21. package/dist/format/payloadContract.js +173 -0
  22. package/dist/format/payloadContract.js.map +1 -0
  23. package/dist/formats/black/CjsBlackFormat.js +272 -0
  24. package/dist/formats/black/CjsBlackFormat.js.map +1 -0
  25. package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -0
  26. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -0
  27. package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -0
  28. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -0
  29. package/dist/formats/black/core/CjsBlackReader.js +760 -0
  30. package/dist/formats/black/core/CjsBlackReader.js.map +1 -0
  31. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -0
  32. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -0
  33. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -0
  34. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +1 -0
  35. package/dist/formats/black/core/blackConstants.js +7 -0
  36. package/dist/formats/black/core/blackConstants.js.map +1 -0
  37. package/dist/formats/black/core/blackDefinitions.js +10 -0
  38. package/dist/formats/black/core/blackDefinitions.js.map +1 -0
  39. package/dist/formats/black/core/blackEnums.js +6 -0
  40. package/dist/formats/black/core/blackEnums.js.map +1 -0
  41. package/dist/formats/black/core/blackSchema.js +3 -0
  42. package/dist/formats/black/core/blackSchema.js.map +1 -0
  43. package/dist/formats/black/core/blackVersion.js +22 -0
  44. package/dist/formats/black/core/blackVersion.js.map +1 -0
  45. package/dist/formats/black/core/helpers.js +182 -0
  46. package/dist/formats/black/core/helpers.js.map +1 -0
  47. package/dist/formats/black/core/schema.js +4 -0
  48. package/dist/formats/black/core/schema.js.map +1 -0
  49. package/dist/formats/black/index.js +2 -0
  50. package/dist/formats/black/index.js.map +1 -0
  51. package/dist/formats/bnk/CjsBnkFormat.js +245 -0
  52. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -0
  53. package/dist/formats/bnk/core/helpers.js +354 -0
  54. package/dist/formats/bnk/core/helpers.js.map +1 -0
  55. package/dist/formats/bnk/core/soundbanksInfo.js +246 -0
  56. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -0
  57. package/dist/formats/bnk/index.js +3 -0
  58. package/dist/formats/bnk/index.js.map +1 -0
  59. package/dist/formats/cmf/CjsCmfFormat.js +491 -0
  60. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -0
  61. package/dist/formats/cmf/core/binary.js +118 -0
  62. package/dist/formats/cmf/core/binary.js.map +1 -0
  63. package/dist/formats/cmf/core/buffers.js +233 -0
  64. package/dist/formats/cmf/core/buffers.js.map +1 -0
  65. package/dist/formats/cmf/core/constants.js +47 -0
  66. package/dist/formats/cmf/core/constants.js.map +1 -0
  67. package/dist/formats/cmf/core/gr2Anim.js +453 -0
  68. package/dist/formats/cmf/core/gr2Anim.js.map +1 -0
  69. package/dist/formats/cmf/core/helpers.js +287 -0
  70. package/dist/formats/cmf/core/helpers.js.map +1 -0
  71. package/dist/formats/cmf/core/pack.js +276 -0
  72. package/dist/formats/cmf/core/pack.js.map +1 -0
  73. package/dist/formats/cmf/core/schema.js +364 -0
  74. package/dist/formats/cmf/core/schema.js.map +1 -0
  75. package/dist/formats/cmf/core/shared.js +268 -0
  76. package/dist/formats/cmf/core/shared.js.map +1 -0
  77. package/dist/formats/cmf/core/writer.js +517 -0
  78. package/dist/formats/cmf/core/writer.js.map +1 -0
  79. package/dist/formats/cmf/index.js +2 -0
  80. package/dist/formats/cmf/index.js.map +1 -0
  81. package/dist/formats/dds/CjsDdsFormat.js +187 -0
  82. package/dist/formats/dds/CjsDdsFormat.js.map +1 -0
  83. package/dist/formats/dds/core/helpers.js +812 -0
  84. package/dist/formats/dds/core/helpers.js.map +1 -0
  85. package/dist/formats/dds/index.js +2 -0
  86. package/dist/formats/dds/index.js.map +1 -0
  87. package/dist/formats/fbx/CjsFbxFormat.js +260 -0
  88. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -0
  89. package/dist/formats/fbx/core/helpers.js +3901 -0
  90. package/dist/formats/fbx/core/helpers.js.map +1 -0
  91. package/dist/formats/fbx/index.js +2 -0
  92. package/dist/formats/fbx/index.js.map +1 -0
  93. package/dist/formats/flac/CjsFlacFormat.js +81 -0
  94. package/dist/formats/flac/CjsFlacFormat.js.map +1 -0
  95. package/dist/formats/flac/core/helpers.js +295 -0
  96. package/dist/formats/flac/core/helpers.js.map +1 -0
  97. package/dist/formats/flac/index.js +2 -0
  98. package/dist/formats/flac/index.js.map +1 -0
  99. package/dist/formats/gif/CjsGifFormat.js +81 -0
  100. package/dist/formats/gif/CjsGifFormat.js.map +1 -0
  101. package/dist/formats/gif/core/helpers.js +360 -0
  102. package/dist/formats/gif/core/helpers.js.map +1 -0
  103. package/dist/formats/gif/index.js +2 -0
  104. package/dist/formats/gif/index.js.map +1 -0
  105. package/dist/formats/gltf/CjsGltfFormat.js +284 -0
  106. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -0
  107. package/dist/formats/gltf/core/helpers.js +292 -0
  108. package/dist/formats/gltf/core/helpers.js.map +1 -0
  109. package/dist/formats/gltf/core/json.js +79 -0
  110. package/dist/formats/gltf/core/json.js.map +1 -0
  111. package/dist/formats/gltf/core/parser.js +666 -0
  112. package/dist/formats/gltf/core/parser.js.map +1 -0
  113. package/dist/formats/gltf/core/targets.js +163 -0
  114. package/dist/formats/gltf/core/targets.js.map +1 -0
  115. package/dist/formats/gltf/index.js +2 -0
  116. package/dist/formats/gltf/index.js.map +1 -0
  117. package/dist/formats/index.js +23 -0
  118. package/dist/formats/index.js.map +1 -0
  119. package/dist/formats/jpeg/CjsJpegFormat.js +200 -0
  120. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -0
  121. package/dist/formats/jpeg/core/helpers.js +350 -0
  122. package/dist/formats/jpeg/core/helpers.js.map +1 -0
  123. package/dist/formats/jpeg/core/jpeg.js +377 -0
  124. package/dist/formats/jpeg/core/jpeg.js.map +1 -0
  125. package/dist/formats/jpeg/index.js +2 -0
  126. package/dist/formats/jpeg/index.js.map +1 -0
  127. package/dist/formats/mp3/CjsMp3Format.js +186 -0
  128. package/dist/formats/mp3/CjsMp3Format.js.map +1 -0
  129. package/dist/formats/mp3/core/helpers.js +338 -0
  130. package/dist/formats/mp3/core/helpers.js.map +1 -0
  131. package/dist/formats/mp3/index.js +2 -0
  132. package/dist/formats/mp3/index.js.map +1 -0
  133. package/dist/formats/mp4/CjsMp4Format.js +185 -0
  134. package/dist/formats/mp4/CjsMp4Format.js.map +1 -0
  135. package/dist/formats/mp4/core/helpers.js +449 -0
  136. package/dist/formats/mp4/core/helpers.js.map +1 -0
  137. package/dist/formats/mp4/index.js +2 -0
  138. package/dist/formats/mp4/index.js.map +1 -0
  139. package/dist/formats/obj/CjsObjFormat.js +247 -0
  140. package/dist/formats/obj/CjsObjFormat.js.map +1 -0
  141. package/dist/formats/obj/core/helpers.js +573 -0
  142. package/dist/formats/obj/core/helpers.js.map +1 -0
  143. package/dist/formats/obj/core/json.js +64 -0
  144. package/dist/formats/obj/core/json.js.map +1 -0
  145. package/dist/formats/obj/core/parser.js +321 -0
  146. package/dist/formats/obj/core/parser.js.map +1 -0
  147. package/dist/formats/obj/index.js +2 -0
  148. package/dist/formats/obj/index.js.map +1 -0
  149. package/dist/formats/ogg/CjsOggFormat.js +82 -0
  150. package/dist/formats/ogg/CjsOggFormat.js.map +1 -0
  151. package/dist/formats/ogg/core/helpers.js +387 -0
  152. package/dist/formats/ogg/core/helpers.js.map +1 -0
  153. package/dist/formats/ogg/core/imdct.js +178 -0
  154. package/dist/formats/ogg/core/imdct.js.map +1 -0
  155. package/dist/formats/ogg/core/vorbis.js +999 -0
  156. package/dist/formats/ogg/core/vorbis.js.map +1 -0
  157. package/dist/formats/ogg/index.js +2 -0
  158. package/dist/formats/ogg/index.js.map +1 -0
  159. package/dist/formats/png/CjsPngFormat.js +189 -0
  160. package/dist/formats/png/CjsPngFormat.js.map +1 -0
  161. package/dist/formats/png/core/helpers.js +583 -0
  162. package/dist/formats/png/core/helpers.js.map +1 -0
  163. package/dist/formats/png/index.js +2 -0
  164. package/dist/formats/png/index.js.map +1 -0
  165. package/dist/formats/red/CjsRedFormat.js +247 -0
  166. package/dist/formats/red/CjsRedFormat.js.map +1 -0
  167. package/dist/formats/red/core/CjsRedReader.js +201 -0
  168. package/dist/formats/red/core/CjsRedReader.js.map +1 -0
  169. package/dist/formats/red/core/blackDefinitions.js +3 -0
  170. package/dist/formats/red/core/blackDefinitions.js.map +1 -0
  171. package/dist/formats/red/core/helpers.js +136 -0
  172. package/dist/formats/red/core/helpers.js.map +1 -0
  173. package/dist/formats/red/core/redGraph.js +68 -0
  174. package/dist/formats/red/core/redGraph.js.map +1 -0
  175. package/dist/formats/red/core/schema.js +4 -0
  176. package/dist/formats/red/core/schema.js.map +1 -0
  177. package/dist/formats/red/index.js +2 -0
  178. package/dist/formats/red/index.js.map +1 -0
  179. package/dist/formats/stl/CjsStlFormat.js +304 -0
  180. package/dist/formats/stl/CjsStlFormat.js.map +1 -0
  181. package/dist/formats/stl/core/helpers.js +257 -0
  182. package/dist/formats/stl/core/helpers.js.map +1 -0
  183. package/dist/formats/stl/core/json.js +51 -0
  184. package/dist/formats/stl/core/json.js.map +1 -0
  185. package/dist/formats/stl/core/stl.js +544 -0
  186. package/dist/formats/stl/core/stl.js.map +1 -0
  187. package/dist/formats/stl/core/targets.js +163 -0
  188. package/dist/formats/stl/core/targets.js.map +1 -0
  189. package/dist/formats/stl/index.js +2 -0
  190. package/dist/formats/stl/index.js.map +1 -0
  191. package/dist/formats/tga/CjsTgaFormat.js +186 -0
  192. package/dist/formats/tga/CjsTgaFormat.js.map +1 -0
  193. package/dist/formats/tga/core/helpers.js +446 -0
  194. package/dist/formats/tga/core/helpers.js.map +1 -0
  195. package/dist/formats/tga/index.js +2 -0
  196. package/dist/formats/tga/index.js.map +1 -0
  197. package/dist/formats/wav/CjsWavFormat.js +186 -0
  198. package/dist/formats/wav/CjsWavFormat.js.map +1 -0
  199. package/dist/formats/wav/core/helpers.js +328 -0
  200. package/dist/formats/wav/core/helpers.js.map +1 -0
  201. package/dist/formats/wav/index.js +2 -0
  202. package/dist/formats/wav/index.js.map +1 -0
  203. package/dist/formats/webm/CjsWebmFormat.js +185 -0
  204. package/dist/formats/webm/CjsWebmFormat.js.map +1 -0
  205. package/dist/formats/webm/core/helpers.js +537 -0
  206. package/dist/formats/webm/core/helpers.js.map +1 -0
  207. package/dist/formats/webm/index.js +2 -0
  208. package/dist/formats/webm/index.js.map +1 -0
  209. package/dist/formats/webp/CjsWebpFormat.js +80 -0
  210. package/dist/formats/webp/CjsWebpFormat.js.map +1 -0
  211. package/dist/formats/webp/core/helpers.js +214 -0
  212. package/dist/formats/webp/core/helpers.js.map +1 -0
  213. package/dist/formats/webp/index.js +2 -0
  214. package/dist/formats/webp/index.js.map +1 -0
  215. package/dist/formats/wem/CjsWemFormat.js +197 -0
  216. package/dist/formats/wem/CjsWemFormat.js.map +1 -0
  217. package/dist/formats/wem/core/bitStream.js +259 -0
  218. package/dist/formats/wem/core/bitStream.js.map +1 -0
  219. package/dist/formats/wem/core/codebookLibrary.js +164 -0
  220. package/dist/formats/wem/core/codebookLibrary.js.map +1 -0
  221. package/dist/formats/wem/core/helpers.js +336 -0
  222. package/dist/formats/wem/core/helpers.js.map +1 -0
  223. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -0
  224. package/dist/formats/wem/core/packedCodebooksAotuv603.js.map +1 -0
  225. package/dist/formats/wem/core/wemToOgg.js +485 -0
  226. package/dist/formats/wem/core/wemToOgg.js.map +1 -0
  227. package/dist/formats/wem/index.js +2 -0
  228. package/dist/formats/wem/index.js.map +1 -0
  229. package/dist/formats/yaml/CjsYamlFormat.js +77 -0
  230. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -0
  231. package/dist/formats/yaml/core/CjsYamlReader.js +304 -0
  232. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -0
  233. package/dist/formats/yaml/core/helpers.js +160 -0
  234. package/dist/formats/yaml/core/helpers.js.map +1 -0
  235. package/dist/formats/yaml/index.js +2 -0
  236. package/dist/formats/yaml/index.js.map +1 -0
  237. package/dist/generated/resources/AudioGeometryResData.js +47 -0
  238. package/dist/generated/resources/AudioGeometryResData.js.map +1 -0
  239. package/dist/generated/resources/CmfVertexReader.js +46 -0
  240. package/dist/generated/resources/CmfVertexReader.js.map +1 -0
  241. package/dist/generated/resources/GStateBindingCallbackData.js +31 -0
  242. package/dist/generated/resources/GStateBindingCallbackData.js.map +1 -0
  243. package/dist/generated/resources/MeshDecalData.js +37 -0
  244. package/dist/generated/resources/MeshDecalData.js.map +1 -0
  245. package/dist/generated/resources/MeshDecalLodData.js +34 -0
  246. package/dist/generated/resources/MeshDecalLodData.js.map +1 -0
  247. package/dist/generated/resources/Tr2AsyncSave.js +46 -0
  248. package/dist/generated/resources/Tr2AsyncSave.js.map +1 -0
  249. package/dist/generated/resources/Tr2CmfContents.js +37 -0
  250. package/dist/generated/resources/Tr2CmfContents.js.map +1 -0
  251. package/dist/generated/resources/Tr2GrannyIntersectionResult.js +58 -0
  252. package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +1 -0
  253. package/dist/generated/resources/Tr2LoadPrepareFence.js +37 -0
  254. package/dist/generated/resources/Tr2LoadPrepareFence.js.map +1 -0
  255. package/dist/generated/resources/Tr2MaterialArea.js +34 -0
  256. package/dist/generated/resources/Tr2MaterialArea.js.map +1 -0
  257. package/dist/generated/resources/Tr2MaterialMesh.js +31 -0
  258. package/dist/generated/resources/Tr2MaterialMesh.js.map +1 -0
  259. package/dist/generated/resources/Tr2MaterialRes.js +34 -0
  260. package/dist/generated/resources/Tr2MaterialRes.js.map +1 -0
  261. package/dist/generated/resources/Tr2ShaderPermutation.js +43 -0
  262. package/dist/generated/resources/Tr2ShaderPermutation.js.map +1 -0
  263. package/dist/generated/resources/Tr2TextureLodManager.js +60 -0
  264. package/dist/generated/resources/Tr2TextureLodManager.js.map +1 -0
  265. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js +37 -0
  266. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
  267. package/dist/generated/resources/Tr2TexturePackChannel.js +37 -0
  268. package/dist/generated/resources/Tr2TexturePackChannel.js.map +1 -0
  269. package/dist/generated/resources/Tr2TexturePipeline.js +44 -0
  270. package/dist/generated/resources/Tr2TexturePipeline.js.map +1 -0
  271. package/dist/generated/resources/Tr2TexturePipelineParams.js +34 -0
  272. package/dist/generated/resources/Tr2TexturePipelineParams.js.map +1 -0
  273. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js +40 -0
  274. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
  275. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js +34 -0
  276. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  277. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js +31 -0
  278. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
  279. package/dist/generated/resources/Tr2TexturePipelineStepPack.js +43 -0
  280. package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +1 -0
  281. package/dist/generated/resources/TriGeometryResAreaData.js +59 -0
  282. package/dist/generated/resources/TriGeometryResAreaData.js.map +1 -0
  283. package/dist/generated/resources/TriGeometryResJointData.js +38 -0
  284. package/dist/generated/resources/TriGeometryResJointData.js.map +1 -0
  285. package/dist/generated/resources/TriGeometryResLodData.js +88 -0
  286. package/dist/generated/resources/TriGeometryResLodData.js.map +1 -0
  287. package/dist/generated/resources/TriGeometryResMeshData.js +63 -0
  288. package/dist/generated/resources/TriGeometryResMeshData.js.map +1 -0
  289. package/dist/generated/resources/TriGeometryResSkeletonData.js +34 -0
  290. package/dist/generated/resources/TriGeometryResSkeletonData.js.map +1 -0
  291. package/dist/generated/resources/TriJointBinding.js +38 -0
  292. package/dist/generated/resources/TriJointBinding.js.map +1 -0
  293. package/dist/generated/resources/TriMorphTargetGeometryConstants.js +46 -0
  294. package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +1 -0
  295. package/dist/generated/resources/TriRtGeometryConstants.js +88 -0
  296. package/dist/generated/resources/TriRtGeometryConstants.js.map +1 -0
  297. package/dist/generated/resources/enums.js +18 -0
  298. package/dist/generated/resources/enums.js.map +1 -0
  299. package/dist/generated/resources/index.js +32 -0
  300. package/dist/generated/resources/index.js.map +1 -0
  301. package/dist/index.js +52 -0
  302. package/dist/index.js.map +1 -0
  303. package/dist/resourcePath.js +18 -0
  304. package/dist/resourcePath.js.map +1 -0
  305. package/dist/resourceStates.js +9 -0
  306. package/dist/resourceStates.js.map +1 -0
  307. package/dist/resources/Tr2EffectRes.js +71 -0
  308. package/dist/resources/Tr2EffectRes.js.map +1 -0
  309. package/dist/resources/Tr2GrannyStateRes.js +44 -0
  310. package/dist/resources/Tr2GrannyStateRes.js.map +1 -0
  311. package/dist/resources/Tr2ImageRes.js +114 -0
  312. package/dist/resources/Tr2ImageRes.js.map +1 -0
  313. package/dist/resources/Tr2LightProfileRes.js +40 -0
  314. package/dist/resources/Tr2LightProfileRes.js.map +1 -0
  315. package/dist/resources/TriGeometryRes.js +216 -0
  316. package/dist/resources/TriGeometryRes.js.map +1 -0
  317. package/dist/resources/TriGrannyRes.js +43 -0
  318. package/dist/resources/TriGrannyRes.js.map +1 -0
  319. package/dist/resources/TriTextureRes.js +304 -0
  320. package/dist/resources/TriTextureRes.js.map +1 -0
  321. package/dist/resources/resourceBoundary.js +47 -0
  322. package/dist/resources/resourceBoundary.js.map +1 -0
  323. package/dist/texture/CjsTextureArrayRes.js +406 -0
  324. package/dist/texture/CjsTextureArrayRes.js.map +1 -0
  325. package/dist/texture/CjsTextureParameterProxy.js +133 -0
  326. package/dist/texture/CjsTextureParameterProxy.js.map +1 -0
  327. package/format-notices/black/LICENSE +21 -0
  328. package/format-notices/black/NOTICE +47 -0
  329. package/format-notices/bnk/LICENSE +21 -0
  330. package/format-notices/bnk/NOTICE +17 -0
  331. package/format-notices/cmf/LICENSE +21 -0
  332. package/format-notices/cmf/NOTICE +36 -0
  333. package/format-notices/dds/LICENSE +21 -0
  334. package/format-notices/dds/NOTICE +14 -0
  335. package/format-notices/fbx/LICENSE +21 -0
  336. package/format-notices/fbx/NOTICE +14 -0
  337. package/format-notices/flac/LICENSE +21 -0
  338. package/format-notices/flac/NOTICE +14 -0
  339. package/format-notices/gif/LICENSE +21 -0
  340. package/format-notices/gif/NOTICE +14 -0
  341. package/format-notices/gltf/LICENSE +21 -0
  342. package/format-notices/gltf/NOTICE +27 -0
  343. package/format-notices/jpeg/LICENSE +21 -0
  344. package/format-notices/jpeg/NOTICE +14 -0
  345. package/format-notices/mp3/LICENSE +21 -0
  346. package/format-notices/mp3/NOTICE +14 -0
  347. package/format-notices/mp4/LICENSE +21 -0
  348. package/format-notices/mp4/NOTICE +14 -0
  349. package/format-notices/obj/LICENSE +21 -0
  350. package/format-notices/obj/NOTICE +26 -0
  351. package/format-notices/ogg/LICENSE +21 -0
  352. package/format-notices/ogg/NOTICE +28 -0
  353. package/format-notices/png/LICENSE +21 -0
  354. package/format-notices/png/NOTICE +14 -0
  355. package/format-notices/red/LICENSE +21 -0
  356. package/format-notices/red/NOTICE +31 -0
  357. package/format-notices/stl/LICENSE +21 -0
  358. package/format-notices/stl/NOTICE +21 -0
  359. package/format-notices/tga/LICENSE +21 -0
  360. package/format-notices/tga/NOTICE +14 -0
  361. package/format-notices/wav/LICENSE +21 -0
  362. package/format-notices/wav/NOTICE +14 -0
  363. package/format-notices/webm/LICENSE +21 -0
  364. package/format-notices/webm/NOTICE +14 -0
  365. package/format-notices/webp/LICENSE +21 -0
  366. package/format-notices/webp/NOTICE +14 -0
  367. package/format-notices/wem/LICENSE +57 -0
  368. package/format-notices/wem/NOTICE +33 -0
  369. package/format-notices/yaml/LICENSE +21 -0
  370. package/format-notices/yaml/NOTICE +44 -0
  371. package/package.json +51 -0
  372. package/resource-lifecycle.md +487 -0
@@ -0,0 +1,118 @@
1
+ const textDecoder = new TextDecoder();
2
+ function asUint8Array(input) {
3
+ if (input instanceof Uint8Array) {
4
+ return input;
5
+ }
6
+ if (input instanceof ArrayBuffer) {
7
+ return new Uint8Array(input);
8
+ }
9
+ if (ArrayBuffer.isView(input)) {
10
+ return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
11
+ }
12
+ throw new TypeError("CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view");
13
+ }
14
+ class BinaryReader {
15
+ constructor(bytes) {
16
+ this.bytes = asUint8Array(bytes);
17
+ this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);
18
+ }
19
+ require(offset, size, label = "read") {
20
+ if (!Number.isInteger(offset) || offset < 0 || offset + size > this.bytes.byteLength) {
21
+ throw new RangeError(`CMF ${label} is outside file bounds`);
22
+ }
23
+ }
24
+ u8(offset) {
25
+ this.require(offset, 1);
26
+ return this.view.getUint8(offset);
27
+ }
28
+ u16(offset) {
29
+ this.require(offset, 2);
30
+ return this.view.getUint16(offset, true);
31
+ }
32
+ u32(offset) {
33
+ this.require(offset, 4);
34
+ return this.view.getUint32(offset, true);
35
+ }
36
+ i32(offset) {
37
+ this.require(offset, 4);
38
+ return this.view.getInt32(offset, true);
39
+ }
40
+ f32(offset) {
41
+ this.require(offset, 4);
42
+ return this.view.getFloat32(offset, true);
43
+ }
44
+ u64(offset) {
45
+ this.require(offset, 8);
46
+ const value = this.view.getBigUint64(offset, true);
47
+ if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
48
+ throw new RangeError("CMF integer is larger than Number.MAX_SAFE_INTEGER");
49
+ }
50
+ return Number(value);
51
+ }
52
+ i64(offset) {
53
+ this.require(offset, 8);
54
+ const value = this.view.getBigInt64(offset, true);
55
+ if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER)) {
56
+ throw new RangeError("CMF integer is outside the safe JavaScript number range");
57
+ }
58
+ return Number(value);
59
+ }
60
+ bytesAt(offset, size) {
61
+ this.require(offset, size, "byte slice");
62
+ return this.bytes.subarray(offset, offset + size);
63
+ }
64
+ string(offset, byteSize) {
65
+ if (byteSize === 0) {
66
+ return "";
67
+ }
68
+ return textDecoder.decode(this.bytesAt(offset, byteSize));
69
+ }
70
+ }
71
+ function enumName(names, value) {
72
+ return names[value] ?? `Unknown(${value})`;
73
+ }
74
+ function readVector3(reader, offset) {
75
+ return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8)];
76
+ }
77
+ function readQuaternion(reader, offset) {
78
+ return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8), reader.f32(offset + 12)];
79
+ }
80
+ function readMatrix(reader, offset) {
81
+ const values = [];
82
+ for (let i = 0; i < 16; i++) {
83
+ values.push(reader.f32(offset + i * 4));
84
+ }
85
+ return values;
86
+ }
87
+ function readBounds(reader, offset) {
88
+ return {
89
+ min: readVector3(reader, offset),
90
+ max: readVector3(reader, offset + 12)
91
+ };
92
+ }
93
+ function crc32(bytes, start = 0, end = bytes.byteLength) {
94
+ let crc = 0xffffffff;
95
+ const table = crc32Table();
96
+ for (let i = start; i < end; i++) {
97
+ crc = crc >>> 8 ^ table[(crc ^ bytes[i]) & 0xff];
98
+ }
99
+ return (crc ^ 0xffffffff) >>> 0;
100
+ }
101
+ let cachedCrc32Table = null;
102
+ function crc32Table() {
103
+ if (cachedCrc32Table) {
104
+ return cachedCrc32Table;
105
+ }
106
+ cachedCrc32Table = new Uint32Array(256);
107
+ for (let i = 0; i < 256; i++) {
108
+ let c = i;
109
+ for (let k = 0; k < 8; k++) {
110
+ c = c & 1 ? 0xedb88320 ^ c >>> 1 : c >>> 1;
111
+ }
112
+ cachedCrc32Table[i] = c >>> 0;
113
+ }
114
+ return cachedCrc32Table;
115
+ }
116
+
117
+ export { BinaryReader, asUint8Array, crc32, enumName, readBounds, readMatrix, readQuaternion, readVector3 };
118
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sources":["../../../../../src/formats/cmf/core/binary.js"],"sourcesContent":["const textDecoder = new TextDecoder();\n\nexport function asUint8Array(input)\n{\n if (input instanceof Uint8Array)\n {\n return input;\n }\n\n if (input instanceof ArrayBuffer)\n {\n return new Uint8Array(input);\n }\n\n if (ArrayBuffer.isView(input))\n {\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n }\n\n throw new TypeError(\"CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view\");\n}\n\nexport class BinaryReader\n{\n constructor(bytes)\n {\n this.bytes = asUint8Array(bytes);\n this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);\n }\n\n require(offset, size, label = \"read\")\n {\n if (!Number.isInteger(offset) || offset < 0 || offset + size > this.bytes.byteLength)\n {\n throw new RangeError(`CMF ${label} is outside file bounds`);\n }\n }\n\n u8(offset)\n {\n this.require(offset, 1);\n return this.view.getUint8(offset);\n }\n\n u16(offset)\n {\n this.require(offset, 2);\n return this.view.getUint16(offset, true);\n }\n\n u32(offset)\n {\n this.require(offset, 4);\n return this.view.getUint32(offset, true);\n }\n\n i32(offset)\n {\n this.require(offset, 4);\n return this.view.getInt32(offset, true);\n }\n\n f32(offset)\n {\n this.require(offset, 4);\n return this.view.getFloat32(offset, true);\n }\n\n u64(offset)\n {\n this.require(offset, 8);\n const value = this.view.getBigUint64(offset, true);\n if (value > BigInt(Number.MAX_SAFE_INTEGER))\n {\n throw new RangeError(\"CMF integer is larger than Number.MAX_SAFE_INTEGER\");\n }\n return Number(value);\n }\n\n i64(offset)\n {\n this.require(offset, 8);\n const value = this.view.getBigInt64(offset, true);\n if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER))\n {\n throw new RangeError(\"CMF integer is outside the safe JavaScript number range\");\n }\n return Number(value);\n }\n\n bytesAt(offset, size)\n {\n this.require(offset, size, \"byte slice\");\n return this.bytes.subarray(offset, offset + size);\n }\n\n string(offset, byteSize)\n {\n if (byteSize === 0)\n {\n return \"\";\n }\n\n return textDecoder.decode(this.bytesAt(offset, byteSize));\n }\n}\n\nexport function enumName(names, value)\n{\n return names[value] ?? `Unknown(${value})`;\n}\n\nexport function readVector3(reader, offset)\n{\n return [\n reader.f32(offset),\n reader.f32(offset + 4),\n reader.f32(offset + 8)\n ];\n}\n\nexport function readQuaternion(reader, offset)\n{\n return [\n reader.f32(offset),\n reader.f32(offset + 4),\n reader.f32(offset + 8),\n reader.f32(offset + 12)\n ];\n}\n\nexport function readMatrix(reader, offset)\n{\n const values = [];\n for (let i = 0; i < 16; i++)\n {\n values.push(reader.f32(offset + i * 4));\n }\n return values;\n}\n\nexport function readBounds(reader, offset)\n{\n return {\n min: readVector3(reader, offset),\n max: readVector3(reader, offset + 12)\n };\n}\n\nexport function crc32(bytes, start = 0, end = bytes.byteLength)\n{\n let crc = 0xffffffff;\n const table = crc32Table();\n for (let i = start; i < end; i++)\n {\n crc = (crc >>> 8) ^ table[(crc ^ bytes[i]) & 0xff];\n }\n return (crc ^ 0xffffffff) >>> 0;\n}\n\nlet cachedCrc32Table = null;\n\nfunction crc32Table()\n{\n if (cachedCrc32Table)\n {\n return cachedCrc32Table;\n }\n\n cachedCrc32Table = new Uint32Array(256);\n for (let i = 0; i < 256; i++)\n {\n let c = i;\n for (let k = 0; k < 8; k++)\n {\n c = (c & 1) ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1);\n }\n cachedCrc32Table[i] = c >>> 0;\n }\n return cachedCrc32Table;\n}\n"],"names":["textDecoder","TextDecoder","asUint8Array","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError","BinaryReader","constructor","bytes","view","DataView","require","offset","size","label","Number","isInteger","RangeError","u8","getUint8","u16","getUint16","u32","getUint32","i32","getInt32","f32","getFloat32","u64","value","getBigUint64","BigInt","MAX_SAFE_INTEGER","i64","getBigInt64","MIN_SAFE_INTEGER","bytesAt","subarray","string","byteSize","decode","enumName","names","readVector3","reader","readQuaternion","readMatrix","values","i","push","readBounds","min","max","crc32","start","end","crc","table","crc32Table","cachedCrc32Table","Uint32Array","c","k"],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ import { MeshoptDecoder } from 'meshoptimizer/decoder';
2
+
3
+ const CHANNEL_NAMES = Object.freeze({
4
+ Position: "position",
5
+ Normal: "normal",
6
+ Tangent: "tangent",
7
+ Binormal: "binormal",
8
+ TexCoord: "texcoord",
9
+ Color: "color",
10
+ BoneIndices: "blendIndice",
11
+ BoneWeights: "blendWeight",
12
+ PackedTangent: "packedTangent",
13
+ PackedTangentLegacy: "packedTangentLegacy"
14
+ });
15
+ function decodeGeometrySync(result, sourceBytes) {
16
+ const sections = result.sections.map((section, index) => decodeSectionSync(section, index, sourceBytes));
17
+ attachGeometry(result, sections);
18
+ return result;
19
+ }
20
+ async function decodeGeometryAsync(result, sourceBytes) {
21
+ await MeshoptDecoder.ready;
22
+ const sections = result.sections.map((section, index) => decodeSectionWithMeshopt(section, index, sourceBytes));
23
+ attachGeometry(result, sections);
24
+ return result;
25
+ }
26
+ function decodeSectionSync(section, index, sourceBytes) {
27
+ if (section.compression !== "None") {
28
+ throw new Error("CMF compressed GPU buffers require ReadAsync/readAsync so meshoptimizer can initialize");
29
+ }
30
+ return sectionBytes(section, index, sourceBytes);
31
+ }
32
+ function decodeSectionWithMeshopt(section, index, sourceBytes) {
33
+ const source = sectionBytes(section, index, sourceBytes);
34
+ if (section.compression === "None") {
35
+ return source;
36
+ }
37
+ const target = new Uint8Array(section.uncompressedSize);
38
+ const count = section.gpuAlignment === 0 ? 0 : section.uncompressedSize / section.gpuAlignment;
39
+ if (section.compression === "MeshOptimizerVertexBuffer") {
40
+ MeshoptDecoder.decodeVertexBuffer(target, count, section.gpuAlignment, source);
41
+ return target;
42
+ }
43
+ if (section.compression === "MeshOptimizerIndexBuffer") {
44
+ MeshoptDecoder.decodeIndexBuffer(target, count, section.gpuAlignment, source);
45
+ return target;
46
+ }
47
+ throw new Error(`Unsupported CMF section compression "${section.compression}"`);
48
+ }
49
+ function sectionBytes(section, index, sourceBytes) {
50
+ if (index === 0 || section.type !== "GpuBuffer") {
51
+ return null;
52
+ }
53
+ return sourceBytes.subarray(section.offset, section.offset + section.compressedSize);
54
+ }
55
+ function attachGeometry(result, sectionData) {
56
+ result.buffers = result.sections.map((section, index) => {
57
+ const data = sectionData[index];
58
+ return {
59
+ index,
60
+ type: section.type,
61
+ compression: section.compression,
62
+ byteLength: data?.byteLength ?? 0,
63
+ data
64
+ };
65
+ });
66
+ for (const mesh of result.meshes) {
67
+ for (const lod of mesh.lods) {
68
+ lod.vertex = readVertexChannels(mesh.decl, lod.vb, sectionData);
69
+ lod.indices = readIndexGroups(mesh, lod, sectionData);
70
+ for (let i = 0; i < lod.morphTargets.length; i++) {
71
+ const target = lod.morphTargets[i];
72
+ target.vertex = readVertexChannels(mesh.morphTargets.decl, target.vb, sectionData);
73
+ target.name = mesh.morphTargets.targets[i]?.name ?? target.name ?? "";
74
+ target.maxDisplacement = mesh.morphTargets.targets[i]?.maxDisplacement ?? target.maxDisplacement ?? 0;
75
+ }
76
+ }
77
+ if (mesh.lods.length > 0) {
78
+ mesh.vertex = mesh.lods[0].vertex;
79
+ mesh.indices = mesh.lods[0].indices;
80
+ } else {
81
+ mesh.vertex = createVertexChannels();
82
+ mesh.indices = [];
83
+ }
84
+ }
85
+ }
86
+ function readVertexChannels(decl, view, sectionData) {
87
+ const channels = createVertexChannels();
88
+ const bytes = viewData(view, sectionData);
89
+ if (!bytes || view.stride === 0) {
90
+ return channels;
91
+ }
92
+ const reader = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
93
+ const count = Math.floor(view.size / view.stride);
94
+ for (const element of decl) {
95
+ const channel = channelName(element);
96
+ if (!channels[channel]) channels[channel] = [];
97
+ for (let vertex = 0; vertex < count; vertex++) {
98
+ const base = vertex * view.stride + element.offset;
99
+ for (let component = 0; component < element.elementCount; component++) {
100
+ channels[channel].push(readElementComponent(reader, base, element.type, component));
101
+ }
102
+ }
103
+ }
104
+ return channels;
105
+ }
106
+ function readIndexGroups(mesh, lod, sectionData) {
107
+ const bytes = viewData(lod.ib, sectionData);
108
+ if (!bytes || lod.ib.stride === 0) {
109
+ return [];
110
+ }
111
+ const reader = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength),
112
+ allFaces = readIndices(reader, lod.ib.size, lod.ib.stride);
113
+ if (lod.areas.length === 0) {
114
+ return [{
115
+ name: "",
116
+ bytesPerIndex: lod.ib.stride,
117
+ faces: allFaces
118
+ }];
119
+ }
120
+ return lod.areas.map((area, areaIndex) => {
121
+ const sourceArea = mesh.areas[areaIndex];
122
+ return {
123
+ name: sourceArea?.name ?? "",
124
+ bytesPerIndex: lod.ib.stride,
125
+ firstElement: area.firstElement,
126
+ elementCount: area.elementCount,
127
+ faces: allFaces.slice(area.firstElement * 3, (area.firstElement + area.elementCount) * 3)
128
+ };
129
+ });
130
+ }
131
+ function readIndices(reader, byteSize, stride) {
132
+ const result = [];
133
+ for (let offset = 0; offset < byteSize; offset += stride) {
134
+ if (stride === 2) result.push(reader.getUint16(offset, true));else if (stride === 4) result.push(reader.getUint32(offset, true));else result.push(reader.getUint8(offset));
135
+ }
136
+ return result;
137
+ }
138
+ function viewData(view, sectionData) {
139
+ const section = sectionData[view.index];
140
+ if (!section || view.size === 0) {
141
+ return null;
142
+ }
143
+ return section.subarray(view.offset, view.offset + view.size);
144
+ }
145
+ function channelName(element) {
146
+ const base = CHANNEL_NAMES[element.usage] ?? lowerFirst(element.usage);
147
+ if (element.usage === "TexCoord" || element.usage === "Color") {
148
+ return `${base}${element.usageIndex}`;
149
+ }
150
+ if (element.usageIndex > 0) {
151
+ return `${base}${element.usageIndex}`;
152
+ }
153
+ return base;
154
+ }
155
+ function createVertexChannels() {
156
+ return {
157
+ position: [],
158
+ normal: [],
159
+ tangent: [],
160
+ binormal: [],
161
+ texcoord0: [],
162
+ texcoord1: [],
163
+ color0: [],
164
+ blendIndice: [],
165
+ blendWeight: [],
166
+ packedTangent: [],
167
+ packedTangentLegacy: []
168
+ };
169
+ }
170
+ function readElementComponent(reader, base, type, component) {
171
+ const offset = base + component * elementTypeSize(type);
172
+ switch (type) {
173
+ case "Float32":
174
+ return reader.getFloat32(offset, true);
175
+ case "Float16":
176
+ return halfToFloat(reader.getUint16(offset, true));
177
+ case "UInt16Norm":
178
+ return reader.getUint16(offset, true) / 65535;
179
+ case "UInt16":
180
+ return reader.getUint16(offset, true);
181
+ case "Int16Norm":
182
+ return Math.max(reader.getInt16(offset, true) / 32767, -1);
183
+ case "Int16":
184
+ return reader.getInt16(offset, true);
185
+ case "UInt8Norm":
186
+ return reader.getUint8(offset) / 255;
187
+ case "UInt8":
188
+ return reader.getUint8(offset);
189
+ case "Int8Norm":
190
+ return Math.max(reader.getInt8(offset) / 127, -1);
191
+ case "Int8":
192
+ return reader.getInt8(offset);
193
+ default:
194
+ throw new Error(`Unsupported CMF vertex element type "${type}"`);
195
+ }
196
+ }
197
+ function elementTypeSize(type) {
198
+ switch (type) {
199
+ case "Float32":
200
+ return 4;
201
+ case "Float16":
202
+ case "UInt16Norm":
203
+ case "UInt16":
204
+ case "Int16Norm":
205
+ case "Int16":
206
+ return 2;
207
+ case "UInt8Norm":
208
+ case "UInt8":
209
+ case "Int8Norm":
210
+ case "Int8":
211
+ return 1;
212
+ default:
213
+ throw new Error(`Unsupported CMF vertex element type "${type}"`);
214
+ }
215
+ }
216
+ function halfToFloat(value) {
217
+ const sign = value & 0x8000 ? -1 : 1,
218
+ exponent = value >> 10 & 0x1f,
219
+ fraction = value & 0x03ff;
220
+ if (exponent === 0) {
221
+ return sign * Math.pow(2, -14) * (fraction / 1024);
222
+ }
223
+ if (exponent === 31) {
224
+ return fraction ? NaN : sign * Infinity;
225
+ }
226
+ return sign * Math.pow(2, exponent - 15) * (1 + fraction / 1024);
227
+ }
228
+ function lowerFirst(value) {
229
+ return value ? value[0].toLowerCase() + value.slice(1) : value;
230
+ }
231
+
232
+ export { decodeGeometryAsync, decodeGeometrySync };
233
+ //# sourceMappingURL=buffers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffers.js","sources":["../../../../../src/formats/cmf/core/buffers.js"],"sourcesContent":["import { MeshoptDecoder } from \"meshoptimizer/decoder\";\n\nconst CHANNEL_NAMES = Object.freeze({\n Position: \"position\",\n Normal: \"normal\",\n Tangent: \"tangent\",\n Binormal: \"binormal\",\n TexCoord: \"texcoord\",\n Color: \"color\",\n BoneIndices: \"blendIndice\",\n BoneWeights: \"blendWeight\",\n PackedTangent: \"packedTangent\",\n PackedTangentLegacy: \"packedTangentLegacy\"\n});\n\nexport function decodeGeometrySync(result, sourceBytes)\n{\n const sections = result.sections.map((section, index) => decodeSectionSync(section, index, sourceBytes));\n attachGeometry(result, sections);\n return result;\n}\n\nexport async function decodeGeometryAsync(result, sourceBytes)\n{\n await MeshoptDecoder.ready;\n const sections = result.sections.map((section, index) => decodeSectionWithMeshopt(section, index, sourceBytes));\n attachGeometry(result, sections);\n return result;\n}\n\nfunction decodeSectionSync(section, index, sourceBytes)\n{\n if (section.compression !== \"None\")\n {\n throw new Error(\"CMF compressed GPU buffers require ReadAsync/readAsync so meshoptimizer can initialize\");\n }\n\n return sectionBytes(section, index, sourceBytes);\n}\n\nfunction decodeSectionWithMeshopt(section, index, sourceBytes)\n{\n const source = sectionBytes(section, index, sourceBytes);\n if (section.compression === \"None\")\n {\n return source;\n }\n\n const target = new Uint8Array(section.uncompressedSize);\n const count = section.gpuAlignment === 0 ? 0 : section.uncompressedSize / section.gpuAlignment;\n\n if (section.compression === \"MeshOptimizerVertexBuffer\")\n {\n MeshoptDecoder.decodeVertexBuffer(target, count, section.gpuAlignment, source);\n return target;\n }\n\n if (section.compression === \"MeshOptimizerIndexBuffer\")\n {\n MeshoptDecoder.decodeIndexBuffer(target, count, section.gpuAlignment, source);\n return target;\n }\n\n throw new Error(`Unsupported CMF section compression \"${section.compression}\"`);\n}\n\nfunction sectionBytes(section, index, sourceBytes)\n{\n if (index === 0 || section.type !== \"GpuBuffer\")\n {\n return null;\n }\n\n return sourceBytes.subarray(section.offset, section.offset + section.compressedSize);\n}\n\nfunction attachGeometry(result, sectionData)\n{\n result.buffers = result.sections.map((section, index) =>\n {\n const data = sectionData[index];\n return {\n index,\n type: section.type,\n compression: section.compression,\n byteLength: data?.byteLength ?? 0,\n data\n };\n });\n\n for (const mesh of result.meshes)\n {\n for (const lod of mesh.lods)\n {\n lod.vertex = readVertexChannels(mesh.decl, lod.vb, sectionData);\n lod.indices = readIndexGroups(mesh, lod, sectionData);\n\n for (let i = 0; i < lod.morphTargets.length; i++)\n {\n const target = lod.morphTargets[i];\n target.vertex = readVertexChannels(mesh.morphTargets.decl, target.vb, sectionData);\n target.name = mesh.morphTargets.targets[i]?.name ?? target.name ?? \"\";\n target.maxDisplacement = mesh.morphTargets.targets[i]?.maxDisplacement ?? target.maxDisplacement ?? 0;\n }\n }\n\n if (mesh.lods.length > 0)\n {\n mesh.vertex = mesh.lods[0].vertex;\n mesh.indices = mesh.lods[0].indices;\n }\n else\n {\n mesh.vertex = createVertexChannels();\n mesh.indices = [];\n }\n }\n}\n\nfunction readVertexChannels(decl, view, sectionData)\n{\n const channels = createVertexChannels();\n const bytes = viewData(view, sectionData);\n if (!bytes || view.stride === 0)\n {\n return channels;\n }\n\n const reader = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n const count = Math.floor(view.size / view.stride);\n for (const element of decl)\n {\n const channel = channelName(element);\n if (!channels[channel]) channels[channel] = [];\n\n for (let vertex = 0; vertex < count; vertex++)\n {\n const base = vertex * view.stride + element.offset;\n for (let component = 0; component < element.elementCount; component++)\n {\n channels[channel].push(readElementComponent(reader, base, element.type, component));\n }\n }\n }\n\n return channels;\n}\n\nfunction readIndexGroups(mesh, lod, sectionData)\n{\n const bytes = viewData(lod.ib, sectionData);\n if (!bytes || lod.ib.stride === 0)\n {\n return [];\n }\n\n const\n reader = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength),\n allFaces = readIndices(reader, lod.ib.size, lod.ib.stride);\n\n if (lod.areas.length === 0)\n {\n return [ {\n name: \"\",\n bytesPerIndex: lod.ib.stride,\n faces: allFaces\n } ];\n }\n\n return lod.areas.map((area, areaIndex) =>\n {\n const sourceArea = mesh.areas[areaIndex];\n return {\n name: sourceArea?.name ?? \"\",\n bytesPerIndex: lod.ib.stride,\n firstElement: area.firstElement,\n elementCount: area.elementCount,\n faces: allFaces.slice(area.firstElement * 3, (area.firstElement + area.elementCount) * 3)\n };\n });\n}\n\nfunction readIndices(reader, byteSize, stride)\n{\n const result = [];\n for (let offset = 0; offset < byteSize; offset += stride)\n {\n if (stride === 2) result.push(reader.getUint16(offset, true));\n else if (stride === 4) result.push(reader.getUint32(offset, true));\n else result.push(reader.getUint8(offset));\n }\n return result;\n}\n\nfunction viewData(view, sectionData)\n{\n const section = sectionData[view.index];\n if (!section || view.size === 0)\n {\n return null;\n }\n\n return section.subarray(view.offset, view.offset + view.size);\n}\n\nfunction channelName(element)\n{\n const base = CHANNEL_NAMES[element.usage] ?? lowerFirst(element.usage);\n if (element.usage === \"TexCoord\" || element.usage === \"Color\")\n {\n return `${base}${element.usageIndex}`;\n }\n\n if (element.usageIndex > 0)\n {\n return `${base}${element.usageIndex}`;\n }\n\n return base;\n}\n\nfunction createVertexChannels()\n{\n return {\n position: [],\n normal: [],\n tangent: [],\n binormal: [],\n texcoord0: [],\n texcoord1: [],\n color0: [],\n blendIndice: [],\n blendWeight: [],\n packedTangent: [],\n packedTangentLegacy: []\n };\n}\n\nfunction readElementComponent(reader, base, type, component)\n{\n const offset = base + component * elementTypeSize(type);\n switch (type)\n {\n case \"Float32\":\n return reader.getFloat32(offset, true);\n case \"Float16\":\n return halfToFloat(reader.getUint16(offset, true));\n case \"UInt16Norm\":\n return reader.getUint16(offset, true) / 65535;\n case \"UInt16\":\n return reader.getUint16(offset, true);\n case \"Int16Norm\":\n return Math.max(reader.getInt16(offset, true) / 32767, -1);\n case \"Int16\":\n return reader.getInt16(offset, true);\n case \"UInt8Norm\":\n return reader.getUint8(offset) / 255;\n case \"UInt8\":\n return reader.getUint8(offset);\n case \"Int8Norm\":\n return Math.max(reader.getInt8(offset) / 127, -1);\n case \"Int8\":\n return reader.getInt8(offset);\n default:\n throw new Error(`Unsupported CMF vertex element type \"${type}\"`);\n }\n}\n\nfunction elementTypeSize(type)\n{\n switch (type)\n {\n case \"Float32\":\n return 4;\n case \"Float16\":\n case \"UInt16Norm\":\n case \"UInt16\":\n case \"Int16Norm\":\n case \"Int16\":\n return 2;\n case \"UInt8Norm\":\n case \"UInt8\":\n case \"Int8Norm\":\n case \"Int8\":\n return 1;\n default:\n throw new Error(`Unsupported CMF vertex element type \"${type}\"`);\n }\n}\n\nfunction halfToFloat(value)\n{\n const\n sign = (value & 0x8000) ? -1 : 1,\n exponent = (value >> 10) & 0x1f,\n fraction = value & 0x03ff;\n\n if (exponent === 0)\n {\n return sign * Math.pow(2, -14) * (fraction / 1024);\n }\n\n if (exponent === 31)\n {\n return fraction ? NaN : sign * Infinity;\n }\n\n return sign * Math.pow(2, exponent - 15) * (1 + fraction / 1024);\n}\n\nfunction lowerFirst(value)\n{\n return value ? value[0].toLowerCase() + value.slice(1) : value;\n}\n"],"names":["CHANNEL_NAMES","Object","freeze","Position","Normal","Tangent","Binormal","TexCoord","Color","BoneIndices","BoneWeights","PackedTangent","PackedTangentLegacy","decodeGeometrySync","result","sourceBytes","sections","map","section","index","decodeSectionSync","attachGeometry","decodeGeometryAsync","MeshoptDecoder","ready","decodeSectionWithMeshopt","compression","Error","sectionBytes","source","target","Uint8Array","uncompressedSize","count","gpuAlignment","decodeVertexBuffer","decodeIndexBuffer","type","subarray","offset","compressedSize","sectionData","buffers","data","byteLength","mesh","meshes","lod","lods","vertex","readVertexChannels","decl","vb","indices","readIndexGroups","i","morphTargets","length","name","targets","maxDisplacement","createVertexChannels","view","channels","bytes","viewData","stride","reader","DataView","buffer","byteOffset","Math","floor","size","element","channel","channelName","base","component","elementCount","push","readElementComponent","ib","allFaces","readIndices","areas","bytesPerIndex","faces","area","areaIndex","sourceArea","firstElement","slice","byteSize","getUint16","getUint32","getUint8","usage","lowerFirst","usageIndex","position","normal","tangent","binormal","texcoord0","texcoord1","color0","blendIndice","blendWeight","packedTangent","packedTangentLegacy","elementTypeSize","getFloat32","halfToFloat","max","getInt16","getInt8","value","sign","exponent","fraction","pow","NaN","Infinity","toLowerCase"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ const FILE_SIGNATURE = 0x66666D63;
2
+ const FILE_VERSION = 1;
3
+ const OUTPUT_JSON = "json";
4
+ const OUTPUT_CMF = "cmf";
5
+ const OUTPUT_CMF_JSON = "cmfJson";
6
+ const OUTPUT_GR2 = "gr2";
7
+ const OUTPUT_NATIVE = "native";
8
+ const OUTPUT_RAW = "raw";
9
+ const OUTPUT_SHARED = "shared";
10
+ const STRUCT_SIZE = Object.freeze({
11
+ BufferView: 16,
12
+ VertexElement: 8,
13
+ MeshArea: 64,
14
+ LodMeshArea: 8,
15
+ BoneBinding: 40,
16
+ MorphTarget: 24,
17
+ MorphTargets: 32,
18
+ LodMorphTarget: 16,
19
+ MeshLod: 72,
20
+ AudioOcclusionMesh: 56,
21
+ Transform: 40,
22
+ BoneWeight: 8,
23
+ BoneMask: 32,
24
+ Skeleton: 96,
25
+ AnimationChannel: 24,
26
+ AnimationCurve: 40,
27
+ Animation: 56,
28
+ MetadataEntry: 32,
29
+ Metadata: 16,
30
+ Section: 16,
31
+ Header: 32,
32
+ Data: 48,
33
+ Mesh: 216
34
+ });
35
+ const Usage = Object.freeze(["Position", "Normal", "Tangent", "Binormal", "TexCoord", "Color", "BoneIndices", "BoneWeights", "PackedTangent", "PackedTangentLegacy"]);
36
+ const ElementType = Object.freeze(["Float32", "Float16", "UInt16Norm", "UInt16", "Int16Norm", "Int16", "UInt8Norm", "UInt8", "Int8Norm", "Int8"]);
37
+ const MeshTopology = Object.freeze(["TriangleList", "PointList"]);
38
+ const SectionType = Object.freeze(["Data", "GpuBuffer", "Metadata"]);
39
+ const SectionCompression = Object.freeze(["None", "MeshOptimizerVertexBuffer", "MeshOptimizerIndexBuffer"]);
40
+ const AnimationChannelTargetType = Object.freeze(["BonePosition", "BoneRotation", "BoneScale", "MorphTarget", "Other"]);
41
+ const Interpolation = Object.freeze(["Step", "Linear"]);
42
+ const CMF_CLASS_KEYS = Object.freeze(["Root", "Section", "Metadata", "MetadataEntry", "Mesh", "IndexGroup", "VertexElement", "MeshLod", "MeshArea", "LodMeshArea", "BoneBinding", "MorphTargets", "MorphTarget", "LodMorphTarget", "AudioOcclusionMesh", "Skeleton", "BoneMask", "BoneWeight", "Animation", "AnimationChannel", "AnimationCurve"]);
43
+ const GR2_CLASS_KEYS = Object.freeze(["Root", "Mesh", "BoneBinding", "IndexGroup", "MorphTarget", "Model", "Skeleton", "Bone", "Animation", "TrackGroup", "TransformTrack", "Curve"]);
44
+ const CLASS_KEYS = Object.freeze(Array.from(new Set([...CMF_CLASS_KEYS, ...GR2_CLASS_KEYS])));
45
+
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 };
47
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../../src/formats/cmf/core/constants.js"],"sourcesContent":["export const FILE_SIGNATURE = 0x66666D63;\nexport const FILE_VERSION = 1;\n\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_CMF = \"cmf\";\nexport const OUTPUT_CMF_JSON = \"cmfJson\";\nexport const OUTPUT_GR2 = \"gr2\";\nexport const OUTPUT_NATIVE = \"native\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_SHARED = \"shared\";\n\nexport const STRUCT_SIZE = Object.freeze({\n BufferView: 16,\n VertexElement: 8,\n MeshArea: 64,\n LodMeshArea: 8,\n BoneBinding: 40,\n MorphTarget: 24,\n MorphTargets: 32,\n LodMorphTarget: 16,\n MeshLod: 72,\n AudioOcclusionMesh: 56,\n Transform: 40,\n BoneWeight: 8,\n BoneMask: 32,\n Skeleton: 96,\n AnimationChannel: 24,\n AnimationCurve: 40,\n Animation: 56,\n MetadataEntry: 32,\n Metadata: 16,\n Section: 16,\n Header: 32,\n Data: 48,\n Mesh: 216\n});\n\nexport const Usage = Object.freeze([\n \"Position\",\n \"Normal\",\n \"Tangent\",\n \"Binormal\",\n \"TexCoord\",\n \"Color\",\n \"BoneIndices\",\n \"BoneWeights\",\n \"PackedTangent\",\n \"PackedTangentLegacy\"\n]);\n\nexport const ElementType = Object.freeze([\n \"Float32\",\n \"Float16\",\n \"UInt16Norm\",\n \"UInt16\",\n \"Int16Norm\",\n \"Int16\",\n \"UInt8Norm\",\n \"UInt8\",\n \"Int8Norm\",\n \"Int8\"\n]);\n\nexport const MeshTopology = Object.freeze([\n \"TriangleList\",\n \"PointList\"\n]);\n\nexport const SectionType = Object.freeze([\n \"Data\",\n \"GpuBuffer\",\n \"Metadata\"\n]);\n\nexport const SectionCompression = Object.freeze([\n \"None\",\n \"MeshOptimizerVertexBuffer\",\n \"MeshOptimizerIndexBuffer\"\n]);\n\nexport const AnimationChannelTargetType = Object.freeze([\n \"BonePosition\",\n \"BoneRotation\",\n \"BoneScale\",\n \"MorphTarget\",\n \"Other\"\n]);\n\nexport const Interpolation = Object.freeze([\n \"Step\",\n \"Linear\"\n]);\n\nexport const CMF_CLASS_KEYS = Object.freeze([\n \"Root\",\n \"Section\",\n \"Metadata\",\n \"MetadataEntry\",\n \"Mesh\",\n \"IndexGroup\",\n \"VertexElement\",\n \"MeshLod\",\n \"MeshArea\",\n \"LodMeshArea\",\n \"BoneBinding\",\n \"MorphTargets\",\n \"MorphTarget\",\n \"LodMorphTarget\",\n \"AudioOcclusionMesh\",\n \"Skeleton\",\n \"BoneMask\",\n \"BoneWeight\",\n \"Animation\",\n \"AnimationChannel\",\n \"AnimationCurve\"\n]);\n\nexport const GR2_CLASS_KEYS = Object.freeze([\n \"Root\",\n \"Mesh\",\n \"BoneBinding\",\n \"IndexGroup\",\n \"MorphTarget\",\n \"Model\",\n \"Skeleton\",\n \"Bone\",\n \"Animation\",\n \"TrackGroup\",\n \"TransformTrack\",\n \"Curve\"\n]);\n\nexport const CLASS_KEYS = Object.freeze(Array.from(new Set([\n ...CMF_CLASS_KEYS,\n ...GR2_CLASS_KEYS\n])));\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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"}