@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
@@ -0,0 +1,53 @@
1
+ import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { io, type } from '#schema';
3
+ import { EveSpaceObjectChild as _EveSpaceObjectChild } from '../EveSpaceObjectChild.js';
4
+ import { EveChildPartDataPartData as _EveChildPartDataPart } from './EveChildPartDataPartData.js';
5
+
6
+ let _initClass, _init_faction, _init_extra_faction, _init_race, _init_extra_race, _init_parts, _init_extra_parts;
7
+
8
+ /**
9
+ * Persistent modular-space-object state stored as an effect child.
10
+ *
11
+ * Carbon's header declares these members persistent, but its current Blue
12
+ * exposure maps only the child interfaces. The explicit persistence metadata
13
+ * below is the JavaScript adaptation required for the documented state to
14
+ * survive a model values round trip.
15
+ */
16
+ let _EveChildPartData;
17
+ new class extends _identity {
18
+ static [class EveChildPartData extends _EveSpaceObjectChild {
19
+ static {
20
+ ({
21
+ e: [_init_faction, _init_extra_faction, _init_race, _init_extra_race, _init_parts, _init_extra_parts],
22
+ c: [_EveChildPartData, _initClass]
23
+ } = _applyDecs2311(this, [type.define({
24
+ className: "EveChildPartData",
25
+ family: "eve/child"
26
+ })], [[[io, io.persist, type, type.string], 16, "faction"], [[io, io.persist, type, type.string], 16, "race"], [[io, io.persist, void 0, type.list("EveChildPartData.PartData")], 16, "parts"]], 0, void 0, _EveSpaceObjectChild));
27
+ }
28
+ constructor(...args) {
29
+ super(...args);
30
+ _init_extra_parts(this);
31
+ }
32
+ faction = _init_faction(this, "");
33
+ race = (_init_extra_faction(this), _init_race(this, ""));
34
+ parts = (_init_extra_race(this), _init_parts(this, []));
35
+
36
+ /** Returns the first monotonically available positive Carbon part tag. */
37
+ GetUnusedPartID() {
38
+ let nextId = 1;
39
+ for (const part of this.parts) {
40
+ const candidate = (Number(part.partId) >>> 0) + 1 >>> 0;
41
+ nextId = Math.max(nextId, candidate);
42
+ }
43
+ return nextId >>> 0;
44
+ }
45
+ }];
46
+ PartData = _EveChildPartDataPart;
47
+ constructor() {
48
+ super(_EveChildPartData), _initClass();
49
+ }
50
+ }();
51
+
52
+ export { _EveChildPartData as EveChildPartData };
53
+ //# sourceMappingURL=EveChildPartData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EveChildPartData.js","sources":["../../../../../../src/trinity/eve/child/EveChildPartData/EveChildPartData.js"],"sourcesContent":["// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.h\n// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.cpp\n// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData_Blue.cpp\nimport { io, type } from \"#schema\";\nimport { EveSpaceObjectChild } from \"../EveSpaceObjectChild.js\";\nimport { EveChildPartDataPartData } from \"./EveChildPartDataPartData.js\";\n\n\n/**\n * Persistent modular-space-object state stored as an effect child.\n *\n * Carbon's header declares these members persistent, but its current Blue\n * exposure maps only the child interfaces. The explicit persistence metadata\n * below is the JavaScript adaptation required for the documented state to\n * survive a model values round trip.\n */\n@type.define({ className: \"EveChildPartData\", family: \"eve/child\" })\nexport class EveChildPartData extends EveSpaceObjectChild\n{\n @io.persist\n @type.string\n faction = \"\";\n\n @io.persist\n @type.string\n race = \"\";\n\n @io.persist\n @type.list(\"EveChildPartData.PartData\")\n parts = [];\n\n /** Returns the first monotonically available positive Carbon part tag. */\n GetUnusedPartID()\n {\n let nextId = 1;\n\n for (const part of this.parts)\n {\n const candidate = ((Number(part.partId) >>> 0) + 1) >>> 0;\n nextId = Math.max(nextId, candidate);\n }\n\n return nextId >>> 0;\n }\n\n static PartData = EveChildPartDataPartData;\n}\n"],"names":["_EveChildPartData","_identity","EveChildPartData","EveSpaceObjectChild","e","_init_faction","_init_extra_faction","_init_race","_init_extra_race","_init_parts","_init_extra_parts","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","list","constructor","args","faction","race","parts","GetUnusedPartID","nextId","part","candidate","Number","partId","Math","max","PartData","EveChildPartDataPartData"],"mappings":";;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAQA,MAAAC,gBAAA,SACsCC,oBAAmB,CACzD;AAAA,IAAA;AAAA,MAAA,CAAA;QAAAC,CAAA,EAAA,CAAAC,aAAA,EAAAC,mBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,WAAA,EAAAC,iBAAA,CAAA;QAAAC,CAAA,EAAA,CAAAX,iBAAA,EAAAY,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,kBAAkB;AAAEC,QAAAA,MAAM,EAAE;AAAY,OAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAGjEC,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,qBAGXF,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAGXF,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EACVL,IAAI,CAACO,IAAI,CAAC,2BAA2B,CAAC,6BAXHlB,oBAAmB,CAAA;AAAA;AAAAmB,IAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,MAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;MAAAb,iBAAA,CAAA,IAAA,CAAA;AAAA,IAAA;IAIvDc,OAAO,GAAAnB,aAAA,CAAA,IAAA,EAAG,EAAE,CAAA;AAIZoB,IAAAA,IAAI,IAAAnB,mBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;AAITmB,IAAAA,KAAK,IAAAlB,gBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,EAAE,CAAA;;AAEV;AACAkB,IAAAA,eAAeA,GACf;MACE,IAAIC,MAAM,GAAG,CAAC;AAEd,MAAA,KAAK,MAAMC,IAAI,IAAI,IAAI,CAACH,KAAK,EAC7B;AACE,QAAA,MAAMI,SAAS,GAAI,CAACC,MAAM,CAACF,IAAI,CAACG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAM,CAAC;QACzDJ,MAAM,GAAGK,IAAI,CAACC,GAAG,CAACN,MAAM,EAAEE,SAAS,CAAC;AACtC,MAAA;MAEA,OAAOF,MAAM,KAAK,CAAC;AACrB,IAAA;GAGD;AADQO,EAAAA,QAAQ,GAAGC,qBAAwB;EAACd,WAAAA,GAAA;IAAA,KAAA,CAAAtB,iBAAA,GAAAY,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
@@ -1,18 +1,17 @@
1
- import { applyDecs2311 as _applyDecs2311, identity as _identity } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { quat } from '#math/quat';
3
3
  import { vec3 } from '#math/vec3';
4
4
  import { vec4 } from '#math/vec4';
5
5
  import { CjsModel } from '#model';
6
6
  import { io, type } from '#schema';
7
- import { EveSpaceObjectChild as _EveSpaceObjectChild } from './EveSpaceObjectChild.js';
8
7
 
9
- let _initClass, _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, _initClass2, _init_faction, _init_extra_faction, _init_race, _init_extra_race, _init_parts, _init_extra_parts;
8
+ let _initClass, _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;
10
9
 
11
- /**
12
- * One modular-object part's logical transform and local-space bounds.
13
- *
14
- * Carbon declares this as EveChildPartData::PartData. The JavaScript class is
15
- * exported under a legal identifier while retaining that nested schema name.
10
+ /**
11
+ * One modular-object part's logical transform and local-space bounds.
12
+ *
13
+ * Carbon declares this as EveChildPartData::PartData. The JavaScript class is
14
+ * exported under a legal identifier while retaining that nested schema name.
16
15
  */
17
16
  let _EveChildPartDataPart;
18
17
  class EveChildPartDataPartData extends CjsModel {
@@ -40,41 +39,6 @@ class EveChildPartDataPartData extends CjsModel {
40
39
  _initClass();
41
40
  }
42
41
  }
