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

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 (935) 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/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -107,7 +107,7 @@ class EveSceneStaticParticles extends (_withITr2Renderable = withITr2Renderable(
107
107
  return;
108
108
  }
109
109
  mat4.copy(this.lastWorldMatrix, this.worldMatrix);
110
- const origin = updateContext?.GetOrigin?.();
110
+ const origin = updateContext?.GetOrigin();
111
111
  // Double-precision subtraction (Carbon Vector3d, cpp:100), narrowed per
112
112
  // component at the matrix boundary (cpp:102).
113
113
  vec3.set(OFFSET_SCRATCH, Math.fround(this.centerOfClusters[0] - (origin?.[0] ?? 0)), Math.fround(this.centerOfClusters[1] - (origin?.[1] ?? 0)), Math.fround(this.centerOfClusters[2] - (origin?.[2] ?? 0)));
@@ -129,12 +129,12 @@ class EveSceneStaticParticles extends (_withITr2Renderable = withITr2Renderable(
129
129
  if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true || this.clusters.length === 0 || !this.mesh) {
130
130
  return;
131
131
  }
132
- const frustum = updateContext?.GetFrustum?.();
132
+ const frustum = updateContext?.GetFrustum();
133
133
  if (!frustum) {
134
134
  return;
135
135
  }
136
136
  this.estimatedSize = frustum.GetPixelSizeAccross(this.boundingSphere);
137
- const estimatedSizeWithinBounds = this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor?.() ?? 1);
137
+ const estimatedSizeWithinBounds = this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor() ?? 1);
138
138
  const viewPos = frustum.viewPos ?? frustum.m_viewPos;
139
139
  const dx = this.center[0] - (viewPos?.[0] ?? 0);
140
140
  const dy = this.center[1] - (viewPos?.[1] ?? 0);
