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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EveStretch2.js","sources":["../../../../../../src/trinity/eve/renderable/stretch/EveStretch2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch2.h\r\n// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch2.cpp\r\nimport { mat4 } from \"#math/mat4\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { TriBatchType } from \"#consts/graphics\";\nimport { carbon, impl, io, type } from \"#schema\";\nimport { IEveFiringEffectElement } from \"../../IEveFiringEffectElement.js\";\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\nimport { Tr2QuadRenderer } from \"../../../core/Tr2QuadRenderer.js\";\nimport { Tr2RenderBatch } from \"../../../core/batch/Tr2RenderBatch.js\";\nimport { getCurveDuration, getOriginShift, getTime, makeEndpointTransforms, updateCurveSet } from \"./CjsStretchRuntime.js\";\nimport { withITr2Renderable } from \"../../../core/ITr2Renderable.js\";\nimport { ITr2GenericEmitterUpdateArguments } from \"../../../particle/ITr2GenericEmitter.js\";\n\r\n\r\n/**\r\n * A simplified stretch that renders the span between two points as a strip of\r\n * quads with its own effect, end emitters, observers and point lights, instead\r\n * of hosting child objects.\r\n */\r\n@type.define({ className: \"EveStretch2\", family: \"eve/renderable/stretch\" })\r\nexport class EveStretch2 extends withITr2Renderable(IEveFiringEffectElement)\n{\r\n static MAX_QUAD_COUNT = 128;\r\n\r\n @io.persist @type.string name = \"\";\r\n @io.persist @type.model(\"TriCurveSet\") loop = null;\r\n @io.persist @type.model(\"TriCurveSet\") start = null;\r\n @io.persist @type.model(\"TriCurveSet\") end = null;\r\n @io.persist @type.model(\"Tr2Effect\") effect = null;\r\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") destinationEmitter = null;\r\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") sourceEmitter = null;\r\n @io.notify @io.persist @type.uint32 quadCount = 0;\r\n @io.persist @type.model(\"TriObserverLocal\") destinationObserver = null;\r\n @io.persist @type.model(\"TriObserverLocal\") sourceObserver = null;\r\n @io.persist @type.model(\"Tr2PointLight\") destinationLight = null;\r\n @io.persist @type.model(\"Tr2PointLight\") sourceLight = null;\r\n @io.persist @type.float32 boundingRadius = 100;\r\n\r\n #source = vec3.create();\r\n #destination = vec3.create();\r\n #sourceTransform = mat4.create();\r\n #destinationTransform = mat4.create();\r\n #destinationScale = 1;\r\n #currentDestinationScale = 1;\r\n #visible = true;\r\n #inFrustum = true;\r\n #startTime = 0;\r\n #intensity = 1;\r\n #effectData = [vec4.fromValues(0, 0, 0, Math.random()), vec4.fromValues(1, 0, 0, 0)];\r\n\r\n /**\r\n * Post-hydration hook; validates the authored quad count. Carbon also builds\r\n * the procedural GPU buffers here, which is engine work in this port.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"GPU buffer preparation belongs to runtime-engine; initialization validates the graph-owned quad count.\")\r\n Initialize()\r\n {\r\n return this.OnModified();\r\n }\r\n\r\n /**\r\n * Re-validates quadCount against the 128-quad procedural geometry limit after\r\n * a model update and throws a RangeError when it is exceeded.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon rebuilds procedural GPU buffers here; the runtime Trinity layer only enforces the authored 128-quad contract.\")\n OnModified()\r\n {\r\n if (this.quadCount > EveStretch2.MAX_QUAD_COUNT)\r\n {\r\n throw new RangeError(`EveStretch2.quadCount must be <= ${EveStretch2.MAX_QUAD_COUNT}`);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Sets the destination-end scale and adopts it as the current one, undoing any\r\n * hidden-destination override left by DisplayEndPoints.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDestObjectScale(scale)\r\n {\r\n this.#destinationScale = this.#currentDestinationScale = Number(scale);\r\n }\r\n\r\n /** IEveFiringEffectElement move hook; EveStretch2 has no travelling child. */\r\n @carbon.method @impl.noop\r\n StartMoving()\r\n {\r\n }\r\n\r\n /** Longer of the start and loop curve-set durations. */\r\n @carbon.method @impl.implemented\r\n GetCurveDuration()\r\n {\r\n return Math.max(getCurveDuration(this.start), getCurveDuration(this.loop));\r\n }\r\n\r\n /**\r\n * 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.\r\n * @param {Number} [delay] - seconds the curve sets wait before reaching time zero\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon uses rand(); the browser uses Math.random for the per-shot shader seed.\")\r\n StartFiring(delay = 0)\r\n {\r\n this.#effectData[0][3] = Math.random();\r\n this.start?.PlayFrom(-delay);\r\n this.loop?.PlayFrom(-delay);\r\n this.end?.Stop();\r\n }\r\n\r\n /** Ends a shot: stops the start and loop sets and plays the end set. */\r\n @carbon.method @impl.implemented\r\n StopFiring()\r\n {\r\n this.start?.Stop();\r\n this.loop?.Stop();\r\n this.end?.Play();\r\n }\r\n\r\n /**\r\n * Sets both endpoints, accepting either a 16-element source transform - of\r\n * which only the translation is kept, since the span orientation is rebuilt\r\n * each update - or a source position.\r\n */\r\n @carbon.method @impl.implemented\r\n SetFiringTransform(source, destination)\r\n {\r\n if (source?.length === 16) mat4.getTranslation(this.#source, source);\r\n else vec3.copy(this.#source, source);\r\n vec3.copy(this.#destination, destination);\r\n }\r\n\r\n /**\r\n * Hides the destination end by zeroing its current scale; the source end is\r\n * always drawn, so the source flag is ignored.\r\n */\r\n @carbon.method @impl.implemented\r\n DisplayEndPoints(_displaySource, displayDestination)\r\n {\r\n this.#currentDestinationScale = displayDestination ? this.#destinationScale : 0;\r\n }\r\n\r\n /**\r\n * Shows or hides the stretch, gating visibility, renderable collection and\r\n * light contribution.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDisplay(display)\r\n {\r\n this.#visible = !!display;\r\n }\r\n\r\n /**\r\n * Sets the intensity uploaded in per-object data, clamped to zero at the\r\n * bottom; a zero intensity also suppresses visibility, renderables and lights.\r\n */\r\n @carbon.method @impl.implemented\r\n SetIntensity(intensity)\r\n {\r\n this.#intensity = Math.max(0, Number(intensity));\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement synchronous hook; EveStretch2 does all of its work\r\n * in the asynchronous phase.\r\n */\r\n @carbon.method @impl.noop\r\n UpdateEffectSync(_context)\r\n {\r\n return true;\r\n }\r\n\r\n /** IEveFiringEffectElement asynchronous hook; runs Update. */\r\n @carbon.method @impl.implemented\r\n UpdateEffectAsync(context)\r\n {\r\n return this.Update(context);\r\n }\r\n\r\n /**\r\n * Advances the start, loop and end curve sets on time measured from the first\r\n * update, records each set's scaled time into the effect data that\r\n * GetPerObjectData uploads, rebuilds the two endpoint bases, and drives the\r\n * end observers and GPU emitters from them.\r\n */\r\n @carbon.method @impl.adapted\n @impl.reason(\"Generic emitters receive the nominal JavaScript mirror of Carbon's UpdateArguments structure.\")\n Update(context)\r\n {\r\n const time = getTime(context);\r\n if (this.#startTime === 0) this.#startTime = time;\r\n const relative = time - this.#startTime;\r\n const sets = [this.start, this.loop, this.end];\r\n for (let index = 0; index < sets.length; index++)\r\n {\r\n updateCurveSet(sets[index], relative, context.renderContext);\r\n this.#effectData[0][index] = Number(sets[index]?.GetScaledTime?.() ?? sets[index]?.scaledTime ?? 0);\r\n }\r\n makeEndpointTransforms(this.#source, this.#destination, this.#sourceTransform, this.#destinationTransform);\r\n this.sourceObserver?.Update(this.#sourceTransform);\n this.destinationObserver?.Update(this.#destinationTransform);\n const gpuParticleSystem = context?.GetGpuParticleSystem?.() ?? context?.gpuParticleSystem ?? null;\n const originShift = getOriginShift(context);\n if (this.sourceEmitter)\n {\n const argumentsValue = EveStretch2.#sourceEmitterArguments;\n argumentsValue.time = time;\n argumentsValue.system = gpuParticleSystem;\n mat4.copy(argumentsValue.parentTransform, this.#sourceTransform);\n vec3.copy(argumentsValue.originShift, originShift);\n argumentsValue.emitCountFactor = 1;\n this.sourceEmitter.Update(argumentsValue);\n }\n if (this.destinationEmitter)\n {\n const argumentsValue = EveStretch2.#destinationEmitterArguments;\n argumentsValue.time = time;\n argumentsValue.system = gpuParticleSystem;\n mat4.copy(argumentsValue.parentTransform, this.#destinationTransform);\n vec3.copy(argumentsValue.originShift, originShift);\n argumentsValue.emitCountFactor = 1;\n this.destinationEmitter.Update(argumentsValue);\n }\n return true;\r\n }\r\n\r\n /**\r\n * 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.\r\n * @returns {Boolean} whether the stretch is in frustum\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"The browser frustum is duck-typed and receives a portable axis-aligned box descriptor.\")\r\n UpdateVisibility(context)\r\n {\r\n if (!(this.#visible && this.#intensity > 0))\r\n {\r\n this.#inFrustum = false;\r\n return false;\r\n }\r\n const frustum = context?.GetFrustum?.() ?? context?.frustum;\r\n const bounds = {\r\n min: vec3.fromValues(-this.boundingRadius, -this.boundingRadius, -this.boundingRadius),\r\n max: vec3.fromValues(this.boundingRadius, this.boundingRadius, vec3.distance(this.#source, this.#destination) + this.boundingRadius),\r\n transform: this.#sourceTransform\r\n };\r\n this.#inFrustum = frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(bounds) : true;\r\n return this.#inFrustum;\r\n }\r\n\r\n /**\r\n * 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.\r\n * @returns {Array} out\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"The class is collected as a renderable; GPU batch realization remains runtime-engine work.\")\r\n GetRenderables(out = [])\r\n {\r\n if (this.#visible && this.#intensity > 0 && this.#inFrustum) out.push(this);\r\n return out;\r\n }\r\n\r\n /** Carbon EveStretch2::GetPerObjectData (cpp:327-337): stamps\r\n * m_effectData[1].x = m_intensity, then uploads the contiguous member run\r\n * m_source..m_effectData[2] (EveStretch2.h:105-109) - 4 vec4s - to BOTH\r\n * per-object slots (cpp:23-39). One payload, stages [\"vs\", \"ps\"]. */\r\n @carbon.method @impl.implemented\r\n GetPerObjectData(accumulator)\n {\n this.#effectData[1][0] = this.#intensity;\r\n\r\n const data = accumulator.Alloc(\"EveStretch2PerObjectData\");\r\n\r\n data.Set(\"sourceData\", [\r\n this.#source[0], this.#source[1], this.#source[2], this.#currentDestinationScale\r\n ]);\r\n data.Set(\"destinationData\", [\r\n this.#destination[0], this.#destination[1], this.#destination[2], this.#destinationScale\r\n ]);\r\n data.SetIndex(\"effectData\", 0, this.#effectData[0]);\r\n data.SetIndex(\"effectData\", 1, this.#effectData[1]);\r\n\r\n return data;\n }\n\n /**\n * Emits Carbon's additive procedural-quad batch. Trinity records the shared\n * vertex/index sources and draw arguments; the selected engine realizes the\n * buffers and vertex declaration.\n * @returns {Boolean} whether the batch was committed\n */\n @carbon.method @impl.adapted\n @impl.reason(\"GPU-free: records Carbon's procedural stretch vertices and shared quad indices for engine realization.\")\n GetBatches(batches, batchType, perObjectData, _reason)\n {\n if (batchType !== TriBatchType.TRIBATCHTYPE_ADDITIVE || !this.effect || !this.quadCount)\n {\n return false;\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.effect);\n batch.SetGeometry(0, EveStretch2.VertexSource, 8, Tr2QuadRenderer.QuadIndexSource, 2);\n batch.SetPerObjectData(perObjectData);\n batch.SetDrawIndexedInstanced(6 * this.quadCount, 1, 0, 0, 0);\n return batches.Commit(batch);\n }\n\n /** Carbon EveStretch2::HasTransparentBatches: the strip is additive. */\n @carbon.method @impl.implemented\n HasTransparentBatches()\n {\n return false;\n }\n\n /** Carbon EveStretch2::GetSortValue: additive batches are unsorted. */\n @carbon.method @impl.implemented\n GetSortValue()\n {\n return 0;\n }\n\r\n /**\r\n * Offers the source and destination point lights at their endpoint bases, the\r\n * destination scaled by its current scale; nothing is offered while hidden or\r\n * at zero intensity.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Light objects are forwarded without registering against Carbon's native light manager component registry.\")\r\n GetLights(lightManager)\r\n {\r\n if (!(this.#visible && this.#intensity > 0)) return;\r\n this.sourceLight?.AddLight(lightManager, this.#sourceTransform, 1);\r\n this.destinationLight?.AddLight(lightManager, this.#destinationTransform, this.#currentDestinationScale);\r\n }\r\n\r\n /** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf\r\n * self-registration. Gate (m_visible && m_intensity > 0) && a source or\r\n * destination light. */\r\n @carbon.method @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n const isActive = this.#visible && this.#intensity > 0;\r\n const hasLights = this.sourceLight || this.destinationLight;\r\n if (registry && isActive && hasLights)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /**\r\n * Copies the source endpoint position.\r\n * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted\r\n * @returns {Array} out\r\n */\r\n GetSourcePosition(out = vec3.create())\r\n {\r\n return vec3.copy(out, this.#source);\r\n }\r\n\r\n /**\r\n * Copies the destination endpoint position.\r\n * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted\r\n * @returns {Array} out\r\n */\r\n GetDestinationPosition(out = vec3.create())\r\n {\r\n return vec3.copy(out, this.#destination);\r\n }\r\n\r\n /**\r\n * Copies the source endpoint basis, which is only valid once Update has run.\r\n * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted\r\n * @returns {Array} out\r\n */\r\n GetSourceTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.#sourceTransform);\r\n }\r\n\r\n /**\r\n * Copies the destination endpoint basis, which is only valid once Update has run.\r\n * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted\r\n * @returns {Array} out\r\n */\r\n GetDestinationTransform(out = mat4.create())\n {\n return mat4.copy(out, this.#destinationTransform);\n }\n\n /** Deferred descriptor for Carbon's MAX_QUAD_COUNT float2 vertex buffer. */\n static VertexSource = Object.freeze({ eveStretch2Buffer: \"quad-vertices\", maxQuadCount: EveStretch2.MAX_QUAD_COUNT });\n\n static #sourceEmitterArguments = new ITr2GenericEmitterUpdateArguments();\n\n static #destinationEmitterArguments = new ITr2GenericEmitterUpdateArguments();\n}\n"],"names":["_EveStretch","_identity","EveStretch2","_withITr2Renderable","withITr2Renderable","IEveFiringEffectElement","e","_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","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","model","notify","uint32","float32","carbon","method","impl","adapted","reason","implemented","noop","name","loop","start","end","effect","destinationEmitter","sourceEmitter","quadCount","destinationObserver","sourceObserver","destinationLight","sourceLight","boundingRadius","vec3","create","mat4","vec4","fromValues","Math","random","Initialize","OnModified","MAX_QUAD_COUNT","RangeError","SetDestObjectScale","scale","Number","StartMoving","GetCurveDuration","max","getCurveDuration","StartFiring","delay","PlayFrom","Stop","StopFiring","Play","SetFiringTransform","source","destination","length","getTranslation","copy","DisplayEndPoints","_displaySource","displayDestination","SetDisplay","display","SetIntensity","intensity","UpdateEffectSync","_context","UpdateEffectAsync","context","Update","time","getTime","relative","sets","index","updateCurveSet","renderContext","GetScaledTime","scaledTime","makeEndpointTransforms","gpuParticleSystem","GetGpuParticleSystem","originShift","getOriginShift","argumentsValue","system","parentTransform","emitCountFactor","UpdateVisibility","frustum","GetFrustum","bounds","min","distance","transform","IsBoxVisible","GetRenderables","out","push","GetPerObjectData","accumulator","data","Alloc","Set","SetIndex","GetBatches","batches","batchType","perObjectData","_reason","TriBatchType","TRIBATCHTYPE_ADDITIVE","batch","Tr2RenderBatch","SetMaterial","SetGeometry","VertexSource","Tr2QuadRenderer","QuadIndexSource","SetPerObjectData","SetDrawIndexedInstanced","Commit","HasTransparentBatches","GetSortValue","GetLights","lightManager","AddLight","RegisterComponents","registry","GetComponentRegistry","isActive","hasLights","RegisterComponent","EveComponentType","LightOwner","GetSourcePosition","GetDestinationPosition","GetSourceTransform","GetDestinationTransform","Object","freeze","eveStretch2Buffer","maxQuadCount","ITr2GenericEmitterUpdateArguments","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveStretch2.js","sources":["../../../../../../src/trinity/eve/renderable/stretch/EveStretch2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch2.h\n// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch2.cpp\nimport { mat4 } from \"#math/mat4\";\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { TriBatchType } from \"#consts/graphics\";\nimport { carbon, impl, io, type } from \"#schema\";\nimport { IEveFiringEffectElement } from \"../../IEveFiringEffectElement.js\";\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\nimport { Tr2QuadRenderer } from \"../../../core/Tr2QuadRenderer/index.js\";\nimport { Tr2RenderBatch } from \"../../../core/batch/TriRenderBatch/index.js\";\nimport { getCurveDuration, getOriginShift, getTime, makeEndpointTransforms, updateCurveSet } from \"./CjsStretchRuntime.js\";\nimport { withITr2Renderable } from \"../../../core/ITr2Renderable.js\";\nimport { ITr2GenericEmitterUpdateArguments } from \"../../../particle/ITr2GenericEmitter/index.js\";\n\n\n/**\n * A simplified stretch that renders the span between two points as a strip of\n * quads with its own effect, end emitters, observers and point lights, instead\n * of hosting child objects.\n */\n@type.define({ className: \"EveStretch2\", family: \"eve/renderable/stretch\" })\nexport class EveStretch2 extends withITr2Renderable(IEveFiringEffectElement)\n{\n static MAX_QUAD_COUNT = 128;\n\n @io.persist @type.string name = \"\";\n @io.persist @type.model(\"TriCurveSet\") loop = null;\n @io.persist @type.model(\"TriCurveSet\") start = null;\n @io.persist @type.model(\"TriCurveSet\") end = null;\n @io.persist @type.model(\"Tr2Effect\") effect = null;\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") destinationEmitter = null;\n @io.persist @type.model(\"Tr2GpuSharedEmitter\") sourceEmitter = null;\n @io.notify @io.persist @type.uint32 quadCount = 0;\n @io.persist @type.model(\"TriObserverLocal\") destinationObserver = null;\n @io.persist @type.model(\"TriObserverLocal\") sourceObserver = null;\n @io.persist @type.model(\"Tr2PointLight\") destinationLight = null;\n @io.persist @type.model(\"Tr2PointLight\") sourceLight = null;\n @io.persist @type.float32 boundingRadius = 100;\n\n #source = vec3.create();\n #destination = vec3.create();\n #sourceTransform = mat4.create();\n #destinationTransform = mat4.create();\n #destinationScale = 1;\n #currentDestinationScale = 1;\n #visible = true;\n #inFrustum = true;\n #startTime = 0;\n #intensity = 1;\n #effectData = [vec4.fromValues(0, 0, 0, Math.random()), vec4.fromValues(1, 0, 0, 0)];\n\n /**\n * Post-hydration hook; validates the authored quad count. Carbon also builds\n * the procedural GPU buffers here, which is engine work in this port.\n */\n @carbon.method @impl.adapted\n @impl.reason(\"GPU buffer preparation belongs to runtime-engine; initialization validates the graph-owned quad count.\")\n Initialize()\n {\n return this.OnModified();\n }\n\n /**\n * Re-validates quadCount against the 128-quad procedural geometry limit after\n * a model update and throws a RangeError when it is exceeded.\n */\n @carbon.method @impl.adapted\n @impl.reason(\"Carbon rebuilds procedural GPU buffers here; the runtime Trinity layer only enforces the authored 128-quad contract.\")\n OnModified()\n {\n if (this.quadCount > EveStretch2.MAX_QUAD_COUNT)\n {\n throw new RangeError(`EveStretch2.quadCount must be <= ${EveStretch2.MAX_QUAD_COUNT}`);\n }\n return true;\n }\n\n /**\n * Sets the destination-end scale and adopts it as the current one, undoing any\n * hidden-destination override left by DisplayEndPoints.\n */\n @carbon.method @impl.implemented\n SetDestObjectScale(scale)\n {\n this.#destinationScale = this.#currentDestinationScale = Number(scale);\n }\n\n /** IEveFiringEffectElement move hook; EveStretch2 has no travelling child. */\n @carbon.method @impl.noop\n StartMoving()\n {\n }\n\n /** Longer of the start and loop curve-set durations. */\n @carbon.method @impl.implemented\n GetCurveDuration()\n {\n return Math.max(getCurveDuration(this.start), getCurveDuration(this.loop));\n }\n\n /**\n * 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.\n * @param {Number} [delay] - seconds the curve sets wait before reaching time zero\n */\n @carbon.method @impl.adapted\n @impl.reason(\"Carbon uses rand(); the browser uses Math.random for the per-shot shader seed.\")\n StartFiring(delay = 0)\n {\n this.#effectData[0][3] = Math.random();\n this.start?.PlayFrom(-delay);\n this.loop?.PlayFrom(-delay);\n this.end?.Stop();\n }\n\n /** Ends a shot: stops the start and loop sets and plays the end set. */\n @carbon.method @impl.implemented\n StopFiring()\n {\n this.start?.Stop();\n this.loop?.Stop();\n this.end?.Play();\n }\n\n /**\n * Sets both endpoints, accepting either a 16-element source transform - of\n * which only the translation is kept, since the span orientation is rebuilt\n * each update - or a source position.\n */\n @carbon.method @impl.implemented\n SetFiringTransform(source, destination)\n {\n if (source?.length === 16) mat4.getTranslation(this.#source, source);\n else vec3.copy(this.#source, source);\n vec3.copy(this.#destination, destination);\n }\n\n /**\n * Hides the destination end by zeroing its current scale; the source end is\n * always drawn, so the source flag is ignored.\n */\n @carbon.method @impl.implemented\n DisplayEndPoints(_displaySource, displayDestination)\n {\n this.#currentDestinationScale = displayDestination ? this.#destinationScale : 0;\n }\n\n /**\n * Shows or hides the stretch, gating visibility, renderable collection and\n * light contribution.\n */\n @carbon.method @impl.implemented\n SetDisplay(display)\n {\n this.#visible = !!display;\n }\n\n /**\n * Sets the intensity uploaded in per-object data, clamped to zero at the\n * bottom; a zero intensity also suppresses visibility, renderables and lights.\n */\n @carbon.method @impl.implemented\n SetIntensity(intensity)\n {\n this.#intensity = Math.max(0, Number(intensity));\n }\n\n /**\n * IEveFiringEffectElement synchronous hook; EveStretch2 does all of its work\n * in the asynchronous phase.\n */\n @carbon.method @impl.noop\n UpdateEffectSync(_context)\n {\n return true;\n }\n\n /** IEveFiringEffectElement asynchronous hook; runs Update. */\n @carbon.method @impl.implemented\n UpdateEffectAsync(context)\n {\n return this.Update(context);\n }\n\n /**\n * Advances the start, loop and end curve sets on time measured from the first\n * update, records each set's scaled time into the effect data that\n * GetPerObjectData uploads, rebuilds the two endpoint bases, and drives the\n * end observers and GPU emitters from them.\n */\n @carbon.method @impl.adapted\n @impl.reason(\"Generic emitters receive the nominal JavaScript mirror of Carbon's UpdateArguments structure.\")\n Update(context)\n {\n const time = getTime(context);\n if (this.#startTime === 0) this.#startTime = time;\n const relative = time - this.#startTime;\n const sets = [this.start, this.loop, this.end];\n for (let index = 0; index < sets.length; index++)\n {\n updateCurveSet(sets[index], relative, context.renderContext);\n this.#effectData[0][index] = Number(sets[index]?.GetScaledTime?.() ?? sets[index]?.scaledTime ?? 0);\n }\n makeEndpointTransforms(this.#source, this.#destination, this.#sourceTransform, this.#destinationTransform);\n this.sourceObserver?.Update(this.#sourceTransform);\n this.destinationObserver?.Update(this.#destinationTransform);\n const gpuParticleSystem = context?.GetGpuParticleSystem?.() ?? context?.gpuParticleSystem ?? null;\n const originShift = getOriginShift(context);\n if (this.sourceEmitter)\n {\n const argumentsValue = EveStretch2.#sourceEmitterArguments;\n argumentsValue.time = time;\n argumentsValue.system = gpuParticleSystem;\n mat4.copy(argumentsValue.parentTransform, this.#sourceTransform);\n vec3.copy(argumentsValue.originShift, originShift);\n argumentsValue.emitCountFactor = 1;\n this.sourceEmitter.Update(argumentsValue);\n }\n if (this.destinationEmitter)\n {\n const argumentsValue = EveStretch2.#destinationEmitterArguments;\n argumentsValue.time = time;\n argumentsValue.system = gpuParticleSystem;\n mat4.copy(argumentsValue.parentTransform, this.#destinationTransform);\n vec3.copy(argumentsValue.originShift, originShift);\n argumentsValue.emitCountFactor = 1;\n this.destinationEmitter.Update(argumentsValue);\n }\n return true;\n }\n\n /**\n * 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.\n * @returns {Boolean} whether the stretch is in frustum\n */\n @carbon.method @impl.adapted\n @impl.reason(\"The browser frustum is duck-typed and receives a portable axis-aligned box descriptor.\")\n UpdateVisibility(context)\n {\n if (!(this.#visible && this.#intensity > 0))\n {\n this.#inFrustum = false;\n return false;\n }\n const frustum = context?.GetFrustum?.() ?? context?.frustum;\n const bounds = {\n min: vec3.fromValues(-this.boundingRadius, -this.boundingRadius, -this.boundingRadius),\n max: vec3.fromValues(this.boundingRadius, this.boundingRadius, vec3.distance(this.#source, this.#destination) + this.boundingRadius),\n transform: this.#sourceTransform\n };\n this.#inFrustum = frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(bounds) : true;\n return this.#inFrustum;\n }\n\n /**\n * 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.\n * @returns {Array} out\n */\n @carbon.method @impl.adapted\n @impl.reason(\"The class is collected as a renderable; GPU batch realization remains runtime-engine work.\")\n GetRenderables(out = [])\n {\n if (this.#visible && this.#intensity > 0 && this.#inFrustum) out.push(this);\n return out;\n }\n\n /** Carbon EveStretch2::GetPerObjectData (cpp:327-337): stamps\n * m_effectData[1].x = m_intensity, then uploads the contiguous member run\n * m_source..m_effectData[2] (EveStretch2.h:105-109) - 4 vec4s - to BOTH\n * per-object slots (cpp:23-39). One payload, stages [\"vs\", \"ps\"]. */\n @carbon.method @impl.implemented\n GetPerObjectData(accumulator)\n {\n this.#effectData[1][0] = this.#intensity;\n\n const data = accumulator.Alloc(\"EveStretch2PerObjectData\");\n\n data.Set(\"sourceData\", [\n this.#source[0], this.#source[1], this.#source[2], this.#currentDestinationScale\n ]);\n data.Set(\"destinationData\", [\n this.#destination[0], this.#destination[1], this.#destination[2], this.#destinationScale\n ]);\n data.SetIndex(\"effectData\", 0, this.#effectData[0]);\n data.SetIndex(\"effectData\", 1, this.#effectData[1]);\n\n return data;\n }\n\n /**\n * Emits Carbon's additive procedural-quad batch. Trinity records the shared\n * vertex/index sources and draw arguments; the selected engine realizes the\n * buffers and vertex declaration.\n * @returns {Boolean} whether the batch was committed\n */\n @carbon.method @impl.adapted\n @impl.reason(\"GPU-free: records Carbon's procedural stretch vertices and shared quad indices for engine realization.\")\n GetBatches(batches, batchType, perObjectData, _reason)\n {\n if (batchType !== TriBatchType.TRIBATCHTYPE_ADDITIVE || !this.effect || !this.quadCount)\n {\n return false;\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.effect);\n batch.SetGeometry(0, EveStretch2.VertexSource, 8, Tr2QuadRenderer.QuadIndexSource, 2);\n batch.SetPerObjectData(perObjectData);\n batch.SetDrawIndexedInstanced(6 * this.quadCount, 1, 0, 0, 0);\n return batches.Commit(batch);\n }\n\n /** Carbon EveStretch2::HasTransparentBatches: the strip is additive. */\n @carbon.method @impl.implemented\n HasTransparentBatches()\n {\n return false;\n }\n\n /** Carbon EveStretch2::GetSortValue: additive batches are unsorted. */\n @carbon.method @impl.implemented\n GetSortValue()\n {\n return 0;\n }\n\n /**\n * Offers the source and destination point lights at their endpoint bases, the\n * destination scaled by its current scale; nothing is offered while hidden or\n * at zero intensity.\n */\n @carbon.method @impl.adapted\n @impl.reason(\"Light objects are forwarded without registering against Carbon's native light manager component registry.\")\n GetLights(lightManager)\n {\n if (!(this.#visible && this.#intensity > 0)) return;\n this.sourceLight?.AddLight(lightManager, this.#sourceTransform, 1);\n this.destinationLight?.AddLight(lightManager, this.#destinationTransform, this.#currentDestinationScale);\n }\n\n /** Carbon EveStretch2::RegisterComponents (cpp:389-398): LightOwner leaf\n * self-registration. Gate (m_visible && m_intensity > 0) && a source or\n * destination light. */\n @carbon.method @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n const isActive = this.#visible && this.#intensity > 0;\n const hasLights = this.sourceLight || this.destinationLight;\n if (registry && isActive && hasLights)\n {\n registry.RegisterComponent(EveComponentType.LightOwner, this);\n }\n }\n\n /**\n * Copies the source endpoint position.\n * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted\n * @returns {Array} out\n */\n GetSourcePosition(out = vec3.create())\n {\n return vec3.copy(out, this.#source);\n }\n\n /**\n * Copies the destination endpoint position.\n * @param {Array} [out] - caller-owned vec3; a fresh vector is allocated when omitted\n * @returns {Array} out\n */\n GetDestinationPosition(out = vec3.create())\n {\n return vec3.copy(out, this.#destination);\n }\n\n /**\n * Copies the source endpoint basis, which is only valid once Update has run.\n * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted\n * @returns {Array} out\n */\n GetSourceTransform(out = mat4.create())\n {\n return mat4.copy(out, this.#sourceTransform);\n }\n\n /**\n * Copies the destination endpoint basis, which is only valid once Update has run.\n * @param {Array} [out] - caller-owned mat4; a fresh matrix is allocated when omitted\n * @returns {Array} out\n */\n GetDestinationTransform(out = mat4.create())\n {\n return mat4.copy(out, this.#destinationTransform);\n }\n\n /** Deferred descriptor for Carbon's MAX_QUAD_COUNT float2 vertex buffer. */\n static VertexSource = Object.freeze({ eveStretch2Buffer: \"quad-vertices\", maxQuadCount: EveStretch2.MAX_QUAD_COUNT });\n\n static #sourceEmitterArguments = new ITr2GenericEmitterUpdateArguments();\n\n static #destinationEmitterArguments = new ITr2GenericEmitterUpdateArguments();\n}\n"],"names":["_EveStretch","_identity","EveStretch2","_withITr2Renderable","withITr2Renderable","IEveFiringEffectElement","e","_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","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","model","notify","uint32","float32","carbon","method","impl","adapted","reason","implemented","noop","name","loop","start","end","effect","destinationEmitter","sourceEmitter","quadCount","destinationObserver","sourceObserver","destinationLight","sourceLight","boundingRadius","vec3","create","mat4","vec4","fromValues","Math","random","Initialize","OnModified","MAX_QUAD_COUNT","RangeError","SetDestObjectScale","scale","Number","StartMoving","GetCurveDuration","max","getCurveDuration","StartFiring","delay","PlayFrom","Stop","StopFiring","Play","SetFiringTransform","source","destination","length","getTranslation","copy","DisplayEndPoints","_displaySource","displayDestination","SetDisplay","display","SetIntensity","intensity","UpdateEffectSync","_context","UpdateEffectAsync","context","Update","time","getTime","relative","sets","index","updateCurveSet","renderContext","GetScaledTime","scaledTime","makeEndpointTransforms","gpuParticleSystem","GetGpuParticleSystem","originShift","getOriginShift","argumentsValue","system","parentTransform","emitCountFactor","UpdateVisibility","frustum","GetFrustum","bounds","min","distance","transform","IsBoxVisible","GetRenderables","out","push","GetPerObjectData","accumulator","data","Alloc","Set","SetIndex","GetBatches","batches","batchType","perObjectData","_reason","TriBatchType","TRIBATCHTYPE_ADDITIVE","batch","Tr2RenderBatch","SetMaterial","SetGeometry","VertexSource","Tr2QuadRenderer","QuadIndexSource","SetPerObjectData","SetDrawIndexedInstanced","Commit","HasTransparentBatches","GetSortValue","GetLights","lightManager","AddLight","RegisterComponents","registry","GetComponentRegistry","isActive","hasLights","RegisterComponent","EveComponentType","LightOwner","GetSourcePosition","GetDestinationPosition","GetSourceTransform","GetDestinationTransform","Object","freeze","eveStretch2Buffer","maxQuadCount","ITr2GenericEmitterUpdateArguments","constructor"],"mappings":"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"}
@@ -167,7 +167,7 @@ new class extends _identity {
167
167
  } else if (list === this.dynamicBindings) {
168
168
  if (maskedEvent === BELIST_INSERTED) {
169
169
  value?.SetOwner(this);
170
- value?.Link?.();
170
+ value?.Link();
171
171
  } else if (maskedEvent === BELIST_REMOVED) {
172
172
  value?.SetOwner(null);
173
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EveStretch3.js","sources":["../../../../../../src/trinity/eve/renderable/stretch/EveStretch3.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch3.h\r\n// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch3.cpp\r\nimport { mat4 } from \"#math/mat4\";\nimport { withIEveSpaceObject2 } from \"../../IEveSpaceObject2.js\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport {\r\n BELIST_EVENTMASK,\r\n BELIST_INSERTED,\r\n BELIST_LOADING,\r\n BELIST_REMOVED,\r\n BELIST_UNLOADSTART\r\n} from \"../../../controllers/contracts.js\";\r\nimport { IEveFiringEffectElement } from \"../../IEveFiringEffectElement.js\";\nimport { TriFloat } from \"../../../core/variable/TriFloat.js\";\r\nimport { EveChildUpdateParams } from \"../../EveChildUpdateParams.js\";\r\nimport { StretchState } from \"../../../generated/eve/renderable/stretch/enums.js\";\r\nimport {\r\n collectRenderables,\r\n getCurveDuration,\r\n getTime,\r\n makeEndpointTransforms,\r\n makeStretchTransform,\r\n mergeSphere,\r\n sampleVector,\r\n translationMatrix,\r\n updateChildAsync,\r\n updateChildSync,\r\n updateChildVisibility,\r\n updateCurveSet\r\n} from \"./CjsStretchRuntime.js\";\r\n\r\n\r\n/**\r\n * The current stretch effect: places space-object children at the source, across\r\n * the span, at the destination and at a travelling point between them, driven by\r\n * its own controllers, dynamic bindings and curve sets.\r\n */\r\n@type.define({ className: \"EveStretch3\", family: \"eve/renderable/stretch\" })\r\nexport class EveStretch3 extends withIEveSpaceObject2(IEveFiringEffectElement)\n{\r\n @io.read @type.vec3 sourcePosition = vec3.create();\r\n @io.read @type.vec3 destinationPosition = vec3.create();\r\n @io.notify @io.persist @type.model(\"ITriVectorFunction\") source = null;\r\n @io.notify @io.persist @type.model(\"ITriVectorFunction\") dest = null;\r\n @io.persist @type.string name = \"\";\r\n @io.persist @type.model(\"TriFloat\") moveProgression = new TriFloat();\r\n @io.persist @type.model(\"IStretchAudio\") stretchAudio = null;\r\n @io.persist @type.list(\"ITr2Controller\") controllers = [];\r\n @io.persist @type.list(\"TriCurveSet\") curveSets = [];\r\n @io.persist @type.model(\"TriFloat\") length = new TriFloat();\r\n @io.persist @type.list(\"Tr2DynamicBinding\") dynamicBindings = [];\r\n @io.notify @io.persist @type.boolean display = true;\r\n @io.persist @type.boolean update = true;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") destObject = null;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") sourceObject = null;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") stretchObject = null;\r\n @io.read @type.float64 startTime = 0;\r\n @io.persist @type.model(\"ITr2Audio\") audio = null;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") moveObject = null;\r\n\r\n #sourceSpaceObject = null;\r\n #destinationSpaceObject = null;\r\n #sourceMatrix = mat4.create();\r\n #destinationScale = 1;\r\n #delay = 0;\r\n #isMuzzleEffect = false;\r\n #stretchState = EveStretch3.StretchState.STRETCH_STATE_UNDEFINED;\r\n\r\n /**\r\n * Post-hydration hook; links any controller that is not already linked and\r\n * takes ownership of the dynamic bindings.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Assigns portable dynamic-binding owners directly because JavaScript arrays do not provide Carbon IList parent locks.\")\r\n Initialize()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n if (!controller?.IsLinked()) controller?.Link(this);\r\n }\r\n this.#InitializeBindings();\r\n return true;\r\n }\r\n\r\n /**\r\n * The space object standing in as parent for the source-side children, or\r\n * null.\r\n */\r\n @carbon.method @impl.implemented\r\n GetSourceSpaceObject()\r\n {\r\n return this.#sourceSpaceObject;\r\n }\r\n\r\n /**\r\n * Sets the space object used as parent for the source-side children and\r\n * relinks the dynamic bindings, since it is one of their roots.\r\n */\r\n @carbon.method @impl.implemented\r\n SetSourceSpaceObject(value)\r\n {\r\n this.#sourceSpaceObject = value ?? null;\r\n this.#InitializeBindings();\r\n }\r\n\r\n /** The space object standing in as parent for the destination child, or null. */\r\n @carbon.method @impl.implemented\r\n GetDestSpaceObject()\r\n {\r\n return this.#destinationSpaceObject;\r\n }\r\n\r\n /**\r\n * Sets the space object used as parent for the destination child and relinks\r\n * the dynamic bindings, since it is one of their roots.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDestSpaceObject(value)\r\n {\r\n this.#destinationSpaceObject = value ?? null;\r\n this.#InitializeBindings();\r\n }\r\n\r\n /**\r\n * Relinks the dynamic bindings and evaluates them once at time zero, and unless only the bindings were asked for, relinks the controllers.\r\n * @param {Boolean} [onlyUpdateBindings] - leave the controllers linked as they are\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Links portable bindings/controllers directly instead of using Carbon raw roots.\")\r\n Rebind(onlyUpdateBindings = false)\r\n {\r\n for (const binding of this.dynamicBindings)\r\n {\r\n binding?.Link();\r\n binding?.Update(0);\r\n }\r\n if (!onlyUpdateBindings)\r\n {\r\n for (const controller of this.controllers) controller?.Link(this);\r\n }\r\n }\r\n\r\n /**\r\n * Builds the prototype-free name map that bindings and controllers resolve\r\n * against: every curve set under its own name, plus Owner, the source and\r\n * destination space objects, and the root object of each child.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Builds Carbon's unordered parameter map as a prototype-free JavaScript object.\")\r\n GetParameterMap()\r\n {\r\n const out = Object.create(null);\r\n for (const curveSet of this.curveSets)\r\n {\r\n const name = String(curveSet?.GetName() ?? curveSet?.name ?? \"\");\r\n out[name] = curveSet?.GetRawRoot?.() ?? curveSet;\r\n }\r\n out.Owner = this;\r\n if (this.#sourceSpaceObject) out.SourceSpaceObject = this.#sourceSpaceObject;\r\n if (this.#destinationSpaceObject) out.DestSpaceObject = this.#destinationSpaceObject;\r\n if (this.sourceObject) out.SourceObject = this.sourceObject?.GetRootObject?.() ?? this.sourceObject;\r\n if (this.destObject) out.DestObject = this.destObject?.GetRootObject?.() ?? this.destObject;\r\n if (this.moveObject) out.MoveObject = this.moveObject?.GetRootObject?.() ?? this.moveObject;\r\n if (this.stretchObject) out.StretchObject = this.stretchObject?.GetRootObject?.() ?? this.stretchObject;\r\n return out;\r\n }\r\n\r\n /**\r\n * Fills out with the fixed binding roots - Owner, Source, Dest, Stretch, Move and the two space objects - under their binding-path names.\r\n * @param {Object} [out] - caller-owned map, mutated in place\r\n * @returns {Object} out\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBindingRoots(out = {})\r\n {\r\n out.Owner = this;\r\n out.Source = this.sourceObject;\r\n out.Dest = this.destObject;\r\n out.Stretch = this.stretchObject;\r\n out.Move = this.moveObject;\r\n out.SourceSpaceObject = this.#sourceSpaceObject;\r\n out.DestSpaceObject = this.#destinationSpaceObject;\r\n return out;\r\n }\r\n\r\n /**\r\n * Applies Carbon's IList ownership callbacks for the controllers and\r\n * dynamic-binding lists - linking on insert, unlinking on remove, unlinking\r\n * every controller on unload - and ignores events flagged as loading.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Reproduces Carbon IList controller and dynamic-binding callbacks through explicit portable list-event arguments.\")\r\n OnListModified(event, _key = 0, _key2 = 0, value = null, list = null)\r\n {\r\n if ((event & BELIST_LOADING) !== 0) return;\r\n const maskedEvent = event & BELIST_EVENTMASK;\r\n if (list === this.controllers)\r\n {\r\n if (maskedEvent === BELIST_INSERTED) value?.Link(this);\r\n else if (maskedEvent === BELIST_REMOVED) value?.Unlink();\r\n else if (maskedEvent === BELIST_UNLOADSTART)\r\n {\r\n for (const controller of this.controllers) controller?.Unlink();\r\n }\r\n }\r\n else if (list === this.dynamicBindings)\r\n {\r\n if (maskedEvent === BELIST_INSERTED)\r\n {\r\n value?.SetOwner(this);\r\n value?.Link?.();\r\n }\r\n else if (maskedEvent === BELIST_REMOVED)\r\n {\r\n value?.SetOwner(null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Applies a pending firing transition (starting sets the FiringDelay and\r\n * IsFiring controller variables, stopping clears IsFiring), advances the\r\n * bindings and controllers, samples the endpoint curves, records the span in\r\n * length, and drives each child's synchronous phase with a fresh parameter\r\n * block: the source and stretch children under the source space object, the\r\n * move child at the interpolated offset, and the destination child under the\r\n * destination space object at its scaled placement. Skipped entirely while\r\n * update is false.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon's synchronous task phase is retained as a serial graph update in the browser runtime.\")\r\n UpdateSynchronous(context)\r\n {\r\n if (!this.update) return true;\r\n if (this.#stretchState === EveStretch3.StretchState.STRETCH_STATE_STARTING)\r\n {\r\n this.StartControllers();\r\n this.SetControllerVariable(\"FiringDelay\", this.#delay);\r\n this.SetControllerVariable(\"IsFiring\", 1);\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_STARTED;\r\n }\r\n else if (this.#stretchState === EveStretch3.StretchState.STRETCH_STATE_STOPPING)\r\n {\r\n this.SetControllerVariable(\"IsFiring\", 0);\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_UNDEFINED;\r\n }\r\n\r\n const time = getTime(context);\r\n for (const binding of this.dynamicBindings) binding?.Update(time);\r\n for (const controller of this.controllers) controller?.Update(0.5);\r\n if (this.source) sampleVector(this.source, time, this.sourcePosition);\r\n if (this.dest) sampleVector(this.dest, time, this.destinationPosition);\r\n this.length.value = vec3.distance(this.sourcePosition, this.destinationPosition);\r\n\r\n const params = this.#makeParams();\r\n params.spaceObjectParent = this.#sourceSpaceObject ?? this;\r\n updateChildSync(this.sourceObject, context, params);\r\n updateChildSync(this.stretchObject, context, params);\r\n if (this.moveObject)\r\n {\r\n vec3.subtract(EveStretch3.#movePosition, this.sourcePosition, this.destinationPosition);\r\n vec3.scale(EveStretch3.#movePosition, EveStretch3.#movePosition, this.moveProgression.value);\r\n translationMatrix(EveStretch3.#movePosition, params.localToWorldTransform);\r\n updateChildSync(this.moveObject, context, params);\r\n }\r\n if (this.destObject)\r\n {\r\n params.spaceObjectParent = this.#destinationSpaceObject ?? this;\r\n translationMatrix(this.destinationPosition, params.localToWorldTransform, this.#destinationScale);\r\n updateChildSync(this.destObject, context, params);\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon's IEveSpaceObject2 spelling of UpdateSynchronous; forwards unchanged. */\r\n UpdateSyncronous(context)\r\n {\r\n return this.UpdateSynchronous(context);\r\n }\r\n\r\n /**\r\n * Advances the curve sets on time measured from the first asynchronous update,\r\n * then places each child: the source at the span basis, or verbatim at the\r\n * muzzle transform when SetFiringTransform supplied one; the stretch child\r\n * spanning the endpoints and re-centred on their midpoint; the move child at\r\n * the interpolated position carrying the span orientation; and the destination\r\n * at its scaled basis. Finally feeds both audio objects the current endpoints.\r\n * Skipped entirely while update is false.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon's asynchronous task phase is retained as a serial graph update in the browser runtime.\")\r\n UpdateAsynchronous(context)\r\n {\r\n if (!this.update) return true;\r\n const time = getTime(context);\r\n if (this.startTime === 0) this.startTime = time;\r\n const relative = time - this.startTime;\r\n for (const curveSet of this.curveSets) updateCurveSet(curveSet, relative, context.renderContext);\r\n\r\n const params = this.#makeParams();\r\n const sourceMatrix = EveStretch3.#sourceTransform;\r\n const destinationMatrix = EveStretch3.#destinationTransform;\r\n makeEndpointTransforms(this.sourcePosition, this.destinationPosition, sourceMatrix, destinationMatrix);\r\n mat4.copy(EveStretch3.#directionTransform, sourceMatrix);\r\n if (this.#isMuzzleEffect) mat4.copy(sourceMatrix, this.#sourceMatrix);\r\n\r\n mat4.copy(params.localToWorldTransform, sourceMatrix);\r\n updateChildAsync(this.sourceObject, context, params);\r\n makeStretchTransform(this.destinationPosition, this.sourcePosition, params.localToWorldTransform);\r\n vec3.lerp(EveStretch3.#midpoint, this.sourcePosition, this.destinationPosition, 0.5);\r\n params.localToWorldTransform[12] = EveStretch3.#midpoint[0];\r\n params.localToWorldTransform[13] = EveStretch3.#midpoint[1];\r\n params.localToWorldTransform[14] = EveStretch3.#midpoint[2];\r\n updateChildAsync(this.stretchObject, context, params);\r\n vec3.lerp(EveStretch3.#movePosition, this.sourcePosition, this.destinationPosition, this.moveProgression.value);\r\n mat4.copy(params.localToWorldTransform, EveStretch3.#directionTransform);\r\n params.localToWorldTransform[12] = EveStretch3.#movePosition[0];\r\n params.localToWorldTransform[13] = EveStretch3.#movePosition[1];\r\n params.localToWorldTransform[14] = EveStretch3.#movePosition[2];\r\n updateChildAsync(this.moveObject, context, params);\r\n for (const index of [0, 1, 2, 4, 5, 6, 8, 9, 10]) destinationMatrix[index] *= this.#destinationScale;\r\n mat4.copy(params.localToWorldTransform, destinationMatrix);\r\n updateChildAsync(this.destObject, context, params);\r\n this.audio?.Update?.(this.sourcePosition, this.destinationPosition);\r\n if (this.stretchAudio)\n {\n this.stretchAudio.Update(this.sourcePosition, this.destinationPosition);\n }\n return true;\r\n }\r\n\r\n /**\r\n * Carbon's IEveSpaceObject2 spelling of UpdateAsynchronous; forwards\r\n * unchanged.\r\n */\r\n UpdateAsyncronous(context)\r\n {\r\n return this.UpdateAsynchronous(context);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement synchronous hook; runs the normal synchronous\r\n * update.\r\n */\r\n UpdateEffectSync(context)\r\n {\r\n return this.UpdateSynchronous(context);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement asynchronous hook; runs the normal asynchronous\r\n * update.\r\n */\r\n UpdateEffectAsync(context)\r\n {\r\n return this.UpdateAsynchronous(context);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement move hook; EveStretch3 drives its travelling child\r\n * from the moveProgression value instead of a start event.\r\n */\r\n StartMoving()\r\n {\r\n }\r\n\r\n /**\r\n * Hands each child its visibility placement: the endpoint children as plain\r\n * translations (the destination scaled), the stretch child the parent\r\n * transform unchanged, and the move child the span orientation moved to the\r\n * interpolated position. No GPU work happens here.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Visibility transforms are computed here; renderer-specific LOD realization stays in runtime-engine.\")\r\n UpdateVisibility(context, parentTransform = EveStretch3.#identity)\r\n {\r\n if (!this.display) return;\r\n updateChildVisibility(this.sourceObject, context, translationMatrix(this.sourcePosition, EveStretch3.#sourceVisibility));\r\n updateChildVisibility(this.destObject, context, translationMatrix(this.destinationPosition, EveStretch3.#destinationVisibility, this.#destinationScale));\r\n updateChildVisibility(this.stretchObject, context, parentTransform);\r\n vec3.lerp(EveStretch3.#movePosition, this.sourcePosition, this.destinationPosition, this.moveProgression.value);\r\n makeEndpointTransforms(this.sourcePosition, this.destinationPosition, EveStretch3.#moveVisibility, EveStretch3.#unusedTransform);\r\n EveStretch3.#moveVisibility[12] = EveStretch3.#movePosition[0];\r\n EveStretch3.#moveVisibility[13] = EveStretch3.#movePosition[1];\r\n EveStretch3.#moveVisibility[14] = EveStretch3.#movePosition[2];\r\n updateChildVisibility(this.moveObject, context, EveStretch3.#moveVisibility);\r\n }\r\n\r\n /**\r\n * Appends every child's renderables to out while displayed; batch construction is left to runtime-engine.\r\n * @returns {Array} out\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Renderable collection is backend-neutral; draw-batch construction remains runtime-engine work.\")\r\n GetRenderables(out = [])\r\n {\r\n if (this.display) for (const component of this.#components()) collectRenderables(component, out);\r\n return out;\r\n }\r\n\r\n /**\r\n * Shows or hides the stretch, gating visibility, renderable collection,\r\n * curve-set control and component registration.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDisplay(display)\r\n {\r\n this.display = !!display;\r\n }\r\n\r\n /**\r\n * Merges the bounding spheres of every child, including the travelling one.\r\n * @param {Array} out - caller-owned packed (x, y, z, radius), overwritten\r\n * @returns {Boolean} whether any child contributed a sphere\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Bounds are merged from child graph objects without Carbon's native BoundingSphere helper.\")\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, 0, 0, 0, 0);\r\n let valid = false;\r\n for (const component of this.#components())\r\n {\r\n if (typeof component?.GetBoundingSphere === \"function\" && component.GetBoundingSphere(EveStretch3.#sphere) !== false)\r\n {\r\n mergeSphere(out, EveStretch3.#sphere);\r\n valid = true;\r\n }\r\n }\r\n return valid;\r\n }\r\n\r\n /**\r\n * Longest curve-set duration in seconds, each divided by that set's own time\r\n * scale.\r\n */\r\n @carbon.method @impl.implemented\r\n GetCurveDuration()\r\n {\r\n let duration = 0;\r\n for (const curveSet of this.curveSets)\r\n {\r\n const timeScale = Number(curveSet?.GetTimeScale?.() ?? curveSet?.timeScale ?? 1) || 1;\r\n duration = Math.max(duration, getCurveDuration(curveSet) / timeScale);\r\n }\r\n return duration;\r\n }\r\n\r\n /**\r\n * Requests a firing start; the controller variables are only applied on the next synchronous update, while the stretch audio starts immediately.\r\n * @param {Number} [delay] - seconds handed to the controllers as the FiringDelay variable\r\n */\r\n @carbon.method @impl.implemented\r\n StartFiring(delay = 0)\r\n {\r\n this.#delay = Number(delay);\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_STARTING;\r\n if (this.stretchAudio)\n {\n this.stretchAudio.Start();\n }\n }\r\n\r\n /**\r\n * Requests a firing stop; IsFiring is cleared on the next synchronous update,\r\n * while the stretch audio stops immediately.\r\n */\r\n @carbon.method @impl.implemented\r\n StopFiring()\r\n {\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_STOPPING;\r\n if (this.stretchAudio)\n {\n this.stretchAudio.Stop();\n }\n }\r\n\r\n /**\r\n * Pins both endpoints explicitly and drops the source and dest position curves\r\n * so they cannot overwrite them. A 16-element source marks this a muzzle\r\n * effect, whose transform is used verbatim for the source child instead of the\r\n * derived span basis.\r\n */\r\n @carbon.method @impl.implemented\r\n SetFiringTransform(source, destination)\r\n {\r\n this.source = null;\r\n this.dest = null;\r\n if (source?.length === 16)\r\n {\r\n this.#isMuzzleEffect = true;\r\n mat4.copy(this.#sourceMatrix, source);\r\n mat4.getTranslation(this.sourcePosition, source);\r\n }\r\n else\r\n {\r\n this.#isMuzzleEffect = false;\r\n vec3.copy(this.sourcePosition, source);\r\n translationMatrix(source, this.#sourceMatrix);\r\n }\r\n vec3.copy(this.destinationPosition, destination);\r\n }\r\n\r\n /** IEveFiringEffectElement hook; EveStretch3 cannot hide individual endpoints. */\r\n @carbon.method @impl.noop\r\n DisplayEndPoints(_displaySource, _displayDestination)\r\n {\r\n }\r\n\r\n /**\r\n * Uniform scale applied to the destination child's placement in both the\r\n * synchronous and asynchronous passes.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDestObjectScale(scale)\r\n {\r\n this.#destinationScale = Number(scale);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement intensity hook; EveStretch3 has no intensity term of\r\n * its own.\r\n */\r\n @carbon.method @impl.noop\r\n SetIntensity(_intensity)\r\n {\r\n }\r\n\r\n /**\r\n * Sets a controller variable on every child and on this stretch's own\r\n * controllers.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct child/controller method forwarding.\")\r\n SetControllerVariable(name, value)\r\n {\r\n for (const component of this.#components()) component?.SetControllerVariable(name, value);\r\n for (const controller of this.controllers) controller?.SetVariable(name, value);\r\n }\r\n\r\n /**\r\n * Delivers a controller event to every child and to this stretch's own\r\n * controllers.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct child/controller method forwarding.\")\r\n HandleControllerEvent(name)\r\n {\r\n for (const component of this.#components()) component?.HandleControllerEvent(name);\r\n for (const controller of this.controllers) controller?.HandleEvent(name);\r\n }\r\n\r\n /** Starts every child's controllers and this stretch's own. */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct child/controller method forwarding.\")\r\n StartControllers()\r\n {\r\n for (const component of this.#components()) component?.StartControllers();\r\n for (const controller of this.controllers) controller?.Start();\r\n }\r\n\r\n /**\r\n * Plays every local curve set with the given name - over a named time range\r\n * when one is given, otherwise from the start with the range reset - and\r\n * forwards the call to the children. Ignored while hidden.\r\n */\r\n PlayCurveSet(name, rangeName = \"\")\r\n {\r\n if (!this.display) return;\r\n for (const curveSet of this.curveSets)\r\n {\r\n if ((curveSet?.GetName() ?? curveSet?.name) !== name) continue;\r\n if (rangeName) curveSet.PlayTimeRange?.(rangeName);\r\n else { curveSet.ResetTimeRange(); curveSet.Play(); }\r\n }\r\n for (const component of this.#components()) component?.PlayCurveSet?.(name, rangeName);\r\n }\r\n\r\n /**\r\n * Stops every local curve set with the given name and forwards the call to the\r\n * children. Ignored while hidden.\r\n */\r\n StopCurveSet(name)\r\n {\r\n if (!this.display) return;\r\n for (const curveSet of this.curveSets) if ((curveSet?.GetName() ?? curveSet?.name) === name) curveSet.Stop();\r\n for (const component of this.#components()) component?.StopCurveSet?.(name);\r\n }\r\n\r\n /**\r\n * Advances every local curve set with the given name to an explicit time and\r\n * forwards the call to the children; unlike play and stop this is not gated on\r\n * display.\r\n */\r\n UpdateCurveSet(name, time, renderContext = null)\r\n {\r\n for (const curveSet of this.curveSets)\r\n {\r\n if (curveSet.GetName() === name)\r\n {\r\n updateCurveSet(curveSet, time, renderContext);\r\n }\r\n }\r\n for (const component of this.#components()) component?.UpdateCurveSet?.(name, time, renderContext);\r\n }\r\n\r\n /**\r\n * Longest duration of the named curve set across this stretch and its\r\n * children; 0 while hidden.\r\n */\r\n GetCurveSetDuration(name)\r\n {\r\n if (!this.display) return 0;\r\n let duration = 0;\r\n for (const curveSet of this.curveSets) if ((curveSet?.GetName() ?? curveSet?.name) === name) duration = Math.max(duration, getCurveDuration(curveSet));\r\n for (const component of this.#components()) duration = Math.max(duration, Number(component?.GetCurveSetDuration?.(name) ?? 0));\r\n return duration;\r\n }\r\n\r\n /**\r\n * Longest duration of a named time range within the named curve set, across\r\n * this stretch and its children; 0 while hidden.\r\n */\r\n GetRangeDuration(name, rangeName)\r\n {\r\n if (!this.display) return 0;\r\n let duration = 0;\r\n for (const curveSet of this.curveSets) if ((curveSet?.GetName() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet?.GetRangeDuration(rangeName) ?? 0));\r\n for (const component of this.#components()) duration = Math.max(duration, Number(component?.GetRangeDuration?.(name, rangeName) ?? 0));\r\n return duration;\r\n }\r\n\r\n /**\r\n * First emitter with the given name from the audio object, falling back to the\r\n * stretch audio, or null when neither has one.\r\n */\r\n FindSoundEmitter(name)\r\n {\r\n if (this.audio)\n {\n return this.audio.FindEmitterByName(name);\n }\n if (this.stretchAudio)\n {\n return this.stretchAudio.FindEmitterByName(name);\n }\n return null;\n }\r\n\r\n /** Carbon EveStretch3::RegisterComponents (cpp:721-734): forwards the\r\n * source/dest/stretch children via RunOnComponents (cpp:126-141; the move\r\n * object is NOT part of that fan-out). Gate m_display. */\r\n @carbon.method @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n this.sourceObject?.Register(registry);\r\n this.destObject?.Register(registry);\r\n this.stretchObject?.Register(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveStretch3::UnRegisterComponents (cpp:736-749): forwards the\r\n * same RunOnComponents children; no display re-check. */\r\n @carbon.method @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n this.sourceObject?.UnRegister(registry);\r\n this.destObject?.UnRegister(registry);\r\n this.stretchObject?.UnRegister(registry);\r\n }\r\n }\r\n\r\n /**\r\n * The non-null children in Carbon's RunOnComponents order: source,\r\n * destination, stretch, then the travelling child.\r\n */\r\n #components()\r\n {\r\n return [this.sourceObject, this.destObject, this.stretchObject, this.moveObject].filter(Boolean);\r\n }\r\n\r\n /**\r\n * Takes ownership of every dynamic binding and links it, so the bindings\r\n * resolve against this stretch's roots.\r\n */\r\n #InitializeBindings()\r\n {\r\n for (const binding of this.dynamicBindings)\r\n {\r\n binding?.SetOwner(this);\r\n binding?.Link();\r\n }\r\n }\r\n\r\n /**\r\n * A fresh child-update parameter block carrying this stretch's visibility;\r\n * each call site fills in the parent object and the world placement.\r\n */\r\n #makeParams()\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.isVisible = this.display;\r\n return params;\r\n }\r\n\r\n static StretchState = StretchState;\r\n static #identity = mat4.create();\r\n static #sourceTransform = mat4.create();\r\n static #destinationTransform = mat4.create();\r\n static #sourceVisibility = mat4.create();\r\n static #destinationVisibility = mat4.create();\r\n static #moveVisibility = mat4.create();\r\n static #directionTransform = mat4.create();\r\n static #unusedTransform = mat4.create();\r\n static #movePosition = vec3.create();\r\n static #midpoint = vec3.create();\r\n static #sphere = vec4.create();\r\n}\r\n"],"names":["_EveStretch","_identity","EveStretch3","_withIEveSpaceObject","withIEveSpaceObject2","IEveFiringEffectElement","e","_init_sourcePosition","_init_extra_sourcePosition","_init_destinationPosition","_init_extra_destinationPosition","_init_source","_init_extra_source","_init_dest","_init_extra_dest","_init_name","_init_extra_name","_init_moveProgression","_init_extra_moveProgression","_init_stretchAudio","_init_extra_stretchAudio","_init_controllers","_init_extra_controllers","_init_curveSets","_init_extra_curveSets","_init_length","_init_extra_length","_init_dynamicBindings","_init_extra_dynamicBindings","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_destObject","_init_extra_destObject","_init_sourceObject","_init_extra_sourceObject","_init_stretchObject","_init_extra_stretchObject","_init_startTime","_init_extra_startTime","_init_audio","_init_extra_audio","_init_moveObject","_init_extra_moveObject","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","vec3","notify","persist","model","string","list","boolean","persistOnly","float64","carbon","method","impl","adapted","reason","implemented","noop","sourcePosition","create","destinationPosition","source","dest","name","moveProgression","TriFloat","stretchAudio","controllers","curveSets","length","dynamicBindings","display","update","destObject","sourceObject","stretchObject","startTime","audio","moveObject","mat4","StretchState","STRETCH_STATE_UNDEFINED","Initialize","controller","IsLinked","Link","GetSourceSpaceObject","SetSourceSpaceObject","value","GetDestSpaceObject","SetDestSpaceObject","Rebind","onlyUpdateBindings","binding","Update","GetParameterMap","out","Object","curveSet","String","GetName","GetRawRoot","Owner","SourceSpaceObject","DestSpaceObject","SourceObject","GetRootObject","DestObject","MoveObject","StretchObject","GetBindingRoots","Source","Dest","Stretch","Move","OnListModified","event","_key","_key2","BELIST_LOADING","maskedEvent","BELIST_EVENTMASK","BELIST_INSERTED","BELIST_REMOVED","Unlink","BELIST_UNLOADSTART","SetOwner","UpdateSynchronous","context","STRETCH_STATE_STARTING","StartControllers","SetControllerVariable","STRETCH_STATE_STARTED","STRETCH_STATE_STOPPING","time","getTime","sampleVector","distance","params","spaceObjectParent","updateChildSync","subtract","scale","translationMatrix","localToWorldTransform","UpdateSyncronous","UpdateAsynchronous","relative","updateCurveSet","renderContext","sourceMatrix","destinationMatrix","makeEndpointTransforms","copy","updateChildAsync","makeStretchTransform","lerp","index","UpdateAsyncronous","UpdateEffectSync","UpdateEffectAsync","StartMoving","UpdateVisibility","parentTransform","updateChildVisibility","GetRenderables","component","collectRenderables","SetDisplay","GetBoundingSphere","vec4","set","valid","mergeSphere","GetCurveDuration","duration","timeScale","Number","GetTimeScale","Math","max","getCurveDuration","StartFiring","delay","Start","StopFiring","Stop","SetFiringTransform","destination","getTranslation","DisplayEndPoints","_displaySource","_displayDestination","SetDestObjectScale","SetIntensity","_intensity","SetVariable","HandleControllerEvent","HandleEvent","PlayCurveSet","rangeName","PlayTimeRange","ResetTimeRange","Play","StopCurveSet","UpdateCurveSet","GetCurveSetDuration","GetRangeDuration","FindSoundEmitter","FindEmitterByName","RegisterComponents","registry","GetComponentRegistry","Register","UnRegisterComponents","UnRegister","#components","filter","Boolean","#InitializeBindings","#makeParams","EveChildUpdateParams","isVisible","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveStretch3.js","sources":["../../../../../../src/trinity/eve/renderable/stretch/EveStretch3.js"],"sourcesContent":["// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch3.h\r\n// Source: trinity/trinity/Eve/Renderable/Stretch/EveStretch3.cpp\r\nimport { mat4 } from \"#math/mat4\";\nimport { withIEveSpaceObject2 } from \"../../IEveSpaceObject2.js\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport {\r\n BELIST_EVENTMASK,\r\n BELIST_INSERTED,\r\n BELIST_LOADING,\r\n BELIST_REMOVED,\r\n BELIST_UNLOADSTART\r\n} from \"../../../controllers/contracts.js\";\r\nimport { IEveFiringEffectElement } from \"../../IEveFiringEffectElement.js\";\nimport { TriFloat } from \"../../../core/variable/TriFloat.js\";\r\nimport { EveChildUpdateParams } from \"../../EveChildUpdateParams.js\";\r\nimport { StretchState } from \"../../../generated/eve/renderable/stretch/enums.js\";\r\nimport {\r\n collectRenderables,\r\n getCurveDuration,\r\n getTime,\r\n makeEndpointTransforms,\r\n makeStretchTransform,\r\n mergeSphere,\r\n sampleVector,\r\n translationMatrix,\r\n updateChildAsync,\r\n updateChildSync,\r\n updateChildVisibility,\r\n updateCurveSet\r\n} from \"./CjsStretchRuntime.js\";\r\n\r\n\r\n/**\r\n * The current stretch effect: places space-object children at the source, across\r\n * the span, at the destination and at a travelling point between them, driven by\r\n * its own controllers, dynamic bindings and curve sets.\r\n */\r\n@type.define({ className: \"EveStretch3\", family: \"eve/renderable/stretch\" })\r\nexport class EveStretch3 extends withIEveSpaceObject2(IEveFiringEffectElement)\n{\r\n @io.read @type.vec3 sourcePosition = vec3.create();\r\n @io.read @type.vec3 destinationPosition = vec3.create();\r\n @io.notify @io.persist @type.model(\"ITriVectorFunction\") source = null;\r\n @io.notify @io.persist @type.model(\"ITriVectorFunction\") dest = null;\r\n @io.persist @type.string name = \"\";\r\n @io.persist @type.model(\"TriFloat\") moveProgression = new TriFloat();\r\n @io.persist @type.model(\"IStretchAudio\") stretchAudio = null;\r\n @io.persist @type.list(\"ITr2Controller\") controllers = [];\r\n @io.persist @type.list(\"TriCurveSet\") curveSets = [];\r\n @io.persist @type.model(\"TriFloat\") length = new TriFloat();\r\n @io.persist @type.list(\"Tr2DynamicBinding\") dynamicBindings = [];\r\n @io.notify @io.persist @type.boolean display = true;\r\n @io.persist @type.boolean update = true;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") destObject = null;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") sourceObject = null;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") stretchObject = null;\r\n @io.read @type.float64 startTime = 0;\r\n @io.persist @type.model(\"ITr2Audio\") audio = null;\r\n @io.persistOnly @type.model(\"IEveSpaceObjectChild\") moveObject = null;\r\n\r\n #sourceSpaceObject = null;\r\n #destinationSpaceObject = null;\r\n #sourceMatrix = mat4.create();\r\n #destinationScale = 1;\r\n #delay = 0;\r\n #isMuzzleEffect = false;\r\n #stretchState = EveStretch3.StretchState.STRETCH_STATE_UNDEFINED;\r\n\r\n /**\r\n * Post-hydration hook; links any controller that is not already linked and\r\n * takes ownership of the dynamic bindings.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Assigns portable dynamic-binding owners directly because JavaScript arrays do not provide Carbon IList parent locks.\")\r\n Initialize()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n if (!controller?.IsLinked()) controller?.Link(this);\r\n }\r\n this.#InitializeBindings();\r\n return true;\r\n }\r\n\r\n /**\r\n * The space object standing in as parent for the source-side children, or\r\n * null.\r\n */\r\n @carbon.method @impl.implemented\r\n GetSourceSpaceObject()\r\n {\r\n return this.#sourceSpaceObject;\r\n }\r\n\r\n /**\r\n * Sets the space object used as parent for the source-side children and\r\n * relinks the dynamic bindings, since it is one of their roots.\r\n */\r\n @carbon.method @impl.implemented\r\n SetSourceSpaceObject(value)\r\n {\r\n this.#sourceSpaceObject = value ?? null;\r\n this.#InitializeBindings();\r\n }\r\n\r\n /** The space object standing in as parent for the destination child, or null. */\r\n @carbon.method @impl.implemented\r\n GetDestSpaceObject()\r\n {\r\n return this.#destinationSpaceObject;\r\n }\r\n\r\n /**\r\n * Sets the space object used as parent for the destination child and relinks\r\n * the dynamic bindings, since it is one of their roots.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDestSpaceObject(value)\r\n {\r\n this.#destinationSpaceObject = value ?? null;\r\n this.#InitializeBindings();\r\n }\r\n\r\n /**\r\n * Relinks the dynamic bindings and evaluates them once at time zero, and unless only the bindings were asked for, relinks the controllers.\r\n * @param {Boolean} [onlyUpdateBindings] - leave the controllers linked as they are\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Links portable bindings/controllers directly instead of using Carbon raw roots.\")\r\n Rebind(onlyUpdateBindings = false)\r\n {\r\n for (const binding of this.dynamicBindings)\r\n {\r\n binding?.Link();\r\n binding?.Update(0);\r\n }\r\n if (!onlyUpdateBindings)\r\n {\r\n for (const controller of this.controllers) controller?.Link(this);\r\n }\r\n }\r\n\r\n /**\r\n * Builds the prototype-free name map that bindings and controllers resolve\r\n * against: every curve set under its own name, plus Owner, the source and\r\n * destination space objects, and the root object of each child.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Builds Carbon's unordered parameter map as a prototype-free JavaScript object.\")\r\n GetParameterMap()\r\n {\r\n const out = Object.create(null);\r\n for (const curveSet of this.curveSets)\r\n {\r\n const name = String(curveSet?.GetName() ?? curveSet?.name ?? \"\");\r\n out[name] = curveSet?.GetRawRoot?.() ?? curveSet;\r\n }\r\n out.Owner = this;\r\n if (this.#sourceSpaceObject) out.SourceSpaceObject = this.#sourceSpaceObject;\r\n if (this.#destinationSpaceObject) out.DestSpaceObject = this.#destinationSpaceObject;\r\n if (this.sourceObject) out.SourceObject = this.sourceObject?.GetRootObject?.() ?? this.sourceObject;\r\n if (this.destObject) out.DestObject = this.destObject?.GetRootObject?.() ?? this.destObject;\r\n if (this.moveObject) out.MoveObject = this.moveObject?.GetRootObject?.() ?? this.moveObject;\r\n if (this.stretchObject) out.StretchObject = this.stretchObject?.GetRootObject?.() ?? this.stretchObject;\r\n return out;\r\n }\r\n\r\n /**\r\n * Fills out with the fixed binding roots - Owner, Source, Dest, Stretch, Move and the two space objects - under their binding-path names.\r\n * @param {Object} [out] - caller-owned map, mutated in place\r\n * @returns {Object} out\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBindingRoots(out = {})\r\n {\r\n out.Owner = this;\r\n out.Source = this.sourceObject;\r\n out.Dest = this.destObject;\r\n out.Stretch = this.stretchObject;\r\n out.Move = this.moveObject;\r\n out.SourceSpaceObject = this.#sourceSpaceObject;\r\n out.DestSpaceObject = this.#destinationSpaceObject;\r\n return out;\r\n }\r\n\r\n /**\r\n * Applies Carbon's IList ownership callbacks for the controllers and\r\n * dynamic-binding lists - linking on insert, unlinking on remove, unlinking\r\n * every controller on unload - and ignores events flagged as loading.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Reproduces Carbon IList controller and dynamic-binding callbacks through explicit portable list-event arguments.\")\r\n OnListModified(event, _key = 0, _key2 = 0, value = null, list = null)\r\n {\r\n if ((event & BELIST_LOADING) !== 0) return;\r\n const maskedEvent = event & BELIST_EVENTMASK;\r\n if (list === this.controllers)\r\n {\r\n if (maskedEvent === BELIST_INSERTED) value?.Link(this);\r\n else if (maskedEvent === BELIST_REMOVED) value?.Unlink();\r\n else if (maskedEvent === BELIST_UNLOADSTART)\r\n {\r\n for (const controller of this.controllers) controller?.Unlink();\r\n }\r\n }\r\n else if (list === this.dynamicBindings)\r\n {\r\n if (maskedEvent === BELIST_INSERTED)\r\n {\r\n value?.SetOwner(this);\r\n value?.Link();\r\n }\r\n else if (maskedEvent === BELIST_REMOVED)\r\n {\r\n value?.SetOwner(null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Applies a pending firing transition (starting sets the FiringDelay and\r\n * IsFiring controller variables, stopping clears IsFiring), advances the\r\n * bindings and controllers, samples the endpoint curves, records the span in\r\n * length, and drives each child's synchronous phase with a fresh parameter\r\n * block: the source and stretch children under the source space object, the\r\n * move child at the interpolated offset, and the destination child under the\r\n * destination space object at its scaled placement. Skipped entirely while\r\n * update is false.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon's synchronous task phase is retained as a serial graph update in the browser runtime.\")\r\n UpdateSynchronous(context)\r\n {\r\n if (!this.update) return true;\r\n if (this.#stretchState === EveStretch3.StretchState.STRETCH_STATE_STARTING)\r\n {\r\n this.StartControllers();\r\n this.SetControllerVariable(\"FiringDelay\", this.#delay);\r\n this.SetControllerVariable(\"IsFiring\", 1);\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_STARTED;\r\n }\r\n else if (this.#stretchState === EveStretch3.StretchState.STRETCH_STATE_STOPPING)\r\n {\r\n this.SetControllerVariable(\"IsFiring\", 0);\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_UNDEFINED;\r\n }\r\n\r\n const time = getTime(context);\r\n for (const binding of this.dynamicBindings) binding?.Update(time);\r\n for (const controller of this.controllers) controller?.Update(0.5);\r\n if (this.source) sampleVector(this.source, time, this.sourcePosition);\r\n if (this.dest) sampleVector(this.dest, time, this.destinationPosition);\r\n this.length.value = vec3.distance(this.sourcePosition, this.destinationPosition);\r\n\r\n const params = this.#makeParams();\r\n params.spaceObjectParent = this.#sourceSpaceObject ?? this;\r\n updateChildSync(this.sourceObject, context, params);\r\n updateChildSync(this.stretchObject, context, params);\r\n if (this.moveObject)\r\n {\r\n vec3.subtract(EveStretch3.#movePosition, this.sourcePosition, this.destinationPosition);\r\n vec3.scale(EveStretch3.#movePosition, EveStretch3.#movePosition, this.moveProgression.value);\r\n translationMatrix(EveStretch3.#movePosition, params.localToWorldTransform);\r\n updateChildSync(this.moveObject, context, params);\r\n }\r\n if (this.destObject)\r\n {\r\n params.spaceObjectParent = this.#destinationSpaceObject ?? this;\r\n translationMatrix(this.destinationPosition, params.localToWorldTransform, this.#destinationScale);\r\n updateChildSync(this.destObject, context, params);\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon's IEveSpaceObject2 spelling of UpdateSynchronous; forwards unchanged. */\r\n UpdateSyncronous(context)\r\n {\r\n return this.UpdateSynchronous(context);\r\n }\r\n\r\n /**\r\n * Advances the curve sets on time measured from the first asynchronous update,\r\n * then places each child: the source at the span basis, or verbatim at the\r\n * muzzle transform when SetFiringTransform supplied one; the stretch child\r\n * spanning the endpoints and re-centred on their midpoint; the move child at\r\n * the interpolated position carrying the span orientation; and the destination\r\n * at its scaled basis. Finally feeds both audio objects the current endpoints.\r\n * Skipped entirely while update is false.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Carbon's asynchronous task phase is retained as a serial graph update in the browser runtime.\")\r\n UpdateAsynchronous(context)\r\n {\r\n if (!this.update) return true;\r\n const time = getTime(context);\r\n if (this.startTime === 0) this.startTime = time;\r\n const relative = time - this.startTime;\r\n for (const curveSet of this.curveSets) updateCurveSet(curveSet, relative, context.renderContext);\r\n\r\n const params = this.#makeParams();\r\n const sourceMatrix = EveStretch3.#sourceTransform;\r\n const destinationMatrix = EveStretch3.#destinationTransform;\r\n makeEndpointTransforms(this.sourcePosition, this.destinationPosition, sourceMatrix, destinationMatrix);\r\n mat4.copy(EveStretch3.#directionTransform, sourceMatrix);\r\n if (this.#isMuzzleEffect) mat4.copy(sourceMatrix, this.#sourceMatrix);\r\n\r\n mat4.copy(params.localToWorldTransform, sourceMatrix);\r\n updateChildAsync(this.sourceObject, context, params);\r\n makeStretchTransform(this.destinationPosition, this.sourcePosition, params.localToWorldTransform);\r\n vec3.lerp(EveStretch3.#midpoint, this.sourcePosition, this.destinationPosition, 0.5);\r\n params.localToWorldTransform[12] = EveStretch3.#midpoint[0];\r\n params.localToWorldTransform[13] = EveStretch3.#midpoint[1];\r\n params.localToWorldTransform[14] = EveStretch3.#midpoint[2];\r\n updateChildAsync(this.stretchObject, context, params);\r\n vec3.lerp(EveStretch3.#movePosition, this.sourcePosition, this.destinationPosition, this.moveProgression.value);\r\n mat4.copy(params.localToWorldTransform, EveStretch3.#directionTransform);\r\n params.localToWorldTransform[12] = EveStretch3.#movePosition[0];\r\n params.localToWorldTransform[13] = EveStretch3.#movePosition[1];\r\n params.localToWorldTransform[14] = EveStretch3.#movePosition[2];\r\n updateChildAsync(this.moveObject, context, params);\r\n for (const index of [0, 1, 2, 4, 5, 6, 8, 9, 10]) destinationMatrix[index] *= this.#destinationScale;\r\n mat4.copy(params.localToWorldTransform, destinationMatrix);\r\n updateChildAsync(this.destObject, context, params);\r\n this.audio?.Update?.(this.sourcePosition, this.destinationPosition);\r\n if (this.stretchAudio)\n {\n this.stretchAudio.Update(this.sourcePosition, this.destinationPosition);\n }\n return true;\r\n }\r\n\r\n /**\r\n * Carbon's IEveSpaceObject2 spelling of UpdateAsynchronous; forwards\r\n * unchanged.\r\n */\r\n UpdateAsyncronous(context)\r\n {\r\n return this.UpdateAsynchronous(context);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement synchronous hook; runs the normal synchronous\r\n * update.\r\n */\r\n UpdateEffectSync(context)\r\n {\r\n return this.UpdateSynchronous(context);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement asynchronous hook; runs the normal asynchronous\r\n * update.\r\n */\r\n UpdateEffectAsync(context)\r\n {\r\n return this.UpdateAsynchronous(context);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement move hook; EveStretch3 drives its travelling child\r\n * from the moveProgression value instead of a start event.\r\n */\r\n StartMoving()\r\n {\r\n }\r\n\r\n /**\r\n * Hands each child its visibility placement: the endpoint children as plain\r\n * translations (the destination scaled), the stretch child the parent\r\n * transform unchanged, and the move child the span orientation moved to the\r\n * interpolated position. No GPU work happens here.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Visibility transforms are computed here; renderer-specific LOD realization stays in runtime-engine.\")\r\n UpdateVisibility(context, parentTransform = EveStretch3.#identity)\r\n {\r\n if (!this.display) return;\r\n updateChildVisibility(this.sourceObject, context, translationMatrix(this.sourcePosition, EveStretch3.#sourceVisibility));\r\n updateChildVisibility(this.destObject, context, translationMatrix(this.destinationPosition, EveStretch3.#destinationVisibility, this.#destinationScale));\r\n updateChildVisibility(this.stretchObject, context, parentTransform);\r\n vec3.lerp(EveStretch3.#movePosition, this.sourcePosition, this.destinationPosition, this.moveProgression.value);\r\n makeEndpointTransforms(this.sourcePosition, this.destinationPosition, EveStretch3.#moveVisibility, EveStretch3.#unusedTransform);\r\n EveStretch3.#moveVisibility[12] = EveStretch3.#movePosition[0];\r\n EveStretch3.#moveVisibility[13] = EveStretch3.#movePosition[1];\r\n EveStretch3.#moveVisibility[14] = EveStretch3.#movePosition[2];\r\n updateChildVisibility(this.moveObject, context, EveStretch3.#moveVisibility);\r\n }\r\n\r\n /**\r\n * Appends every child's renderables to out while displayed; batch construction is left to runtime-engine.\r\n * @returns {Array} out\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Renderable collection is backend-neutral; draw-batch construction remains runtime-engine work.\")\r\n GetRenderables(out = [])\r\n {\r\n if (this.display) for (const component of this.#components()) collectRenderables(component, out);\r\n return out;\r\n }\r\n\r\n /**\r\n * Shows or hides the stretch, gating visibility, renderable collection,\r\n * curve-set control and component registration.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDisplay(display)\r\n {\r\n this.display = !!display;\r\n }\r\n\r\n /**\r\n * Merges the bounding spheres of every child, including the travelling one.\r\n * @param {Array} out - caller-owned packed (x, y, z, radius), overwritten\r\n * @returns {Boolean} whether any child contributed a sphere\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Bounds are merged from child graph objects without Carbon's native BoundingSphere helper.\")\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, 0, 0, 0, 0);\r\n let valid = false;\r\n for (const component of this.#components())\r\n {\r\n if (typeof component?.GetBoundingSphere === \"function\" && component.GetBoundingSphere(EveStretch3.#sphere) !== false)\r\n {\r\n mergeSphere(out, EveStretch3.#sphere);\r\n valid = true;\r\n }\r\n }\r\n return valid;\r\n }\r\n\r\n /**\r\n * Longest curve-set duration in seconds, each divided by that set's own time\r\n * scale.\r\n */\r\n @carbon.method @impl.implemented\r\n GetCurveDuration()\r\n {\r\n let duration = 0;\r\n for (const curveSet of this.curveSets)\r\n {\r\n const timeScale = Number(curveSet?.GetTimeScale?.() ?? curveSet?.timeScale ?? 1) || 1;\r\n duration = Math.max(duration, getCurveDuration(curveSet) / timeScale);\r\n }\r\n return duration;\r\n }\r\n\r\n /**\r\n * Requests a firing start; the controller variables are only applied on the next synchronous update, while the stretch audio starts immediately.\r\n * @param {Number} [delay] - seconds handed to the controllers as the FiringDelay variable\r\n */\r\n @carbon.method @impl.implemented\r\n StartFiring(delay = 0)\r\n {\r\n this.#delay = Number(delay);\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_STARTING;\r\n if (this.stretchAudio)\n {\n this.stretchAudio.Start();\n }\n }\r\n\r\n /**\r\n * Requests a firing stop; IsFiring is cleared on the next synchronous update,\r\n * while the stretch audio stops immediately.\r\n */\r\n @carbon.method @impl.implemented\r\n StopFiring()\r\n {\r\n this.#stretchState = EveStretch3.StretchState.STRETCH_STATE_STOPPING;\r\n if (this.stretchAudio)\n {\n this.stretchAudio.Stop();\n }\n }\r\n\r\n /**\r\n * Pins both endpoints explicitly and drops the source and dest position curves\r\n * so they cannot overwrite them. A 16-element source marks this a muzzle\r\n * effect, whose transform is used verbatim for the source child instead of the\r\n * derived span basis.\r\n */\r\n @carbon.method @impl.implemented\r\n SetFiringTransform(source, destination)\r\n {\r\n this.source = null;\r\n this.dest = null;\r\n if (source?.length === 16)\r\n {\r\n this.#isMuzzleEffect = true;\r\n mat4.copy(this.#sourceMatrix, source);\r\n mat4.getTranslation(this.sourcePosition, source);\r\n }\r\n else\r\n {\r\n this.#isMuzzleEffect = false;\r\n vec3.copy(this.sourcePosition, source);\r\n translationMatrix(source, this.#sourceMatrix);\r\n }\r\n vec3.copy(this.destinationPosition, destination);\r\n }\r\n\r\n /** IEveFiringEffectElement hook; EveStretch3 cannot hide individual endpoints. */\r\n @carbon.method @impl.noop\r\n DisplayEndPoints(_displaySource, _displayDestination)\r\n {\r\n }\r\n\r\n /**\r\n * Uniform scale applied to the destination child's placement in both the\r\n * synchronous and asynchronous passes.\r\n */\r\n @carbon.method @impl.implemented\r\n SetDestObjectScale(scale)\r\n {\r\n this.#destinationScale = Number(scale);\r\n }\r\n\r\n /**\r\n * IEveFiringEffectElement intensity hook; EveStretch3 has no intensity term of\r\n * its own.\r\n */\r\n @carbon.method @impl.noop\r\n SetIntensity(_intensity)\r\n {\r\n }\r\n\r\n /**\r\n * Sets a controller variable on every child and on this stretch's own\r\n * controllers.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct child/controller method forwarding.\")\r\n SetControllerVariable(name, value)\r\n {\r\n for (const component of this.#components()) component?.SetControllerVariable(name, value);\r\n for (const controller of this.controllers) controller?.SetVariable(name, value);\r\n }\r\n\r\n /**\r\n * Delivers a controller event to every child and to this stretch's own\r\n * controllers.\r\n */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct child/controller method forwarding.\")\r\n HandleControllerEvent(name)\r\n {\r\n for (const component of this.#components()) component?.HandleControllerEvent(name);\r\n for (const controller of this.controllers) controller?.HandleEvent(name);\r\n }\r\n\r\n /** Starts every child's controllers and this stretch's own. */\r\n @carbon.method @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct child/controller method forwarding.\")\r\n StartControllers()\r\n {\r\n for (const component of this.#components()) component?.StartControllers();\r\n for (const controller of this.controllers) controller?.Start();\r\n }\r\n\r\n /**\r\n * Plays every local curve set with the given name - over a named time range\r\n * when one is given, otherwise from the start with the range reset - and\r\n * forwards the call to the children. Ignored while hidden.\r\n */\r\n PlayCurveSet(name, rangeName = \"\")\r\n {\r\n if (!this.display) return;\r\n for (const curveSet of this.curveSets)\r\n {\r\n if ((curveSet?.GetName() ?? curveSet?.name) !== name) continue;\r\n if (rangeName) curveSet.PlayTimeRange?.(rangeName);\r\n else { curveSet.ResetTimeRange(); curveSet.Play(); }\r\n }\r\n for (const component of this.#components()) component?.PlayCurveSet?.(name, rangeName);\r\n }\r\n\r\n /**\r\n * Stops every local curve set with the given name and forwards the call to the\r\n * children. Ignored while hidden.\r\n */\r\n StopCurveSet(name)\r\n {\r\n if (!this.display) return;\r\n for (const curveSet of this.curveSets) if ((curveSet?.GetName() ?? curveSet?.name) === name) curveSet.Stop();\r\n for (const component of this.#components()) component?.StopCurveSet?.(name);\r\n }\r\n\r\n /**\r\n * Advances every local curve set with the given name to an explicit time and\r\n * forwards the call to the children; unlike play and stop this is not gated on\r\n * display.\r\n */\r\n UpdateCurveSet(name, time, renderContext = null)\r\n {\r\n for (const curveSet of this.curveSets)\r\n {\r\n if (curveSet.GetName() === name)\r\n {\r\n updateCurveSet(curveSet, time, renderContext);\r\n }\r\n }\r\n for (const component of this.#components()) component?.UpdateCurveSet?.(name, time, renderContext);\r\n }\r\n\r\n /**\r\n * Longest duration of the named curve set across this stretch and its\r\n * children; 0 while hidden.\r\n */\r\n GetCurveSetDuration(name)\r\n {\r\n if (!this.display) return 0;\r\n let duration = 0;\r\n for (const curveSet of this.curveSets) if ((curveSet?.GetName() ?? curveSet?.name) === name) duration = Math.max(duration, getCurveDuration(curveSet));\r\n for (const component of this.#components()) duration = Math.max(duration, Number(component?.GetCurveSetDuration?.(name) ?? 0));\r\n return duration;\r\n }\r\n\r\n /**\r\n * Longest duration of a named time range within the named curve set, across\r\n * this stretch and its children; 0 while hidden.\r\n */\r\n GetRangeDuration(name, rangeName)\r\n {\r\n if (!this.display) return 0;\r\n let duration = 0;\r\n for (const curveSet of this.curveSets) if ((curveSet?.GetName() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet?.GetRangeDuration(rangeName) ?? 0));\r\n for (const component of this.#components()) duration = Math.max(duration, Number(component?.GetRangeDuration?.(name, rangeName) ?? 0));\r\n return duration;\r\n }\r\n\r\n /**\r\n * First emitter with the given name from the audio object, falling back to the\r\n * stretch audio, or null when neither has one.\r\n */\r\n FindSoundEmitter(name)\r\n {\r\n if (this.audio)\n {\n return this.audio.FindEmitterByName(name);\n }\n if (this.stretchAudio)\n {\n return this.stretchAudio.FindEmitterByName(name);\n }\n return null;\n }\r\n\r\n /** Carbon EveStretch3::RegisterComponents (cpp:721-734): forwards the\r\n * source/dest/stretch children via RunOnComponents (cpp:126-141; the move\r\n * object is NOT part of that fan-out). Gate m_display. */\r\n @carbon.method @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n this.sourceObject?.Register(registry);\r\n this.destObject?.Register(registry);\r\n this.stretchObject?.Register(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveStretch3::UnRegisterComponents (cpp:736-749): forwards the\r\n * same RunOnComponents children; no display re-check. */\r\n @carbon.method @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n this.sourceObject?.UnRegister(registry);\r\n this.destObject?.UnRegister(registry);\r\n this.stretchObject?.UnRegister(registry);\r\n }\r\n }\r\n\r\n /**\r\n * The non-null children in Carbon's RunOnComponents order: source,\r\n * destination, stretch, then the travelling child.\r\n */\r\n #components()\r\n {\r\n return [this.sourceObject, this.destObject, this.stretchObject, this.moveObject].filter(Boolean);\r\n }\r\n\r\n /**\r\n * Takes ownership of every dynamic binding and links it, so the bindings\r\n * resolve against this stretch's roots.\r\n */\r\n #InitializeBindings()\r\n {\r\n for (const binding of this.dynamicBindings)\r\n {\r\n binding?.SetOwner(this);\r\n binding?.Link();\r\n }\r\n }\r\n\r\n /**\r\n * A fresh child-update parameter block carrying this stretch's visibility;\r\n * each call site fills in the parent object and the world placement.\r\n */\r\n #makeParams()\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.isVisible = this.display;\r\n return params;\r\n }\r\n\r\n static StretchState = StretchState;\r\n static #identity = mat4.create();\r\n static #sourceTransform = mat4.create();\r\n static #destinationTransform = mat4.create();\r\n static #sourceVisibility = mat4.create();\r\n static #destinationVisibility = mat4.create();\r\n static #moveVisibility = mat4.create();\r\n static #directionTransform = mat4.create();\r\n static #unusedTransform = mat4.create();\r\n static #movePosition = vec3.create();\r\n static #midpoint = vec3.create();\r\n static #sphere = vec4.create();\r\n}\r\n"],"names":["_EveStretch","_identity","EveStretch3","_withIEveSpaceObject","withIEveSpaceObject2","IEveFiringEffectElement","e","_init_sourcePosition","_init_extra_sourcePosition","_init_destinationPosition","_init_extra_destinationPosition","_init_source","_init_extra_source","_init_dest","_init_extra_dest","_init_name","_init_extra_name","_init_moveProgression","_init_extra_moveProgression","_init_stretchAudio","_init_extra_stretchAudio","_init_controllers","_init_extra_controllers","_init_curveSets","_init_extra_curveSets","_init_length","_init_extra_length","_init_dynamicBindings","_init_extra_dynamicBindings","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_destObject","_init_extra_destObject","_init_sourceObject","_init_extra_sourceObject","_init_stretchObject","_init_extra_stretchObject","_init_startTime","_init_extra_startTime","_init_audio","_init_extra_audio","_init_moveObject","_init_extra_moveObject","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","vec3","notify","persist","model","string","list","boolean","persistOnly","float64","carbon","method","impl","adapted","reason","implemented","noop","sourcePosition","create","destinationPosition","source","dest","name","moveProgression","TriFloat","stretchAudio","controllers","curveSets","length","dynamicBindings","display","update","destObject","sourceObject","stretchObject","startTime","audio","moveObject","mat4","StretchState","STRETCH_STATE_UNDEFINED","Initialize","controller","IsLinked","Link","GetSourceSpaceObject","SetSourceSpaceObject","value","GetDestSpaceObject","SetDestSpaceObject","Rebind","onlyUpdateBindings","binding","Update","GetParameterMap","out","Object","curveSet","String","GetName","GetRawRoot","Owner","SourceSpaceObject","DestSpaceObject","SourceObject","GetRootObject","DestObject","MoveObject","StretchObject","GetBindingRoots","Source","Dest","Stretch","Move","OnListModified","event","_key","_key2","BELIST_LOADING","maskedEvent","BELIST_EVENTMASK","BELIST_INSERTED","BELIST_REMOVED","Unlink","BELIST_UNLOADSTART","SetOwner","UpdateSynchronous","context","STRETCH_STATE_STARTING","StartControllers","SetControllerVariable","STRETCH_STATE_STARTED","STRETCH_STATE_STOPPING","time","getTime","sampleVector","distance","params","spaceObjectParent","updateChildSync","subtract","scale","translationMatrix","localToWorldTransform","UpdateSyncronous","UpdateAsynchronous","relative","updateCurveSet","renderContext","sourceMatrix","destinationMatrix","makeEndpointTransforms","copy","updateChildAsync","makeStretchTransform","lerp","index","UpdateAsyncronous","UpdateEffectSync","UpdateEffectAsync","StartMoving","UpdateVisibility","parentTransform","updateChildVisibility","GetRenderables","component","collectRenderables","SetDisplay","GetBoundingSphere","vec4","set","valid","mergeSphere","GetCurveDuration","duration","timeScale","Number","GetTimeScale","Math","max","getCurveDuration","StartFiring","delay","Start","StopFiring","Stop","SetFiringTransform","destination","getTranslation","DisplayEndPoints","_displaySource","_displayDestination","SetDestObjectScale","SetIntensity","_intensity","SetVariable","HandleControllerEvent","HandleEvent","PlayCurveSet","rangeName","PlayTimeRange","ResetTimeRange","Play","StopCurveSet","UpdateCurveSet","GetCurveSetDuration","GetRangeDuration","FindSoundEmitter","FindEmitterByName","RegisterComponents","registry","GetComponentRegistry","Register","UnRegisterComponents","UnRegister","#components","filter","Boolean","#InitializeBindings","#makeParams","EveChildUpdateParams","isVisible","constructor"],"mappings":"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"}
@@ -47,7 +47,7 @@ class EveShip2 extends _EveMobile {
47
47
  return;
48
48
  }
49
49
  super.UpdateSyncronous(updateContext);
50
- const time = updateContext?.GetTime?.() ?? 0;
50
+ const time = updateContext?.GetTime() ?? 0;
51
51
  if (this.translationCurve) {
52
52
  if (!this.speed) {
53
53
  this.speed = new _TriFloat();
@@ -78,8 +78,8 @@ class EveShip2 extends _EveMobile {
78
78
  if (!this.boosters) {
79
79
  return;
80
80
  }
81
- const time = updateContext?.GetTime?.() ?? 0;
82
- const deltaT = updateContext?.GetDeltaT?.() ?? 0;
81
+ const time = updateContext?.GetTime() ?? 0;
82
+ const deltaT = updateContext?.GetDeltaT() ?? 0;
83
83
  this.boosters.Update(deltaT, time, this.worldTransform, this.speed?.value ?? 0, this.#acceleration, this.worldRotation);
84
84
  this.boosters.UpdateTrails(deltaT, time);
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EveShip2.js","sources":["../../../../../src/trinity/eve/spaceObject/EveShip2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/EveShip2.h\r\n// Source: trinity/trinity/Eve/SpaceObject/EveShip2.cpp\r\n// Hand-maintained after promotion from generated schema intake.\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { EveMobile } from \"./EveMobile.js\";\r\nimport { TriFloat } from \"../../core/variable/TriFloat.js\";\r\n\r\n/** A ship space object: booster drive, speed state, and ship shader data. */\r\n@type.define({ className: \"EveShip2\", family: \"eve/spaceObject\" })\r\nexport class EveShip2 extends EveMobile\r\n{\r\n\r\n /** m_boosters (EveBoosterSet2Ptr) [PERSISTONLY] */\r\n @io.persistOnly\r\n @type.model(\"EveBoosterSet2\")\r\n boosters = null;\r\n\r\n /** m_displayKillCounterValue (uint32_t) [READWRITE] */\r\n @io.readwrite\r\n @type.uint32\r\n displayKillCounterValue = 0;\r\n\r\n /** m_maxSpeed (float) [READWRITE] - the maximum speed of the ship. */\r\n @io.readwrite\r\n @type.float32\r\n maxSpeed = 0;\r\n\r\n /** m_speed (TriFloatPtr) [READ] */\r\n @io.read\r\n @type.objectRef(\"TriFloat\")\r\n speed = null;\r\n\r\n /** audioSpeedParameter (MAP_PROPERTY) - root audio value holder. */\n @io.readwrite\n @type.objectRef(\"IRoot\")\n audioSpeedParameter = null;\n\r\n /** m_acceleration - second derivative of the position curve, fed to boosters. */\r\n #acceleration = vec3.create();\r\n\r\n\r\n /**\r\n * Carbon EveShip2::UpdateSyncronous - base sync, then speed from the world\r\n * velocity, audio speed parameter, and booster acceleration from the\r\n * position curve's second derivative (EveShip2.cpp:16-45).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n super.UpdateSyncronous(updateContext);\r\n const time = updateContext?.GetTime?.() ?? 0;\r\n if (this.translationCurve)\r\n {\r\n if (!this.speed)\r\n {\r\n this.speed = new TriFloat();\r\n }\r\n this.speed.value = vec3.length(this.worldVelocity);\r\n }\r\n this.UpdateShipSpeedForAudio();\r\n if (this.boosters)\r\n {\r\n if (this.translationCurve?.GetValueDoubleDotAt)\r\n {\r\n this.translationCurve.GetValueDoubleDotAt(time, this.#acceleration);\r\n }\r\n else\r\n {\r\n vec3.set(this.#acceleration, 0, 0, 0);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::UpdateAsyncronous - base async, then boosters. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n super.UpdateAsyncronous(updateContext);\r\n this.UpdateBoosters(updateContext);\r\n }\r\n\r\n /** Carbon EveShip2::UpdateBoosters (EveShip2.cpp:55-64). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateBoosters(updateContext)\r\n {\r\n if (!this.boosters)\r\n {\r\n return;\r\n }\r\n const time = updateContext?.GetTime?.() ?? 0;\r\n const deltaT = updateContext?.GetDeltaT?.() ?? 0;\r\n this.boosters.Update(\r\n deltaT,\r\n time,\r\n this.worldTransform,\r\n this.speed?.value ?? 0,\r\n this.#acceleration,\r\n this.worldRotation\r\n );\r\n this.boosters.UpdateTrails(deltaT, time);\r\n }\r\n\r\n /** Carbon EveShip2::UpdateVisibility - base, then booster visibility. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform)\r\n {\r\n super.UpdateVisibility(updateContext, parentTransform);\r\n if (!this.display)\r\n {\r\n return;\r\n }\r\n if (this.DisplayBoosters())\r\n {\r\n this.boosters.UpdateVisibility(updateContext);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::GetRenderables - base, then booster renderables. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(out)\r\n {\r\n if (!this.display)\r\n {\r\n return out;\r\n }\r\n super.GetRenderables(out);\r\n if (this.DisplayBoosters())\r\n {\r\n this.boosters.GetRenderables(out);\r\n }\r\n return out;\r\n }\r\n\r\n /** Returns the attached booster set, or null when the ship has none. */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoosters()\r\n {\r\n return this.boosters;\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::SetBoosters - swaps the set and re-registers it with\r\n * the component registry when one is attached (duck-typed).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetBoosters(boosters)\r\n {\r\n const registry = this.GetComponentRegistry?.();\r\n if (registry)\r\n {\r\n this.boosters?.UnRegister(registry);\r\n }\r\n this.boosters = boosters ?? null;\r\n if (registry)\r\n {\r\n this.boosters?.Register(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::RegisterComponents (cpp:145-153): base registration,\r\n * then forwards the booster set (no display gate of its own). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n super.RegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.boosters)\r\n {\r\n this.boosters.Register(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::UnRegisterComponents (cpp:155-163): base, then forwards\r\n * the booster set. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n super.UnRegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.boosters)\r\n {\r\n this.boosters.UnRegister(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::DisplayBoosters - boosters render with the children. */\r\n @carbon.method\r\n @impl.implemented\r\n DisplayBoosters()\r\n {\r\n return !!this.boosters && this.DisplayChildren();\r\n }\r\n\r\n /**\r\n * Returns the kill count displayed on the hull, which the space-object effect\r\n * attributes expose to effect bindings.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetKillCounterValue()\r\n {\r\n return this.displayKillCounterValue;\r\n }\r\n\r\n /**\r\n * Returns the ship's maximum speed, the divisor that normalizes current speed\r\n * into the bound audio speed parameter.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetMaxSpeed()\r\n {\r\n return this.maxSpeed;\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::UpdateShipSpeedForAudio - normalizes speed/maxSpeed\r\n * into the bound audio parameter (EveShip2.cpp:360-380).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Blue FindEntry member binding becomes a duck-typed value holder; the runtime audio layer owns the emitter side.\")\n UpdateShipSpeedForAudio()\r\n {\r\n if (this.maxSpeed === 0 || !this.boosters)\r\n {\r\n return;\r\n }\r\n const parameter = this.audioSpeedParameter;\r\n if (parameter && typeof parameter === \"object\" && \"value\" in parameter)\r\n {\r\n parameter.value = (this.speed?.value ?? 0) / this.maxSpeed;\r\n }\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::RebuildCachedData - after geometry load, re-attach\r\n * turrets to the freshly loaded locators (EveShip2.cpp:169-174).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RebuildCachedData(asyncRes)\r\n {\r\n super.RebuildCachedData(asyncRes);\r\n this.RebuildTurretPositions?.();\r\n }\r\n\r\n /** Carbon method RebuildBoosterSet (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildBoosterSet()\r\n {\r\n if (!this.boosters) return false;\r\n this.boosters.Clear();\r\n for (const locator of this.locators)\r\n {\r\n const name = locator?.GetName?.() ?? locator?.name ?? \"\";\r\n if (!name.startsWith(\"locator_booster\")) continue;\r\n const transform = locator.GetTransform?.() ?? locator.transform;\r\n if (transform) this.boosters.Add?.(transform, [0, 1, 1, 1], true, 0, 0);\r\n }\r\n this.boosters.UpdateValues?.({ property: \"items\" });\r\n return true;\r\n }\r\n\r\n /**\r\n * Runs the base space-object initialization; the ship adds no setup of its\r\n * own.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n return super.Initialize() ?? true;\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::GetPerObjectData - stamps the booster glow intensity\r\n * into shipData.x before delegating to the base record\r\n * (EveShip2.cpp:275-289). The ship-data vec4 is exposed for the\r\n * per-object values builder.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPerObjectData(accumulator = null)\r\n {\r\n this.spaceObjectShipData[0] = this.boosters?.GetBoosterIntensity?.() ?? 0;\r\n\r\n const data = super.GetPerObjectData(accumulator);\r\n // The base fill ran during update, so the glow lane has to be restamped\r\n // into both records here - Carbon writes m_spaceObjectShipData and the\r\n // records read from it in the same call (EveShip2.cpp:275-289).\r\n data.vs.Set(\"shipData\", this.spaceObjectShipData);\r\n data.ps.Set(\"shipData\", this.spaceObjectShipData);\r\n\r\n return data;\r\n }\r\n\r\n /** The vs/ps ship constants (x = booster glow intensity). */\r\n GetSpaceObjectShipData()\r\n {\r\n return this.spaceObjectShipData;\r\n }\r\n\r\n}\r\n"],"names":["_EveShip","EveShip2","EveMobile","e","_init_boosters","_init_extra_boosters","_init_displayKillCounterValue","_init_extra_displayKillCounterValue","_init_maxSpeed","_init_extra_maxSpeed","_init_speed","_init_extra_speed","_init_audioSpeedParameter","_init_extra_audioSpeedParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","model","readwrite","uint32","float32","read","objectRef","carbon","method","impl","implemented","adapted","reason","boosters","displayKillCounterValue","maxSpeed","speed","audioSpeedParameter","vec3","create","UpdateSyncronous","updateContext","update","time","GetTime","translationCurve","TriFloat","value","length","worldVelocity","UpdateShipSpeedForAudio","GetValueDoubleDotAt","set","UpdateAsyncronous","UpdateBoosters","deltaT","GetDeltaT","Update","worldTransform","worldRotation","UpdateTrails","UpdateVisibility","parentTransform","display","DisplayBoosters","GetRenderables","out","GetBoosters","SetBoosters","registry","GetComponentRegistry","UnRegister","Register","RegisterComponents","UnRegisterComponents","DisplayChildren","GetKillCounterValue","GetMaxSpeed","parameter","RebuildCachedData","asyncRes","RebuildTurretPositions","RebuildBoosterSet","Clear","locator","locators","name","GetName","startsWith","transform","GetTransform","Add","UpdateValues","property","Initialize","GetPerObjectData","accumulator","spaceObjectShipData","GetBoosterIntensity","data","vs","Set","ps","GetSpaceObjectShipData"],"mappings":"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"}
1
+ {"version":3,"file":"EveShip2.js","sources":["../../../../../src/trinity/eve/spaceObject/EveShip2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/EveShip2.h\r\n// Source: trinity/trinity/Eve/SpaceObject/EveShip2.cpp\r\n// Hand-maintained after promotion from generated schema intake.\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { EveMobile } from \"./EveMobile.js\";\r\nimport { TriFloat } from \"../../core/variable/TriFloat.js\";\r\n\r\n/** A ship space object: booster drive, speed state, and ship shader data. */\r\n@type.define({ className: \"EveShip2\", family: \"eve/spaceObject\" })\r\nexport class EveShip2 extends EveMobile\r\n{\r\n\r\n /** m_boosters (EveBoosterSet2Ptr) [PERSISTONLY] */\r\n @io.persistOnly\r\n @type.model(\"EveBoosterSet2\")\r\n boosters = null;\r\n\r\n /** m_displayKillCounterValue (uint32_t) [READWRITE] */\r\n @io.readwrite\r\n @type.uint32\r\n displayKillCounterValue = 0;\r\n\r\n /** m_maxSpeed (float) [READWRITE] - the maximum speed of the ship. */\r\n @io.readwrite\r\n @type.float32\r\n maxSpeed = 0;\r\n\r\n /** m_speed (TriFloatPtr) [READ] */\r\n @io.read\r\n @type.objectRef(\"TriFloat\")\r\n speed = null;\r\n\r\n /** audioSpeedParameter (MAP_PROPERTY) - root audio value holder. */\n @io.readwrite\n @type.objectRef(\"IRoot\")\n audioSpeedParameter = null;\n\r\n /** m_acceleration - second derivative of the position curve, fed to boosters. */\r\n #acceleration = vec3.create();\r\n\r\n\r\n /**\r\n * Carbon EveShip2::UpdateSyncronous - base sync, then speed from the world\r\n * velocity, audio speed parameter, and booster acceleration from the\r\n * position curve's second derivative (EveShip2.cpp:16-45).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n super.UpdateSyncronous(updateContext);\r\n const time = updateContext?.GetTime() ?? 0;\r\n if (this.translationCurve)\r\n {\r\n if (!this.speed)\r\n {\r\n this.speed = new TriFloat();\r\n }\r\n this.speed.value = vec3.length(this.worldVelocity);\r\n }\r\n this.UpdateShipSpeedForAudio();\r\n if (this.boosters)\r\n {\r\n if (this.translationCurve?.GetValueDoubleDotAt)\r\n {\r\n this.translationCurve.GetValueDoubleDotAt(time, this.#acceleration);\r\n }\r\n else\r\n {\r\n vec3.set(this.#acceleration, 0, 0, 0);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::UpdateAsyncronous - base async, then boosters. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n super.UpdateAsyncronous(updateContext);\r\n this.UpdateBoosters(updateContext);\r\n }\r\n\r\n /** Carbon EveShip2::UpdateBoosters (EveShip2.cpp:55-64). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateBoosters(updateContext)\r\n {\r\n if (!this.boosters)\r\n {\r\n return;\r\n }\r\n const time = updateContext?.GetTime() ?? 0;\r\n const deltaT = updateContext?.GetDeltaT() ?? 0;\r\n this.boosters.Update(\r\n deltaT,\r\n time,\r\n this.worldTransform,\r\n this.speed?.value ?? 0,\r\n this.#acceleration,\r\n this.worldRotation\r\n );\r\n this.boosters.UpdateTrails(deltaT, time);\r\n }\r\n\r\n /** Carbon EveShip2::UpdateVisibility - base, then booster visibility. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform)\r\n {\r\n super.UpdateVisibility(updateContext, parentTransform);\r\n if (!this.display)\r\n {\r\n return;\r\n }\r\n if (this.DisplayBoosters())\r\n {\r\n this.boosters.UpdateVisibility(updateContext);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::GetRenderables - base, then booster renderables. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(out)\r\n {\r\n if (!this.display)\r\n {\r\n return out;\r\n }\r\n super.GetRenderables(out);\r\n if (this.DisplayBoosters())\r\n {\r\n this.boosters.GetRenderables(out);\r\n }\r\n return out;\r\n }\r\n\r\n /** Returns the attached booster set, or null when the ship has none. */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoosters()\r\n {\r\n return this.boosters;\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::SetBoosters - swaps the set and re-registers it with\r\n * the component registry when one is attached (duck-typed).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetBoosters(boosters)\r\n {\r\n const registry = this.GetComponentRegistry?.();\r\n if (registry)\r\n {\r\n this.boosters?.UnRegister(registry);\r\n }\r\n this.boosters = boosters ?? null;\r\n if (registry)\r\n {\r\n this.boosters?.Register(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::RegisterComponents (cpp:145-153): base registration,\r\n * then forwards the booster set (no display gate of its own). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n super.RegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.boosters)\r\n {\r\n this.boosters.Register(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::UnRegisterComponents (cpp:155-163): base, then forwards\r\n * the booster set. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n super.UnRegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.boosters)\r\n {\r\n this.boosters.UnRegister(registry);\r\n }\r\n }\r\n\r\n /** Carbon EveShip2::DisplayBoosters - boosters render with the children. */\r\n @carbon.method\r\n @impl.implemented\r\n DisplayBoosters()\r\n {\r\n return !!this.boosters && this.DisplayChildren();\r\n }\r\n\r\n /**\r\n * Returns the kill count displayed on the hull, which the space-object effect\r\n * attributes expose to effect bindings.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetKillCounterValue()\r\n {\r\n return this.displayKillCounterValue;\r\n }\r\n\r\n /**\r\n * Returns the ship's maximum speed, the divisor that normalizes current speed\r\n * into the bound audio speed parameter.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetMaxSpeed()\r\n {\r\n return this.maxSpeed;\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::UpdateShipSpeedForAudio - normalizes speed/maxSpeed\r\n * into the bound audio parameter (EveShip2.cpp:360-380).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Blue FindEntry member binding becomes a duck-typed value holder; the runtime audio layer owns the emitter side.\")\n UpdateShipSpeedForAudio()\r\n {\r\n if (this.maxSpeed === 0 || !this.boosters)\r\n {\r\n return;\r\n }\r\n const parameter = this.audioSpeedParameter;\r\n if (parameter && typeof parameter === \"object\" && \"value\" in parameter)\r\n {\r\n parameter.value = (this.speed?.value ?? 0) / this.maxSpeed;\r\n }\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::RebuildCachedData - after geometry load, re-attach\r\n * turrets to the freshly loaded locators (EveShip2.cpp:169-174).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RebuildCachedData(asyncRes)\r\n {\r\n super.RebuildCachedData(asyncRes);\r\n this.RebuildTurretPositions?.();\r\n }\r\n\r\n /** Carbon method RebuildBoosterSet (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildBoosterSet()\r\n {\r\n if (!this.boosters) return false;\r\n this.boosters.Clear();\r\n for (const locator of this.locators)\r\n {\r\n const name = locator?.GetName?.() ?? locator?.name ?? \"\";\r\n if (!name.startsWith(\"locator_booster\")) continue;\r\n const transform = locator.GetTransform?.() ?? locator.transform;\r\n if (transform) this.boosters.Add?.(transform, [0, 1, 1, 1], true, 0, 0);\r\n }\r\n this.boosters.UpdateValues?.({ property: \"items\" });\r\n return true;\r\n }\r\n\r\n /**\r\n * Runs the base space-object initialization; the ship adds no setup of its\r\n * own.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n return super.Initialize() ?? true;\r\n }\r\n\r\n /**\r\n * Carbon EveShip2::GetPerObjectData - stamps the booster glow intensity\r\n * into shipData.x before delegating to the base record\r\n * (EveShip2.cpp:275-289). The ship-data vec4 is exposed for the\r\n * per-object values builder.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPerObjectData(accumulator = null)\r\n {\r\n this.spaceObjectShipData[0] = this.boosters?.GetBoosterIntensity?.() ?? 0;\r\n\r\n const data = super.GetPerObjectData(accumulator);\r\n // The base fill ran during update, so the glow lane has to be restamped\r\n // into both records here - Carbon writes m_spaceObjectShipData and the\r\n // records read from it in the same call (EveShip2.cpp:275-289).\r\n data.vs.Set(\"shipData\", this.spaceObjectShipData);\r\n data.ps.Set(\"shipData\", this.spaceObjectShipData);\r\n\r\n return data;\r\n }\r\n\r\n /** The vs/ps ship constants (x = booster glow intensity). */\r\n GetSpaceObjectShipData()\r\n {\r\n return this.spaceObjectShipData;\r\n }\r\n\r\n}\r\n"],"names":["_EveShip","EveShip2","EveMobile","e","_init_boosters","_init_extra_boosters","_init_displayKillCounterValue","_init_extra_displayKillCounterValue","_init_maxSpeed","_init_extra_maxSpeed","_init_speed","_init_extra_speed","_init_audioSpeedParameter","_init_extra_audioSpeedParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","model","readwrite","uint32","float32","read","objectRef","carbon","method","impl","implemented","adapted","reason","boosters","displayKillCounterValue","maxSpeed","speed","audioSpeedParameter","vec3","create","UpdateSyncronous","updateContext","update","time","GetTime","translationCurve","TriFloat","value","length","worldVelocity","UpdateShipSpeedForAudio","GetValueDoubleDotAt","set","UpdateAsyncronous","UpdateBoosters","deltaT","GetDeltaT","Update","worldTransform","worldRotation","UpdateTrails","UpdateVisibility","parentTransform","display","DisplayBoosters","GetRenderables","out","GetBoosters","SetBoosters","registry","GetComponentRegistry","UnRegister","Register","RegisterComponents","UnRegisterComponents","DisplayChildren","GetKillCounterValue","GetMaxSpeed","parameter","RebuildCachedData","asyncRes","RebuildTurretPositions","RebuildBoosterSet","Clear","locator","locators","name","GetName","startsWith","transform","GetTransform","Add","UpdateValues","property","Initialize","GetPerObjectData","accumulator","spaceObjectShipData","GetBoosterIntensity","data","vs","Set","ps","GetSpaceObjectShipData"],"mappings":"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"}