43
- let _EveChildPartData;
44
- new class extends _identity {
45
- static [class EveChildPartData extends _EveSpaceObjectChild {
46
- static {
47
- ({
48
- e: [_init_faction, _init_extra_faction, _init_race, _init_extra_race, _init_parts, _init_extra_parts],
49
- c: [_EveChildPartData, _initClass2]
50
- } = _applyDecs2311(this, [type.define({
51
- className: "EveChildPartData",
52
- family: "eve/child"
53
- })], [[[io, io.persist, type, type.string], 16, "faction"], [[io, io.persist, type, type.string], 16, "race"], [[io, io.persist, void 0, type.list("EveChildPartData.PartData")], 16, "parts"]], 0, void 0, _EveSpaceObjectChild));
54
- }
55
- constructor(...args) {
56
- super(...args);
57
- _init_extra_parts(this);
58
- }
59
- faction = _init_faction(this, "");
60
- race = (_init_extra_faction(this), _init_race(this, ""));
61
- parts = (_init_extra_race(this), _init_parts(this, []));
62
42
 
63
- /** Returns the first monotonically available positive Carbon part tag. */
64
- GetUnusedPartID() {
65
- let nextId = 1;
66
- for (const part of this.parts) {
67
- const candidate = (Number(part.partId) >>> 0) + 1 >>> 0;
68
- nextId = Math.max(nextId, candidate);
69
- }
70
- return nextId >>> 0;
71
- }
72
- }];
73
- PartData = _EveChildPartDataPart;
74
- constructor() {
75
- super(_EveChildPartData), _initClass2();
76
- }
77
- }();
78
-
79
- export { _EveChildPartData as EveChildPartData, _EveChildPartDataPart as EveChildPartDataPartData };
80
- //# sourceMappingURL=EveChildPartData.js.map
43
+ export { _EveChildPartDataPart as EveChildPartDataPartData };
44
+ //# sourceMappingURL=EveChildPartDataPartData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EveChildPartDataPartData.js","sources":["../../../../../../src/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js"],"sourcesContent":["// Carbon source: trinity/trinity/Eve/SpaceObject/Children/EveChildPartData.h\n// struct PartData, nested in EveChildPartData; flattened for JS.\nimport { quat } from \"#math/quat\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { CjsModel } from \"#model\";\nimport { io, type } from \"#schema\";\n\n\n/**\n * One modular-object part's logical transform and local-space bounds.\n *\n * Carbon declares this as EveChildPartData::PartData. The JavaScript class is\n * exported under a legal identifier while retaining that nested schema name.\n */\n@type.define({ className: \"EveChildPartData.PartData\", family: \"eve/child\" })\nexport class EveChildPartDataPartData extends CjsModel\n{\n @io.persist\n @type.uint32\n partId = 0;\n\n @io.persist\n @type.vec3\n position = vec3.create();\n\n @io.persist\n @type.quat\n rotation = quat.create();\n\n @io.persist\n @type.vec3\n scale = vec3.fromValues(1, 1, 1);\n\n /** Packed CcpMath::Sphere: xyz center and w radius. */\n @io.persist\n @type.vec4\n boundingSphere = vec4.create();\n}\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"],"mappings":";;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AALA,IAAAA;AAMA,MAAAC,wBAAA,SAC8CC,QAAQ,CACtD;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,GAAAC,YAAA,EAAAC,kBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,oBAAA,EAAAC,0BAAA,CAAA;MAAAC,CAAA,EAAA,CAAAd,qBAAA,EAAAe,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,2BAA2B;AAAEC,MAAAA,MAAM,EAAE;AAAY,KAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAG1EC,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAGXF,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,IAAI,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAGTH,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACQ,IAAI,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAGTJ,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,IAAI,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAITH,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACS,IAAI,sCApBkCxB,QAAQ,CAAA;AAAA;AAAAyB,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAf,0BAAA,CAAA,IAAA,CAAA;AAAA,EAAA;EAIpDgB,MAAM,GAAAzB,YAAA,CAAA,IAAA,EAAG,CAAC,CAAA;EAIV0B,QAAQ,IAAAzB,kBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAGkB,IAAI,CAACO,MAAM,EAAE,CAAA;EAIxBC,QAAQ,IAAAzB,oBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAGiB,IAAI,CAACM,MAAM,EAAE,CAAA;AAIxBE,EAAAA,KAAK,IAAAxB,oBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAGc,IAAI,CAACU,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;;AAEhC;EAGAC,cAAc,IAAAxB,iBAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAGc,IAAI,CAACK,MAAM,EAAE,CAAA;AAAC,EAAA;IAAAhB,UAAA,EAAA;AAAA;AACjC;;;;"}
@@ -10,7 +10,8 @@ import { Tr2Lod } from '#consts/trinity';
10
10
  import { ShouldReflect, EveComponentType } from '../EveComponentTypes.js';
11
11
  import { withITr2Renderable } from '../../core/ITr2Renderable.js';
12
12
  import { Tr2RenderReason } from '../../generated/trinityCore/enums.js';
13
- import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../particle/ITr2GenericEmitter.js';
13
+ import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js';
14
+ import '../../particle/ITr2GenericEmitter/ITr2GenericEmitter.js';
14
15
 
15
16
  var _withITr2Renderable;
16
17
  let _initProto, _initClass, _init_reflectionMode, _init_extra_reflectionMode, _init_particleEmitters, _init_extra_particleEmitters, _init_particleSystems, _init_extra_particleSystems, _init_transformModifiers, _init_extra_transformModifiers, _init_display, _init_extra_display, _init_name, _init_extra_name, _init_mesh, _init_extra_mesh, _init_lodClampLow, _init_extra_lodClampLow, _init_lodSphereRadius, _init_extra_lodSphereRadius, _init_useDynamicLod, _init_extra_useDynamicLod, _init_lodFactorLow, _init_extra_lodFactorLow, _init_lodFactorMedium, _init_extra_lodFactorMedium, _init_minScreenSize, _init_extra_minScreenSize, _init_currentScreenSize, _init_extra_currentScreenSize;
@@ -93,22 +94,22 @@ new class extends _identity {
93
94
  return true;
94
95
  }
95
96
 
96
- /**
97
- * Carbon re-registers the renderable component when m_reflectionMode or
98
- * m_display change (EveChildParticleSystem.cpp:71-78).
97
+ /**
98
+ * Carbon re-registers the renderable component when m_reflectionMode or
99
+ * m_display change (EveChildParticleSystem.cpp:71-78).
99
100
  */
100
101
  OnModified(_value) {
101
102
  this.ReRegister?.();
102
103
  return true;
103
104
  }
104
- /**
105
- * The particle system child's name.
105
+ /**
106
+ * The particle system child's name.
106
107
  */
107
108
  GetName() {
108
109
  return this.name;
109
110
  }
110
- /**
111
- * Sets the particle system child's name, coercing the value to a string.
111
+ /**
112
+ * Sets the particle system child's name, coercing the value to a string.
112
113
  */
