@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.1

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 (929) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tr2PerObjectData.js","sources":["../../../../../src/trinity/core/rawData/Tr2PerObjectData.js"],"sourcesContent":["// Source: trinity/Tr2PerObjectData.h (Tr2PerObjectData base)\r\n//\r\n// Per-object render data. Carries the object id (Carbon's m_userData, used as\r\n// the picking / object id) and is the value a renderable's GetPerObjectData\r\n// returns and a batch references via SetPerObjectData.\r\n//\r\n// THIS HEAD COMMENT USED TO SAY the upload path was \"engine-owned and\r\n// intentionally not modelled here; the engine reads the canonical\r\n// CjsConstantPayload at dispatch\". That was the engine-means-`trinityal/webgpu`\r\n// misreading: Carbon's SetPerObjectDataToDevice calls FillAndSetConstants,\r\n// which lives in Tr2RenderUtils.h - Trinity. The upload is here now and it\r\n// writes a Tr2ConstantBufferAL through the abstraction layer.\r\n//\r\n// ApplyConstantBuffers, the indirect-draw sibling, is still unported: it takes\r\n// a Tr2IndirectDrawBufferWriter and nothing on this path draws indirectly yet.\r\n\r\nimport { CjsConstantPayload } from \"#contracts\";\r\nimport { ShaderType } from \"#consts/render-context\";\r\nimport { FillAndSetConstants } from \"../Tr2RenderUtils.js\";\r\nimport { PER_OBJECT_PS, PER_OBJECT_VS } from \"../Tr2Renderer.js\";\r\n\r\n/**\r\n * Per-object render data: the object id a batch is picked and identified by,\r\n * and the upload of its constant payloads through the abstraction layer.\r\n */\r\nexport class Tr2PerObjectData\r\n{\r\n /** Starts with a zero object id. */\r\n constructor()\r\n {\r\n this.userData = 0;\r\n }\r\n\r\n /** Sets the object id, coerced to an unsigned 32-bit value. */\r\n SetUserData(userData)\r\n {\r\n this.userData = userData >>> 0;\r\n }\r\n\r\n /** The object id, which doubles as the picking id. */\r\n GetUserData()\r\n {\r\n return this.userData;\r\n }\r\n\r\n // Carbon Tr2RenderContextEnum::ShaderType (trinityal/Tr2RenderContextEnum.h:31-43).\r\n // The order is the bit order used by every constant-binding mask.\r\n\r\n /** Carbon's shader-type vocabulary, in its declared order. */\r\n static ShaderType = Object.freeze({\r\n VERTEX_SHADER: 0,\r\n PIXEL_SHADER: 1,\r\n COMPUTE_SHADER: 2,\r\n GEOMETRY_SHADER: 3,\r\n HULL_SHADER: 4,\r\n DOMAIN_SHADER: 5\r\n });\r\n\r\n /** A layout stage name to its shader-type bit. */\r\n static StageBits = Object.freeze({\r\n vs: 1 << 0,\r\n ps: 1 << 1,\r\n cs: 1 << 2,\r\n gs: 1 << 3,\r\n hs: 1 << 4,\r\n ds: 1 << 5\r\n });\r\n\r\n // Carbon's perFrameVsMask (Tr2PerObjectData.cpp:49-54): a payload declared\r\n // for the vertex stage is bound to the whole non-pixel family, because those\r\n // stages share the per-object vertex register. A struct declaring \"vs\" is\r\n // therefore asking for all five, exactly as Carbon's fill does.\r\n\r\n /** The stages a \"vs\" payload binds to, per Carbon's per-object VS mask. */\r\n static VertexFamilyMask =\r\n Tr2PerObjectData.StageBits.vs\r\n | Tr2PerObjectData.StageBits.cs\r\n | Tr2PerObjectData.StageBits.gs\r\n | Tr2PerObjectData.StageBits.hs\r\n | Tr2PerObjectData.StageBits.ds;\r\n\r\n // Carbon SetPerObjectDataToDevice(buffers, constantTypeMask, renderContext)\r\n // (Tr2PerObjectData.cpp:47-67 Standard, :75-96 Skinned). getConstantRecords\r\n // answers WHICH payload binds to WHICH stages for a given technique;\r\n // SetPerObjectDataToDevice above then uploads them. It is the join Carbon\r\n // makes per batch, where\r\n // RenderBatchGroup hoists currentShader->GetShaderTypeMask(technique) once per\r\n // group and passes it to every batch in that group.\r\n //\r\n // A zero mask binds nothing, matching FillAndSetConstants' early return\r\n // (Tr2RenderUtils.cpp:104-107), so a record is omitted rather than emitted\r\n // empty.\r\n //\r\n // DELIBERATE DEVIATION, because Carbon's two subclasses disagree and one\r\n // generic path cannot reproduce both. Tr2PerObjectDataStandard binds its\r\n // PIXEL payload UNMASKED - it passes the PIXEL_SHADER enum straight through,\r\n // so the pixel constant buffer is filled and bound even for a technique with\r\n // no pixel stage - while Tr2PerObjectDataSkinned gates the same payload on\r\n // (constantTypeMask & (1 << PIXEL_SHADER)). This port takes the gated form\r\n // for every struct. See docs/research/carbon-known-defects.md CE-19.\r\n\r\n /**\r\n * Uploads this object's per-object constants and binds them.\r\n *\r\n * Carbon `Tr2PerObjectDataStandard::SetPerObjectDataToDevice`\r\n * (`Tr2PerObjectData.cpp:47-67`), which is two `FillAndSetConstants` calls\r\n * and nothing else.\r\n *\r\n * THE CPU HALF WAS ALREADY HERE - `getConstantRecords` below answers which\r\n * payload binds to which stages, gated on the technique's mask. What was\r\n * missing was this last hop, because it was believed to be work for the\r\n * `trinityal/webgpu` package rather than for Trinity calling the abstraction\r\n * layer. `FillAndSetConstants` is in `Tr2RenderUtils.h`, which is Trinity.\r\n *\r\n * ONE BUFFER PER STAGE, SUPPLIED BY THE CALLER, as Carbon does: the context\r\n * owns a small array of per-object constant buffers and hands the same ones\r\n * to every batch in a group, so the buffer is created once and refilled per\r\n * object rather than allocated per draw.\r\n *\r\n * STATIC, TAKING THE DATA, WHERE CARBON'S IS A VIRTUAL ON IT - and this is\r\n * forced rather than chosen. Carbon dispatches on the subclass\r\n * (`Tr2PerObjectDataStandard` / `Tr2PerObjectDataSkinned`), but almost\r\n * nothing here is a `Tr2PerObjectData` instance: every renderable's\r\n * `GetPerObjectData` returns a plain `{ vs, ps }` pair of `RawData` records,\r\n * and only `EveChildCloud2` constructs the class at all. Written as an\r\n * instance method it would answer for `this` - which has no payloads - and\r\n * silently upload nothing. `getConstantRecords` beside it is static for the\r\n * same reason and takes the same argument.\r\n *\r\n * @param {object} objectData A `{ vs, ps }` pair, a single payload, or null.\r\n * @param {Array<object>} buffers A `Tr2ConstantBufferAL` per `ShaderType`.\r\n * @param {number} constantTypeMask The technique's shader-type mask.\r\n * @param {object} renderContext The context to upload and bind against.\r\n * @returns {number} How many payloads were uploaded.\r\n */\r\n static setPerObjectDataToDevice(objectData, buffers, constantTypeMask, renderContext)\r\n {\r\n let uploaded = 0;\r\n\r\n for (const record of Tr2PerObjectData.getConstantRecords(objectData, constantTypeMask))\r\n {\r\n // The register is the payload's own: a pixel payload binds at the\r\n // per-object PS register, everything else at the VS one. Carbon picks\r\n // between exactly these two the same way.\r\n const isPixel = record.stageMask === Tr2PerObjectData.StageBits.ps;\r\n const buffer = buffers[isPixel ? ShaderType.PIXEL_SHADER : ShaderType.VERTEX_SHADER];\r\n\r\n if (!buffer) continue;\r\n\r\n const bound = FillAndSetConstants(\r\n buffer,\r\n record.data,\r\n record.data.byteLength,\r\n record.stageMask,\r\n isPixel ? PER_OBJECT_PS : PER_OBJECT_VS,\r\n renderContext\r\n );\r\n\r\n if (bound) uploaded += 1;\r\n }\r\n\r\n return uploaded;\r\n }\r\n\r\n /**\r\n * The per-object constant records to bind for a technique's shader-type mask:\r\n * one entry per payload that has a stage in common with the mask, carrying the\r\n * bytes and the stages to bind them to. Accepts a single record, a { vs, ps }\r\n * pair, or null, which is every shape a renderable's GetPerObjectData returns.\r\n */\r\n static getConstantRecords(objectData, shaderTypeMask)\r\n {\r\n const mask = shaderTypeMask >>> 0;\r\n\r\n if (!objectData || !mask) return [];\r\n\r\n const records = [];\r\n\r\n for (const payload of Tr2PerObjectData.#payloadsOf(objectData))\r\n {\r\n const stages = payload.GetLayout().stages;\r\n\r\n if (!stages) continue;\r\n\r\n let declared = 0;\r\n\r\n for (const stage of stages)\r\n {\r\n declared |= stage === \"vs\"\r\n ? Tr2PerObjectData.VertexFamilyMask\r\n : (Tr2PerObjectData.StageBits[stage] ?? 0);\r\n }\r\n\r\n const stageMask = declared & mask;\r\n\r\n if (stageMask)\r\n {\r\n records.push({\r\n stageMask,\r\n payload,\r\n data: payload.GetData(),\r\n struct: payload.GetStruct()\r\n });\r\n }\r\n }\r\n\r\n return records;\r\n }\r\n\r\n /** The payloads carried by a single record or a { vs, ps } pair. */\r\n static #payloadsOf(objectData)\r\n {\r\n if (objectData instanceof CjsConstantPayload) return [ objectData ];\r\n\r\n return [ objectData.vs, objectData.ps ].filter(Boolean);\r\n }\r\n}\r\n"],"names":["Tr2PerObjectData","constructor","userData","SetUserData","GetUserData","ShaderType","Object","freeze","VERTEX_SHADER","PIXEL_SHADER","COMPUTE_SHADER","GEOMETRY_SHADER","HULL_SHADER","DOMAIN_SHADER","StageBits","vs","ps","cs","gs","hs","ds","VertexFamilyMask","setPerObjectDataToDevice","objectData","buffers","constantTypeMask","renderContext","uploaded","record","getConstantRecords","isPixel","stageMask","buffer","bound","FillAndSetConstants","data","byteLength","PER_OBJECT_PS","PER_OBJECT_VS","shaderTypeMask","mask","records","payload","stages","GetLayout","declared","stage","push","GetData","struct","GetStruct","#payloadsOf","CjsConstantPayload","filter","Boolean"],"mappings":"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"}
@@ -1,175 +0,0 @@
1
- // The shared machinery behind the constant-data catalogs.
2
- //
3
- // C++ gets a struct's layout free from the type system, so Carbon never
4
- // declares one; JavaScript has to. Two catalogs need the same declaration
5
- // vocabulary and the same resolver - CjsPerObjectLayouts (per draw) and
6
- // CjsPerFrameLayouts (per frame) - so it lives here rather than being forked.
7
- //
8
- // Carbon uploads both kinds by memcpy'ing the C++ struct straight into the
9
- // constant buffer, so the C++ declaration order IS the byte layout the shader
10
- // reads. Field ORDER and field SIZE are therefore the entire binding contract:
11
- // renaming a field is safe, reordering or resizing one silently shifts every
12
- // field after it.
13
-
14
- /**
15
- * Declared C++ member types. String values rather than ordinals so a typo
16
- * throws at lookup instead of silently packing wrong, and a layout dump reads
17
- * `"matrix4"` rather than `3`.
18
- */
19
- const Types = Object.freeze({
20
- /** 16 floats. Stored transposed; written with SetAndTranspose. */
21
- MATRIX4: "matrix4",
22
- /** 4 floats. */
23
- QUATERNION: "quaternion",
24
- /** 4 floats. */
25
- VECTOR4: "vector4",
26
- /** 4 floats - Carbon `Color` (BlueVectorTypes.h:46: `float r, g, b, a`). */
27
- COLOR: "color",
28
- /** 3 floats. */
29
- VECTOR3: "vector3",
30
- /** 2 floats. */
31
- VECTOR2: "vector2",
32
- /** 1 float. */
33
- FLOAT: "float",
34
- /** 1 lane, bit-cast into the buffer's Uint32 view. */
35
- UINT32: "uint32",
36
- /** 1 lane, two's-complement bit-cast. */
37
- INT32: "int32"
38
- });
39
-
40
- /** Float lanes per declared type. */
41
- const LANES = Object.freeze({
42
- [Types.MATRIX4]: 16,
43
- [Types.QUATERNION]: 4,
44
- [Types.VECTOR4]: 4,
45
- [Types.COLOR]: 4,
46
- [Types.VECTOR3]: 3,
47
- [Types.VECTOR2]: 2,
48
- [Types.FLOAT]: 1,
49
- [Types.UINT32]: 1,
50
- [Types.INT32]: 1
51
- });
52
-
53
- /**
54
- * Declared type -> the encoder kind that writes its bytes. These are the string
55
- * values of `RawDataType`, written literally rather than imported so this
56
- * module stays free of a cycle (RawData imports the catalogs, which import
57
- * this). Anything absent encodes as `"vector"`.
58
- */
59
- const ENCODINGS = Object.freeze({
60
- [Types.MATRIX4]: "matrix",
61
- [Types.UINT32]: "uint",
62
- [Types.INT32]: "int"
63
- });
64
-
65
- /** Which stages each buffer key binds to. */
66
- const STAGES = Object.freeze({
67
- vs: Object.freeze(["vs"]),
68
- ps: Object.freeze(["ps"]),
69
- shared: Object.freeze(["vs", "ps"])
70
- });
71
- const ZERO4 = Object.freeze([0, 0, 0, 0]);
72
- const IDENTITY = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
73
-
74
- /**
75
- * Resolves every group's buffers into flat, offset-bearing layouts, keyed by
76
- * struct name. `owner` names the calling catalog so a thrown message points at
77
- * the file to fix.
78
- */
79
- function buildLayouts(groups, owner) {
80
- const layouts = new Map();
81
- for (const [group, buffers] of Object.entries(groups)) {
82
- for (const [key, buffer] of Object.entries(buffers)) {
83
- if (layouts.has(buffer.struct)) {
84
- throw new Error(`${owner}: duplicate struct name "${buffer.struct}"`);
85
- }
86
- layouts.set(buffer.struct, resolveLayout(group, key, buffer, owner));
87
- }
88
- }
89
- return layouts;
90
- }
91
-
92
- /** Lays out one buffer, asserting Carbon's two register invariants. */
93
- function resolveLayout(group, key, buffer, owner) {
94
- const fields = new Map();
95
- let offset = 0;
96
- for (const [name, declared] of Object.entries(buffer.fields)) {
97
- const lanes = LANES[declared.type];
98
- if (lanes === undefined) {
99
- throw new Error(`${owner}: ${buffer.struct}.${name} has unknown type "${declared.type}"`);
100
- }
101
- const count = declared.count ?? 1;
102
-
103
- // Carbon hand-pads these structs so no float4-sized member ever needs
104
- // implicit padding. A catalog entry that breaks that is wrong, so it
105
- // fails loud rather than silently inserting a gap.
106
- if (lanes >= 4 && offset % 4) {
107
- throw new Error(`${owner}: ${buffer.struct}.${name} would start at float ${offset}, ` + "which is not a register boundary");
108
- }
109
- fields.set(name, {
110
- name,
111
- type: declared.type,
112
- offset,
113
- size: lanes,
114
- count,
115
- default: declared.default ?? null,
116
- isMatrix: declared.type === Types.MATRIX4,
117
- isInteger: declared.type === Types.UINT32 || declared.type === Types.INT32
118
- });
119
- offset += lanes * count;
120
- }
121
-
122
- // Tr2PerObjectData.h:57 - "Size of per-object data must be a multiple of
123
- // Vector4". The same holds for a per-frame buffer's registers. Reproduced
124
- // so a bad catalog entry fails at build, not on screen.
125
- if (offset % 4) {
126
- throw new Error(`${owner}: ${buffer.struct} is ${offset} floats, not a multiple of Vector4`);
127
- }
128
- return {
129
- struct: buffer.struct,
130
- group,
131
- key,
132
- stages: STAGES[key] ?? STAGES.vs,
133
- fields,
134
- stride: offset,
135
- registerCount: offset / 4
136
- };
137
- }
138
-
139
- /**
140
- * A resolved layout in the shape RawData consumes: float offsets keyed by
141
- * name, plus the stride, stages, and the defaults to apply on allocation.
142
- *
143
- * A default on an array field is repeated across every element: the neutral
144
- * for a slot - identity for an unused custom mask - applies to every slot, not
145
- * just the first.
146
- */
147
- function toRawLayout(layout) {
148
- const fields = {};
149
- const defaults = [];
150
- for (const field of layout.fields.values()) {
151
- fields[field.name] = {
152
- offset: field.offset,
153
- size: field.size,
154
- elements: field.count,
155
- encoding: ENCODINGS[field.type] ?? "vector"
156
- };
157
- if (field.default) {
158
- defaults.push({
159
- offset: field.offset,
160
- values: field.count > 1 ? Array.from({
161
- length: field.count
162
- }, () => [...field.default]).flat() : [...field.default]
163
- });
164
- }
165
- }
166
- return {
167
- fields,
168
- stride: layout.stride,
169
- stages: layout.stages,
170
- defaults
171
- };
172
- }
173
-
174
- export { ENCODINGS, IDENTITY, LANES, STAGES, Types, ZERO4, buildLayouts, resolveLayout, toRawLayout };
175
- //# sourceMappingURL=constantLayout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constantLayout.js","sources":["../../../../../src/trinity/core/rawData/constantLayout.js"],"sourcesContent":["// The shared machinery behind the constant-data catalogs.\n//\n// C++ gets a struct's layout free from the type system, so Carbon never\n// declares one; JavaScript has to. Two catalogs need the same declaration\n// vocabulary and the same resolver - CjsPerObjectLayouts (per draw) and\n// CjsPerFrameLayouts (per frame) - so it lives here rather than being forked.\n//\n// Carbon uploads both kinds by memcpy'ing the C++ struct straight into the\n// constant buffer, so the C++ declaration order IS the byte layout the shader\n// reads. Field ORDER and field SIZE are therefore the entire binding contract:\n// renaming a field is safe, reordering or resizing one silently shifts every\n// field after it.\n\n\n/**\n * Declared C++ member types. String values rather than ordinals so a typo\n * throws at lookup instead of silently packing wrong, and a layout dump reads\n * `\"matrix4\"` rather than `3`.\n */\nexport const Types = Object.freeze({\n /** 16 floats. Stored transposed; written with SetAndTranspose. */\n MATRIX4: \"matrix4\",\n\n /** 4 floats. */\n QUATERNION: \"quaternion\",\n\n /** 4 floats. */\n VECTOR4: \"vector4\",\n\n /** 4 floats - Carbon `Color` (BlueVectorTypes.h:46: `float r, g, b, a`). */\n COLOR: \"color\",\n\n /** 3 floats. */\n VECTOR3: \"vector3\",\n\n /** 2 floats. */\n VECTOR2: \"vector2\",\n\n /** 1 float. */\n FLOAT: \"float\",\n\n /** 1 lane, bit-cast into the buffer's Uint32 view. */\n UINT32: \"uint32\",\n\n /** 1 lane, two's-complement bit-cast. */\n INT32: \"int32\"\n});\n\n\n/** Float lanes per declared type. */\nexport const LANES = Object.freeze({\n [Types.MATRIX4]: 16,\n [Types.QUATERNION]: 4,\n [Types.VECTOR4]: 4,\n [Types.COLOR]: 4,\n [Types.VECTOR3]: 3,\n [Types.VECTOR2]: 2,\n [Types.FLOAT]: 1,\n [Types.UINT32]: 1,\n [Types.INT32]: 1\n});\n\n\n/**\n * Declared type -> the encoder kind that writes its bytes. These are the string\n * values of `RawDataType`, written literally rather than imported so this\n * module stays free of a cycle (RawData imports the catalogs, which import\n * this). Anything absent encodes as `\"vector\"`.\n */\nexport const ENCODINGS = Object.freeze({\n [Types.MATRIX4]: \"matrix\",\n [Types.UINT32]: \"uint\",\n [Types.INT32]: \"int\"\n});\n\n\n/** Which stages each buffer key binds to. */\nexport const STAGES = Object.freeze({\n vs: Object.freeze([\"vs\"]),\n ps: Object.freeze([\"ps\"]),\n shared: Object.freeze([\"vs\", \"ps\"])\n});\n\n\nexport const ZERO4 = Object.freeze([0, 0, 0, 0]);\n\n\nexport const IDENTITY = Object.freeze([\n 1, 0, 0, 0,\n 0, 1, 0, 0,\n 0, 0, 1, 0,\n 0, 0, 0, 1\n]);\n\n\n/**\n * Resolves every group's buffers into flat, offset-bearing layouts, keyed by\n * struct name. `owner` names the calling catalog so a thrown message points at\n * the file to fix.\n */\nexport function buildLayouts(groups, owner)\n{\n const layouts = new Map();\n\n for (const [group, buffers] of Object.entries(groups))\n {\n for (const [key, buffer] of Object.entries(buffers))\n {\n if (layouts.has(buffer.struct))\n {\n throw new Error(`${owner}: duplicate struct name \"${buffer.struct}\"`);\n }\n\n layouts.set(buffer.struct, resolveLayout(group, key, buffer, owner));\n }\n }\n\n return layouts;\n}\n\n\n/** Lays out one buffer, asserting Carbon's two register invariants. */\nexport function resolveLayout(group, key, buffer, owner)\n{\n const fields = new Map();\n let offset = 0;\n\n for (const [name, declared] of Object.entries(buffer.fields))\n {\n const lanes = LANES[declared.type];\n\n if (lanes === undefined)\n {\n throw new Error(`${owner}: ${buffer.struct}.${name} has unknown type \"${declared.type}\"`);\n }\n\n const count = declared.count ?? 1;\n\n // Carbon hand-pads these structs so no float4-sized member ever needs\n // implicit padding. A catalog entry that breaks that is wrong, so it\n // fails loud rather than silently inserting a gap.\n if (lanes >= 4 && offset % 4)\n {\n throw new Error(\n `${owner}: ${buffer.struct}.${name} would start at float ${offset}, `\n + \"which is not a register boundary\"\n );\n }\n\n fields.set(name, {\n name,\n type: declared.type,\n offset,\n size: lanes,\n count,\n default: declared.default ?? null,\n isMatrix: declared.type === Types.MATRIX4,\n isInteger: declared.type === Types.UINT32 || declared.type === Types.INT32\n });\n\n offset += lanes * count;\n }\n\n // Tr2PerObjectData.h:57 - \"Size of per-object data must be a multiple of\n // Vector4\". The same holds for a per-frame buffer's registers. Reproduced\n // so a bad catalog entry fails at build, not on screen.\n if (offset % 4)\n {\n throw new Error(\n `${owner}: ${buffer.struct} is ${offset} floats, not a multiple of Vector4`\n );\n }\n\n return {\n struct: buffer.struct,\n group,\n key,\n stages: STAGES[key] ?? STAGES.vs,\n fields,\n stride: offset,\n registerCount: offset / 4\n };\n}\n\n\n/**\n * A resolved layout in the shape RawData consumes: float offsets keyed by\n * name, plus the stride, stages, and the defaults to apply on allocation.\n *\n * A default on an array field is repeated across every element: the neutral\n * for a slot - identity for an unused custom mask - applies to every slot, not\n * just the first.\n */\nexport function toRawLayout(layout)\n{\n const fields = {};\n const defaults = [];\n\n for (const field of layout.fields.values())\n {\n fields[field.name] = {\n offset: field.offset,\n size: field.size,\n elements: field.count,\n encoding: ENCODINGS[field.type] ?? \"vector\"\n };\n\n if (field.default)\n {\n defaults.push({\n offset: field.offset,\n values: field.count > 1\n ? Array.from({ length: field.count }, () => [ ...field.default ]).flat()\n : [ ...field.default ]\n });\n }\n }\n\n return { fields, stride: layout.stride, stages: layout.stages, defaults };\n}\n"],"names":["Types","Object","freeze","MATRIX4","QUATERNION","VECTOR4","COLOR","VECTOR3","VECTOR2","FLOAT","UINT32","INT32","LANES","ENCODINGS","STAGES","vs","ps","shared","ZERO4","IDENTITY","buildLayouts","groups","owner","layouts","Map","group","buffers","entries","key","buffer","has","struct","Error","set","resolveLayout","fields","offset","name","declared","lanes","type","undefined","count","size","default","isMatrix","isInteger","stages","stride","registerCount","toRawLayout","layout","defaults","field","values","elements","encoding","push","Array","from","length","flat"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tr2VertexDefinition.js","sources":["../../../../../src/trinity/core/vertex/Tr2VertexDefinition.js"],"sourcesContent":["// Source: trinity/trinityal/Tr2VertexDefinition.h:14-207 (the definition and its items)\n// trinity/trinityal/Tr2VertexDefinition.cpp:25-42 (item and definition equality)\n//\n// This class is the definition and NOTHING ELSE: items, the per-stream offset\n// ledger, Add/Find/empty, and its own equality. The intern table lives on\n// Tr2EffectStateManager (Carbon s_vertexLayoutMap) and the shader-input match\n// lives in the vertex-layout AL (trinityal/vertexLayoutMatch.js) - both were\n// parked under this class's name until 2026-09-06, before it had its real\n// Carbon surface.\nimport { Tr2VertexUsageCode } from \"./usageCode.js\";\n\n\n/**\n * One vertex element (Carbon Tr2VertexDefinition::Item, h:123-141).\n *\n * Carbon's usage and data type are bit-coded enums; the runtime's element\n * vocabulary is the string names throughout (payload readers, the quad\n * renderer, the AL's binding-plan matcher), so the item carries the names\n * and the byte arithmetic derives from them.\n */\nexport class Tr2VertexDefinitionItem\n{\n usage = \"POSITION\";\n\n usageIndex = 0;\n\n type = \"FLOAT32_1\";\n\n offset = 0;\n\n stream = 0;\n\n instanceStepRate = 0;\n}\n\nconst USAGE_NAMES = Object.keys(Tr2VertexUsageCode);\n\nconst DATA_TYPE_BASE_BYTES = {\n BYTE: 1, UBYTE: 1,\n SHORT: 2, USHORT: 2,\n INT32: 4, UINT32: 4,\n FLOAT16: 2, UFLOAT16: 2,\n FLOAT32: 4, UFLOAT32: 4\n};\n\n/** A mesh's vertex element list (Carbon trinityal/Tr2VertexDefinition.h). */\nexport class Tr2VertexDefinition\n{\n /** Carbon m_items. */\n items = [];\n\n /** Carbon m_nextOffset[OFFSET_COUNT] (h:153-159): per-stream offset ledger. */\n nextOffset = [ 0, 0, 0, 0 ];\n\n /** Carbon empty() (h:145-148). */\n empty()\n {\n return this.items.length === 0;\n }\n\n /**\n * Carbon Add (h:174-181): append an item at the stream's current offset\n * and advance the ledger by the type's byte size. `stepRate` is \"almost\n * always a bool that indicates if the added item is coming from instanced\n * data\" - Carbon's own words.\n *\n * @param {string} type Data type name, e.g. \"FLOAT32_3\", \"UBYTE_4_NORM\".\n * @param {string|number} usage Usage name or Tr2VertexUsageCode ordinal.\n * @param {number} [usageIndex]\n * @param {number} [stream]\n * @param {number} [stepRate]\n * @returns {Tr2VertexDefinitionItem} The item just added.\n */\n Add(type, usage, usageIndex = 0, stream = 0, stepRate = 0)\n {\n const item = new Tr2VertexDefinitionItem();\n item.usage = typeof usage === \"number\" ? USAGE_NAMES[usage] : String(usage);\n item.usageIndex = usageIndex;\n item.type = String(type);\n item.offset = this.nextOffset[stream] ?? 0;\n item.stream = stream;\n item.instanceStepRate = stepRate;\n this.nextOffset[stream] = item.offset + Tr2VertexDefinition.getDataTypeSizeInBytes(item.type);\n this.items.push(item);\n return item;\n }\n\n /**\n * Carbon Find (h:169-172): the first item with the usage, and optionally\n * the usage index; null when absent.\n */\n Find(usage, usageIndex = null)\n {\n const name = typeof usage === \"number\" ? USAGE_NAMES[usage] : String(usage);\n for (const item of this.items)\n {\n if (item.usage === name && (usageIndex === null || item.usageIndex === usageIndex))\n {\n return item;\n }\n }\n return null;\n }\n\n /** Carbon GetDataTypeSizeInMembers (h:183-186), from the type NAME. */\n static getDataTypeSizeInMembers(type)\n {\n const match = /_([1-4])(?:_NORM)?$/.exec(String(type));\n return match ? Number(match[1]) : 0;\n }\n\n /** Carbon GetDataTypeSizeInBytes (h:188-205), from the type NAME. */\n static getDataTypeSizeInBytes(type)\n {\n const base = DATA_TYPE_BASE_BYTES[String(type).split(\"_\")[0]];\n return base ? base * Tr2VertexDefinition.getDataTypeSizeInMembers(type) : 0;\n }\n\n // Carbon Tr2VertexDefinition::UsageCode (Tr2VertexDefinition.h:17-30). Note\n // BLENDINDICES=6 before BLENDWEIGHTS=7; ccpwgl's GLES-v8 lineage has them\n // transposed and translates at its reader boundary.\n\n /** Carbon's vertex-usage vocabulary, in its declared order. */\n static UsageCode = Tr2VertexUsageCode;\n\n /** Carbon's nested Item class (h:123-141), reachable as Carbon spells it:\n * Tr2VertexDefinition::Item. JS cannot nest the declaration, so the class\n * is declared at module scope and aliased here. */\n static Item = Tr2VertexDefinitionItem;\n\n // Carbon's definition equality is the definition's OWN operator==\n // (Tr2VertexDefinition.cpp:35-42): all four ledger slots AND every item,\n // item equality being all six fields (cpp:25-33). Two meshes sharing\n // semantics but differing in offset or stream need different input layouts,\n // so this is deliberately stricter than the AL's shader-input match, which\n // compares usage and usageIndex only.\n\n /**\n * Whether two definitions are the same declaration, field for field.\n *\n * Accepts a Tr2VertexDefinition or a plain element array on either side;\n * the ledger participates only when both sides carry one, because a plain\n * payload element list has no ledger to compare (Carbon always has both,\n * so comparing what exists is the faithful subset).\n */\n static isSameDefinition(firstDefinition, secondDefinition)\n {\n const first = firstDefinition?.items ?? firstDefinition;\n const second = secondDefinition?.items ?? secondDefinition;\n if (first === second && firstDefinition === secondDefinition) return true;\n if (!first || !second || first.length !== second.length) return false;\n\n const firstLedger = firstDefinition?.nextOffset;\n const secondLedger = secondDefinition?.nextOffset;\n if (firstLedger && secondLedger)\n {\n for (let stream = 0; stream < 4; stream++)\n {\n if (firstLedger[stream] !== secondLedger[stream]) return false;\n }\n }\n\n for (let index = 0; index < first.length; index++)\n {\n const a = first[index];\n const b = second[index];\n\n if (a.usage !== b.usage\n || a.usageIndex !== b.usageIndex\n || a.type !== b.type\n || a.offset !== b.offset\n || (a.stream ?? 0) !== (b.stream ?? 0)\n || (a.instanceStepRate ?? 0) !== (b.instanceStepRate ?? 0))\n {\n return false;\n }\n }\n\n return true;\n }\n}\n"],"names":["Tr2VertexDefinitionItem","usage","usageIndex","type","offset","stream","instanceStepRate","USAGE_NAMES","Object","keys","Tr2VertexUsageCode","DATA_TYPE_BASE_BYTES","BYTE","UBYTE","SHORT","USHORT","INT32","UINT32","FLOAT16","UFLOAT16","FLOAT32","UFLOAT32","Tr2VertexDefinition","items","nextOffset","empty","length","Add","stepRate","item","String","getDataTypeSizeInBytes","push","Find","name","getDataTypeSizeInMembers","match","exec","Number","base","split","UsageCode","Item","isSameDefinition","firstDefinition","secondDefinition","first","second","firstLedger","secondLedger","index","a","b"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EveChildInstancedMeshes.js","sources":["../../../../../src/trinity/eve/child/EveChildInstancedMeshes.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildInstancedMeshes.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildInstancedMeshes.cpp\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildInstancedMeshes_Blue.cpp\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { CjsModel } from \"#model\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\r\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\r\nimport { RawData } from \"../../core/rawData/RawData.js\";\r\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\r\nimport {\r\n CollectInstancedOverlayAreaBlocks,\r\n EmitOverlayBatches\r\n} from \"../overlays/overlayBatches.js\";\r\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\r\n\r\n/** Carbon EveInstancedMeshManager::InstanceFlags (EveInstancedMeshManager.h:\r\n * 13-26, cpp:998-1048): a uint32 bitfield - bit (1 << batchType) per present\r\n * batch type, CASTS_SHADOW = 1 << 30, RENDER_IN_REFLECTION = 1 << 31. */\r\nexport const INSTANCE_FLAG_CASTS_SHADOW = 0x40000000;\r\nexport const INSTANCE_FLAG_RENDER_IN_REFLECTION = 0x80000000;\r\n\r\nconst POSITION_SCRATCH = vec3.create();\r\nconst OVERLAY_LOCAL_SCRATCH = mat4.create();\r\nconst OVERLAY_WORLD_SCRATCH = mat4.create();\r\nconst OVERLAY_WORLD_LAST_SCRATCH = mat4.create();\r\nconst OVERLAY_INV_WORLD_SCRATCH = mat4.create();\r\nconst OVERLAY_INV_LOCAL_SCRATCH = mat4.create();\r\nconst OVERLAY_CLIP_SCRATCH = vec3.create();\r\n\r\n\r\n/**\r\n * One shader area of an instanced mesh: the effect, its batch type, the area\r\n * range within the mesh, its cached effect hash and the mesh-group handle it is\r\n * registered under.\r\n */\r\n@type.define({ className: \"EveChildInstancedMeshArea\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshArea extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n batchType = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaIndex = 0;\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n areaCount = 1;\r\n\r\n /** Carbon MeshArea::alphaCutout (h:78) - one-sided cutout areas are ignored\r\n * for backface classification when raycasting occluders. */\r\n @io.persist\r\n @type.boolean\r\n alphaCutout = false;\r\n\r\n /** Carbon MeshArea::reversed (h:79) - winding-reversed areas flip the\r\n * backface test during occluder raycasts. */\r\n @io.persist\r\n @type.boolean\r\n reversed = false;\r\n\r\n @io.read\r\n @type.uint64\r\n effectHash = 0;\r\n\r\n /** Carbon MeshArea::meshGroupHandle (EveChildInstancedMeshes.h:72) - an\r\n * opaque manager registration handle; runtime state, not persisted. */\r\n meshGroupHandle = null;\r\n}\r\n\r\n\r\n/**\r\n * A single placement of an instanced mesh: its transform and the index of its\r\n * cull sphere in the owning mesh's instance sphere list.\r\n */\r\n@type.define({ className: \"EveChildInstancedMeshInstance\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshInstance extends CjsModel\r\n{\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.mat4\r\n transform = mat4.create();\r\n\r\n @io.rebuild(\"instanceBuffer\")\r\n @io.persist\r\n @type.uint32\r\n sphereIndex = 0;\r\n}\r\n\r\n\r\n/**\r\n * One geometry-and-areas record inside an EveChildInstancedMeshes child, holding\r\n * its instance placements, per-instance world cull spheres, instance flags and\r\n * manager registration handles.\r\n */\r\n@type.define({ className: \"EveChildInstancedMesh\", family: \"eve/child\" })\r\nexport class EveChildInstancedMesh extends CjsModel\r\n{\r\n @io.persist\r\n @type.string\r\n geometryPath = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n castsShadow = false;\r\n\r\n @io.persist\r\n @type.int32\r\n reflectionMode = 3;\r\n\r\n @io.persist\r\n @type.uint32\r\n meshIndex = 0;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshArea\")\r\n areas = [];\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMeshInstance\")\r\n instances = [];\r\n\r\n /** Carbon's one-to-one modular ownership tag array for instances. */\r\n @io.persist\r\n @type.array(\"uint32\")\r\n partTags = [];\r\n\r\n @io.persist\r\n @type.string\r\n sofHullName = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n sofLocatorSetName = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.boolean\r\n inheritOverlayEffects = true;\r\n\r\n @io.persist\r\n @type.list(\"EveMeshOverlayEffect\")\r\n ownOverlayEffects = [];\r\n\r\n overlayAreaBlocks = [ [], [] ];\r\n\r\n overlayAreaBlocksBuilt = false;\r\n\r\n overlayPods = null;\r\n\r\n /** Carbon Mesh::sphereHandle (h:110) - manager registration handle;\r\n * runtime state, not persisted. */\r\n sphereHandle = null;\r\n\r\n /** Carbon Mesh::worldBoundingSphere - stamped by UpdateAsyncronous\r\n * (cpp:270); the TriFrustum sphere-duck shape. */\r\n worldBoundingSphere = { center: vec3.create(), radius: 0 };\r\n\r\n /** Carbon Mesh::instanceSpheres - per-instance world cull spheres, stamped\r\n * by UpdateAsyncronous (cpp:259-269). */\r\n instanceSpheres = [];\r\n\r\n /** Carbon Mesh::flags (InstanceFlags uint32) - batch-type bits stamped at\r\n * AddMesh (cpp:422-425), CASTS_SHADOW at AddMesh (cpp:418-421),\r\n * RENDER_IN_REFLECTION refreshed each async pass (cpp:251). */\r\n flags = 0;\r\n\r\n #geometry = null;\r\n\r\n /**\r\n * Returns the geometry resource backing this mesh, or null while none has been\r\n * assigned; the mesh does not register with the manager until it is present\r\n * and good.\r\n */\r\n GetGeometryResource()\r\n {\r\n return this.#geometry;\r\n }\r\n\r\n /**\r\n * Assigns the geometry resource this mesh renders from; a nullish value clears\r\n * it. Runtime state, deliberately not persisted.\r\n */\r\n SetGeometryResource(resource)\r\n {\r\n this.#geometry = resource ?? null;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Space-object child that hands batches of instanced meshes to the engine's\r\n * instanced mesh manager, owning their registration handles, instance flags and\r\n * world cull bounds.\r\n */\r\n@type.define({ className: \"EveChildInstancedMeshes\", family: \"eve/child\" })\r\nexport class EveChildInstancedMeshes extends withITr2Renderable(EveSpaceObjectChild)\r\n{\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.boolean\r\n hasUpdated = false;\r\n\r\n @io.persist\r\n @type.list(\"EveChildInstancedMesh\")\r\n meshes = [];\r\n\r\n #revision = 0;\r\n\r\n /** Carbon m_perObjectDataHandle (h:143) - manager registration handle. */\r\n #perObjectDataHandle = null;\r\n\r\n /**\r\n * Carbon m_perObjectData (EveSpacePerObjectData): the PERSISTENT per-instance\r\n * record the mesh manager uploads into its structured buffer.\r\n */\r\n #perObjectData = RawData.create(\"EveSpacePerObjectData\");\r\n\r\n /** Base-hull record used by meshes that opt out of the parent's clip. */\r\n #perObjectDataNoClip = RawData.create(\"EveSpacePerObjectData\");\r\n\r\n #perObjectDataNoClipHandle = null;\r\n\r\n /** Engine manager that owns every currently retained opaque handle. */\r\n #meshManager = null;\r\n\r\n #parentOverlayEffects = null;\r\n\r\n #lastCameraFrustum = null;\r\n\r\n #lastInvLodFactor = 1;\r\n\r\n static #inverseScratch = mat4.create();\r\n\r\n static #customMaskScratch = mat4.create();\r\n\r\n /** EVE_SPACEOBJECT_CUSTOWMASK_MAX (EveSpaceObject2.h:49). */\r\n static CUSTOM_MASK_COUNT = 2;\r\n\r\n /** Carbon m_allRegistered (h:147) - the AddMeshesToManager retry latch:\r\n * set optimistically each pass, cleared by ANY not-ready mesh/area so the\r\n * per-frame CollectMeshes retries until geometry streams in. */\r\n #allRegistered = false;\r\n\r\n /**\r\n * The authored name, persisted with the child and used to identify it in the\r\n * parent graph.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored child name, coercing nullish to the empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::UpdateVisibility (cpp:183-186) only caches\r\n * the frame's camera frustum for later use; the JS port has no consumer for\r\n * that cache, so the frame hook does nothing.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n UpdateVisibility(updateContext)\r\n {\r\n this.#lastCameraFrustum = updateContext.GetFrustum();\r\n this.#lastInvLodFactor = updateContext.GetInvLodFactor();\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::GetRenderables (cpp:188-190) collects\r\n * nothing: the instanced mesh manager emits the draws, so the accumulator\r\n * comes back unchanged.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (this.hasUpdated &&\r\n ((this.#parentOverlayEffects?.length && this.#AnyMeshInheritsOverlayEffects()) ||\r\n this.#HasAnyOwnOverlayEffects()))\r\n {\r\n renderables.push(this);\r\n }\r\n return renderables;\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::GetBoundingSphere (cpp:192-195) always\r\n * returns false - the child publishes no bounds of its own, because each mesh\r\n * registers its own sphere group with the manager.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere()\r\n {\r\n return false;\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::UpdateAsyncronous (cpp:204-238): the\r\n * per-instance record is this child's own transforms plus the hull values it\r\n * inherits, flattened into ONE struct - EveSpacePerObjectData carries both\r\n * the VS and PS halves because the manager uploads it as a single instance.\r\n * @param {Object} parent - the space-object parent, when there is one\r\n */\r\n #UpdatePerObjectData(parent)\r\n {\r\n const record = this.#perObjectData;\r\n\r\n // Recover the previous logical transform from its stored transposed bytes,\r\n // then encode it into worldTransformLast.\r\n mat4.transpose(EveChildInstancedMeshes.#inverseScratch, record.GetTransposed(\"worldTransform\"));\r\n record.SetAndTranspose(\"worldTransformLast\", EveChildInstancedMeshes.#inverseScratch);\r\n record.SetAndTranspose(\"worldTransform\", this.worldTransform);\r\n\r\n // cpp:214 inverts the transposed matrix; by carbon-math-conventions F2 that\r\n // equals the transpose of the logical inverse, which is what this produces.\r\n const inverse = EveChildInstancedMeshes.#inverseScratch;\r\n if (!mat4.invert(inverse, this.worldTransform))\r\n {\r\n mat4.identity(inverse);\r\n }\r\n record.SetAndTranspose(\"invWorldTransform\", inverse);\r\n\r\n if (!parent)\r\n {\r\n this.#perObjectDataNoClip.CopyFrom(record);\r\n return { vs: RawData.create(\"EveSpaceObjectVSData\"), ps: RawData.create(\"EveSpaceObjectPSData\") };\r\n }\r\n\r\n const { vs, ps } = parent.GetPerObjectStructs();\r\n\r\n for (const name of [ \"shipData\", \"clipSphereCenter\", \"clipRadiusSq\", \"clipRadius2Sq\",\r\n \"impactDataOffset\", \"clipSphereFactor2\", \"clipSphereFactor\" ])\r\n {\r\n record.Set(name, ps.Get(name));\r\n }\r\n for (const name of [ \"ellpsoidRadii\", \"ellpsoidCenter\", \"customData\" ])\r\n {\r\n record.Set(name, vs.Get(name));\r\n }\r\n record.Set(\"customMaskClamps\", ps.Get(\"customMaskClamps\"));\r\n record.Set(\"boneOffsets\", vs.Get(\"boneOffsets\"));\r\n\r\n for (let slot = 0; slot < EveChildInstancedMeshes.CUSTOM_MASK_COUNT; slot++)\r\n {\r\n mat4.transpose(\r\n EveChildInstancedMeshes.#customMaskScratch,\r\n vs.GetTransposedIndex(\"customMaskMatrix\", slot));\r\n record.SetAndTransposeIndex(\r\n \"customMaskMatrix\", slot, EveChildInstancedMeshes.#customMaskScratch);\r\n record.SetIndex(\"customMaskData\", slot, vs.GetIndex(\"customMaskData\", slot));\r\n record.SetIndex(\"customMaskMaterialIDs\", slot, ps.GetIndex(\"customMaskMaterialIDs\", slot));\r\n record.SetIndex(\"customMaskTargets\", slot, ps.GetIndex(\"customMaskTargets\", slot));\r\n }\r\n\r\n // cpp:238: the PS record's coefficients land in the record's shLighting.\r\n record.Set(\"shLighting\", ps.Get(\"shLightingCoefficients\"));\r\n\r\n this.#perObjectDataNoClip.CopyFrom(record);\r\n this.#perObjectDataNoClip.Set(\"clipRadiusSq\", [ 0 ]);\r\n this.#perObjectDataNoClip.Set(\"clipRadius2Sq\", [ 0 ]);\r\n this.#perObjectDataNoClip.Set(\"clipSphereFactor\", [ 0 ]);\r\n this.#perObjectDataNoClip.Set(\"clipSphereFactor2\", [ 0 ]);\r\n return { vs, ps };\r\n }\r\n\r\n /**\r\n * Stamps the child's world transform from the parent's localToWorldTransform\r\n * (Carbon cpp:197-200); every per-instance cull sphere the async pass builds\r\n * is derived from it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params)\r\n {\r\n if (params?.localToWorldTransform?.length === 16)\r\n {\r\n mat4.copy(this.worldTransform, params.localToWorldTransform);\r\n }\r\n\r\n const time = updateContext.GetTime();\r\n for (const mesh of this.meshes)\r\n {\r\n for (const overlay of mesh.ownOverlayEffects) overlay.Update(time, time);\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UpdateAsyncronous (cpp:202-328), the CPU\r\n * half: per-mesh RENDER_IN_REFLECTION refresh (cpp:251), the mesh-local\r\n * bounds sphere radius = |center| + radius (cpp:254-255), per-instance\r\n * world cull spheres - position from the instance translation (Carbon reads\r\n * the packed rows' w = _41.._43, i.e. the transform translation) moved\r\n * through the child world transform, radius scaled by the instance's max\r\n * basis length times the child worldScale (cpp:259-269; NOTE Carbon's two\r\n * scale extractions deliberately differ - worldScale uses the world\r\n * transform's basis ROWS while the instance scale uses the packed rows'\r\n * xyz = the transpose's rows; equal under rotation + uniform scale,\r\n * ported exactly) - the world bounding sphere over all instance spheres\r\n * (cpp:257-270), a live SetSphereGroupBounds refresh on registered handles\r\n * (cpp:272-278), and the hasUpdated stamp (cpp:281). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Trinity owns the CPU per-object field copy; the raytracing mesh build (cpp:283-327) remains engine-owned. Mesh bounds come from a GetMeshData duck ({minBounds, maxBounds}) and meshes without one are skipped fail-closed.\")\r\n UpdateAsyncronous(_updateContext, params)\r\n {\r\n const previousWorldTransform = mat4.create();\r\n mat4.transpose(previousWorldTransform, this.#perObjectData.GetTransposed(\"worldTransform\"));\r\n const parentRecords = this.#UpdatePerObjectData(params?.spaceObjectParent ?? null);\r\n const w = this.worldTransform;\r\n // cpp:240-242 - worldScale from the world transform's basis rows.\r\n const worldScale = Math.max(\r\n Math.hypot(w[0], w[1], w[2]),\r\n Math.hypot(w[4], w[5], w[6]),\r\n Math.hypot(w[8], w[9], w[10])\r\n );\r\n\r\n for (const mesh of this.meshes)\r\n {\r\n const geometry = mesh.GetGeometryResource();\r\n if (!geometry || geometry.IsGood() === false)\r\n {\r\n continue;\r\n }\r\n\r\n // cpp:251 - refreshed every pass (set OR cleared).\r\n mesh.flags = ShouldReflect(mesh.reflectionMode)\r\n ? (mesh.flags | INSTANCE_FLAG_RENDER_IN_REFLECTION) >>> 0\r\n : (mesh.flags & ~INSTANCE_FLAG_RENDER_IN_REFLECTION) >>> 0;\r\n\r\n const meshData = geometry.GetMeshData(mesh.meshIndex);\r\n const minBounds = meshData.minBounds;\r\n const maxBounds = meshData.maxBounds;\r\n if (!minBounds || !maxBounds)\r\n {\r\n continue;\r\n }\r\n // cpp:254-255 - Sphere(AABB): center (min+max)/2, radius |max-min|/2;\r\n // then radius = sphere.radius + |sphere.center| (origin-inclusive).\r\n const centerX = (minBounds[0] + maxBounds[0]) * 0.5;\r\n const centerY = (minBounds[1] + maxBounds[1]) * 0.5;\r\n const centerZ = (minBounds[2] + maxBounds[2]) * 0.5;\r\n const localRadius =\r\n Math.hypot(maxBounds[0] - minBounds[0], maxBounds[1] - minBounds[1], maxBounds[2] - minBounds[2]) * 0.5 +\r\n Math.hypot(centerX, centerY, centerZ);\r\n\r\n mesh.instanceSpheres.length = mesh.instances.length;\r\n let boundsMinX = Infinity, boundsMinY = Infinity, boundsMinZ = Infinity;\r\n let boundsMaxX = -Infinity, boundsMaxY = -Infinity, boundsMaxZ = -Infinity;\r\n for (let index = 0; index < mesh.instances.length; index++)\r\n {\r\n const transform = mesh.instances[index].transform;\r\n // cpp:261 - packed rows' w = the transform translation (gl [12..14]).\r\n POSITION_SCRATCH[0] = transform[12];\r\n POSITION_SCRATCH[1] = transform[13];\r\n POSITION_SCRATCH[2] = transform[14];\r\n // cpp:262-264 - instance scale from the packed rows' xyz (the\r\n // transpose's rows: gl (t[0],t[4],t[8]) / (t[1],t[5],t[9]) /\r\n // (t[2],t[6],t[10])) - deliberately NOT the same extraction as\r\n // worldScale above.\r\n const scale = Math.max(\r\n Math.hypot(transform[0], transform[4], transform[8]),\r\n Math.hypot(transform[1], transform[5], transform[9]),\r\n Math.hypot(transform[2], transform[6], transform[10])\r\n ) * worldScale;\r\n vec3.transformMat4(POSITION_SCRATCH, POSITION_SCRATCH, w);\r\n\r\n const radius = localRadius * scale;\r\n const sphere = mesh.instanceSpheres[index] ??= { center: vec3.create(), radius: 0 };\r\n vec3.copy(sphere.center, POSITION_SCRATCH);\r\n sphere.radius = radius;\r\n\r\n boundsMinX = Math.min(boundsMinX, POSITION_SCRATCH[0] - radius);\r\n boundsMinY = Math.min(boundsMinY, POSITION_SCRATCH[1] - radius);\r\n boundsMinZ = Math.min(boundsMinZ, POSITION_SCRATCH[2] - radius);\r\n boundsMaxX = Math.max(boundsMaxX, POSITION_SCRATCH[0] + radius);\r\n boundsMaxY = Math.max(boundsMaxY, POSITION_SCRATCH[1] + radius);\r\n boundsMaxZ = Math.max(boundsMaxZ, POSITION_SCRATCH[2] + radius);\r\n }\r\n if (mesh.instances.length)\r\n {\r\n // cpp:270 - Sphere(worldBounds).\r\n const sphereCenter = mesh.worldBoundingSphere.center;\r\n sphereCenter[0] = (boundsMinX + boundsMaxX) * 0.5;\r\n sphereCenter[1] = (boundsMinY + boundsMaxY) * 0.5;\r\n sphereCenter[2] = (boundsMinZ + boundsMaxZ) * 0.5;\r\n mesh.worldBoundingSphere.radius =\r\n Math.hypot(boundsMaxX - boundsMinX, boundsMaxY - boundsMinY, boundsMaxZ - boundsMinZ) * 0.5;\r\n\r\n // cpp:272-278 - live refresh of a registered sphere group.\r\n if (mesh.sphereHandle !== null)\r\n {\r\n this.#meshManager.SetSphereGroupBounds(\r\n mesh.sphereHandle, mesh.worldBoundingSphere, mesh.flags);\r\n }\r\n }\r\n }\r\n\r\n const parent = params?.spaceObjectParent ?? null;\r\n this.#parentOverlayEffects = Array.isArray(parent?.overlayEffects) && parent.overlayEffects.length\r\n ? parent.overlayEffects\r\n : null;\r\n if ((this.#parentOverlayEffects && this.#AnyMeshInheritsOverlayEffects()) ||\r\n this.#HasAnyOwnOverlayEffects())\r\n {\r\n this.#UpdateOverlayInstanceData(parentRecords.vs, parentRecords.ps, previousWorldTransform);\r\n }\r\n\r\n this.hasUpdated = true;\r\n }\r\n\r\n /** Builds one persistent VS/PS record pair per authored instance. */\r\n #UpdateOverlayInstanceData(parentVs, parentPs, previousWorldTransform)\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n if (!mesh.instances.length || !mesh.display || !this.#MeshHasActiveOverlayEffects(mesh)) continue;\r\n\r\n if (!mesh.overlayPods || mesh.overlayPods.length !== mesh.instances.length)\r\n {\r\n mesh.overlayPods = Array.from({ length: mesh.instances.length }, () => ({\r\n vs: RawData.create(\"EveSpaceObjectVSData\"),\r\n ps: RawData.create(\"EveSpaceObjectPSData\"),\r\n framePod: null\r\n }));\r\n }\r\n\r\n for (let index = 0; index < mesh.instances.length; index++)\r\n {\r\n const local = mat4.copy(OVERLAY_LOCAL_SCRATCH, mesh.instances[index].transform);\r\n const world = mat4.multiply(OVERLAY_WORLD_SCRATCH, this.worldTransform, local);\r\n const worldLast = mat4.multiply(\r\n OVERLAY_WORLD_LAST_SCRATCH, previousWorldTransform, local);\r\n if (!mat4.invert(OVERLAY_INV_WORLD_SCRATCH, world)) mat4.identity(OVERLAY_INV_WORLD_SCRATCH);\r\n if (!mat4.invert(OVERLAY_INV_LOCAL_SCRATCH, local)) mat4.identity(OVERLAY_INV_LOCAL_SCRATCH);\r\n\r\n const pod = mesh.overlayPods[index];\r\n pod.vs.CopyFrom(parentVs);\r\n pod.ps.CopyFrom(parentPs);\r\n pod.vs.SetAndTranspose(\"worldTransform\", world);\r\n pod.vs.SetAndTranspose(\"worldTransformLast\", worldLast);\r\n pod.vs.SetAndTranspose(\"invWorldTransform\", OVERLAY_INV_WORLD_SCRATCH);\r\n pod.ps.SetAndTranspose(\"worldTransform\", world);\r\n pod.ps.SetAndTranspose(\"worldTransformLast\", worldLast);\r\n pod.ps.SetAndTranspose(\"invWorldTransform\", OVERLAY_INV_WORLD_SCRATCH);\r\n\r\n const clipData = pod.vs.Get(\"clipData\");\r\n vec3.set(OVERLAY_CLIP_SCRATCH, clipData[0], clipData[1], clipData[2]);\r\n vec3.transformMat4(OVERLAY_CLIP_SCRATCH, OVERLAY_CLIP_SCRATCH, OVERLAY_INV_LOCAL_SCRATCH);\r\n pod.vs.Set(\"clipData\", [\r\n OVERLAY_CLIP_SCRATCH[0], OVERLAY_CLIP_SCRATCH[1], OVERLAY_CLIP_SCRATCH[2], clipData[3]\r\n ]);\r\n\r\n vec3.copy(OVERLAY_CLIP_SCRATCH, pod.ps.Get(\"clipSphereCenter\"));\r\n vec3.transformMat4(OVERLAY_CLIP_SCRATCH, OVERLAY_CLIP_SCRATCH, OVERLAY_INV_LOCAL_SCRATCH);\r\n pod.ps.Set(\"clipSphereCenter\", OVERLAY_CLIP_SCRATCH);\r\n\r\n if (!mesh.inheritOverlayEffects)\r\n {\r\n const neutralClip = pod.vs.Get(\"clipData\");\r\n pod.vs.Set(\"clipData\", [ neutralClip[0], neutralClip[1], neutralClip[2], 0 ]);\r\n pod.ps.Set(\"clipRadiusSq\", [ 0 ]);\r\n pod.ps.Set(\"clipRadius2Sq\", [ 0 ]);\r\n pod.ps.Set(\"clipSphereFactor\", [ 0 ]);\r\n pod.ps.Set(\"clipSphereFactor2\", [ 0 ]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Reports whether any instanced mesh owns an overlay effect. */\r\n #HasAnyOwnOverlayEffects()\r\n {\r\n return this.meshes.some(mesh => mesh.ownOverlayEffects.length !== 0);\r\n }\r\n\r\n /** Reports whether any instanced mesh inherits its parent's overlays. */\r\n #AnyMeshInheritsOverlayEffects()\r\n {\r\n return this.meshes.some(mesh => mesh.inheritOverlayEffects);\r\n }\r\n\r\n /** Reports whether one mesh has an own or inherited overlay path. */\r\n #MeshHasActiveOverlayEffects(mesh)\r\n {\r\n return mesh.ownOverlayEffects.length !== 0 ||\r\n (this.#parentOverlayEffects !== null && mesh.inheritOverlayEffects);\r\n }\r\n\r\n /**\r\n * Returns the child's world transform as stamped by the last sync update.\r\n * @param {Float32Array} [out] - caller-owned; when given, receives a copy and is returned instead of the live matrix\r\n * @returns {Float32Array} out when supplied, otherwise the live internal matrix\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::Setup (cpp:335-337) is an intentional no-op:\r\n * placement comes from the authored per-instance transforms, not from an SRT\r\n * setup.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Setup()\r\n {\r\n }\r\n\r\n /**\r\n * Carbon EveChildInstancedMeshes::ChangeLOD (cpp:339-341) is an intentional\r\n * no-op; the child keeps no LOD state.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD()\r\n {\r\n }\r\n\r\n /**\r\n * Accepts and discards the placement origin; this child has no Carbon origin\r\n * field and stores none.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetOrigin()\r\n {\r\n }\r\n\r\n /**\r\n * Returns false, so owners treat this child as subject to normal activation\r\n * gating.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsAlwaysOn()\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::SetShaderOption (cpp:343-359): flips the\r\n * option and refreshes the effect hash on every area, then removes any\r\n * registered mesh-group handle and clears the latch - so the groups\r\n * re-register with the NEW effectHash on the next AddMeshesToManager pass.\r\n * Sphere/per-object handles deliberately stay registered. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Handle invalidation after manager removal is explicit in JavaScript; the option write, hash refresh and registration lifecycle otherwise follow Carbon.\")\r\n SetShaderOption(name, value)\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n for (const area of mesh.areas)\r\n {\r\n area.effect.SetOption(name, value);\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n if (area.meshGroupHandle !== null)\r\n {\r\n this.#meshManager.RemoveMeshGroup(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n this.#allRegistered = false;\r\n }\r\n }\r\n }\r\n this.#revision++;\r\n }\r\n\r\n /**\r\n * Appends one instanced mesh: normalizes the area ducks, copies the instance transforms, stamps CASTS_SHADOW plus one flag bit per area batch type (Carbon cpp:418-425), and clears the registration latch so the next AddMeshesToManager pass picks it up.\r\n * @param {Iterable} areas - area ducks ({effect, batchType, areaIndex, areaCount})\r\n * @param {Iterable<Float32Array>} instanceTransforms - 16-value matrices; copied, not retained\r\n * @param {Number} partTag - modular owner shared by every appended instance\r\n * @returns {Boolean} false when no areas or no instances were supplied (nothing is added)\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddMesh(\r\n geometryPath,\r\n castsShadow,\r\n reflectionMode,\r\n meshIndex,\r\n areas,\r\n instanceTransforms,\r\n sofHullName = \"\",\r\n sofLocatorSetName = \"\",\r\n partTag = 0\r\n )\r\n {\r\n const sourceAreas = Array.from(areas ?? []);\r\n const sourceTransforms = Array.from(instanceTransforms ?? []);\r\n if (!sourceAreas.length || !sourceTransforms.length)\r\n {\r\n return false;\r\n }\r\n\r\n const normalizedAreas = sourceAreas.map(area => EveChildInstancedMeshes.#CreateArea(area));\r\n const instances = sourceTransforms.map((transform, sphereIndex) =>\r\n {\r\n if (!transform || transform.length !== 16)\r\n {\r\n throw new TypeError(\"EveChildInstancedMeshes instance transforms must contain 16 values\");\r\n }\r\n const instance = new EveChildInstancedMeshInstance();\r\n mat4.copy(instance.transform, transform);\r\n instance.sphereIndex = sphereIndex;\r\n return instance;\r\n });\r\n\r\n const mesh = new EveChildInstancedMesh();\r\n mesh.geometryPath = String(geometryPath ?? \"\");\r\n mesh.castsShadow = !!castsShadow;\r\n mesh.reflectionMode = reflectionMode === undefined ? 3 : Number(reflectionMode) | 0;\r\n mesh.meshIndex = Number(meshIndex) >>> 0;\r\n mesh.areas = normalizedAreas;\r\n mesh.instances = instances;\r\n mesh.partTags = instances.map(() => Number(partTag) >>> 0);\r\n mesh.sofHullName = String(sofHullName ?? \"\");\r\n mesh.sofLocatorSetName = String(sofLocatorSetName ?? \"\");\r\n // Carbon (cpp:418-425): the CASTS_SHADOW flag and one bit per area batch\r\n // type are stamped at add time; RENDER_IN_REFLECTION is refreshed each\r\n // async pass. cpp:428 clears the registration latch.\r\n if (mesh.castsShadow)\r\n {\r\n mesh.flags = (mesh.flags | INSTANCE_FLAG_CASTS_SHADOW) >>> 0;\r\n }\r\n for (const area of mesh.areas)\r\n {\r\n mesh.flags = (mesh.flags | (1 << area.batchType)) >>> 0;\r\n }\r\n this.meshes.push(mesh);\r\n this.#allRegistered = false;\r\n this.#revision++;\r\n return true;\r\n }\r\n\r\n /**\r\n * Removes every instance owned by a modular part, dropping empty meshes and\r\n * invalidating manager registrations.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"JavaScript explicitly nulls manager handles after removal; Carbon invalidates them by reference.\")\r\n RemoveInstancesByPartTag(partTag)\r\n {\r\n const tag = Number(partTag) >>> 0;\r\n let changed = false;\r\n for (let meshIndex = this.meshes.length - 1; meshIndex >= 0; meshIndex--)\r\n {\r\n const mesh = this.meshes[meshIndex];\r\n const keptInstances = [];\r\n const keptTags = [];\r\n for (let instanceIndex = 0; instanceIndex < mesh.instances.length; instanceIndex++)\r\n {\r\n const instanceTag = Number(mesh.partTags[instanceIndex] ?? 0) >>> 0;\r\n if (instanceTag === tag)\r\n {\r\n changed = true;\r\n continue;\r\n }\r\n keptInstances.push(mesh.instances[instanceIndex]);\r\n keptTags.push(instanceTag);\r\n }\r\n if (keptInstances.length === mesh.instances.length) continue;\r\n\r\n if (mesh.sphereHandle !== null)\r\n {\r\n this.#meshManager.RemoveBoundingSphereGroup(mesh.sphereHandle);\r\n mesh.sphereHandle = null;\r\n }\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle !== null)\r\n {\r\n this.#meshManager.RemoveMeshGroup(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n }\r\n }\r\n if (keptInstances.length === 0)\r\n {\r\n this.meshes.splice(meshIndex, 1);\r\n continue;\r\n }\r\n mesh.instances = keptInstances;\r\n mesh.partTags = keptTags;\r\n mesh.instanceSpheres.length = keptInstances.length;\r\n for (let instanceIndex = 0; instanceIndex < keptInstances.length; instanceIndex++)\r\n {\r\n keptInstances[instanceIndex].sphereIndex = instanceIndex;\r\n }\r\n }\r\n if (changed)\r\n {\r\n this.#allRegistered = false;\r\n this.#revision++;\r\n }\r\n return changed;\r\n }\r\n\r\n /**\r\n * Contributes every instance of every mesh to the owner's merged raycast set\r\n * (Carbon EveChildInstancedMeshes.cpp:1279-1324): the type-matching areas\r\n * are appended ONCE per mesh and shared by all of that mesh's instance\r\n * records via areaStart/areaCount; meshes with no matching areas contribute\r\n * nothing. Carbon row-vector instanceTransform * parentTransform maps to\r\n * gl-matrix multiply(out, parentTransform, instanceTransform).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CollectOwnedGeometry(type, parentTransform, out, areaPool)\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n const geometry = mesh.GetGeometryResource();\r\n if (!geometry || !mesh.instances.length) continue;\r\n\r\n const areaStart = areaPool.length;\r\n for (const area of mesh.areas)\r\n {\r\n if (area.batchType !== type) continue;\r\n areaPool.push({\r\n index: area.areaIndex,\r\n count: area.areaCount,\r\n alphaCutout: !!area.alphaCutout,\r\n reversed: !!area.reversed\r\n });\r\n }\r\n const areaCount = areaPool.length - areaStart;\r\n if (areaCount === 0) continue;\r\n\r\n for (const instance of mesh.instances)\r\n {\r\n const childToObject = mat4.create();\r\n mat4.multiply(childToObject, parentTransform, instance.transform);\r\n out.push({ geometry, childToObject, areaStart, areaCount });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Overwrites the transform of every instance owned by a modular part with an\r\n * ABSOLUTE new transform (Carbon EveChildInstancedMeshes.cpp:591-605,\r\n * PLAT-11963). Carbon writes only the instance transform: no dirty flag, no\r\n * handle teardown - the per-frame async pass refreshes the cull spheres from\r\n * the live transforms, and the per-part filter lives HERE, not at the call\r\n * site (the shared child carries many parts' instances).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetInstanceTransformByPartTag(partTag, translation, rotation, scale)\r\n {\r\n const tag = Number(partTag) >>> 0;\r\n const transform = mat4.fromRotationTranslationScale(mat4.create(), rotation, translation, scale);\r\n for (const mesh of this.meshes)\r\n {\r\n for (let index = 0; index < mesh.instances.length; index++)\r\n {\r\n if ((Number(mesh.partTags[index] ?? 0) >>> 0) === tag)\r\n {\r\n mat4.copy(mesh.instances[index].transform, transform);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns one [translation, rotation, scale] decomposition per instance of a\r\n * mesh (Carbon EveChildInstancedMeshes.cpp:781-806, script-exposed tooling);\r\n * throws RangeError where Carbon raises IndexError.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetInstancesTransforms(meshId)\r\n {\r\n const index = Number(meshId) >>> 0;\r\n if (index >= this.meshes.length)\r\n {\r\n throw new RangeError(\"Mesh index out of range\");\r\n }\r\n return this.meshes[index].instances.map(instance =>\r\n {\r\n const translation = vec3.create();\r\n const rotation = quat.create();\r\n const scale = vec3.create();\r\n mat4.getTranslation(translation, instance.transform);\r\n mat4.getRotation(rotation, instance.transform);\r\n quat.normalize(rotation, rotation);\r\n mat4.getScaling(scale, instance.transform);\r\n return { translation, rotation, scale };\r\n });\r\n }\r\n\r\n /**\r\n * Drops every mesh and clears the hasUpdated stamp so nothing re-registers\r\n * until another update pass runs; registration handles are NOT released here,\r\n * so call UnregisterFromMeshManager first when a manager still holds them.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Clear()\r\n {\r\n this.meshes.length = 0;\r\n this.hasUpdated = false;\r\n this.#revision++;\r\n }\r\n\r\n /**\r\n * Decodes a picking area id back to the SOF locator it came from.\r\n * @param {Number} areaId - mesh ordinal in the high 16 bits, locator index in the low 16 (the pairing AddMeshesToManager registers)\r\n * @returns {Array|null} [sofHullName, sofLocatorSetName, locatorIndex], or null when the mesh is unknown or carries no SOF hull name\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetSofSourceLocator(areaId)\r\n {\r\n const value = Number(areaId) >>> 0;\r\n const mesh = this.meshes[value >>> 16];\r\n if (!mesh || !mesh.sofHullName)\r\n {\r\n return null;\r\n }\r\n return [mesh.sofHullName, mesh.sofLocatorSetName, value & 0xffff];\r\n }\r\n\r\n /** Number of meshes currently held. */\r\n @carbon.method\r\n @impl.implemented\r\n GetMeshCount()\r\n {\r\n return this.meshes.length;\r\n }\r\n\r\n /**\r\n * Reports one mesh's authoring state as a positional tuple (Carbon's multiple out-params).\r\n * @param {Number} meshId - mesh index; RangeError when out of range\r\n * @returns {Array} [geometryPath, geometryResource, meshIndex, castsShadow, reflectionMode, areaCount, instanceCount]\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshInfo(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return [\r\n mesh.geometryPath,\r\n mesh.GetGeometryResource(),\r\n mesh.meshIndex,\r\n mesh.castsShadow,\r\n mesh.reflectionMode,\r\n mesh.areas.length,\r\n mesh.instances.length\r\n ];\r\n }\r\n\r\n /**\r\n * Reports one area of one mesh as a positional tuple (Carbon's multiple out-params).\r\n * @param {Number} meshId - mesh index; RangeError when out of range\r\n * @param {Number} areaId - area index within that mesh; RangeError when out of range\r\n * @returns {Array} [effect, batchType, areaIndex, areaCount] - the effect is the live reference\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetAreaInfo(meshId, areaId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const index = Number(areaId) >>> 0;\r\n if (index >= mesh.areas.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes area index ${index} is out of range`);\r\n }\r\n const area = mesh.areas[index];\r\n return [area.effect, area.batchType, area.areaIndex, area.areaCount];\r\n }\r\n\r\n /**\r\n * Whether the given mesh is currently displayed; throws RangeError for an\r\n * unknown mesh index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshDisplay(meshId)\r\n {\r\n return EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).display;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::SetMeshDisplay (cpp:663-691): a toggle\r\n * clears the latch; turning a mesh OFF eagerly removes its sphere and\r\n * mesh-group handles - which is why AddMeshesToManager's display-off skip\r\n * does NOT clear the latch (the handles are already gone). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Handle invalidation after removal is explicit (Carbon's DataHandle is invalidated by the manager by reference).\")\r\n SetMeshDisplay(meshId, display)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const next = !!display;\r\n if (mesh.display !== next)\r\n {\r\n mesh.display = next;\r\n this.#allRegistered = false;\r\n if (!next)\r\n {\r\n if (mesh.sphereHandle !== null)\r\n {\r\n this.#meshManager.RemoveBoundingSphereGroup(mesh.sphereHandle);\r\n mesh.sphereHandle = null;\r\n }\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle !== null)\r\n {\r\n this.#meshManager.RemoveMeshGroup(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n }\r\n }\r\n }\r\n this.#revision++;\r\n }\r\n }\r\n\r\n /** Returns whether one instanced mesh inherits parent overlay effects. */\r\n @carbon.method\r\n @impl.implemented\r\n GetMeshInheritOverlayEffects(meshId)\r\n {\r\n return EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).inheritOverlayEffects;\r\n }\r\n\r\n /** Enables or disables parent-overlay inheritance for one mesh. */\r\n @carbon.method\r\n @impl.implemented\r\n SetMeshInheritOverlayEffects(meshId, inherit)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n const next = !!inherit;\r\n if (mesh.inheritOverlayEffects === next) return;\r\n\r\n mesh.inheritOverlayEffects = next;\r\n this.#allRegistered = false;\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle === null) continue;\r\n this.#meshManager.RemoveMeshGroup(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n }\r\n }\r\n\r\n /** Adds an overlay effect owned by one instanced mesh. */\r\n @carbon.method\r\n @impl.implemented\r\n AddMeshOverlayEffect(meshId, overlayEffect)\r\n {\r\n if (!overlayEffect) throw new TypeError(\"overlayEffect must not be null\");\r\n EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).ownOverlayEffects.push(overlayEffect);\r\n }\r\n\r\n /** Removes an overlay effect owned by one instanced mesh. */\r\n @carbon.method\r\n @impl.implemented\r\n RemoveMeshOverlayEffect(meshId, overlayEffect)\r\n {\r\n const overlays = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).ownOverlayEffects;\r\n const index = overlays.indexOf(overlayEffect);\r\n if (index !== -1) overlays.splice(index, 1);\r\n }\r\n\r\n /** Removes every overlay effect owned by one instanced mesh. */\r\n @carbon.method\r\n @impl.implemented\r\n ClearMeshOverlayEffects(meshId)\r\n {\r\n EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).ownOverlayEffects.length = 0;\r\n }\r\n\r\n /** Returns the number of overlay effects owned by one instanced mesh. */\r\n @carbon.method\r\n @impl.implemented\r\n GetMeshOverlayEffectCount(meshId)\r\n {\r\n return EveChildInstancedMeshes.#GetMesh(this.meshes, meshId).ownOverlayEffects.length;\r\n }\r\n\r\n /**\r\n * Assigns one mesh's geometry resource, bumping the revision only when it\r\n * actually changes; registration waits for the next AddMeshesToManager pass.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetGeometryResource(meshId, geometry)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n if (mesh.GetGeometryResource() !== geometry)\r\n {\r\n mesh.SetGeometryResource(geometry);\r\n this.#revision++;\r\n }\r\n }\r\n\r\n /**\r\n * Returns a detached snapshot of one mesh - instance transforms cloned, areas\r\n * shallow-copied, geometry resource shared by reference - so callers can read\r\n * it without touching live registration state.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMeshData(meshId)\r\n {\r\n const mesh = EveChildInstancedMeshes.#GetMesh(this.meshes, meshId);\r\n return EveChildInstancedMeshes.#CloneMesh(mesh);\r\n }\r\n\r\n /**\r\n * Monotonic counter bumped by every structural change (AddMesh, Clear,\r\n * SetMeshDisplay, SetGeometryResource, SetShaderOption), for consumers caching\r\n * derived data.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRevision()\r\n {\r\n return this.#revision;\r\n }\r\n\r\n /** Reports whether any active own or inherited overlay has a transparent pass. */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n for (const overlay of this.#parentOverlayEffects ?? [])\r\n {\r\n if (this.#AnyMeshInheritsOverlayEffects() && overlay.HasTransparentArea()) return true;\r\n }\r\n for (const mesh of this.meshes)\r\n {\r\n for (const overlay of mesh.ownOverlayEffects)\r\n {\r\n if (overlay.HasTransparentArea()) return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Returns the squared camera distance used to sort transparent overlays. */\r\n @carbon.method\r\n @impl.adapted\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition() ?? [ 0, 0, 0 ];\r\n return Math.hypot(\r\n viewPosition[0] - this.worldTransform[12],\r\n viewPosition[1] - this.worldTransform[13],\r\n viewPosition[2] - this.worldTransform[14]);\r\n }\r\n\r\n /** Exposes stable per-instance CPU record pairs for this frame's overlay batches. */\r\n @carbon.method\r\n @impl.adapted\r\n GetPerObjectData(_accumulator = null)\r\n {\r\n if ((!this.#parentOverlayEffects || !this.#AnyMeshInheritsOverlayEffects()) &&\r\n !this.#HasAnyOwnOverlayEffects()) return null;\r\n\r\n let first = null;\r\n for (const mesh of this.meshes)\r\n {\r\n if (!mesh.overlayPods) continue;\r\n if (!mesh.display || !this.#MeshHasActiveOverlayEffects(mesh))\r\n {\r\n for (const pod of mesh.overlayPods) pod.framePod = null;\r\n continue;\r\n }\r\n for (const pod of mesh.overlayPods)\r\n {\r\n pod.framePod = { vs: pod.vs, ps: pod.ps };\r\n first ??= pod.framePod;\r\n }\r\n }\r\n return first;\r\n }\r\n\r\n /** Emits child-owned then inherited overlays per visible instance and LOD. */\r\n @carbon.method\r\n @impl.adapted\r\n GetBatches(\r\n batches,\r\n batchType,\r\n _perObjectData = null,\r\n reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n {\r\n if (!this.hasUpdated) return false;\r\n let committed = false;\r\n\r\n for (const mesh of this.meshes)\r\n {\r\n const inherited = this.#parentOverlayEffects && mesh.inheritOverlayEffects\r\n ? this.#parentOverlayEffects\r\n : null;\r\n if ((!inherited?.length && !mesh.ownOverlayEffects.length) || !mesh.display || !mesh.overlayPods) continue;\r\n if (reason === Tr2RenderReason.TR2RENDERREASON_REFLECTION && !ShouldReflect(mesh.reflectionMode)) continue;\r\n\r\n const geometry = mesh.GetGeometryResource();\r\n if (!geometry || geometry.IsGood() === false) continue;\r\n if (!mesh.overlayAreaBlocksBuilt)\r\n {\r\n CollectInstancedOverlayAreaBlocks(mesh, mesh.overlayAreaBlocks);\r\n mesh.overlayAreaBlocksBuilt = true;\r\n }\r\n\r\n for (let index = 0; index < mesh.overlayPods.length; index++)\r\n {\r\n const pod = mesh.overlayPods[index];\r\n if (!pod.framePod) continue;\r\n const sphere = mesh.instanceSpheres[index];\r\n if (!sphere) continue;\r\n if (this.#lastCameraFrustum &&\r\n this.#lastCameraFrustum.IsSphereVisible(sphere.center, sphere.radius) === false) continue;\r\n\r\n const screenSize = this.#lastCameraFrustum\r\n ? this.#lastCameraFrustum.GetPixelSizeAccrossEst(sphere.center, sphere.radius) * this.#lastInvLodFactor\r\n : Infinity;\r\n const lod = geometry.GetMeshLod(mesh.meshIndex, screenSize);\r\n\r\n if (mesh.ownOverlayEffects.length)\r\n {\r\n committed = EmitOverlayBatches(\r\n batches, pod.framePod, batchType, mesh.ownOverlayEffects,\r\n mesh.overlayAreaBlocks, geometry, mesh.meshIndex, lod) || committed;\r\n }\r\n if (inherited?.length)\r\n {\r\n committed = EmitOverlayBatches(\r\n batches, pod.framePod, batchType, inherited,\r\n mesh.overlayAreaBlocks, geometry, mesh.meshIndex, lod) || committed;\r\n }\r\n }\r\n }\r\n return committed;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::RegisterComponents (cpp:36-43):\r\n * unconditional InstancedMeshProvider + ShadowCaster leaf\r\n * self-registration. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.InstancedMeshProvider, this);\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UnRegisterComponents (cpp:45-48) only\r\n * calls UnregisterFromMeshManager; own components were already removed by\r\n * EveEntity::UnRegister (EveEntity.cpp:90). */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n this.UnregisterFromMeshManager();\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::UnregisterFromMeshManager (cpp:50-71):\r\n * every registered mesh-group / sphere-group / per-object handle is removed\r\n * through the manager that issued the opaque handles, then the latch clears. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Handle invalidation after removal is explicit (Carbon's DataHandle is invalidated by the manager by reference).\")\r\n UnregisterFromMeshManager()\r\n {\r\n for (const mesh of this.meshes)\r\n {\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle !== null)\r\n {\r\n this.#meshManager.RemoveMeshGroup(area.meshGroupHandle);\r\n area.meshGroupHandle = null;\r\n }\r\n }\r\n if (mesh.sphereHandle !== null)\r\n {\r\n this.#meshManager.RemoveBoundingSphereGroup(mesh.sphereHandle);\r\n mesh.sphereHandle = null;\r\n }\r\n }\r\n if (this.#perObjectDataHandle !== null)\r\n {\r\n this.#meshManager.RemovePerObjectData(this.#perObjectDataHandle);\r\n this.#perObjectDataHandle = null;\r\n }\r\n if (this.#perObjectDataNoClipHandle !== null)\r\n {\r\n this.#meshManager.RemovePerObjectData(this.#perObjectDataNoClipHandle);\r\n this.#perObjectDataNoClipHandle = null;\r\n }\r\n this.#meshManager = null;\r\n this.#allRegistered = false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::AddMeshesToManager (cpp:472-553), the\r\n * InstancedMeshProvider entry the engine's CollectMeshes drives\r\n * (EveInstancedMeshManager.cpp:45-56; scene EveSpaceScene.cpp:1516).\r\n * Contract quirks preserved: nothing registers before the first update\r\n * pass (cpp:474); switching managers tears EVERYTHING down BEFORE the\r\n * latch early-out (cpp:478-481); the latch is set optimistically and\r\n * cleared by ANY not-ready mesh/area so the per-frame caller retries until\r\n * geometry streams in - EXCEPT display-off meshes, which skip WITHOUT\r\n * clearing it (their handles were already removed by SetMeshDisplay);\r\n * handles are add-once (partial re-registration after SetShaderOption /\r\n * display toggles); an area-level effect failure clears the latch while\r\n * the mesh's sphere group STAYS registered (Carbon's asymmetry);\r\n * pickingOwnerIndex is the mesh ordinal (pairs with GetSofSourceLocator's\r\n * meshIndex<<16 decode). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The manager is an injected CjsInstancedMeshManager implementation returning opaque handles (out-params become returns); Carbon's combinedVertexDeclaration gate (cpp:499, a D3D declaration handle rebuilt in RebuildCachedData cpp:435-457) reduces to geometry presence + IsGood, and the declaration argument is passed as 0 for the engine to rebuild; GetRawRoot() becomes the object itself as picking owner.\")\r\n AddMeshesToManager(manager)\r\n {\r\n if (!this.hasUpdated)\r\n {\r\n return;\r\n }\r\n if (this.#meshManager !== null && this.#meshManager !== manager)\r\n {\r\n this.UnregisterFromMeshManager();\r\n }\r\n if (this.#allRegistered)\r\n {\r\n return;\r\n }\r\n\r\n this.#meshManager = manager;\r\n\r\n if (this.#perObjectDataHandle === null)\r\n {\r\n this.#perObjectDataHandle = manager.AddPerObjectData(this.#perObjectData);\r\n }\r\n\r\n if (this.meshes.some(mesh => !mesh.inheritOverlayEffects) &&\r\n this.#perObjectDataNoClipHandle === null)\r\n {\r\n this.#perObjectDataNoClipHandle = manager.AddPerObjectData(this.#perObjectDataNoClip);\r\n }\r\n\r\n this.#allRegistered = true;\r\n for (let meshIndex = 0; meshIndex < this.meshes.length; meshIndex++)\r\n {\r\n const mesh = this.meshes[meshIndex];\r\n if (!mesh.display)\r\n {\r\n continue;\r\n }\r\n const geometry = mesh.GetGeometryResource();\r\n if (!geometry || geometry.IsGood() === false)\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n if (!mesh.instances.length)\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n if (mesh.instances.length !== mesh.instanceSpheres.length)\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n\r\n if (mesh.sphereHandle === null)\r\n {\r\n mesh.sphereHandle = manager.AddBoundingSphereGroup(\r\n mesh.worldBoundingSphere,\r\n mesh.flags,\r\n mesh.instanceSpheres,\r\n mesh.instanceSpheres.length\r\n );\r\n }\r\n\r\n for (const area of mesh.areas)\r\n {\r\n if (area.meshGroupHandle !== null)\r\n {\r\n continue;\r\n }\r\n if (!area.effect || !area.effect.GetShaderStateInterface())\r\n {\r\n this.#allRegistered = false;\r\n continue;\r\n }\r\n area.meshGroupHandle = manager.AddMeshGroup(\r\n geometry,\r\n 0,\r\n area.batchType,\r\n mesh.meshIndex,\r\n area.areaIndex,\r\n area.areaCount,\r\n area.effect,\r\n area.effectHash,\r\n mesh.inheritOverlayEffects ? this.#perObjectDataHandle : this.#perObjectDataNoClipHandle,\r\n mesh.sphereHandle,\r\n mesh.instances,\r\n mesh.instances.length,\r\n this,\r\n meshIndex\r\n );\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::IsCastingShadow (cpp:73-76) always\r\n * returns false (instanced shadows cull per instance group); presence\r\n * satisfies the \"ShadowCaster\" duck contract. */\r\n @carbon.method\r\n @impl.implemented\r\n IsCastingShadow(..._args)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowBatches (cpp:78-80) is an\r\n * intentional no-op (the instanced mesh manager emits the batches). */\r\n @carbon.method\r\n @impl.noop\r\n GetShadowBatches(..._args)\r\n {\r\n }\r\n\r\n /** Carbon EveChildInstancedMeshes::GetShadowPerObjectData (cpp:82-85)\r\n * returns null (per-object data flows through the mesh manager). */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(..._args)\r\n {\r\n return null;\r\n }\r\n\r\n /**\r\n * Resolves a mesh index against the list, throwing RangeError rather than\r\n * returning undefined so every public accessor fails loudly.\r\n */\r\n static #GetMesh(meshes, meshId)\r\n {\r\n const index = Number(meshId) >>> 0;\r\n if (index >= meshes.length)\r\n {\r\n throw new RangeError(`EveChildInstancedMeshes mesh index ${index} is out of range`);\r\n }\r\n return meshes[index];\r\n }\r\n\r\n /**\r\n * Builds an area record from a plain duck, defaulting areaCount to 1 and\r\n * caching the effect hash the manager registers the mesh group under.\r\n */\r\n static #CreateArea(value)\r\n {\r\n const source = value ?? {};\r\n const area = new EveChildInstancedMeshArea();\r\n area.effect = source.effect ?? null;\r\n area.batchType = Number(source.batchType) >>> 0;\r\n area.areaIndex = Number(source.areaIndex) >>> 0;\r\n area.areaCount = source.areaCount === undefined ? 1 : Number(source.areaCount) >>> 0;\r\n area.alphaCutout = !!source.alphaCutout;\r\n area.reversed = !!source.reversed;\r\n area.effectHash = EveChildInstancedMeshes.#GetEffectHash(area.effect);\r\n return area;\r\n }\r\n\r\n /**\r\n * Deep-copies a mesh into a plain object for GetMeshData: instance transforms\r\n * cloned, areas spread-copied, the geometry resource shared by reference.\r\n */\r\n static #CloneMesh(mesh)\r\n {\r\n return {\r\n geometryPath: mesh.geometryPath,\r\n geometry: mesh.GetGeometryResource(),\r\n castsShadow: mesh.castsShadow,\r\n reflectionMode: mesh.reflectionMode,\r\n meshIndex: mesh.meshIndex,\r\n areas: mesh.areas.map(area => ({ ...area })),\r\n instances: mesh.instances.map(instance => ({\r\n transform: mat4.clone(instance.transform),\r\n sphereIndex: instance.sphereIndex\r\n })),\r\n partTags: mesh.partTags.slice(),\r\n sofHullName: mesh.sofHullName,\r\n sofLocatorSetName: mesh.sofLocatorSetName,\r\n display: mesh.display\r\n };\r\n }\r\n\r\n /**\r\n * Reads an owned effect's stable registration hash; null areas retain the\r\n * Carbon zero hash until their effect arrives.\r\n */\r\n static #GetEffectHash(effect)\r\n {\r\n return effect ? Number(effect.GetHashValue()) || 0 : 0;\r\n }\r\n\r\n}\r\n"],"names":["INSTANCE_FLAG_CASTS_SHADOW","INSTANCE_FLAG_RENDER_IN_REFLECTION","POSITION_SCRATCH","vec3","create","OVERLAY_LOCAL_SCRATCH","mat4","OVERLAY_WORLD_SCRATCH","OVERLAY_WORLD_LAST_SCRATCH","OVERLAY_INV_WORLD_SCRATCH","OVERLAY_INV_LOCAL_SCRATCH","OVERLAY_CLIP_SCRATCH","_EveChildInstancedMes","EveChildInstancedMeshArea","CjsModel","e","_init_effect","_init_extra_effect","_init_batchType","_init_extra_batchType","_init_areaIndex","_init_extra_areaIndex","_init_areaCount","_init_extra_areaCount","_init_alphaCutout","_init_extra_alphaCutout","_init_reversed","_init_extra_reversed","_init_effectHash","_init_extra_effectHash","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","uint32","boolean","read","uint64","effect","batchType","areaIndex","areaCount","alphaCutout","reversed","effectHash","meshGroupHandle","_EveChildInstancedMes2","EveChildInstancedMeshInstance","_init_transform","_init_extra_transform","_init_sphereIndex","_init_extra_sphereIndex","_initClass2","constructor","args","transform","sphereIndex","_EveChildInstancedMes3","EveChildInstancedMesh","_init_geometryPath","_init_extra_geometryPath","_init_castsShadow","_init_extra_castsShadow","_init_reflectionMode","_init_extra_reflectionMode","_init_meshIndex","_init_extra_meshIndex","_init_areas","_init_extra_areas","_init_instances","_init_extra_instances","_init_partTags","_init_extra_partTags","_init_sofHullName","_init_extra_sofHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_display","_init_extra_display","_init_inheritOverlayEffects","_init_extra_inheritOverlayEffects","_init_ownOverlayEffects","_init_extra_ownOverlayEffects","_initClass3","string","int32","list","array","geometryPath","castsShadow","reflectionMode","meshIndex","areas","instances","partTags","sofHullName","sofLocatorSetName","display","inheritOverlayEffects","ownOverlayEffects","overlayAreaBlocks","overlayAreaBlocksBuilt","overlayPods","sphereHandle","worldBoundingSphere","center","radius","instanceSpheres","flags","GetGeometryResource","SetGeometryResource","resource","_EveChildInstancedMes4","_identity","EveChildInstancedMeshes","_withITr2Renderable","withITr2Renderable","EveSpaceObjectChild","_init_name","_init_extra_name","_init_worldTransform","_init_extra_worldTransform","_init_hasUpdated","_init_extra_hasUpdated","_init_meshes","_init_extra_meshes","_initProto","_initClass4","carbon","method","impl","implemented","adapted","reason","noop","name","worldTransform","hasUpdated","meshes","RawData","GetName","SetName","String","UpdateVisibility","updateContext","GetFrustum","GetInvLodFactor","GetRenderables","renderables","length","push","GetBoundingSphere","#UpdatePerObjectData","parent","record","transpose","GetTransposed","SetAndTranspose","inverse","invert","identity","CopyFrom","vs","ps","GetPerObjectStructs","Set","Get","slot","CUSTOM_MASK_COUNT","GetTransposedIndex","SetAndTransposeIndex","SetIndex","GetIndex","UpdateSyncronous","params","localToWorldTransform","copy","time","GetTime","mesh","overlay","Update","UpdateAsyncronous","_updateContext","previousWorldTransform","parentRecords","spaceObjectParent","w","worldScale","Math","max","hypot","geometry","IsGood","ShouldReflect","meshData","GetMeshData","minBounds","maxBounds","centerX","centerY","centerZ","localRadius","boundsMinX","Infinity","boundsMinY","boundsMinZ","boundsMaxX","boundsMaxY","boundsMaxZ","index","scale","transformMat4","sphere","min","sphereCenter","SetSphereGroupBounds","Array","isArray","overlayEffects","#UpdateOverlayInstanceData","parentVs","parentPs","from","framePod","local","world","multiply","worldLast","pod","clipData","set","neutralClip","#HasAnyOwnOverlayEffects","some","#AnyMeshInheritsOverlayEffects","#MeshHasActiveOverlayEffects","GetLocalToWorldTransform","out","Setup","ChangeLOD","SetOrigin","IsAlwaysOn","SetShaderOption","value","area","SetOption","RemoveMeshGroup","AddMesh","instanceTransforms","partTag","sourceAreas","sourceTransforms","normalizedAreas","map","TypeError","instance","undefined","Number","RemoveInstancesByPartTag","tag","changed","keptInstances","keptTags","instanceIndex","instanceTag","RemoveBoundingSphereGroup","splice","CollectOwnedGeometry","parentTransform","areaPool","areaStart","count","childToObject","SetInstanceTransformByPartTag","translation","rotation","fromRotationTranslationScale","GetInstancesTransforms","meshId","RangeError","quat","getTranslation","getRotation","normalize","getScaling","Clear","GetSofSourceLocator","areaId","GetMeshCount","GetMeshInfo","GetAreaInfo","GetMeshDisplay","SetMeshDisplay","next","GetMeshInheritOverlayEffects","SetMeshInheritOverlayEffects","inherit","AddMeshOverlayEffect","overlayEffect","RemoveMeshOverlayEffect","overlays","indexOf","ClearMeshOverlayEffects","GetMeshOverlayEffectCount","GetRevision","HasTransparentBatches","HasTransparentArea","GetSortValue","renderContext","viewPosition","GetViewPosition","GetPerObjectData","_accumulator","first","GetBatches","batches","_perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","committed","inherited","TR2RENDERREASON_REFLECTION","CollectInstancedOverlayAreaBlocks","IsSphereVisible","screenSize","GetPixelSizeAccrossEst","lod","GetMeshLod","EmitOverlayBatches","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","InstancedMeshProvider","ShadowCaster","UnRegisterComponents","UnregisterFromMeshManager","RemovePerObjectData","AddMeshesToManager","manager","AddPerObjectData","AddBoundingSphereGroup","GetShaderStateInterface","AddMeshGroup","IsCastingShadow","_args","GetShadowBatches","GetShadowPerObjectData","#GetMesh","#CreateArea","source","#CloneMesh","clone","slice","#GetEffectHash","GetHashValue"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EveChildPartData.js","sources":["../../../../../src/trinity/eve/child/EveChildPartData.js"],"sourcesContent":["// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.h\r\n// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.cpp\r\n// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData_Blue.cpp\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { CjsModel } from \"#model\";\r\nimport { io, type } from \"#schema\";\r\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\r\n\r\n\r\n/**\r\n * One modular-object part's logical transform and local-space bounds.\r\n *\r\n * Carbon declares this as EveChildPartData::PartData. The JavaScript class is\r\n * exported under a legal identifier while retaining that nested schema name.\r\n */\r\n@type.define({ className: \"EveChildPartData.PartData\", family: \"eve/child\" })\r\nexport class EveChildPartDataPartData extends CjsModel\r\n{\r\n @io.persist\r\n @type.uint32\r\n partId = 0;\r\n\r\n @io.persist\r\n @type.vec3\r\n position = vec3.create();\r\n\r\n @io.persist\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n scale = vec3.fromValues(1, 1, 1);\r\n\r\n /** Packed CcpMath::Sphere: xyz center and w radius. */\r\n @io.persist\r\n @type.vec4\r\n boundingSphere = vec4.create();\r\n}\r\n\r\n\r\n/**\r\n * Persistent modular-space-object state stored as an effect child.\r\n *\r\n * Carbon's header declares these members persistent, but its current Blue\r\n * exposure maps only the child interfaces. The explicit persistence metadata\r\n * below is the JavaScript adaptation required for the documented state to\r\n * survive a model values round trip.\r\n */\r\n@type.define({ className: \"EveChildPartData\", family: \"eve/child\" })\r\nexport class EveChildPartData extends EveSpaceObjectChild\r\n{\r\n @io.persist\r\n @type.string\r\n faction = \"\";\r\n\r\n @io.persist\r\n @type.string\r\n race = \"\";\r\n\r\n @io.persist\r\n @type.list(\"EveChildPartData.PartData\")\r\n parts = [];\r\n\r\n /** Returns the first monotonically available positive Carbon part tag. */\r\n GetUnusedPartID()\r\n {\r\n let nextId = 1;\r\n\r\n for (const part of this.parts)\r\n {\r\n const candidate = ((Number(part.partId) >>> 0) + 1) >>> 0;\r\n nextId = Math.max(nextId, candidate);\r\n }\r\n\r\n return nextId >>> 0;\r\n }\r\n\r\n static PartData = EveChildPartDataPartData;\r\n}\r\n"],"names":["_EveChildPartDataPart","EveChildPartDataPartData","CjsModel","e","_init_partId","_init_extra_partId","_init_position","_init_extra_position","_init_rotation","_init_extra_rotation","_init_scale","_init_extra_scale","_init_boundingSphere","_init_extra_boundingSphere","c","_initClass","_applyDecs","type","define","className","family","io","persist","uint32","vec3","quat","vec4","constructor","args","partId","position","create","rotation","scale","fromValues","boundingSphere","_EveChildPartData","_identity","EveChildPartData","EveSpaceObjectChild","_init_faction","_init_extra_faction","_init_race","_init_extra_race","_init_parts","_init_extra_parts","_initClass2","string","list","faction","race","parts","GetUnusedPartID","nextId","part","candidate","Number","Math","max","PartData"],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import { io, type } from '#schema';
3
- import { CjsModel } from '#model';
4
-
5
- let _initClass, _init_bypass, _init_extra_bypass, _init_depthWeight, _init_extra_depthWeight, _init_normalWeight, _init_extra_normalWeight, _init_planeWeight, _init_extra_planeWeight, _init_radius, _init_extra_radius, _init_stepSize, _init_extra_stepSize;
6
-
7
- /** Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising. */
8
- let _Tr2Denoiser;
9
- class Tr2Denoiser extends CjsModel {
10
- static {
11
- ({
12
- e: [_init_bypass, _init_extra_bypass, _init_depthWeight, _init_extra_depthWeight, _init_normalWeight, _init_extra_normalWeight, _init_planeWeight, _init_extra_planeWeight, _init_radius, _init_extra_radius, _init_stepSize, _init_extra_stepSize],
13
- c: [_Tr2Denoiser, _initClass]
14
- } = _applyDecs2311(this, [type.define({
15
- className: "Tr2Denoiser",
16
- family: "trinityCore",
17
- purpose: "Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising."
18
- })], [[[io, io.notify, io, io.persist, type, type.boolean], 16, "bypass"], [[io, io.notify, io, io.persist, type, type.float32], 16, "depthWeight"], [[io, io.notify, io, io.persist, type, type.float32], 16, "normalWeight"], [[io, io.notify, io, io.persist, type, type.float32], 16, "planeWeight"], [[io, io.notify, io, io.persist, type, type.uint32], 16, "radius"], [[io, io.notify, io, io.persist, type, type.uint32], 16, "stepSize"]], 0, void 0, CjsModel));
19
- }
20
- constructor(...args) {
21
- super(...args);
22
- _init_extra_stepSize(this);
23
- }
24
- /** m_bypass (bool) [READWRITE, PERSIST, NOTIFY] */
25
- bypass = _init_bypass(this, false);
26
-
27
- /** m_depthWeight (float) [READWRITE, PERSIST, NOTIFY] */
28
- depthWeight = (_init_extra_bypass(this), _init_depthWeight(this, 100));
29
-
30
- /** m_normalWeight (float) [READWRITE, PERSIST, NOTIFY] */
31
- normalWeight = (_init_extra_depthWeight(this), _init_normalWeight(this, 1.5));
32
-
33
- /** m_planeWeight (float) [READWRITE, PERSIST, NOTIFY] */
34
- planeWeight = (_init_extra_normalWeight(this), _init_planeWeight(this, 0));
35
-
36
- /** m_radius (uint32_t) [READWRITE, PERSIST, NOTIFY] */
37
- radius = (_init_extra_planeWeight(this), _init_radius(this, 5));
38
-
39
- /** m_stepSize (uint32_t) [READWRITE, PERSIST, NOTIFY] */
40
- stepSize = (_init_extra_radius(this), _init_stepSize(this, 1));
41
- static {
42
- _initClass();
43
- }
44
- }
45
-
46
- export { _Tr2Denoiser as Tr2Denoiser };
47
- //# sourceMappingURL=Tr2Denoiser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tr2Denoiser.js","sources":["../../../../../src/trinity/generated/trinityCore/Tr2Denoiser.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Denoiser.h\n// Generated by format-carbon carbon-class --emit. Verify against trinityCore/Tr2Denoiser.json.\r\nimport { io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\n\r\n/** Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising. */\n@type.define({ className: \"Tr2Denoiser\", family: \"trinityCore\", purpose: \"Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising.\" })\r\nexport class Tr2Denoiser extends CjsModel\r\n{\r\n\r\n /** m_bypass (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n bypass = false;\r\n\r\n /** m_depthWeight (float) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n depthWeight = 100;\r\n\r\n /** m_normalWeight (float) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n normalWeight = 1.5;\r\n\r\n /** m_planeWeight (float) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n planeWeight = 0;\r\n\r\n /** m_radius (uint32_t) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.uint32\r\n radius = 5;\r\n\r\n /** m_stepSize (uint32_t) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.uint32\r\n stepSize = 1;\r\n\r\n}\r\n"],"names":["_Tr2Denoiser","Tr2Denoiser","CjsModel","e","_init_bypass","_init_extra_bypass","_init_depthWeight","_init_extra_depthWeight","_init_normalWeight","_init_extra_normalWeight","_init_planeWeight","_init_extra_planeWeight","_init_radius","_init_extra_radius","_init_stepSize","_init_extra_stepSize","c","_initClass","_applyDecs","type","define","className","family","purpose","io","notify","persist","boolean","float32","uint32","constructor","args","bypass","depthWeight","normalWeight","planeWeight","radius","stepSize"],"mappings":";;;;;;AAKA;AAAA,IAAAA;AACA,MAAAC,WAAA,SACiCC,QAAQ,CACzC;AAAA,EAAA;AAAA,IAAA,CAAA;MAAAC,CAAA,EAAA,CAAAC,YAAA,EAAAC,kBAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,cAAA,EAAAC,oBAAA,CAAA;MAAAC,CAAA,EAAA,CAAAhB,YAAA,EAAAiB,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,aAAa;AAAEC,MAAAA,MAAM,EAAE,aAAa;AAAEC,MAAAA,OAAO,EAAE;KAAqH,CAAC,CAAA,EAAA,CAAA,CAAA,CAK5LC,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACQ,OAAO,oBAIZH,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACS,OAAO,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAIZJ,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACS,OAAO,0BAIZJ,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACS,OAAO,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAIZJ,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACU,MAAM,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAIXL,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACU,MAAM,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EApCmB3B,QAAQ,CAAA;AAAA;AAAA4B,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAhB,oBAAA,CAAA,IAAA,CAAA;AAAA,EAAA;AAGvC;EAIAiB,MAAM,GAAA5B,YAAA,CAAA,IAAA,EAAG,KAAK,CAAA;;AAEd;AAIA6B,EAAAA,WAAW,IAAA5B,kBAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,GAAG,CAAA;;AAEjB;AAIA4B,EAAAA,YAAY,IAAA3B,uBAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,OAAG,GAAG,CAAA;;AAElB;AAIA2B,EAAAA,WAAW,IAAA1B,wBAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,CAAC,CAAA;;AAEf;AAIA0B,EAAAA,MAAM,IAAAzB,uBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,CAAC,CAAA;;AAEV;AAIAyB,EAAAA,QAAQ,IAAAxB,kBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAG,CAAC,CAAA;AAAC,EAAA;IAAAG,UAAA,EAAA;AAAA;AAEf;;;;"}