@@ -147,7 +147,7 @@ class EveSceneStaticParticles extends (_withITr2Renderable = withITr2Renderable(
147
147
  * center with the local radius through the ONE-ARG IsSphereVisible - the
148
148
  * back-plane-ignored TriFrustum quirk applies (cullBackPlane false). */
149
149
  IsVisible(updateContext) {
150
- const frustum = updateContext?.GetFrustum?.();
150
+ const frustum = updateContext?.GetFrustum();
151
151
  if (!frustum) {
152
152
  return false;
153
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EveSceneStaticParticles.js","sources":["../../../../../../src/trinity/eve/particles/static/EveSceneStaticParticles.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/EveSceneStaticParticles.h\n// trinity/trinity/Eve/Renderable/EveSceneStaticParticles.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\nimport { withITr2Renderable } from \"../../../core/ITr2Renderable.js\";\n\r\n/** Carbon PARTICLE_CLUSTER_MIN_SIZE (EveSceneStaticParticles.cpp:14, a\r\n * file-scope const - NOT in the header): the pixel-size floor, scaled by the\r\n * context lodFactor, below which the cluster system is invisible. */\r\nexport const PARTICLE_CLUSTER_MIN_SIZE = 100;\r\n\r\n// Packed (x, y, z, radius) world-space cull-sphere scratch.\r\nconst SPHERE_SCRATCH = vec4.create();\r\nconst DEBUG_CENTER_SCRATCH = vec3.create();\r\nconst OFFSET_SCRATCH = vec3.create();\r\n\r\n\r\nfunction createRandom(seed)\r\n{\r\n let state = (seed >>> 0) || 0x6d2b79f5;\r\n return () =>\r\n {\r\n state = (Math.imul(state, 1664525) + 1013904223) >>> 0;\r\n return state / 0xffffffff;\r\n };\r\n}\r\n\r\n\r\nfunction randomGauss(random, deviation)\r\n{\r\n const first = Math.max(random(), 1e-100);\r\n return deviation * Math.pow(-2 * Math.log(first), 0.75) * Math.cos(random() * Math.PI * 2);\r\n}\r\n\r\n/**\r\n * A scene-scale field of static particle clusters, held as CPU instance rows\r\n * around a double-precision aggregate origin and drawn through a single\r\n * instanced mesh.\r\n */\r\n@type.define({ className: \"EveSceneStaticParticles\", family: \"eve/scene\" })\r\nexport class EveSceneStaticParticles extends withITr2Renderable(CjsModel)\n{\r\n\r\n /** Carbon ClusterData records retained on the CPU. */\r\n @type.list(\"ClusterData\")\r\n clusters = [];\r\n\r\n /** Double-precision aggregate origin used for camera-relative placement. */\r\n @type.rawStruct(\"Vector3d\")\r\n centerOfClusters = new Float64Array(3);\r\n\r\n /** Local particle bounds rebuilt with the CPU instance data. */\r\n @type.vec4\r\n boundingSphere = new Float32Array(4);\r\n\r\n /** m_clusterParticleDensityAdjust (float) [READ] */\r\n @io.read\r\n @type.float32\r\n clusterParticleDensityAdjust = 1;\r\n\r\n /** m_estimatedSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedSize = 0;\r\n\r\n /** m_clusterParticleDensity (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n clusterParticleDensity = 100;\r\n\r\n /** m_maxSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n maxSize = 200;\r\n\r\n /** m_minSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n minSize = 5;\r\n\r\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE] */\r\n @io.readwrite\r\n @type.objectRef(\"Tr2InstancedMesh\")\r\n mesh = null;\r\n\r\n /** m_maxParticleCount (size_t) [READWRITE] */\r\n @io.readwrite\r\n @type.uint64\r\n maxParticleCount = 100000;\r\n\r\n /** m_visible (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n visible = false;\r\n\r\n /** m_worldMatrix (EveSceneStaticParticles.h:93; ctor identity, cpp:27) -\r\n * the camera-relative placement stamped by Update. */\r\n worldMatrix = mat4.create();\r\n\r\n /** m_lastWorldMatrix (h:94; ctor identity, cpp:28) - the previous frame's\r\n * placement, consumed by GetPerObjectData for motion vectors. */\r\n lastWorldMatrix = mat4.create();\r\n\r\n /** m_center (h:95; ctor zero, cpp:24) - the world-space sphere center\r\n * stamped by Update. */\r\n center = vec3.create();\r\n\r\n /** Carbon's post-hydration initializer has no additional work. */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n return true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::Update (cpp:90-105): the same\r\n * low-quality/clusters/mesh triple early-out as UpdateVisibility; stashes\r\n * the previous world matrix, rebuilds the camera-relative translation from\r\n * the DOUBLE-precision offset centerOfClusters - origin (narrowed to\r\n * float32 per component only when it enters the matrix, Carbon's\r\n * float(offset.x) casts), and stamps the world-space sphere center. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n Update(updateContext)\r\n {\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n\r\n mat4.copy(this.lastWorldMatrix, this.worldMatrix);\r\n const origin = updateContext?.GetOrigin?.();\r\n // Double-precision subtraction (Carbon Vector3d, cpp:100), narrowed per\r\n // component at the matrix boundary (cpp:102).\r\n vec3.set(\r\n OFFSET_SCRATCH,\r\n Math.fround(this.centerOfClusters[0] - (origin?.[0] ?? 0)),\r\n Math.fround(this.centerOfClusters[1] - (origin?.[1] ?? 0)),\r\n Math.fround(this.centerOfClusters[2] - (origin?.[2] ?? 0))\r\n );\r\n mat4.fromTranslation(this.worldMatrix, OFFSET_SCRATCH);\r\n vec3.transformMat4(this.center, this.boundingSphere, this.worldMatrix);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::UpdateVisibility (cpp:107-123): visible\r\n * is stamped false first (so a quality toggle / cleared clusters drop the\r\n * system the same frame); the pixel size is measured on the UNTRANSLATED\r\n * LOCAL bounding sphere (cpp:117) while the inside test and the frustum\r\n * test use the world-space center - Carbon's asymmetry, preserved; the\r\n * camera being inside the cluster sphere bypasses BOTH the frustum test\r\n * and the size gate; the size gate is strict > against\r\n * PARTICLE_CLUSTER_MIN_SIZE * lodFactor. estimatedSize is stamped even\r\n * when invisible - GetBatches consumes it as the LOD size (cpp:139). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n UpdateVisibility(updateContext)\r\n {\r\n this.visible = false;\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n const frustum = updateContext?.GetFrustum?.();\r\n if (!frustum)\r\n {\r\n return;\r\n }\r\n this.estimatedSize = frustum.GetPixelSizeAccross(this.boundingSphere);\r\n\r\n const estimatedSizeWithinBounds =\r\n this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor?.() ?? 1);\r\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\r\n const dx = this.center[0] - (viewPos?.[0] ?? 0);\r\n const dy = this.center[1] - (viewPos?.[1] ?? 0);\r\n const dz = this.center[2] - (viewPos?.[2] ?? 0);\r\n const inBoundingSphere =\r\n dx * dx + dy * dy + dz * dz <= this.boundingSphere[3] * this.boundingSphere[3];\r\n\r\n this.visible = inBoundingSphere || (this.IsVisible(updateContext) && estimatedSizeWithinBounds);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::IsVisible (cpp:170-174): the world-space\r\n * center with the local radius through the ONE-ARG IsSphereVisible - the\r\n * back-plane-ignored TriFrustum quirk applies (cullBackPlane false). */\r\n @carbon.method\r\n @impl.implemented\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum?.();\r\n if (!frustum)\r\n {\r\n return false;\r\n }\r\n vec4.set(SPHERE_SCRATCH, this.center[0], this.center[1], this.center[2], this.boundingSphere[3]);\r\n return frustum.IsSphereVisible(SPHERE_SCRATCH) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetRenderables (cpp:129-135): pushes the\r\n * object ITSELF when visible; the frustum parameter is deliberately unused\r\n * (kept for the scene call-site contract, EveSpaceScene.cpp:1504-1507). */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(_frustum, out = [])\r\n {\r\n if (this.visible)\r\n {\r\n out.push(this);\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetBatches (cpp:137-140): the mesh's\r\n * areas of the requested type with the stamped estimatedSize as the LOD\r\n * screen size (engine-resolved at realization in the GPU-free model). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The estimatedSize LOD select is engine-resolved at realization; the delegation structure is ported.\")\r\n GetBatches(batches, batchType, perObjectData, _reason)\r\n {\r\n const areas = this.mesh?.GetAreas(batchType) ?? batchType;\r\n return this.mesh?.GetBatches?.(batches, areas, perObjectData, this.estimatedSize) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetShadowBatches (cpp:142-145): the\r\n * particle clusters never cast shadows. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowBatches(_batches, _perObjectData, _shadowPixelSize)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetPerObjectData (cpp:147-158): the\r\n * world/lastWorld pair (HLSL packing transposes of single matrices - no\r\n * composition). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Trinity allocates the catalogued record and encodes world/lastWorld into the canonical stored layout. Both fields are CPU-filled; the engine only realizes and binds the packed payload.\")\r\n GetPerObjectData(accumulator)\r\n {\r\n const data = accumulator?.Alloc?.(\"EveSceneStaticParticlesPerObjectData\");\r\n if (!data)\r\n {\r\n return null;\r\n }\r\n data.SetAndTranspose(\"world\", this.worldMatrix);\r\n data.SetAndTranspose(\"lastWorld\", this.lastWorldMatrix);\r\n return data;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::HasTransparentBatches (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetSortValue (cpp:165-168). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSortValue()\r\n {\r\n return 0;\r\n }\r\n\r\n /** Adds Carbon's sole debug option to a Set-like option bag. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2DebugRendererOptions is represented by an injected Set-like option bag.\")\r\n GetDebugOptions(options = new Set())\r\n {\r\n if (options?.add)\r\n {\r\n options.add(\"Bounding Sphere\");\r\n }\r\n else\r\n {\r\n options?.insert?.(\"Bounding Sphere\");\r\n }\r\n return options;\r\n }\r\n\r\n /** Draws the transformed cluster bounds through the injected debug renderer. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"ITr2DebugRenderer2 is an injected engine-owned capability; its Effect::Wireframe value is retained as 0.\")\r\n RenderDebugInfo(renderer)\r\n {\r\n if (!renderer?.HasOption?.(this, \"Bounding Sphere\"))\r\n {\r\n return;\r\n }\r\n vec3.transformMat4(DEBUG_CENTER_SCRATCH, this.boundingSphere, this.worldMatrix);\r\n renderer.DrawSphere?.(\r\n this,\r\n DEBUG_CENTER_SCRATCH,\r\n this.boundingSphere[3],\r\n 10,\r\n 0,\r\n 0xffffff00\r\n );\r\n }\r\n\r\n /** Carbon method AddCluster (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's native ClusterData/Vector3d value is represented by a plain record with a Float64Array position.\")\r\n AddCluster(position, radius, color1, color2, randomSeed)\r\n {\r\n this.clusters.push({\r\n position: new Float64Array(position),\r\n radius,\r\n color1: vec4.clone(color1),\r\n color2: vec4.clone(color2),\r\n randomSeed: randomSeed >>> 0\r\n });\r\n }\r\n\r\n /** Carbon method Rebuild (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Builds Carbon's CPU instance rows and bounds; a deterministic local PRNG replaces Carbon's process-global C rand state, and boolean success plus safe empty-cluster cleanup replace Carbon's void native buffer path.\")\r\n Rebuild()\r\n {\r\n const instanceData = this.mesh?.GetInstanceGeometryResource?.();\r\n if (!instanceData?.SetElementLayout || !instanceData?.SetData)\r\n {\r\n return false;\r\n }\r\n if (this.clusters.length === 0)\r\n {\r\n instanceData.DestroyData?.();\r\n this.centerOfClusters.fill(0);\r\n this.boundingSphere.fill(0);\r\n return true;\r\n }\r\n\r\n this.centerOfClusters.fill(0);\r\n for (const cluster of this.clusters)\r\n {\r\n this.centerOfClusters[0] += cluster.position[0];\r\n this.centerOfClusters[1] += cluster.position[1];\r\n this.centerOfClusters[2] += cluster.position[2];\r\n }\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.centerOfClusters[axis] /= this.clusters.length;\r\n }\r\n\r\n let unadjustedCount = 0;\r\n for (const cluster of this.clusters)\r\n {\r\n unadjustedCount += Math.max(0, Math.trunc(this.clusterParticleDensity * cluster.radius));\r\n }\r\n const maximum = Math.max(0, Number(this.maxParticleCount));\r\n this.clusterParticleDensityAdjust = unadjustedCount > maximum && unadjustedCount > 0\r\n ? maximum / unadjustedCount\r\n : 1;\r\n\r\n const rows = [];\r\n for (let clusterIndex = 0; clusterIndex < this.clusters.length; clusterIndex++)\r\n {\r\n const cluster = this.clusters[clusterIndex];\r\n const count = Math.max(0, Math.trunc(this.clusterParticleDensityAdjust * this.clusterParticleDensity * cluster.radius));\r\n const deviation = Math.min(cluster.radius, 2000);\r\n const relative = vec3.fromValues(\r\n cluster.position[0] - this.centerOfClusters[0],\r\n cluster.position[1] - this.centerOfClusters[1],\r\n cluster.position[2] - this.centerOfClusters[2]\r\n );\r\n const random = createRandom(cluster.randomSeed || clusterIndex + 1);\r\n\r\n for (let index = 0; index < count; index++)\r\n {\r\n const offset = vec3.fromValues(\r\n randomGauss(random, 2 * deviation),\r\n randomGauss(random, deviation),\r\n randomGauss(random, 2 * deviation)\r\n );\r\n const length = vec3.length(offset);\r\n const position = vec3.clone(relative);\r\n vec3.add(position, position, offset);\r\n if (length > 0)\r\n {\r\n vec3.scaleAndAdd(position, position, offset, cluster.radius / length);\r\n }\r\n\r\n const mix = random();\r\n const color = vec4.create();\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n color[channel] = cluster.color1[channel] + (cluster.color2[channel] - cluster.color1[channel]) * mix;\r\n }\r\n color[3] = count > 0 ? index / count : 0;\r\n const size = random() * Math.min(cluster.radius / 10, this.maxSize) + this.minSize;\r\n rows.push([position, size, color]);\r\n }\r\n }\r\n\r\n instanceData.SetElementLayout([\r\n { usage: \"POSITION\", usageIndex: 0, type: \"FLOAT32_3\", name: \"position\" },\r\n { usage: \"TEXCOORD\", usageIndex: 0, type: \"FLOAT32_1\", name: \"size\" },\r\n { usage: \"TEXCOORD\", usageIndex: 1, type: \"FLOAT32_4\", name: \"color\" }\r\n ]);\r\n instanceData.SetData(rows);\r\n instanceData.UpdateBoundingBox?.();\r\n instanceData.UpdateData?.();\r\n\r\n const bounds = instanceData.GetBoundingBox?.();\r\n if (bounds?.min && bounds?.max)\r\n {\r\n this.mesh.SetBoundingBox?.(bounds.min, bounds.max);\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.boundingSphere[axis] = (bounds.min[axis] + bounds.max[axis]) * 0.5;\r\n }\r\n this.boundingSphere[3] = Math.hypot(\r\n bounds.max[0] - bounds.min[0],\r\n bounds.max[1] - bounds.min[1],\r\n bounds.max[2] - bounds.min[2]\r\n ) * 0.5;\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon method ClearClusters (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon QueryInterface<Tr2RuntimeInstanceData> becomes the portable instance-resource duck exposed by the mesh.\")\r\n ClearClusters()\r\n {\r\n this.clusters.length = 0;\r\n this.mesh?.GetInstanceGeometryResource?.()?.DestroyData?.();\r\n }\r\n\r\n}\r\n"],"names":["PARTICLE_CLUSTER_MIN_SIZE","SPHERE_SCRATCH","vec4","create","DEBUG_CENTER_SCRATCH","vec3","OFFSET_SCRATCH","createRandom","seed","state","Math","imul","randomGauss","random","deviation","first","max","pow","log","cos","PI","_EveSceneStaticPartic","EveSceneStaticParticles","_withITr2Renderable","withITr2Renderable","CjsModel","e","_init_clusters","_init_extra_clusters","_init_centerOfClusters","_init_extra_centerOfClusters","_init_boundingSphere","_init_extra_boundingSphere","_init_clusterParticleDensityAdjust","_init_extra_clusterParticleDensityAdjust","_init_estimatedSize","_init_extra_estimatedSize","_init_clusterParticleDensity","_init_extra_clusterParticleDensity","_init_maxSize","_init_extra_maxSize","_init_minSize","_init_extra_minSize","_init_mesh","_init_extra_mesh","_init_maxParticleCount","_init_extra_maxParticleCount","_init_visible","_init_extra_visible","_initProto","c","_initClass","_applyDecs","type","define","className","family","list","rawStruct","io","read","float32","readwrite","objectRef","uint64","boolean","carbon","method","impl","implemented","adapted","reason","clusters","centerOfClusters","Float64Array","boundingSphere","Float32Array","clusterParticleDensityAdjust","estimatedSize","clusterParticleDensity","maxSize","minSize","mesh","maxParticleCount","visible","worldMatrix","mat4","lastWorldMatrix","center","Initialize","Update","updateContext","lowQuality","device","length","copy","origin","GetOrigin","set","fround","fromTranslation","transformMat4","UpdateVisibility","frustum","GetFrustum","GetPixelSizeAccross","estimatedSizeWithinBounds","GetLodFactor","viewPos","m_viewPos","dx","dy","dz","inBoundingSphere","IsVisible","IsSphereVisible","GetRenderables","_frustum","out","push","GetBatches","batches","batchType","perObjectData","_reason","areas","GetAreas","GetShadowBatches","_batches","_perObjectData","_shadowPixelSize","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","HasTransparentBatches","GetSortValue","GetDebugOptions","options","Set","add","insert","RenderDebugInfo","renderer","HasOption","DrawSphere","AddCluster","position","radius","color1","color2","randomSeed","clone","Rebuild","instanceData","GetInstanceGeometryResource","SetElementLayout","SetData","DestroyData","fill","cluster","axis","unadjustedCount","trunc","maximum","Number","rows","clusterIndex","count","min","relative","fromValues","index","offset","scaleAndAdd","mix","color","channel","size","usage","usageIndex","name","UpdateBoundingBox","UpdateData","bounds","GetBoundingBox","SetBoundingBox","hypot","ClearClusters"],"mappings":"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"}
1
+ {"version":3,"file":"EveSceneStaticParticles.js","sources":["../../../../../../src/trinity/eve/particles/static/EveSceneStaticParticles.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/EveSceneStaticParticles.h\n// trinity/trinity/Eve/Renderable/EveSceneStaticParticles.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\nimport { withITr2Renderable } from \"../../../core/ITr2Renderable.js\";\n\r\n/** Carbon PARTICLE_CLUSTER_MIN_SIZE (EveSceneStaticParticles.cpp:14, a\r\n * file-scope const - NOT in the header): the pixel-size floor, scaled by the\r\n * context lodFactor, below which the cluster system is invisible. */\r\nexport const PARTICLE_CLUSTER_MIN_SIZE = 100;\r\n\r\n// Packed (x, y, z, radius) world-space cull-sphere scratch.\r\nconst SPHERE_SCRATCH = vec4.create();\r\nconst DEBUG_CENTER_SCRATCH = vec3.create();\r\nconst OFFSET_SCRATCH = vec3.create();\r\n\r\n\r\nfunction createRandom(seed)\r\n{\r\n let state = (seed >>> 0) || 0x6d2b79f5;\r\n return () =>\r\n {\r\n state = (Math.imul(state, 1664525) + 1013904223) >>> 0;\r\n return state / 0xffffffff;\r\n };\r\n}\r\n\r\n\r\nfunction randomGauss(random, deviation)\r\n{\r\n const first = Math.max(random(), 1e-100);\r\n return deviation * Math.pow(-2 * Math.log(first), 0.75) * Math.cos(random() * Math.PI * 2);\r\n}\r\n\r\n/**\r\n * A scene-scale field of static particle clusters, held as CPU instance rows\r\n * around a double-precision aggregate origin and drawn through a single\r\n * instanced mesh.\r\n */\r\n@type.define({ className: \"EveSceneStaticParticles\", family: \"eve/scene\" })\r\nexport class EveSceneStaticParticles extends withITr2Renderable(CjsModel)\n{\r\n\r\n /** Carbon ClusterData records retained on the CPU. */\r\n @type.list(\"ClusterData\")\r\n clusters = [];\r\n\r\n /** Double-precision aggregate origin used for camera-relative placement. */\r\n @type.rawStruct(\"Vector3d\")\r\n centerOfClusters = new Float64Array(3);\r\n\r\n /** Local particle bounds rebuilt with the CPU instance data. */\r\n @type.vec4\r\n boundingSphere = new Float32Array(4);\r\n\r\n /** m_clusterParticleDensityAdjust (float) [READ] */\r\n @io.read\r\n @type.float32\r\n clusterParticleDensityAdjust = 1;\r\n\r\n /** m_estimatedSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedSize = 0;\r\n\r\n /** m_clusterParticleDensity (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n clusterParticleDensity = 100;\r\n\r\n /** m_maxSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n maxSize = 200;\r\n\r\n /** m_minSize (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n minSize = 5;\r\n\r\n /** m_mesh (Tr2InstancedMeshPtr) [READWRITE] */\r\n @io.readwrite\r\n @type.objectRef(\"Tr2InstancedMesh\")\r\n mesh = null;\r\n\r\n /** m_maxParticleCount (size_t) [READWRITE] */\r\n @io.readwrite\r\n @type.uint64\r\n maxParticleCount = 100000;\r\n\r\n /** m_visible (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n visible = false;\r\n\r\n /** m_worldMatrix (EveSceneStaticParticles.h:93; ctor identity, cpp:27) -\r\n * the camera-relative placement stamped by Update. */\r\n worldMatrix = mat4.create();\r\n\r\n /** m_lastWorldMatrix (h:94; ctor identity, cpp:28) - the previous frame's\r\n * placement, consumed by GetPerObjectData for motion vectors. */\r\n lastWorldMatrix = mat4.create();\r\n\r\n /** m_center (h:95; ctor zero, cpp:24) - the world-space sphere center\r\n * stamped by Update. */\r\n center = vec3.create();\r\n\r\n /** Carbon's post-hydration initializer has no additional work. */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n return true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::Update (cpp:90-105): the same\r\n * low-quality/clusters/mesh triple early-out as UpdateVisibility; stashes\r\n * the previous world matrix, rebuilds the camera-relative translation from\r\n * the DOUBLE-precision offset centerOfClusters - origin (narrowed to\r\n * float32 per component only when it enters the matrix, Carbon's\r\n * float(offset.x) casts), and stamps the world-space sphere center. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n Update(updateContext)\r\n {\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n\r\n mat4.copy(this.lastWorldMatrix, this.worldMatrix);\r\n const origin = updateContext?.GetOrigin();\r\n // Double-precision subtraction (Carbon Vector3d, cpp:100), narrowed per\r\n // component at the matrix boundary (cpp:102).\r\n vec3.set(\r\n OFFSET_SCRATCH,\r\n Math.fround(this.centerOfClusters[0] - (origin?.[0] ?? 0)),\r\n Math.fround(this.centerOfClusters[1] - (origin?.[1] ?? 0)),\r\n Math.fround(this.centerOfClusters[2] - (origin?.[2] ?? 0))\r\n );\r\n mat4.fromTranslation(this.worldMatrix, OFFSET_SCRATCH);\r\n vec3.transformMat4(this.center, this.boundingSphere, this.worldMatrix);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::UpdateVisibility (cpp:107-123): visible\r\n * is stamped false first (so a quality toggle / cleared clusters drop the\r\n * system the same frame); the pixel size is measured on the UNTRANSLATED\r\n * LOCAL bounding sphere (cpp:117) while the inside test and the frustum\r\n * test use the world-space center - Carbon's asymmetry, preserved; the\r\n * camera being inside the cluster sphere bypasses BOTH the frustum test\r\n * and the size gate; the size gate is strict > against\r\n * PARTICLE_CLUSTER_MIN_SIZE * lodFactor. estimatedSize is stamped even\r\n * when invisible - GetBatches consumes it as the LOD size (cpp:139). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::IsLowQuality relocates onto the update-context duck (lowQuality, default false).\")\r\n UpdateVisibility(updateContext)\r\n {\r\n this.visible = false;\r\n if ((updateContext?.lowQuality ?? updateContext?.device?.lowQuality) === true ||\r\n this.clusters.length === 0 || !this.mesh)\r\n {\r\n return;\r\n }\r\n const frustum = updateContext?.GetFrustum();\r\n if (!frustum)\r\n {\r\n return;\r\n }\r\n this.estimatedSize = frustum.GetPixelSizeAccross(this.boundingSphere);\r\n\r\n const estimatedSizeWithinBounds =\r\n this.estimatedSize > PARTICLE_CLUSTER_MIN_SIZE * (updateContext?.GetLodFactor() ?? 1);\r\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\r\n const dx = this.center[0] - (viewPos?.[0] ?? 0);\r\n const dy = this.center[1] - (viewPos?.[1] ?? 0);\r\n const dz = this.center[2] - (viewPos?.[2] ?? 0);\r\n const inBoundingSphere =\r\n dx * dx + dy * dy + dz * dz <= this.boundingSphere[3] * this.boundingSphere[3];\r\n\r\n this.visible = inBoundingSphere || (this.IsVisible(updateContext) && estimatedSizeWithinBounds);\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::IsVisible (cpp:170-174): the world-space\r\n * center with the local radius through the ONE-ARG IsSphereVisible - the\r\n * back-plane-ignored TriFrustum quirk applies (cullBackPlane false). */\r\n @carbon.method\r\n @impl.implemented\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum();\r\n if (!frustum)\r\n {\r\n return false;\r\n }\r\n vec4.set(SPHERE_SCRATCH, this.center[0], this.center[1], this.center[2], this.boundingSphere[3]);\r\n return frustum.IsSphereVisible(SPHERE_SCRATCH) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetRenderables (cpp:129-135): pushes the\r\n * object ITSELF when visible; the frustum parameter is deliberately unused\r\n * (kept for the scene call-site contract, EveSpaceScene.cpp:1504-1507). */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(_frustum, out = [])\r\n {\r\n if (this.visible)\r\n {\r\n out.push(this);\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetBatches (cpp:137-140): the mesh's\r\n * areas of the requested type with the stamped estimatedSize as the LOD\r\n * screen size (engine-resolved at realization in the GPU-free model). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The estimatedSize LOD select is engine-resolved at realization; the delegation structure is ported.\")\r\n GetBatches(batches, batchType, perObjectData, _reason)\r\n {\r\n const areas = this.mesh?.GetAreas(batchType) ?? batchType;\r\n return this.mesh?.GetBatches?.(batches, areas, perObjectData, this.estimatedSize) === true;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetShadowBatches (cpp:142-145): the\r\n * particle clusters never cast shadows. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowBatches(_batches, _perObjectData, _shadowPixelSize)\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetPerObjectData (cpp:147-158): the\r\n * world/lastWorld pair (HLSL packing transposes of single matrices - no\r\n * composition). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Trinity allocates the catalogued record and encodes world/lastWorld into the canonical stored layout. Both fields are CPU-filled; the engine only realizes and binds the packed payload.\")\r\n GetPerObjectData(accumulator)\r\n {\r\n const data = accumulator?.Alloc?.(\"EveSceneStaticParticlesPerObjectData\");\r\n if (!data)\r\n {\r\n return null;\r\n }\r\n data.SetAndTranspose(\"world\", this.worldMatrix);\r\n data.SetAndTranspose(\"lastWorld\", this.lastWorldMatrix);\r\n return data;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::HasTransparentBatches (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n return false;\r\n }\r\n\r\n /** Carbon EveSceneStaticParticles::GetSortValue (cpp:165-168). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSortValue()\r\n {\r\n return 0;\r\n }\r\n\r\n /** Adds Carbon's sole debug option to a Set-like option bag. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2DebugRendererOptions is represented by an injected Set-like option bag.\")\r\n GetDebugOptions(options = new Set())\r\n {\r\n if (options?.add)\r\n {\r\n options.add(\"Bounding Sphere\");\r\n }\r\n else\r\n {\r\n options?.insert?.(\"Bounding Sphere\");\r\n }\r\n return options;\r\n }\r\n\r\n /** Draws the transformed cluster bounds through the injected debug renderer. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"ITr2DebugRenderer2 is an injected engine-owned capability; its Effect::Wireframe value is retained as 0.\")\r\n RenderDebugInfo(renderer)\r\n {\r\n if (!renderer?.HasOption?.(this, \"Bounding Sphere\"))\r\n {\r\n return;\r\n }\r\n vec3.transformMat4(DEBUG_CENTER_SCRATCH, this.boundingSphere, this.worldMatrix);\r\n renderer.DrawSphere?.(\r\n this,\r\n DEBUG_CENTER_SCRATCH,\r\n this.boundingSphere[3],\r\n 10,\r\n 0,\r\n 0xffffff00\r\n );\r\n }\r\n\r\n /** Carbon method AddCluster (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's native ClusterData/Vector3d value is represented by a plain record with a Float64Array position.\")\r\n AddCluster(position, radius, color1, color2, randomSeed)\r\n {\r\n this.clusters.push({\r\n position: new Float64Array(position),\r\n radius,\r\n color1: vec4.clone(color1),\r\n color2: vec4.clone(color2),\r\n randomSeed: randomSeed >>> 0\r\n });\r\n }\r\n\r\n /** Carbon method Rebuild (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Builds Carbon's CPU instance rows and bounds; a deterministic local PRNG replaces Carbon's process-global C rand state, and boolean success plus safe empty-cluster cleanup replace Carbon's void native buffer path.\")\r\n Rebuild()\r\n {\r\n const instanceData = this.mesh?.GetInstanceGeometryResource?.();\r\n if (!instanceData?.SetElementLayout || !instanceData?.SetData)\r\n {\r\n return false;\r\n }\r\n if (this.clusters.length === 0)\r\n {\r\n instanceData.DestroyData?.();\r\n this.centerOfClusters.fill(0);\r\n this.boundingSphere.fill(0);\r\n return true;\r\n }\r\n\r\n this.centerOfClusters.fill(0);\r\n for (const cluster of this.clusters)\r\n {\r\n this.centerOfClusters[0] += cluster.position[0];\r\n this.centerOfClusters[1] += cluster.position[1];\r\n this.centerOfClusters[2] += cluster.position[2];\r\n }\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.centerOfClusters[axis] /= this.clusters.length;\r\n }\r\n\r\n let unadjustedCount = 0;\r\n for (const cluster of this.clusters)\r\n {\r\n unadjustedCount += Math.max(0, Math.trunc(this.clusterParticleDensity * cluster.radius));\r\n }\r\n const maximum = Math.max(0, Number(this.maxParticleCount));\r\n this.clusterParticleDensityAdjust = unadjustedCount > maximum && unadjustedCount > 0\r\n ? maximum / unadjustedCount\r\n : 1;\r\n\r\n const rows = [];\r\n for (let clusterIndex = 0; clusterIndex < this.clusters.length; clusterIndex++)\r\n {\r\n const cluster = this.clusters[clusterIndex];\r\n const count = Math.max(0, Math.trunc(this.clusterParticleDensityAdjust * this.clusterParticleDensity * cluster.radius));\r\n const deviation = Math.min(cluster.radius, 2000);\r\n const relative = vec3.fromValues(\r\n cluster.position[0] - this.centerOfClusters[0],\r\n cluster.position[1] - this.centerOfClusters[1],\r\n cluster.position[2] - this.centerOfClusters[2]\r\n );\r\n const random = createRandom(cluster.randomSeed || clusterIndex + 1);\r\n\r\n for (let index = 0; index < count; index++)\r\n {\r\n const offset = vec3.fromValues(\r\n randomGauss(random, 2 * deviation),\r\n randomGauss(random, deviation),\r\n randomGauss(random, 2 * deviation)\r\n );\r\n const length = vec3.length(offset);\r\n const position = vec3.clone(relative);\r\n vec3.add(position, position, offset);\r\n if (length > 0)\r\n {\r\n vec3.scaleAndAdd(position, position, offset, cluster.radius / length);\r\n }\r\n\r\n const mix = random();\r\n const color = vec4.create();\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n color[channel] = cluster.color1[channel] + (cluster.color2[channel] - cluster.color1[channel]) * mix;\r\n }\r\n color[3] = count > 0 ? index / count : 0;\r\n const size = random() * Math.min(cluster.radius / 10, this.maxSize) + this.minSize;\r\n rows.push([position, size, color]);\r\n }\r\n }\r\n\r\n instanceData.SetElementLayout([\r\n { usage: \"POSITION\", usageIndex: 0, type: \"FLOAT32_3\", name: \"position\" },\r\n { usage: \"TEXCOORD\", usageIndex: 0, type: \"FLOAT32_1\", name: \"size\" },\r\n { usage: \"TEXCOORD\", usageIndex: 1, type: \"FLOAT32_4\", name: \"color\" }\r\n ]);\r\n instanceData.SetData(rows);\r\n instanceData.UpdateBoundingBox?.();\r\n instanceData.UpdateData?.();\r\n\r\n const bounds = instanceData.GetBoundingBox?.();\r\n if (bounds?.min && bounds?.max)\r\n {\r\n this.mesh.SetBoundingBox?.(bounds.min, bounds.max);\r\n for (let axis = 0; axis < 3; axis++)\r\n {\r\n this.boundingSphere[axis] = (bounds.min[axis] + bounds.max[axis]) * 0.5;\r\n }\r\n this.boundingSphere[3] = Math.hypot(\r\n bounds.max[0] - bounds.min[0],\r\n bounds.max[1] - bounds.min[1],\r\n bounds.max[2] - bounds.min[2]\r\n ) * 0.5;\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon method ClearClusters (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon QueryInterface<Tr2RuntimeInstanceData> becomes the portable instance-resource duck exposed by the mesh.\")\r\n ClearClusters()\r\n {\r\n this.clusters.length = 0;\r\n this.mesh?.GetInstanceGeometryResource?.()?.DestroyData?.();\r\n }\r\n\r\n}\r\n"],"names":["PARTICLE_CLUSTER_MIN_SIZE","SPHERE_SCRATCH","vec4","create","DEBUG_CENTER_SCRATCH","vec3","OFFSET_SCRATCH","createRandom","seed","state","Math","imul","randomGauss","random","deviation","first","max","pow","log","cos","PI","_EveSceneStaticPartic","EveSceneStaticParticles","_withITr2Renderable","withITr2Renderable","CjsModel","e","_init_clusters","_init_extra_clusters","_init_centerOfClusters","_init_extra_centerOfClusters","_init_boundingSphere","_init_extra_boundingSphere","_init_clusterParticleDensityAdjust","_init_extra_clusterParticleDensityAdjust","_init_estimatedSize","_init_extra_estimatedSize","_init_clusterParticleDensity","_init_extra_clusterParticleDensity","_init_maxSize","_init_extra_maxSize","_init_minSize","_init_extra_minSize","_init_mesh","_init_extra_mesh","_init_maxParticleCount","_init_extra_maxParticleCount","_init_visible","_init_extra_visible","_initProto","c","_initClass","_applyDecs","type","define","className","family","list","rawStruct","io","read","float32","readwrite","objectRef","uint64","boolean","carbon","method","impl","implemented","adapted","reason","clusters","centerOfClusters","Float64Array","boundingSphere","Float32Array","clusterParticleDensityAdjust","estimatedSize","clusterParticleDensity","maxSize","minSize","mesh","maxParticleCount","visible","worldMatrix","mat4","lastWorldMatrix","center","Initialize","Update","updateContext","lowQuality","device","length","copy","origin","GetOrigin","set","fround","fromTranslation","transformMat4","UpdateVisibility","frustum","GetFrustum","GetPixelSizeAccross","estimatedSizeWithinBounds","GetLodFactor","viewPos","m_viewPos","dx","dy","dz","inBoundingSphere","IsVisible","IsSphereVisible","GetRenderables","_frustum","out","push","GetBatches","batches","batchType","perObjectData","_reason","areas","GetAreas","GetShadowBatches","_batches","_perObjectData","_shadowPixelSize","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","HasTransparentBatches","GetSortValue","GetDebugOptions","options","Set","add","insert","RenderDebugInfo","renderer","HasOption","DrawSphere","AddCluster","position","radius","color1","color2","randomSeed","clone","Rebuild","instanceData","GetInstanceGeometryResource","SetElementLayout","SetData","DestroyData","fill","cluster","axis","unadjustedCount","trunc","maximum","Number","rows","clusterIndex","count","min","relative","fromValues","index","offset","scaleAndAdd","mix","color","channel","size","usage","usageIndex","name","UpdateBoundingBox","UpdateData","bounds","GetBoundingBox","SetBoundingBox","hypot","ClearClusters"],"mappings":"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"}
@@ -6,19 +6,24 @@ import { TriBatchType } from '#consts/graphics';
6
6
  import { io, type, carbon, impl } from '#schema';
7
7
  import { IEveFiringEffectElement as _IEveFiringEffectElem } from '../../IEveFiringEffectElement.js';
8
8
  import { EveComponentType } from '../../EveComponentTypes.js';
9
- import { Tr2QuadRenderer as _Tr2QuadRenderer } from '../../../core/Tr2QuadRenderer.js';
10
- import { Tr2RenderBatch } from '../../../core/batch/Tr2RenderBatch.js';
9
+ import { Tr2QuadRenderer as _Tr2QuadRenderer } from '../../../core/Tr2QuadRenderer/Tr2QuadRenderer.js';
10
+ import { Tr2RenderBatch } from '../../../core/batch/TriRenderBatch/Tr2RenderBatch.js';
11
+ import '../../../core/batch/TriRenderBatch/DefaultKeyGenerator.js';
12
+ import '../../../core/batch/TriRenderBatch/EffectKeyGenerator.js';
13
+ import '../../../core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js';
14
+ import '#consts/render-context';
11
15
  import { getCurveDuration, getTime, updateCurveSet, makeEndpointTransforms, getOriginShift } from './CjsStretchRuntime.js';
12
16
  import { withITr2Renderable } from '../../../core/ITr2Renderable.js';
13
- import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../../particle/ITr2GenericEmitter.js';
17
+ import { ITr2GenericEmitterUpdateArguments as _ITr2GenericEmitterUp } from '../../../particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js';
18
+ import '../../../particle/ITr2GenericEmitter/ITr2GenericEmitter.js';
14
19
 
15
20
  var _withITr2Renderable;
16
21
  let _initProto, _initClass, _init_name, _init_extra_name, _init_loop, _init_extra_loop, _init_start, _init_extra_start, _init_end, _init_extra_end, _init_effect, _init_extra_effect, _init_destinationEmitter, _init_extra_destinationEmitter, _init_sourceEmitter, _init_extra_sourceEmitter, _init_quadCount, _init_extra_quadCount, _init_destinationObserver, _init_extra_destinationObserver, _init_sourceObserver, _init_extra_sourceObserver, _init_destinationLight, _init_extra_destinationLight, _init_sourceLight, _init_extra_sourceLight, _init_boundingRadius, _init_extra_boundingRadius;
17
22
 
18
- /**
19
- * A simplified stretch that renders the span between two points as a strip of
20
- * quads with its own effect, end emitters, observers and point lights, instead
21
- * of hosting child objects.
23
+ /**
24
+ * A simplified stretch that renders the span between two points as a strip of
25
+ * quads with its own effect, end emitters, observers and point lights, instead
26
+ * of hosting child objects.
22
27
  */
23
28
  let _EveStretch;
24
29
  new class extends _identity {
@@ -57,17 +62,17 @@ new class extends _identity {
57
62
  #intensity = 1;
58
63
  #effectData = [vec4.fromValues(0, 0, 0, Math.random()), vec4.fromValues(1, 0, 0, 0)];
59
64
 
60
- /**
61
- * Post-hydration hook; validates the authored quad count. Carbon also builds
62
- * the procedural GPU buffers here, which is engine work in this port.
65
+ /**
66
+ * Post-hydration hook; validates the authored quad count. Carbon also builds
67
+ * the procedural GPU buffers here, which is engine work in this port.
63
68
  */
64
69
  Initialize() {
65
70
  return this.OnModified();
66
71
  }
67
72
 
68
- /**
69
- * Re-validates quadCount against the 128-quad procedural geometry limit after
70
- * a model update and throws a RangeError when it is exceeded.
73
+ /**
74
+ * Re-validates quadCount against the 128-quad procedural geometry limit after
75
+ * a model update and throws a RangeError when it is exceeded.
71
76
  */
72
77
  OnModified() {
73
78
  if (this.quadCount > _EveStretch.MAX_QUAD_COUNT) {
@@ -76,9 +81,9 @@ new class extends _identity {
76
81
  return true;
77
82
  }
78
83
 
79
- /**
80
- * Sets the destination-end scale and adopts it as the current one, undoing any
81
- * hidden-destination override left by DisplayEndPoints.
84
+ /**
85
+ * Sets the destination-end scale and adopts it as the current one, undoing any
86
+ * hidden-destination override left by DisplayEndPoints.
82
87
  */
83
88
  SetDestObjectScale(scale) {
84
89
  this.#destinationScale = this.#currentDestinationScale = Number(scale);
@@ -92,9 +97,9 @@ new class extends _identity {
92
97
  return Math.max(getCurveDuration(this.start), getCurveDuration(this.loop));
93
98
  }
94
99
 
95
- /**
96
- * Begins a shot: reseeds the per-shot random value carried in the effect data, plays the start and loop sets from -delay and stops the end set.
97
- * @param {Number} [delay] - seconds the curve sets wait before reaching time zero
100
+ /**
101
+ * Begins a shot: reseeds the per-shot random value carried in the effect data, plays the start and loop sets from -delay and stops the end set.
102
+ * @param {Number} [delay] - seconds the curve sets wait before reaching time zero
98
103
  */
99
104
  StartFiring(delay = 0) {
100
105
  this.#effectData[0][3] = Math.random();
@@ -110,43 +115,43 @@ new class extends _identity {
110
115
  this.end?.Play();
111
116
  }
112
117
 
113
- /**
114
- * Sets both endpoints, accepting either a 16-element source transform - of
115
- * which only the translation is kept, since the span orientation is rebuilt
116
- * each update - or a source position.
118
+ /**
119
+ * Sets both endpoints, accepting either a 16-element source transform - of
120
+ * which only the translation is kept, since the span orientation is rebuilt
121
+ * each update - or a source position.
117
122
  */
118
123
  SetFiringTransform(source, destination) {
119
124
  if (source?.length === 16) mat4.getTranslation(this.#source, source);else vec3.copy(this.#source, source);
120
125
  vec3.copy(this.#destination, destination);
121
126
  }
122
127
 
123
- /**
124
- * Hides the destination end by zeroing its current scale; the source end is
125
- * always drawn, so the source flag is ignored.
128
+ /**
129
+ * Hides the destination end by zeroing its current scale; the source end is
130
+ * always drawn, so the source flag is ignored.
126
131
  */
127
132
  DisplayEndPoints(_displaySource, displayDestination) {
128
133
  this.#currentDestinationScale = displayDestination ? this.#destinationScale : 0;
129
134
  }
130
135
 
131
- /**
132
- * Shows or hides the stretch, gating visibility, renderable collection and
133
- * light contribution.
136
+ /**
137
+ * Shows or hides the stretch, gating visibility, renderable collection and
138
+ * light contribution.
134
139
  */
135
140
  SetDisplay(display) {
136
141
  this.#visible = !!display;
137
142
  }
138
143
 
139
- /**
140
- * Sets the intensity uploaded in per-object data, clamped to zero at the
141
- * bottom; a zero intensity also suppresses visibility, renderables and lights.
144
+ /**
145
+ * Sets the intensity uploaded in per-object data, clamped to zero at the
146
+ * bottom; a zero intensity also suppresses visibility, renderables and lights.
142
147
  */
143
148
  SetIntensity(intensity) {
144
149
  this.#intensity = Math.max(0, Number(intensity));
145
150
  }
146
151
 
147
- /**
148
- * IEveFiringEffectElement synchronous hook; EveStretch2 does all of its work
149
- * in the asynchronous phase.
152
+ /**
153
+ * IEveFiringEffectElement synchronous hook; EveStretch2 does all of its work
154
+ * in the asynchronous phase.
150
155
  */
151
156
  UpdateEffectSync(_context) {
152
157
  return true;
@@ -157,11 +162,11 @@ new class extends _identity {
157
162
  return this.Update(context);
158
163
  }
159
164
 
160
- /**
161
- * Advances the start, loop and end curve sets on time measured from the first
162
- * update, records each set's scaled time into the effect data that
163
- * GetPerObjectData uploads, rebuilds the two endpoint bases, and drives the
164
- * end observers and GPU emitters from them.
165
+ /**
166
+ * Advances the start, loop and end curve sets on time measured from the first
167
+ * update, records each set's scaled time into the effect data that
168
+ * GetPerObjectData uploads, rebuilds the two endpoint bases, and drives the
169
+ * end observers and GPU emitters from them.
165
170
  */
166
171
  Update(context) {
167
172
  const time = getTime(context);
@@ -198,9 +203,9 @@ new class extends _identity {
198
203
  return true;
199
204
  }
200
205
 
201
- /**
202
- * Frustum-tests a box in the source basis that reaches boundingRadius sideways and the endpoint distance plus boundingRadius forwards, caching the result for GetRenderables; a hidden or zero-intensity stretch fails without testing, and a frustum that cannot test boxes passes.
203
- * @returns {Boolean} whether the stretch is in frustum
206
+ /**
207
+ * Frustum-tests a box in the source basis that reaches boundingRadius sideways and the endpoint distance plus boundingRadius forwards, caching the result for GetRenderables; a hidden or zero-intensity stretch fails without testing, and a frustum that cannot test boxes passes.
208
+ * @returns {Boolean} whether the stretch is in frustum
204
209
  */
205
210
  UpdateVisibility(context) {
206
211
  if (!(this.#visible && this.#intensity > 0)) {
@@ -217,18 +222,18 @@ new class extends _identity {
217
222
  return this.#inFrustum;
218
223
  }
219
224
 
220
- /**
221
- * Pushes the stretch itself when displayed, non-zero intensity and in frustum; the quad strip is built by the engine from the per-object data, not here.
222
- * @returns {Array} out
225
+ /**
226
+ * Pushes the stretch itself when displayed, non-zero intensity and in frustum; the quad strip is built by the engine from the per-object data, not here.
227
+ * @returns {Array} out
223
228
  */
224
229
  GetRenderables(out = []) {
225
230
  if (this.#visible && this.#intensity > 0 && this.#inFrustum) out.push(this);
226
231
  return out;
227
232
  }
228
233
 
229
- /** Carbon EveStretch2::GetPerObjectData (cpp:327-337): stamps
230
- * m_effectData[1].x = m_intensity, then uploads the contiguous member run
231
- * m_source..m_effectData[2] (EveStretch2.h:105-109) - 4 vec4s - to BOTH
234
+ /** Carbon EveStretch2::GetPerObjectData (cpp:327-337): stamps
235
+ * m_effectData[1].x = m_intensity, then uploads the contiguous member run
236
+ * m_source..m_effectData[2] (EveStretch2.h:105-109) - 4 vec4s - to BOTH
232
237
  * per-object slots (cpp:23-39). One payload, stages ["vs", "ps"]. */
233
238
  GetPerObjectData(accumulator) {
234
239
  this.#effectData[1][0] = this.#intensity;
@@ -268,10 +273,10 @@ new class extends _identity {
268
273
  return 0;
269
274
  }
270
275
 
271
- /**
272
- * Offers the source and destination point lights at their endpoint bases, the
273
- * destination scaled by its current scale; nothing is offered while hidden or
274
- * at zero intensity.
276
+ /**
277
+ * Offers the source and destination point lights at their endpoint bases, the
278
+ * destination scaled by its current scale; nothing is offered while hidden or
279
+ * at zero intensity.
275
280
  */
276
281
  GetLights(lightManager) {
277
282
  if (!(this.#visible && this.#intensity > 0)) return;
@@ -279,8 +284,8 @@ new class extends _identity {
279
284
  this.destinationLight?.AddLight(lightManager, this.#destinationTransform, this.#currentDestinationScale);
280
285
  }
281
286
 
282
- /** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf
283
- * self-registration. Gate (m_visible && m_intensity > 0) && a source or
287
+ /** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf
288
+ * self-registration. Gate (m_visible && m_intensity > 0) && a source or
284
289
  * destination light. */
285
290
  RegisterComponents() {
286
291
  const registry = this.GetComponentRegistry();
@@ -291,37 +296,37 @@ new class extends _identity {
291
296
  }
292
297
  }
293
298
 
294
- /**
295
- * Copies the source endpoint position.
296
- * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
297
- * @returns {Array} out
299
+ /**
300
+ * Copies the source endpoint position.
301
+ * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
302
+ * @returns {Array} out
298
303
  */
299
304
  GetSourcePosition(out = vec3.create()) {
300
305
  return vec3.copy(out, this.#source);
301
306
  }
302
307
 
303
- /**
304
- * Copies the destination endpoint position.
305
- * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
306
- * @returns {Array} out
308
+ /**
309
+ * Copies the destination endpoint position.
310
+ * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted
311
+ * @returns {Array} out
307
312
  */
308
313
  GetDestinationPosition(out = vec3.create()) {
309
314
  return vec3.copy(out, this.#destination);
310
315
  }
311
316
 
312
- /**
313
- * Copies the source endpoint basis, which is only valid once Update has run.
314
- * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
315
- * @returns {Array} out
317
+ /**
318
+ * Copies the source endpoint basis, which is only valid once Update has run.
319
+ * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
320
+ * @returns {Array} out
316
321
  */
317
322
  GetSourceTransform(out = mat4.create()) {
318
323
  return mat4.copy(out, this.#sourceTransform);
319
324
  }
320
325
 
321
- /**
322
- * Copies the destination endpoint basis, which is only valid once Update has run.
323
- * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
324
- * @returns {Array} out
326
+ /**
327
+ * Copies the destination endpoint basis, which is only valid once Update has run.
328
+ * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted
329
+ * @returns {Array} out
325
330
  */
326
331
  GetDestinationTransform(out = mat4.create()) {
327
332
  return mat4.copy(out, this.#destinationTransform);