113
114
  SetName(name) {
114
115
  this.name = String(name ?? "");
@@ -119,10 +120,10 @@ new class extends _identity {
119
120
  return super.Setup(scale, rotation, translation, lowestLodVisible);
120
121
  }
121
122
 
122
- /**
123
- * Frustum/screen-size visibility against the mesh bound and the LOD probe
124
- * sphere, then per-system view-dependent updates
125
- * (EveChildParticleSystem.cpp:100-121).
123
+ /**
124
+ * Frustum/screen-size visibility against the mesh bound and the LOD probe
125
+ * sphere, then per-system view-dependent updates
126
+ * (EveChildParticleSystem.cpp:100-121).
126
127
  */
127
128
  UpdateVisibility(updateContext, _parentTransform, _parentLod) {
128
129
  const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;
@@ -141,9 +142,9 @@ new class extends _identity {
141
142
  }
142
143
  }
143
144
 
144
- /**
145
- * Stateless visibility probe used by the entity layer
146
- * (EveChildParticleSystem.cpp:123-127).
145
+ /**
146
+ * Stateless visibility probe used by the entity layer
147
+ * (EveChildParticleSystem.cpp:123-127).
147
148
  */
148
149
  IsVisible(updateContext) {
149
150
  const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;
@@ -151,9 +152,9 @@ new class extends _identity {
151
152
  return frustum?.IsSphereVisible(this.#boundingSphere) !== false && Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity) >= this.minScreenSize * lodFactor;
152
153
  }
153
154
 
154
- /**
155
- * Sorts particles and publishes this child as a renderable when visible
156
- * (EveChildParticleSystem.cpp:130-143).
155
+ /**
156
+ * Sorts particles and publishes this child as a renderable when visible
157
+ * (EveChildParticleSystem.cpp:130-143).
157
158
  */
158
159
  GetRenderables(renderables = []) {
159
160
  if (!this.#isVisible) {
@@ -174,8 +175,8 @@ new class extends _identity {
174
175
  vec4.copy(out, this.#boundingSphere);
175
176
  return true;
176
177
  }
177
- /**
178
- * Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.
178
+ /**
179
+ * Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.
179
180
  */
180
181
  HasTransparentBatches() {
181
182
  if (this.display && this.mesh) {
@@ -222,10 +223,10 @@ new class extends _identity {
222
223
  /** Carbon's synchronous pass is empty (EveChildParticleSystem.cpp:197-199). */
223
224
  UpdateSyncronous(_updateContext, _params) {}
224
225
 
225
- /**
226
- * Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the
227
- * world transform, fold the transform modifiers, rebuild the bounding and
228
- * LOD spheres, then drive the particle systems and emitters.
226
+ /**
227
+ * Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the
228
+ * world transform, fold the transform modifiers, rebuild the bounding and
229
+ * LOD spheres, then drive the particle systems and emitters.
229
230
  */
230
231
  UpdateAsyncronous(updateContext, params) {
231
232
  mat4.copy(this.#worldTransformLast, this.worldTransform);
@@ -299,9 +300,9 @@ new class extends _identity {
299
300
  return this.worldTransform;
300
301
  }
301
302
 
302
- /**
303
- * Clamps each system's particle budget when the parent's LOD changed
304
- * (EveChildParticleSystem.cpp:295-318).
303
+ /**
304
+ * Clamps each system's particle budget when the parent's LOD changed
305
+ * (EveChildParticleSystem.cpp:295-318).
305
306
  */
306
307
  ChangeLOD(lod) {
307
308
  if (!this.useDynamicLod) {
@@ -324,8 +325,8 @@ new class extends _identity {
324
325
  this.transformModifiers.push(modifier);
325
326
  }
326
327
 
327
- /** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):
328
- * ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon
328
+ /** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):
329
+ * ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon
329
330
  * redundantly re-checks m_display inside the outer display gate). */
330
331
  RegisterComponents() {
331
332
  const registry = this.GetComponentRegistry();
@@ -1 +1 @@
1
- {"version":3,"file":"EveChildParticleSystem.js","sources":["../../../../../src/trinity/eve/child/EveChildParticleSystem.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildParticleSystem.h\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { sph3 } from \"#math/sph3\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { ReflectionMode, TriBatchType } from \"#consts/graphics\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\nimport { ITr2GenericEmitterUpdateArguments } from \"../../particle/ITr2GenericEmitter.js\";\n\r\n/** A child that hosts particle systems and emitters, driving their transforms, LOD-based particle budgets, and per-frame visibility and render submission. */\r\n@type.define({ className: \"EveChildParticleSystem\", family: \"eve/child\" })\r\nexport class EveChildParticleSystem extends withITr2Renderable(EveChildTransform)\n{\r\n\r\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @type.enum(\"ReflectionMode\")\r\n reflectionMode = 3;\r\n\r\n /** m_particleEmitters (PITr2GenericEmitterVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"ITr2GenericEmitter\")\r\n particleEmitters = [];\r\n\r\n /** m_particleSystems (PTr2ParticleSystemVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"Tr2ParticleSystem\")\r\n particleSystems = [];\r\n\r\n /** m_transformModifiers (PIEveChildTransformModifierVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveChildTransformModifier\")\r\n transformModifiers = [];\r\n\r\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_name (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"Tr2InstancedMesh\")\r\n mesh = null;\r\n\r\n /** m_lodClampLow (uint32_t) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.uint32\r\n lodClampLow = 5;\r\n\r\n /** m_lodSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n lodSphereRadius = 0;\r\n\r\n /** m_useDynamicLod (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n useDynamicLod = false;\r\n\r\n /** m_lodFactorLow (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n lodFactorLow = 0.125;\r\n\r\n /** m_lodFactorMedium (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n lodFactorMedium = 0.25;\r\n\r\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n minScreenSize = 0;\r\n\r\n /** m_currentScreenSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n currentScreenSize = -1;\r\n\r\n /** m_boundingSphere (Vector4) - world-space mesh bound, radius -1 until built. */\r\n #boundingSphere = vec4.fromValues(0, 0, 0, -1);\r\n\r\n /** m_lodSphere (Vector4) - world-space LOD probe, radius -1 while lodSphereRadius is unset. */\r\n #lodSphere = vec4.fromValues(0, 0, 0, -1);\r\n\r\n /** m_worldTransformLast (Matrix) - previous frame's world transform. */\r\n #worldTransformLast = mat4.create();\r\n\r\n /** m_isVisible (bool) - result of the last UpdateVisibility pass. */\r\n #isVisible = true;\r\n\r\n /** m_hasUpdated (bool) - until an update ran, the object cannot be rendered. */\r\n #hasUpdated = false;\r\n\r\n /** Rebuilds static local transforms (EveChildParticleSystem.cpp:43-50). */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n if (this.staticTransform)\r\n {\r\n this.RebuildLocalTransform();\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Carbon re-registers the renderable component when m_reflectionMode or\r\n * m_display change (EveChildParticleSystem.cpp:71-78).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon re-registers on m_reflectionMode/m_display Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle.\")\r\n OnModified(_value)\r\n {\r\n this.ReRegister?.();\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /**\r\n * The particle system child's name.\r\n */\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /**\r\n * Sets the particle system child's name, coercing the value to a string.\r\n */\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** Forwards to the base transform setup (EveChildParticleSystem.cpp:95-98). */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n return super.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /**\r\n * Frustum/screen-size visibility against the mesh bound and the LOD probe\r\n * sphere, then per-system view-dependent updates\r\n * (EveChildParticleSystem.cpp:100-121).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\r\n UpdateVisibility(updateContext, _parentTransform, _parentLod)\r\n {\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n this.#isVisible = this.display && this.#hasUpdated && frustum?.IsSphereVisible(this.#boundingSphere) !== false;\r\n if (this.#isVisible)\r\n {\r\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\r\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\r\n this.#isVisible = this.#isVisible && this.currentScreenSize >= this.minScreenSize * lodFactor;\r\n }\r\n else\r\n {\r\n this.currentScreenSize = -1;\r\n }\r\n if (this.#isVisible)\r\n {\r\n for (const system of this.particleSystems)\r\n {\r\n system?.UpdateViewDependentData?.(frustum, this.worldTransform);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Stateless visibility probe used by the entity layer\r\n * (EveChildParticleSystem.cpp:123-127).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\r\n return frustum?.IsSphereVisible(this.#boundingSphere) !== false &&\r\n Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity) >= this.minScreenSize * lodFactor;\r\n }\r\n\r\n /**\r\n * Sorts particles and publishes this child as a renderable when visible\r\n * (EveChildParticleSystem.cpp:130-143).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (!this.#isVisible)\r\n {\r\n return renderables;\r\n }\r\n for (const system of this.particleSystems)\r\n {\r\n system?.SortParticles?.();\r\n }\r\n renderables.push(this);\r\n return renderables;\r\n }\r\n\r\n /** Copies the world-space mesh bound when built (EveChildParticleSystem.cpp:145-153). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere(out = vec4.create(), _query = 0)\r\n {\r\n if (this.#boundingSphere[3] === -1)\r\n {\r\n return false;\r\n }\r\n vec4.copy(out, this.#boundingSphere);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /**\r\n * Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.\r\n */\r\n HasTransparentBatches()\r\n {\r\n if (this.display && this.mesh)\r\n {\r\n return (this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\r\n }\r\n return false;\r\n }\r\n\r\n /**\n * Delegates the selected mesh areas at Carbon's maximum screen size, reversing\n * winding for reflection renders (EveChildParticleSystem.cpp:155-161).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Returns whether JavaScript mesh delegation committed a batch; Carbon's void method exposes no result.\")\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!this.display || !this.mesh)\n {\n return false;\n }\n\n const areas = this.mesh.GetAreas(batchType);\n if (!areas.length)\n {\n return false;\n }\n\n return this.mesh.GetBatches(\n batches,\n areas,\n perObjectData,\n Infinity,\n reason === Tr2RenderReason.TR2RENDERREASON_REFLECTION\n ) === true;\n }\n\r\n /** Distance from the view position to the world translation (EveChildParticleSystem.cpp:173-178). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition();\r\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\r\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\r\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\r\n return Math.hypot(x, y, z);\r\n }\r\n\r\n /** Carbon method GetPerObjectData (EveChildParticleSystem.cpp:180-195). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's transient EveBasicPerObjectData fill (cpp:182-194): world/worldLast transposed, worldInverse = Inverse(world). Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).\")\r\n GetPerObjectData(accumulator)\r\n {\r\n const data = accumulator.Alloc(\"EveBasicPerObjectData\");\r\n\r\n data.SetAndTranspose(\"world\", this.worldTransform);\r\n data.SetAndTranspose(\"worldLast\", this.#worldTransformLast);\r\n\r\n const inverse = mat4.create();\r\n if (!mat4.invert(inverse, this.worldTransform)) mat4.identity(inverse);\r\n data.SetAndTranspose(\"worldInverse\", inverse);\r\n\r\n return data;\r\n }\r\n\r\n /** Carbon's synchronous pass is empty (EveChildParticleSystem.cpp:197-199). */\r\n @carbon.method\r\n @impl.noop\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /**\r\n * Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the\r\n * world transform, fold the transform modifiers, rebuild the bounding and\r\n * LOD spheres, then drive the particle systems and emitters.\r\n */\r\n @carbon.method\r\n @carbon.contextual([\"camera\"])\r\n @impl.adapted\r\n @impl.reason(\"Renderer-global frustum state is read from the update context, and emitter/system updates use the backend-neutral argument record.\")\r\n UpdateAsyncronous(updateContext, params)\r\n {\r\n mat4.copy(this.#worldTransformLast, this.worldTransform);\r\n const parentTransform = params?.localToWorldTransform;\r\n if (parentTransform && parentTransform.length === 16)\r\n {\r\n this.UpdateTransform(parentTransform);\r\n }\r\n applyTransformModifiers(this, updateContext, params?.boneCount ?? 0, params?.bones ?? null);\r\n\r\n if (this.mesh?.GetBoundingBox?.(EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax))\r\n {\r\n sph3.fromBounds(EveChildParticleSystem.#localSphere, EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax);\r\n sph3.transformMat4(this.#boundingSphere, EveChildParticleSystem.#localSphere, this.worldTransform);\r\n }\r\n\r\n if (this.lodSphereRadius > 0)\r\n {\r\n vec4.set(this.#lodSphere, 0, 0, 0, this.lodSphereRadius);\r\n sph3.transformMat4(this.#lodSphere, this.#lodSphere, this.worldTransform);\r\n }\r\n else\r\n {\r\n this.#lodSphere[3] = -1;\r\n }\r\n\r\n for (const system of this.particleSystems)\n {\n system.UpdateTransform(this.worldTransform);\n }\r\n\r\n const time = Number(updateContext?.GetTime?.() ?? updateContext?.currentTime ?? 0);\r\n const gpuParticleSystem = updateContext?.GetGpuParticleSystem?.() ?? updateContext?.gpuParticleSystem ?? null;\r\n const originShift = updateContext?.GetOriginShift?.() ?? updateContext?.originShift ?? EveChildParticleSystem.#zero;\r\n\r\n if (this.particleEmitters.length)\r\n {\r\n let emitCountFactor = 1;\r\n if (!(params?.isVisible ?? true) || !this.display)\r\n {\r\n emitCountFactor = 0;\r\n }\r\n else if (this.minScreenSize > 0 && this.lodSphereRadius > 0 && this.reflectionMode === EveChildParticleSystem.ReflectionMode.REFLECT_NEVER)\r\n {\r\n // Carbon derives a scratch frustum from the Tr2Renderer view globals\r\n // here (EveChildParticleSystem.cpp:246-254); the relocated camera\r\n // state is the context frustum.\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const size = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\r\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\r\n if (size < this.minScreenSize * lodFactor)\r\n {\r\n emitCountFactor = 0;\r\n }\r\n }\r\n const args = EveChildParticleSystem.#emitterArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, this.worldTransform);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = emitCountFactor;\n for (const emitter of this.particleEmitters)\n {\n emitter.Update(args);\n }\r\n }\r\n\r\n if (this.particleSystems.length)\r\n {\r\n // Carbon passes IdentityMatrix() for the systems' own update\r\n // (EveChildParticleSystem.cpp:267-278).\r\n const args = EveChildParticleSystem.#systemArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, EveChildParticleSystem.#identity);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = 1;\n for (const system of this.particleSystems)\n {\n system.Update(args);\n }\r\n }\r\n\r\n this.#hasUpdated = true;\r\n }\r\n\r\n /** Returns the local-to-world matrix (EveChildParticleSystem.cpp:286-289). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.\")\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 * Clamps each system's particle budget when the parent's LOD changed\r\n * (EveChildParticleSystem.cpp:295-318).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD(lod)\r\n {\r\n if (!this.useDynamicLod)\r\n {\r\n return;\r\n }\r\n for (const system of this.particleSystems)\n {\n const original = Number(system.GetOriginalMaxParticles()) >>> 0;\n let particleCount = original;\r\n if (lod === Tr2Lod.TR2_LOD_LOW)\r\n {\r\n particleCount = Math.min(this.lodClampLow, Math.trunc(original * this.lodFactorLow));\r\n }\r\n else if (lod === Tr2Lod.TR2_LOD_MEDIUM)\r\n {\r\n particleCount = Math.trunc(original * this.lodFactorMedium);\r\n }\r\n system.SetMaxParticleCount(particleCount);\n }\r\n }\r\n\r\n /** Carbon method AddTransformModifier (EveChildParticleSystem.cpp:344-347). */\r\n @carbon.method\r\n @impl.implemented\r\n AddTransformModifier(modifier)\r\n {\r\n this.transformModifiers.push(modifier);\r\n }\r\n\r\n /** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):\r\n * ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon\r\n * redundantly re-checks m_display inside the outer display gate). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n if (ShouldReflect(this.reflectionMode) && this.display)\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n }\r\n }\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2Lod = Tr2Lod;\r\n\r\n static #boundsMin = vec3.create();\r\n\r\n static #boundsMax = vec3.create();\r\n\r\n static #localSphere = vec4.create();\r\n\r\n static #zero = vec3.create();\r\n\r\n static #identity = mat4.create();\r\n\r\n // Reusable emitter/system argument records (backend-neutral mirror of\r\n // ITr2GenericEmitter::UpdateArguments); child updates run sequentially, so\r\n // the shared records are non-reentrant by design.\r\n static #emitterArgs = new ITr2GenericEmitterUpdateArguments();\n\n static #systemArgs = new ITr2GenericEmitterUpdateArguments();\n\r\n}\r\n"],"names":["_EveChildParticleSyst","_identity","EveChildParticleSystem","_withITr2Renderable","withITr2Renderable","EveChildTransform","e","_init_reflectionMode","_init_extra_reflectionMode","_init_particleEmitters","_init_extra_particleEmitters","_init_particleSystems","_init_extra_particleSystems","_init_transformModifiers","_init_extra_transformModifiers","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_mesh","_init_extra_mesh","_init_lodClampLow","_init_extra_lodClampLow","_init_lodSphereRadius","_init_extra_lodSphereRadius","_init_useDynamicLod","_init_extra_useDynamicLod","_init_lodFactorLow","_init_extra_lodFactorLow","_init_lodFactorMedium","_init_extra_lodFactorMedium","_init_minScreenSize","_init_extra_minScreenSize","_init_currentScreenSize","_init_extra_currentScreenSize","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","list","boolean","string","model","uint32","float32","read","carbon","method","impl","implemented","adapted","reason","noop","contextual","reflectionMode","particleEmitters","particleSystems","transformModifiers","display","name","mesh","lodClampLow","lodSphereRadius","useDynamicLod","lodFactorLow","lodFactorMedium","minScreenSize","currentScreenSize","vec4","fromValues","mat4","create","Initialize","staticTransform","RebuildLocalTransform","OnModified","_value","ReRegister","GetName","SetName","String","Setup","scale","rotation","translation","lowestLodVisible","UpdateVisibility","updateContext","_parentTransform","_parentLod","frustum","GetFrustum","IsSphereVisible","Number","GetPixelSizeAccrossEst","Infinity","lodFactor","GetLodFactor","system","UpdateViewDependentData","worldTransform","IsVisible","GetRenderables","renderables","SortParticles","push","GetBoundingSphere","out","_query","copy","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","length","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","areas","TR2RENDERREASON_REFLECTION","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","Math","hypot","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","inverse","invert","identity","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","boneCount","bones","GetBoundingBox","sph3","fromBounds","transformMat4","set","time","GetTime","currentTime","gpuParticleSystem","GetGpuParticleSystem","originShift","GetOriginShift","emitCountFactor","isVisible","ReflectionMode","REFLECT_NEVER","size","args","vec3","emitter","Update","GetLocalToWorldTransform","ChangeLOD","lod","original","GetOriginalMaxParticles","particleCount","Tr2Lod","TR2_LOD_LOW","min","trunc","TR2_LOD_MEDIUM","SetMaxParticleCount","AddTransformModifier","modifier","RegisterComponents","registry","GetComponentRegistry","ShouldReflect","RegisterComponent","EveComponentType","ReflectionRenderable","ITr2GenericEmitterUpdateArguments","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveChildParticleSystem.js","sources":["../../../../../src/trinity/eve/child/EveChildParticleSystem.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildParticleSystem.h\n// Hand-maintained from Carbon source, promoted out of generated intake.\nimport { carbon, impl, io, type } from \"#schema\";\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\nimport { mat4 } from \"#math/mat4\";\nimport { sph3 } from \"#math/sph3\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { ReflectionMode, TriBatchType } from \"#consts/graphics\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\nimport { ITr2GenericEmitterUpdateArguments } from \"../../particle/ITr2GenericEmitter/index.js\";\n\n/** A child that hosts particle systems and emitters, driving their transforms, LOD-based particle budgets, and per-frame visibility and render submission. */\n@type.define({ className: \"EveChildParticleSystem\", family: \"eve/child\" })\nexport class EveChildParticleSystem extends withITr2Renderable(EveChildTransform)\n{\n\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\n @io.notify\n @io.persist\n @type.int32\n @type.enum(\"ReflectionMode\")\n reflectionMode = 3;\n\n /** m_particleEmitters (PITr2GenericEmitterVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"ITr2GenericEmitter\")\n particleEmitters = [];\n\n /** m_particleSystems (PTr2ParticleSystemVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"Tr2ParticleSystem\")\n particleSystems = [];\n\n /** m_transformModifiers (PIEveChildTransformModifierVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveChildTransformModifier\")\n transformModifiers = [];\n\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.boolean\n display = true;\n\n /** m_name (BlueSharedString) [READWRITE, PERSIST] */\n @io.persist\n @type.string\n name = \"\";\n\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2InstancedMesh\")\n mesh = null;\n\n /** m_lodClampLow (uint32_t) [READWRITE, PERSIST] */\n @io.persist\n @type.uint32\n lodClampLow = 5;\n\n /** m_lodSphereRadius (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n lodSphereRadius = 0;\n\n /** m_useDynamicLod (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n useDynamicLod = false;\n\n /** m_lodFactorLow (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n lodFactorLow = 0.125;\n\n /** m_lodFactorMedium (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n lodFactorMedium = 0.25;\n\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n minScreenSize = 0;\n\n /** m_currentScreenSize (float) [READ] */\n @io.read\n @type.float32\n currentScreenSize = -1;\n\n /** m_boundingSphere (Vector4) - world-space mesh bound, radius -1 until built. */\n #boundingSphere = vec4.fromValues(0, 0, 0, -1);\n\n /** m_lodSphere (Vector4) - world-space LOD probe, radius -1 while lodSphereRadius is unset. */\n #lodSphere = vec4.fromValues(0, 0, 0, -1);\n\n /** m_worldTransformLast (Matrix) - previous frame's world transform. */\n #worldTransformLast = mat4.create();\n\n /** m_isVisible (bool) - result of the last UpdateVisibility pass. */\n #isVisible = true;\n\n /** m_hasUpdated (bool) - until an update ran, the object cannot be rendered. */\n #hasUpdated = false;\n\n /** Rebuilds static local transforms (EveChildParticleSystem.cpp:43-50). */\n @carbon.method\n @impl.implemented\n Initialize()\n {\n if (this.staticTransform)\n {\n this.RebuildLocalTransform();\n }\n return true;\n }\n\n /**\n * Carbon re-registers the renderable component when m_reflectionMode or\n * m_display change (EveChildParticleSystem.cpp:71-78).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon re-registers on m_reflectionMode/m_display Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle.\")\n OnModified(_value)\n {\n this.ReRegister?.();\n return true;\n }\n\n @carbon.method\n @impl.implemented\n /**\n * The particle system child's name.\n */\n GetName()\n {\n return this.name;\n }\n\n @carbon.method\n @impl.implemented\n /**\n * Sets the particle system child's name, coercing the value to a string.\n */\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n /** Forwards to the base transform setup (EveChildParticleSystem.cpp:95-98). */\n @carbon.method\n @impl.implemented\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\n {\n return super.Setup(scale, rotation, translation, lowestLodVisible);\n }\n\n /**\n * Frustum/screen-size visibility against the mesh bound and the LOD probe\n * sphere, then per-system view-dependent updates\n * (EveChildParticleSystem.cpp:100-121).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\n UpdateVisibility(updateContext, _parentTransform, _parentLod)\n {\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n this.#isVisible = this.display && this.#hasUpdated && frustum?.IsSphereVisible(this.#boundingSphere) !== false;\n if (this.#isVisible)\n {\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\n this.#isVisible = this.#isVisible && this.currentScreenSize >= this.minScreenSize * lodFactor;\n }\n else\n {\n this.currentScreenSize = -1;\n }\n if (this.#isVisible)\n {\n for (const system of this.particleSystems)\n {\n system?.UpdateViewDependentData?.(frustum, this.worldTransform);\n }\n }\n }\n\n /**\n * Stateless visibility probe used by the entity layer\n * (EveChildParticleSystem.cpp:123-127).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Frustum and LOD factor are read from the explicit update context; a missing frustum is treated as visible.\")\n IsVisible(updateContext)\n {\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\n return frustum?.IsSphereVisible(this.#boundingSphere) !== false &&\n Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity) >= this.minScreenSize * lodFactor;\n }\n\n /**\n * Sorts particles and publishes this child as a renderable when visible\n * (EveChildParticleSystem.cpp:130-143).\n */\n @carbon.method\n @impl.implemented\n GetRenderables(renderables = [])\n {\n if (!this.#isVisible)\n {\n return renderables;\n }\n for (const system of this.particleSystems)\n {\n system?.SortParticles?.();\n }\n renderables.push(this);\n return renderables;\n }\n\n /** Copies the world-space mesh bound when built (EveChildParticleSystem.cpp:145-153). */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), _query = 0)\n {\n if (this.#boundingSphere[3] === -1)\n {\n return false;\n }\n vec4.copy(out, this.#boundingSphere);\n return true;\n }\n\n @carbon.method\n @impl.implemented\n /**\n * Whether the assigned mesh has transparent areas, when the child is displayed and a mesh is set.\n */\n HasTransparentBatches()\n {\n if (this.display && this.mesh)\n {\n return (this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\n }\n return false;\n }\n\n /**\n * Delegates the selected mesh areas at Carbon's maximum screen size, reversing\n * winding for reflection renders (EveChildParticleSystem.cpp:155-161).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Returns whether JavaScript mesh delegation committed a batch; Carbon's void method exposes no result.\")\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!this.display || !this.mesh)\n {\n return false;\n }\n\n const areas = this.mesh.GetAreas(batchType);\n if (!areas.length)\n {\n return false;\n }\n\n return this.mesh.GetBatches(\n batches,\n areas,\n perObjectData,\n Infinity,\n reason === Tr2RenderReason.TR2RENDERREASON_REFLECTION\n ) === true;\n }\n\n /** Distance from the view position to the world translation (EveChildParticleSystem.cpp:173-178). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\n GetSortValue(renderContext = null)\n {\n const viewPosition = renderContext?.GetViewPosition();\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\n return Math.hypot(x, y, z);\n }\n\n /** Carbon method GetPerObjectData (EveChildParticleSystem.cpp:180-195). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's transient EveBasicPerObjectData fill (cpp:182-194): world/worldLast transposed, worldInverse = Inverse(world). Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).\")\n GetPerObjectData(accumulator)\n {\n const data = accumulator.Alloc(\"EveBasicPerObjectData\");\n\n data.SetAndTranspose(\"world\", this.worldTransform);\n data.SetAndTranspose(\"worldLast\", this.#worldTransformLast);\n\n const inverse = mat4.create();\n if (!mat4.invert(inverse, this.worldTransform)) mat4.identity(inverse);\n data.SetAndTranspose(\"worldInverse\", inverse);\n\n return data;\n }\n\n /** Carbon's synchronous pass is empty (EveChildParticleSystem.cpp:197-199). */\n @carbon.method\n @impl.noop\n UpdateSyncronous(_updateContext, _params)\n {\n }\n\n /**\n * Per-frame async update (EveChildParticleSystem.cpp:201-280): rebuild the\n * world transform, fold the transform modifiers, rebuild the bounding and\n * LOD spheres, then drive the particle systems and emitters.\n */\n @carbon.method\n @carbon.contextual([\"camera\"])\n @impl.adapted\n @impl.reason(\"Renderer-global frustum state is read from the update context, and emitter/system updates use the backend-neutral argument record.\")\n UpdateAsyncronous(updateContext, params)\n {\n mat4.copy(this.#worldTransformLast, this.worldTransform);\n const parentTransform = params?.localToWorldTransform;\n if (parentTransform && parentTransform.length === 16)\n {\n this.UpdateTransform(parentTransform);\n }\n applyTransformModifiers(this, updateContext, params?.boneCount ?? 0, params?.bones ?? null);\n\n if (this.mesh?.GetBoundingBox?.(EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax))\n {\n sph3.fromBounds(EveChildParticleSystem.#localSphere, EveChildParticleSystem.#boundsMin, EveChildParticleSystem.#boundsMax);\n sph3.transformMat4(this.#boundingSphere, EveChildParticleSystem.#localSphere, this.worldTransform);\n }\n\n if (this.lodSphereRadius > 0)\n {\n vec4.set(this.#lodSphere, 0, 0, 0, this.lodSphereRadius);\n sph3.transformMat4(this.#lodSphere, this.#lodSphere, this.worldTransform);\n }\n else\n {\n this.#lodSphere[3] = -1;\n }\n\n for (const system of this.particleSystems)\n {\n system.UpdateTransform(this.worldTransform);\n }\n\n const time = Number(updateContext?.GetTime?.() ?? updateContext?.currentTime ?? 0);\n const gpuParticleSystem = updateContext?.GetGpuParticleSystem?.() ?? updateContext?.gpuParticleSystem ?? null;\n const originShift = updateContext?.GetOriginShift?.() ?? updateContext?.originShift ?? EveChildParticleSystem.#zero;\n\n if (this.particleEmitters.length)\n {\n let emitCountFactor = 1;\n if (!(params?.isVisible ?? true) || !this.display)\n {\n emitCountFactor = 0;\n }\n else if (this.minScreenSize > 0 && this.lodSphereRadius > 0 && this.reflectionMode === EveChildParticleSystem.ReflectionMode.REFLECT_NEVER)\n {\n // Carbon derives a scratch frustum from the Tr2Renderer view globals\n // here (EveChildParticleSystem.cpp:246-254); the relocated camera\n // state is the context frustum.\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n const size = Number(frustum?.GetPixelSizeAccrossEst?.(this.#lodSphere) ?? Infinity);\n const lodFactor = Number(updateContext?.GetLodFactor?.() ?? updateContext?.lodFactor) || 1;\n if (size < this.minScreenSize * lodFactor)\n {\n emitCountFactor = 0;\n }\n }\n const args = EveChildParticleSystem.#emitterArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, this.worldTransform);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = emitCountFactor;\n for (const emitter of this.particleEmitters)\n {\n emitter.Update(args);\n }\n }\n\n if (this.particleSystems.length)\n {\n // Carbon passes IdentityMatrix() for the systems' own update\n // (EveChildParticleSystem.cpp:267-278).\n const args = EveChildParticleSystem.#systemArgs;\n args.time = time;\n args.system = gpuParticleSystem;\n mat4.copy(args.parentTransform, EveChildParticleSystem.#identity);\n vec3.copy(args.originShift, originShift);\n args.emitCountFactor = 1;\n for (const system of this.particleSystems)\n {\n system.Update(args);\n }\n }\n\n this.#hasUpdated = true;\n }\n\n /** Returns the local-to-world matrix (EveChildParticleSystem.cpp:286-289). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.\")\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n /**\n * Clamps each system's particle budget when the parent's LOD changed\n * (EveChildParticleSystem.cpp:295-318).\n */\n @carbon.method\n @impl.implemented\n ChangeLOD(lod)\n {\n if (!this.useDynamicLod)\n {\n return;\n }\n for (const system of this.particleSystems)\n {\n const original = Number(system.GetOriginalMaxParticles()) >>> 0;\n let particleCount = original;\n if (lod === Tr2Lod.TR2_LOD_LOW)\n {\n particleCount = Math.min(this.lodClampLow, Math.trunc(original * this.lodFactorLow));\n }\n else if (lod === Tr2Lod.TR2_LOD_MEDIUM)\n {\n particleCount = Math.trunc(original * this.lodFactorMedium);\n }\n system.SetMaxParticleCount(particleCount);\n }\n }\n\n /** Carbon method AddTransformModifier (EveChildParticleSystem.cpp:344-347). */\n @carbon.method\n @impl.implemented\n AddTransformModifier(modifier)\n {\n this.transformModifiers.push(modifier);\n }\n\n /** Carbon EveChildParticleSystem::RegisterComponents (cpp:58-68):\n * ReflectionRenderable leaf self-registration behind ShouldReflect (Carbon\n * redundantly re-checks m_display inside the outer display gate). */\n @carbon.method\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry && this.display)\n {\n if (ShouldReflect(this.reflectionMode) && this.display)\n {\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\n }\n }\n }\n\n static ReflectionMode = ReflectionMode;\n\n static Tr2Lod = Tr2Lod;\n\n static #boundsMin = vec3.create();\n\n static #boundsMax = vec3.create();\n\n static #localSphere = vec4.create();\n\n static #zero = vec3.create();\n\n static #identity = mat4.create();\n\n // Reusable emitter/system argument records (backend-neutral mirror of\n // ITr2GenericEmitter::UpdateArguments); child updates run sequentially, so\n // the shared records are non-reentrant by design.\n static #emitterArgs = new ITr2GenericEmitterUpdateArguments();\n\n static #systemArgs = new ITr2GenericEmitterUpdateArguments();\n\n}\n"],"names":["_EveChildParticleSyst","_identity","EveChildParticleSystem","_withITr2Renderable","withITr2Renderable","EveChildTransform","e","_init_reflectionMode","_init_extra_reflectionMode","_init_particleEmitters","_init_extra_particleEmitters","_init_particleSystems","_init_extra_particleSystems","_init_transformModifiers","_init_extra_transformModifiers","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_mesh","_init_extra_mesh","_init_lodClampLow","_init_extra_lodClampLow","_init_lodSphereRadius","_init_extra_lodSphereRadius","_init_useDynamicLod","_init_extra_useDynamicLod","_init_lodFactorLow","_init_extra_lodFactorLow","_init_lodFactorMedium","_init_extra_lodFactorMedium","_init_minScreenSize","_init_extra_minScreenSize","_init_currentScreenSize","_init_extra_currentScreenSize","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","list","boolean","string","model","uint32","float32","read","carbon","method","impl","implemented","adapted","reason","noop","contextual","reflectionMode","particleEmitters","particleSystems","transformModifiers","display","name","mesh","lodClampLow","lodSphereRadius","useDynamicLod","lodFactorLow","lodFactorMedium","minScreenSize","currentScreenSize","vec4","fromValues","mat4","create","Initialize","staticTransform","RebuildLocalTransform","OnModified","_value","ReRegister","GetName","SetName","String","Setup","scale","rotation","translation","lowestLodVisible","UpdateVisibility","updateContext","_parentTransform","_parentLod","frustum","GetFrustum","IsSphereVisible","Number","GetPixelSizeAccrossEst","Infinity","lodFactor","GetLodFactor","system","UpdateViewDependentData","worldTransform","IsVisible","GetRenderables","renderables","SortParticles","push","GetBoundingSphere","out","_query","copy","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","length","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","areas","TR2RENDERREASON_REFLECTION","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","Math","hypot","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","inverse","invert","identity","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","boneCount","bones","GetBoundingBox","sph3","fromBounds","transformMat4","set","time","GetTime","currentTime","gpuParticleSystem","GetGpuParticleSystem","originShift","GetOriginShift","emitCountFactor","isVisible","ReflectionMode","REFLECT_NEVER","size","args","vec3","emitter","Update","GetLocalToWorldTransform","ChangeLOD","lod","original","GetOriginalMaxParticles","particleCount","Tr2Lod","TR2_LOD_LOW","min","trunc","TR2_LOD_MEDIUM","SetMaxParticleCount","AddTransformModifier","modifier","RegisterComponents","registry","GetComponentRegistry","ShouldReflect","RegisterComponent","EveComponentType","ReflectionRenderable","ITr2GenericEmitterUpdateArguments","constructor"],"mappings":"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"}
@@ -78,6 +78,11 @@ new class extends _identity {
78
78
  }
79
79
  return _EveChildTransform.#compose(out, this.scaling, this.rotation, this.translation);
80
80
  }
81
+
82
+ /**
83
+ * Rebuilds the local matrix from scale, rotation, and translation when useSRT
84
+ * is enabled, then returns it.
85
+ */
81
86
  RebuildLocalTransform() {
82
87
  if (this.useSRT) {
83
88
  _EveChildTransform.#compose(this.localTransform, this.scaling, this.rotation, this.translation);
@@ -1 +1 @@
1
- {"version":3,"file":"EveChildTransform.js","sources":["../../../../../src/trinity/eve/child/EveChildTransform.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.cpp\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { carbon, impl, type } from \"#schema\";\r\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\r\n\r\n\r\n// Carbon's registered space-object children multiple-inherit EveEntity\r\n// alongside EveChildTransform (e.g. EveChildMesh.h:56-64, EveChildContainer.h\r\n// :33-41). JavaScript single inheritance cannot express that, so the port\r\n// HOISTS the EveEntity registration lifecycle\r\n// (Register/UnRegister/GetComponentRegistry/component state) to the child\r\n// root at IEveSpaceObjectChild, and every child reaches it from there.\r\n//\r\n// THIS IS A DELIBERATE OVER-APPROXIMATION, and the consequence is worth\r\n// stating plainly: Carbon fans out through BlueCastPtr<EveEntity>, which\r\n// FAILS for a child whose class is not an EveEntity, so that child is never\r\n// registered. Here the cast cannot fail, so such a child registers anyway -\r\n// with no components, base RegisterComponents being a no-op. Same observable\r\n// result today; not the same rule.\r\n//\r\n// A NOTE THAT USED TO LIVE HERE SAID THE `child?.Register?.()` HEDGES WERE\r\n// STANDING IN FOR THAT CAST. They were not, and the claim outlived its own\r\n// premise: once EveEntity sits at the child root, every element of every\r\n// child list has Register, and the hedge could not fire. The method guards\r\n// were dropped on 2026-09-05. The one that survives is in BehaviorGroup,\r\n// which resolves its target by STRING NAME rather than by type.\r\n\r\n/**\r\n * Shared base for space-object children: holds the SRT values, local and world\r\n * transforms, and the rules by which a child's world transform is derived from\r\n * its parent's each frame.\r\n */\r\n@type.define({\r\n className: \"EveChildTransform\",\r\n family: \"eve/child\"\r\n})\r\nexport class EveChildTransform extends EveSpaceObjectChild\r\n{\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n @type.vec3\r\n scaling = vec3.fromValues(1, 1, 1);\r\n\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @type.mat4\r\n localTransform = mat4.create();\r\n\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @type.boolean\r\n staticTransform = false;\r\n\r\n @type.boolean\r\n useSRT = true;\r\n\r\n @type.boolean\r\n useStaticRotation = false;\r\n\r\n @type.boolean\r\n useStaticScale = false;\r\n\r\n /**\r\n * Recomposes the local transform from the current scaling, rotation and\r\n * translation; a child with useSRT off keeps its authored localTransform\r\n * untouched.\r\n */\r\n /**\r\n * Carbon ComputeLocalTransform (cpp:101-104): a CONST query - a static or\r\n * non-SRT child answers its stored local transform; otherwise the SRT\r\n * triple composes WITHOUT writing localTransform. Contrast\r\n * RebuildLocalTransform below, which mutates and does not consult\r\n * staticTransform. Carbon returns Matrix by value; the org out-last\r\n * convention receives it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ComputeLocalTransform(out = mat4.create())\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.copy(out, this.localTransform);\r\n }\r\n return EveChildTransform.#compose(out, this.scaling, this.rotation, this.translation);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n RebuildLocalTransform()\r\n {\r\n if (this.useSRT)\r\n {\r\n EveChildTransform.#compose(this.localTransform, this.scaling, this.rotation, this.translation);\r\n }\r\n return this.localTransform;\r\n }\r\n\r\n /**\r\n * Applies the supplied SRT components (each optional - omitted ones keep their current value) and rebuilds the local transform; a child with useSRT off returns its authored localTransform unchanged.\r\n * @param {Number} [_lowestLodVisible] - accepted for Carbon signature parity, unused here\r\n * @returns {Float32Array} the child's live local transform\r\n */\r\n Setup(scale = null, rotation = null, translation = null, _lowestLodVisible = null)\r\n {\r\n if (!this.useSRT)\r\n {\r\n return this.localTransform;\r\n }\r\n if (scale)\r\n {\r\n vec3.copy(this.scaling, scale);\r\n }\r\n if (rotation)\r\n {\r\n quat.copy(this.rotation, rotation);\r\n }\r\n if (translation)\r\n {\r\n vec3.copy(this.translation, translation);\r\n }\r\n return this.RebuildLocalTransform();\r\n }\r\n\r\n /**\r\n * Setup that also latches useStaticRotation, so from then on UpdateTransform\r\n * strips the parent's rotation and the child keeps a fixed world orientation.\r\n */\r\n SetupWithStaticRotation(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.useStaticRotation = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /**\r\n * Setup that also latches staticTransform, so from then on UpdateTransform\r\n * reuses the local transform as-is instead of recomposing it from the SRT\r\n * values every frame.\r\n */\r\n SetupWithStaticTransform(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.staticTransform = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n // Carbon: m_worldTransform = m_localTransform * parentTransform in\r\n // row-vector convention (local first, then parent), which is\r\n // mat4.multiply(world, parent, local) in gl-matrix - matching\r\n // EveTransform.UpdateViewDependentData.\r\n\r\n /**\r\n * Recomputes the child's world transform from its parent for this frame - the single place a child's placement is driven. A staticTransform or non-SRT child reuses its local transform as-is; otherwise it is recomposed first, and when useStaticScale or useStaticRotation is set the parent is decomposed and rebuilt with unit scale and/or identity rotation before the two are combined.\r\n * @param {Float32Array} parentTransform - borrowed, read only\r\n * @returns {Float32Array} the child's live world transform\r\n */\r\n UpdateTransform(parentTransform)\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n this.RebuildLocalTransform();\r\n if (!this.useStaticRotation && !this.useStaticScale)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n const scale = mat4.getScaling(vec3.create(), parentTransform);\r\n const rotation = EveChildTransform.#getRotation(quat.create(), parentTransform, scale);\r\n const translation = mat4.getTranslation(vec3.create(), parentTransform);\r\n if (this.useStaticScale)\r\n {\r\n vec3.set(scale, 1, 1, 1);\r\n }\r\n if (this.useStaticRotation)\r\n {\r\n quat.identity(rotation);\r\n }\r\n const modifiedParentTransform = EveChildTransform.#compose(mat4.create(), scale, rotation, translation);\r\n return mat4.multiply(this.worldTransform, modifiedParentTransform, this.localTransform);\r\n }\r\n\r\n /** Builds a transform matrix from a scale, rotation and translation triple. */\r\n static #compose(out, scale, rotation, translation)\r\n {\r\n return mat4.fromRotationTranslationScale(out, rotation, translation, scale);\r\n }\r\n\r\n /**\r\n * Extracts the normalized rotation quaternion from a transform by dividing\r\n * each basis column by the matching component of the supplied scale first, so\r\n * non-uniform scaling does not skew the result.\r\n */\r\n static #getRotation(out, transform, scale)\r\n {\r\n const normalized = mat4.create();\r\n for (let column = 0; column < 3; column++)\r\n {\r\n const divisor = scale[column];\r\n for (let row = 0; row < 3; row++)\r\n {\r\n normalized[column * 4 + row] = divisor ? transform[column * 4 + row] / divisor : 0;\r\n }\r\n }\r\n mat4.getRotation(out, normalized);\r\n return quat.normalize(out, out);\r\n }\r\n}\r\n\r\n// Module ping-pong scratch for the modifier fold (assume-dirty, never pooled;\r\n// child updates run sequentially so it is non-reentrant).\r\nconst modifierFoldScratch = mat4.create();\r\n\r\n/**\r\n * Folds a child's transform modifiers over its worldTransform in order, each\r\n * modifier's output feeding the next. Carbon inlines this loop inside each\r\n * EveChildMesh/Container/ParticleSystem UpdateAsyncronous\r\n * (`m_worldTransform = (*it)->ApplyTransform(m_worldTransform, boneCount, bones)`);\r\n * this is a JS-only helper (zero-alloc ping-pong between worldTransform and a\r\n * module scratch buffer so no modifier reads and writes the same matrix), kept a\r\n * free function rather than a method so it stays off the Carbon method surface.\r\n * The frame context is threaded through to camera-dependent modifiers.\r\n * @param {EveChildTransform} child - owns transformModifiers + worldTransform\r\n * @param {Object} context - frame context (EveUpdateContext)\r\n * @param {Number} boneCount\r\n * @param {Float32Array|null} bones\r\n * @returns {Float32Array} child.worldTransform\r\n */\r\nexport function applyTransformModifiers(child, context, boneCount, bones)\r\n{\r\n const modifiers = child.transformModifiers;\r\n\r\n if (!modifiers || modifiers.length === 0)\r\n {\r\n return child.worldTransform;\r\n }\r\n\r\n let source = child.worldTransform;\r\n let target = modifierFoldScratch;\r\n\r\n for (const modifier of modifiers)\r\n {\r\n modifier.ApplyTransform(context, source, boneCount, bones, target);\r\n const swap = source;\r\n source = target;\r\n target = swap;\r\n }\r\n\r\n if (source !== child.worldTransform)\r\n {\r\n mat4.copy(child.worldTransform, source);\r\n }\r\n return child.worldTransform;\r\n}\r\n"],"names":["_EveChildTransform","_identity","EveChildTransform","EveSpaceObjectChild","e","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_rotation","_init_extra_rotation","_init_localTransform","_init_extra_localTransform","_init_worldTransform","_init_extra_worldTransform","_init_staticTransform","_init_extra_staticTransform","_init_useSRT","_init_extra_useSRT","_init_useStaticRotation","_init_extra_useStaticRotation","_init_useStaticScale","_init_extra_useStaticScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","vec3","quat","mat4","boolean","carbon","method","impl","implemented","constructor","args","translation","create","scaling","fromValues","rotation","localTransform","worldTransform","staticTransform","useSRT","useStaticRotation","useStaticScale","ComputeLocalTransform","out","copy","RebuildLocalTransform","Setup","scale","_lowestLodVisible","SetupWithStaticRotation","lowestLodVisible","SetupWithStaticTransform","UpdateTransform","parentTransform","multiply","getScaling","getTranslation","set","identity","modifiedParentTransform","#compose","fromRotationTranslationScale","#getRotation","transform","normalized","column","divisor","row","getRotation","normalize","modifierFoldScratch","applyTransformModifiers","child","context","boneCount","bones","modifiers","transformModifiers","length","source","target","modifier","ApplyTransform","swap"],"mappings":"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"}
1
+ {"version":3,"file":"EveChildTransform.js","sources":["../../../../../src/trinity/eve/child/EveChildTransform.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildTransform.cpp\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { carbon, impl, type } from \"#schema\";\r\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\r\n\r\n\r\n// Carbon's registered space-object children multiple-inherit EveEntity\r\n// alongside EveChildTransform (e.g. EveChildMesh.h:56-64, EveChildContainer.h\r\n// :33-41). JavaScript single inheritance cannot express that, so the port\r\n// HOISTS the EveEntity registration lifecycle\r\n// (Register/UnRegister/GetComponentRegistry/component state) to the child\r\n// root at IEveSpaceObjectChild, and every child reaches it from there.\r\n//\r\n// THIS IS A DELIBERATE OVER-APPROXIMATION, and the consequence is worth\r\n// stating plainly: Carbon fans out through BlueCastPtr<EveEntity>, which\r\n// FAILS for a child whose class is not an EveEntity, so that child is never\r\n// registered. Here the cast cannot fail, so such a child registers anyway -\r\n// with no components, base RegisterComponents being a no-op. Same observable\r\n// result today; not the same rule.\r\n//\r\n// A NOTE THAT USED TO LIVE HERE SAID THE `child?.Register?.()` HEDGES WERE\r\n// STANDING IN FOR THAT CAST. They were not, and the claim outlived its own\r\n// premise: once EveEntity sits at the child root, every element of every\r\n// child list has Register, and the hedge could not fire. The method guards\r\n// were dropped on 2026-09-05. The one that survives is in BehaviorGroup,\r\n// which resolves its target by STRING NAME rather than by type.\r\n\r\n/**\r\n * Shared base for space-object children: holds the SRT values, local and world\r\n * transforms, and the rules by which a child's world transform is derived from\r\n * its parent's each frame.\r\n */\r\n@type.define({\r\n className: \"EveChildTransform\",\r\n family: \"eve/child\"\r\n})\r\nexport class EveChildTransform extends EveSpaceObjectChild\r\n{\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n @type.vec3\r\n scaling = vec3.fromValues(1, 1, 1);\r\n\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @type.mat4\r\n localTransform = mat4.create();\r\n\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @type.boolean\r\n staticTransform = false;\r\n\r\n @type.boolean\r\n useSRT = true;\r\n\r\n @type.boolean\r\n useStaticRotation = false;\r\n\r\n @type.boolean\r\n useStaticScale = false;\r\n\r\n /**\r\n * Recomposes the local transform from the current scaling, rotation and\r\n * translation; a child with useSRT off keeps its authored localTransform\r\n * untouched.\r\n */\r\n /**\r\n * Carbon ComputeLocalTransform (cpp:101-104): a CONST query - a static or\r\n * non-SRT child answers its stored local transform; otherwise the SRT\r\n * triple composes WITHOUT writing localTransform. Contrast\r\n * RebuildLocalTransform below, which mutates and does not consult\r\n * staticTransform. Carbon returns Matrix by value; the org out-last\r\n * convention receives it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ComputeLocalTransform(out = mat4.create())\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.copy(out, this.localTransform);\r\n }\r\n return EveChildTransform.#compose(out, this.scaling, this.rotation, this.translation);\r\n }\r\n\r\n /**\r\n * Rebuilds the local matrix from scale, rotation, and translation when useSRT\r\n * is enabled, then returns it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RebuildLocalTransform()\r\n {\r\n if (this.useSRT)\r\n {\r\n EveChildTransform.#compose(this.localTransform, this.scaling, this.rotation, this.translation);\r\n }\r\n return this.localTransform;\r\n }\r\n\r\n /**\r\n * Applies the supplied SRT components (each optional - omitted ones keep their current value) and rebuilds the local transform; a child with useSRT off returns its authored localTransform unchanged.\r\n * @param {Number} [_lowestLodVisible] - accepted for Carbon signature parity, unused here\r\n * @returns {Float32Array} the child's live local transform\r\n */\r\n Setup(scale = null, rotation = null, translation = null, _lowestLodVisible = null)\r\n {\r\n if (!this.useSRT)\r\n {\r\n return this.localTransform;\r\n }\r\n if (scale)\r\n {\r\n vec3.copy(this.scaling, scale);\r\n }\r\n if (rotation)\r\n {\r\n quat.copy(this.rotation, rotation);\r\n }\r\n if (translation)\r\n {\r\n vec3.copy(this.translation, translation);\r\n }\r\n return this.RebuildLocalTransform();\r\n }\r\n\r\n /**\r\n * Setup that also latches useStaticRotation, so from then on UpdateTransform\r\n * strips the parent's rotation and the child keeps a fixed world orientation.\r\n */\r\n SetupWithStaticRotation(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.useStaticRotation = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /**\r\n * Setup that also latches staticTransform, so from then on UpdateTransform\r\n * reuses the local transform as-is instead of recomposing it from the SRT\r\n * values every frame.\r\n */\r\n SetupWithStaticTransform(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n this.staticTransform = true;\r\n return this.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n // Carbon: m_worldTransform = m_localTransform * parentTransform in\r\n // row-vector convention (local first, then parent), which is\r\n // mat4.multiply(world, parent, local) in gl-matrix - matching\r\n // EveTransform.UpdateViewDependentData.\r\n\r\n /**\r\n * Recomputes the child's world transform from its parent for this frame - the single place a child's placement is driven. A staticTransform or non-SRT child reuses its local transform as-is; otherwise it is recomposed first, and when useStaticScale or useStaticRotation is set the parent is decomposed and rebuilt with unit scale and/or identity rotation before the two are combined.\r\n * @param {Float32Array} parentTransform - borrowed, read only\r\n * @returns {Float32Array} the child's live world transform\r\n */\r\n UpdateTransform(parentTransform)\r\n {\r\n if (this.staticTransform || !this.useSRT)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n this.RebuildLocalTransform();\r\n if (!this.useStaticRotation && !this.useStaticScale)\r\n {\r\n return mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\r\n }\r\n const scale = mat4.getScaling(vec3.create(), parentTransform);\r\n const rotation = EveChildTransform.#getRotation(quat.create(), parentTransform, scale);\r\n const translation = mat4.getTranslation(vec3.create(), parentTransform);\r\n if (this.useStaticScale)\r\n {\r\n vec3.set(scale, 1, 1, 1);\r\n }\r\n if (this.useStaticRotation)\r\n {\r\n quat.identity(rotation);\r\n }\r\n const modifiedParentTransform = EveChildTransform.#compose(mat4.create(), scale, rotation, translation);\r\n return mat4.multiply(this.worldTransform, modifiedParentTransform, this.localTransform);\r\n }\r\n\r\n /** Builds a transform matrix from a scale, rotation and translation triple. */\r\n static #compose(out, scale, rotation, translation)\r\n {\r\n return mat4.fromRotationTranslationScale(out, rotation, translation, scale);\r\n }\r\n\r\n /**\r\n * Extracts the normalized rotation quaternion from a transform by dividing\r\n * each basis column by the matching component of the supplied scale first, so\r\n * non-uniform scaling does not skew the result.\r\n */\r\n static #getRotation(out, transform, scale)\r\n {\r\n const normalized = mat4.create();\r\n for (let column = 0; column < 3; column++)\r\n {\r\n const divisor = scale[column];\r\n for (let row = 0; row < 3; row++)\r\n {\r\n normalized[column * 4 + row] = divisor ? transform[column * 4 + row] / divisor : 0;\r\n }\r\n }\r\n mat4.getRotation(out, normalized);\r\n return quat.normalize(out, out);\r\n }\r\n}\r\n\r\n// Module ping-pong scratch for the modifier fold (assume-dirty, never pooled;\r\n// child updates run sequentially so it is non-reentrant).\r\nconst modifierFoldScratch = mat4.create();\r\n\r\n/**\r\n * Folds a child's transform modifiers over its worldTransform in order, each\r\n * modifier's output feeding the next. Carbon inlines this loop inside each\r\n * EveChildMesh/Container/ParticleSystem UpdateAsyncronous\r\n * (`m_worldTransform = (*it)->ApplyTransform(m_worldTransform, boneCount, bones)`);\r\n * this is a JS-only helper (zero-alloc ping-pong between worldTransform and a\r\n * module scratch buffer so no modifier reads and writes the same matrix), kept a\r\n * free function rather than a method so it stays off the Carbon method surface.\r\n * The frame context is threaded through to camera-dependent modifiers.\r\n * @param {EveChildTransform} child - owns transformModifiers + worldTransform\r\n * @param {Object} context - frame context (EveUpdateContext)\r\n * @param {Number} boneCount\r\n * @param {Float32Array|null} bones\r\n * @returns {Float32Array} child.worldTransform\r\n */\r\nexport function applyTransformModifiers(child, context, boneCount, bones)\r\n{\r\n const modifiers = child.transformModifiers;\r\n\r\n if (!modifiers || modifiers.length === 0)\r\n {\r\n return child.worldTransform;\r\n }\r\n\r\n let source = child.worldTransform;\r\n let target = modifierFoldScratch;\r\n\r\n for (const modifier of modifiers)\r\n {\r\n modifier.ApplyTransform(context, source, boneCount, bones, target);\r\n const swap = source;\r\n source = target;\r\n target = swap;\r\n }\r\n\r\n if (source !== child.worldTransform)\r\n {\r\n mat4.copy(child.worldTransform, source);\r\n }\r\n return child.worldTransform;\r\n}\r\n"],"names":["_EveChildTransform","_identity","EveChildTransform","EveSpaceObjectChild","e","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_rotation","_init_extra_rotation","_init_localTransform","_init_extra_localTransform","_init_worldTransform","_init_extra_worldTransform","_init_staticTransform","_init_extra_staticTransform","_init_useSRT","_init_extra_useSRT","_init_useStaticRotation","_init_extra_useStaticRotation","_init_useStaticScale","_init_extra_useStaticScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","vec3","quat","mat4","boolean","carbon","method","impl","implemented","constructor","args","translation","create","scaling","fromValues","rotation","localTransform","worldTransform","staticTransform","useSRT","useStaticRotation","useStaticScale","ComputeLocalTransform","out","copy","RebuildLocalTransform","Setup","scale","_lowestLodVisible","SetupWithStaticRotation","lowestLodVisible","SetupWithStaticTransform","UpdateTransform","parentTransform","multiply","getScaling","getTranslation","set","identity","modifiedParentTransform","#compose","fromRotationTranslationScale","#getRotation","transform","normalized","column","divisor","row","getRotation","normalize","modifierFoldScratch","applyTransformModifiers","child","context","boneCount","bones","modifiers","transformModifiers","length","source","target","modifier","ApplyTransform","swap"],"mappings":"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"}
@@ -142,6 +142,8 @@ new class extends _identity {
142
142
  // PARENT transform, deliberately not this child's world transform; captured
143
143
  // from the update params each async pass.
144
144
  #parentTranslation = vec3.create();
145
+
146
+ /** Enables target fading when the turret's locator changes. */
145
147
  constructor() {
146
148
  super();
147
149
  this.#target.SetFadeOnLocatorChange(true);
@@ -201,6 +203,11 @@ new class extends _identity {
201
203
  }
202
204
  return super.OnModified(value);
203
205
  }
206
+
207
+ /**
208
+ * Loads the configured firing-effect child and installs it when loading
209
+ * returns an object.
210
+ */
204
211
  #LoadFiringEffectFromPath() {
205
212
  if (!this.resourceLoader) return;
206
213
  const loaded = this.resourceLoader.LoadChild(this.firingEffectResPath, this);