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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EveHazeSet.js","sources":["../../../../../../src/trinity/eve/attachment/haze/EveHazeSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveHazeSetLight } from \"./EveHazeSetLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\n\r\n\r\n/**\r\n * A hull's authored haze volumes, owning their per-bone bounds and the point\r\n * lights the haze emits.\r\n */\r\n@type.define({ className: \"EveHazeSet\", family: \"eve/attachment/haze\" })\r\nexport class EveHazeSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveHazeSetItem\")\r\n hazes = [];\r\n\r\n @io.persist\r\n @type.list(\"EveHazeSetLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every haze that rides the parent transform. */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EveHazeSet.cpp:66) and\r\n * m_boosterGain (ctor `false` = 0.0f, cpp:67 - a float initialized with a\r\n * bool, verbatim quirk). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /** Sets the effect that draws the haze volumes. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /**\r\n * Recomputes the item-set bounds and marks the packed geometry stale; a haze\r\n * set has no skinned flag, so every bone-indexed haze always gets its own box.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Carbon rebuilds packed haze vertices and static bounds here. The\r\n // backend-neutral runtime keeps the authored graph and invalidates the\r\n // renderer-facing revision without allocating device resources.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds here too (cpp:247), passing\r\n // skinned=TRUE unconditionally: a haze set has no skinned flag, so every\r\n // bone-indexed haze gets its own box.\r\n this.CreateBoundingBox();\r\n }\r\n\r\n /**\r\n * Carbon CreateBoundingBox (EveHazeSet.cpp:245-248): one delegation to the\r\n * shared item-set helper, always skinned.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CreateBoundingBox()\r\n {\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, true, this.hazes);\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateVisibility (cpp:208-218). Unlike the other sets\r\n * this one has no GetAabb of its own and never gates the bone count, because\r\n * its bounds are always built skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = GetItemSetAabb(\r\n EveHazeSet.#aabbScratch,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n boneCount\r\n );\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Appends an authored haze item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddHazeItem(item)\r\n {\r\n this.hazes.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the haze effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveHazeSetLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveHazeSetLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveHazeSet::RegisterComponents (cpp:394-401): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateLights (cpp:219-239): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * BOTH activationStrength and boosterGain (cpp:237-238). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveHazeSet::GetLights (cpp:403-418): parentBrightness is set\r\n * INSIDE the loop (cpp:409) because boosterGainInfluence lights multiply\r\n * it by the booster gain (cpp:410-413); point conversion on the bone\r\n * matrix; no blink/fade, no gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveHazeSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveHazeSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveHazeSet","_identity","EveHazeSet","IEveSpaceObjectAttachment","e","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_hazes","_init_extra_hazes","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","boolean","string","list","carbon","method","impl","implemented","adapted","reason","effect","display","name","hazes","lights","box3","create","Setup","Initialize","Rebuild","__state","add","CreateBoundingBox","CreateItemSetBoundingBoxes","UpdateVisibility","updateContext","parentTransform","bones","boneCount","aabb","GetItemSetAabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","AddHazeItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveHazeSetLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveHazeSet.js","sources":["../../../../../../src/trinity/eve/attachment/haze/EveHazeSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveHazeSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveHazeSetLight } from \"./EveHazeSetLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\n\r\n\r\n/**\r\n * A hull's authored haze volumes, owning their per-bone bounds and the point\r\n * lights the haze emits.\r\n */\r\n@type.define({ className: \"EveHazeSet\", family: \"eve/attachment/haze\" })\r\nexport class EveHazeSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveHazeSetItem\")\r\n hazes = [];\r\n\r\n @io.persist\r\n @type.list(\"EveHazeSetLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every haze that rides the parent transform. */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EveHazeSet.cpp:66) and\r\n * m_boosterGain (ctor `false` = 0.0f, cpp:67 - a float initialized with a\r\n * bool, verbatim quirk). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /** Sets the effect that draws the haze volumes. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /**\r\n * Recomputes the item-set bounds and marks the packed geometry stale; a haze\r\n * set has no skinned flag, so every bone-indexed haze always gets its own box.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Carbon rebuilds packed haze vertices and static bounds here. The\r\n // backend-neutral runtime keeps the authored graph and invalidates the\r\n // renderer-facing revision without allocating device resources.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds here too (cpp:247), passing\r\n // skinned=TRUE unconditionally: a haze set has no skinned flag, so every\r\n // bone-indexed haze gets its own box.\r\n this.CreateBoundingBox();\r\n }\r\n\r\n /**\r\n * Carbon CreateBoundingBox (EveHazeSet.cpp:245-248): one delegation to the\r\n * shared item-set helper, always skinned.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CreateBoundingBox()\r\n {\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, true, this.hazes);\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateVisibility (cpp:208-218). Unlike the other sets\r\n * this one has no GetAabb of its own and never gates the bone count, because\r\n * its bounds are always built skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = GetItemSetAabb(\r\n EveHazeSet.#aabbScratch,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n boneCount\r\n );\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Appends an authored haze item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddHazeItem(item)\r\n {\r\n this.hazes.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the haze effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveHazeSetLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveHazeSetLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveHazeSet::RegisterComponents (cpp:394-401): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveHazeSet::UpdateLights (cpp:219-239): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * BOTH activationStrength and boosterGain (cpp:237-238). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveHazeSet::GetLights (cpp:403-418): parentBrightness is set\r\n * INSIDE the loop (cpp:409) because boosterGainInfluence lights multiply\r\n * it by the booster gain (cpp:410-413); point conversion on the bone\r\n * matrix; no blink/fade, no gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveHazeSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveHazeSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveHazeSet","_identity","EveHazeSet","IEveSpaceObjectAttachment","e","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_hazes","_init_extra_hazes","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","objectRef","boolean","string","list","carbon","method","impl","implemented","adapted","reason","effect","display","name","hazes","lights","box3","create","Setup","Initialize","Rebuild","__state","add","CreateBoundingBox","CreateItemSetBoundingBoxes","UpdateVisibility","updateContext","parentTransform","bones","boneCount","aabb","GetItemSetAabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","AddHazeItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveHazeSetLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
@@ -110,7 +110,7 @@ new class extends _identity {
110
110
  return false;
111
111
  }
112
112
  box3.transformMat4(aabb, aabb, parentTransform);
113
- return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);
113
+ return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);
114
114
  }
115
115
 
116
116
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EvePlaneSet.js","sources":["../../../../../../src/trinity/eve/attachment/plane/EvePlaneSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EvePlaneLight } from \"./EvePlaneLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Fade, Saturate } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport {\r\n AsPerPointLightData,\r\n CopyLightData,\r\n CreateLightDataScratch,\r\n CreateLightRecord,\r\n MatrixCopyFrom3x4\r\n} from \"../../lights/lightConversion.js\";\r\n\r\nconst WHITE = new Float32Array([1, 1, 1, 1]);\r\n\r\n\r\n/**\r\n * A hull's authored textured planes, owning their static and per-bone bounds,\r\n * the four shared texture parameters and the plane lights.\r\n */\r\n@type.define({ className: \"EvePlaneSet\", family: \"eve/attachment/planes\" })\r\nexport class EvePlaneSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.notify\r\n @io.persist\r\n @type.uint8\r\n pickBufferID = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n hideOnLowQuality = false;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EvePlaneSetItem\")\r\n planes = [];\r\n\r\n @io.persist\r\n @type.list(\"EvePlaneLight\")\r\n lights = [];\r\n\r\n // SOF-authored shared texture parameters; persisted so the values\r\n // interchange reproduces Carbon's hidden plane-set bindings.\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n imageMapParameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap1Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap2Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n maskMapParameter = null;\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned, non-transparent plane (cpp:323-355). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EvePlaneSet.cpp:76). Lights are\r\n * BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored planes -\r\n * skipping any plane whose colour is fully zero, which contributes nothing -\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed vertices, bounds caches and quad registration are reconciled by\r\n // the renderer adapter from this authored graph.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon CreateBoundingBoxes (cpp:323-355) is the shared builder plus one\r\n // filter: a fully transparent plane contributes NO bounds at all.\r\n CreateItemSetBoundingBoxes(\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n this.skinned,\r\n this.planes.filter(item => !EvePlaneSet.#IsFullyTransparent(item))\r\n );\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Sets the effect that draws the planes. */\r\n @carbon.method\r\n @impl.implemented\r\n SetEffect(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Sets the 8-bit pick buffer id written by the plane geometry, rebuilding\r\n * immediately when planes are already authored because the id is packed into\r\n * it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetPickBufferID(pickBufferID)\r\n {\r\n this.pickBufferID = Number(pickBufferID) & 0xff;\r\n if (this.planes.length) this.Rebuild();\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAabb (cpp:273-276): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateVisibility (cpp:236-246): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EvePlaneSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the planes ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetIsSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /**\r\n * Appends an authored plane item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddPlaneItem(item)\r\n {\r\n this.planes.push(item);\r\n }\r\n\r\n /** The live plane item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetPlanes()\r\n {\r\n return this.planes;\r\n }\r\n\r\n /**\r\n * Sets a shader option on the plane effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Sets the shared image map texture parameter; its average colour is one of\r\n * the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetImageMapParameter(parameter)\r\n {\r\n this.imageMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared first layer map texture parameter; its average colour is one\r\n * of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap1Parameter(parameter)\r\n {\r\n this.layerMap1Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared second layer map texture parameter; its average colour is\r\n * one of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap2Parameter(parameter)\r\n {\r\n this.layerMap2Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared mask map texture parameter; its average colour is one of the\r\n * four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetMaskMapParameter(parameter)\r\n {\r\n this.maskMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EvePlaneLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EvePlaneLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EvePlaneSet::RegisterComponents (cpp:535-542): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateLights (cpp:248-267): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * the activation strength (boosterGain unused by planes). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAverageColor (cpp:499-528): the componentwise\r\n * product of the four texture parameters' average colors, each defaulting\r\n * to white when the map or its resource is missing. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The texture average color is a resource capability - read as a GetAverageColor duck on the parameter's resource, white when absent.\")\r\n GetAverageColor(out = new Float32Array(4))\r\n {\r\n const layer1 = EvePlaneSet.#MapAverageColor(this.layerMap1Parameter);\r\n const layer2 = EvePlaneSet.#MapAverageColor(this.layerMap2Parameter);\r\n const image = EvePlaneSet.#MapAverageColor(this.imageMapParameter);\r\n const mask = EvePlaneSet.#MapAverageColor(this.maskMapParameter);\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n out[channel] = layer1[channel] * layer2[channel] * image[channel] * mask[channel];\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetLights (cpp:544-568): parentBrightness set once;\r\n * average color computed only when lights exist (cpp:550-553; zero\r\n * otherwise - moot, the loop is empty); the loop iterates BY VALUE\r\n * (cpp:555-557 `auto light` + lightDataCopy) so the stored items are never\r\n * mutated - a scratch copy carries: color = authored * averageColor\r\n * componentwise, then Saturate (extrapolating above 1), then brightness *=\r\n * Fade(fadeType, ...) (cpp:558-564); point conversion on the bone matrix. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); the texture average colors and profile packing follow the adapted ducks above.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EvePlaneSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const averageColor = EvePlaneSet.#averageColorScratch;\r\n if (this.lights.length > 0)\r\n {\r\n this.GetAverageColor(averageColor);\r\n }\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EvePlaneSet.#lightRecord;\r\n const dataCopy = EvePlaneSet.#lightDataScratch;\r\n\r\n for (const light of this.lights)\r\n {\r\n CopyLightData(dataCopy, light.lightData);\r\n dataCopy.color[0] *= averageColor[0];\r\n dataCopy.color[1] *= averageColor[1];\r\n dataCopy.color[2] *= averageColor[2];\r\n dataCopy.color[3] *= averageColor[3];\r\n Saturate(dataCopy.color, dataCopy.color, light.saturation);\r\n dataCopy.brightness *= Fade(time, light.fadeType, light.blinkRate, light.blinkPhase);\r\n AsPerPointLightData(record, dataCopy, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /**\r\n * The average colour of a texture parameter's resource, white when the\r\n * parameter, its resource or its average colour is missing, so an absent map\r\n * is a no-op in the four-way product.\r\n */\r\n static #MapAverageColor(parameter)\r\n {\r\n const average = parameter?.GetResource?.()?.GetAverageColor?.();\r\n return average ?? WHITE;\r\n }\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n /** Carbon CreateBoundingBoxes skips an item whose color is exactly\r\n * Color(0, 0, 0, 0) (cpp:332-335) - an authored \"off\" plane contributes no\r\n * bounds. Any non-zero channel, alpha included, counts. */\r\n static #IsFullyTransparent(item)\r\n {\r\n const color = item?.color;\r\n return !!color && !color[0] && !color[1] && !color[2] && !color[3];\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #lightRecord = CreateLightRecord();\r\n\r\n static #lightDataScratch = CreateLightDataScratch();\r\n\r\n static #averageColorScratch = new Float32Array(4);\r\n}\r\n"],"names":["WHITE","Float32Array","_EvePlaneSet","_identity","EvePlaneSet","IEveSpaceObjectAttachment","e","_init_pickBufferID","_init_extra_pickBufferID","_init_hideOnLowQuality","_init_extra_hideOnLowQuality","_init_effect","_init_extra_effect","_init_skinned","_init_extra_skinned","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_planes","_init_extra_planes","_init_lights","_init_extra_lights","_init_imageMapParameter","_init_extra_imageMapParameter","_init_layerMap1Parameter","_init_extra_layerMap1Parameter","_init_layerMap2Parameter","_init_extra_layerMap2Parameter","_init_maskMapParameter","_init_extra_maskMapParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","notify","persist","uint8","boolean","objectRef","string","list","carbon","method","impl","adapted","implemented","reason","pickBufferID","hideOnLowQuality","effect","skinned","display","name","planes","lights","imageMapParameter","layerMap1Parameter","layerMap2Parameter","maskMapParameter","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","filter","item","Initialize","SetEffect","SetPickBufferID","Number","length","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetIsSkinned","AddPlaneItem","push","GetPlanes","SetShaderOption","value","SetOption","SetImageMapParameter","parameter","SetLayerMap1Parameter","SetLayerMap2Parameter","SetMaskMapParameter","AddLightFromSOF","light","EvePlaneLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetAverageColor","layer1","layer2","image","mask","channel","GetLights","lightManager","features","parentBrightness","parentScale","averageColor","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","dataCopy","CopyLightData","color","Saturate","saturation","brightness","Fade","fadeType","blinkRate","blinkPhase","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","#MapAverageColor","average","GetResource","#IsFullyTransparent","CreateLightRecord","CreateLightDataScratch","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EvePlaneSet.js","sources":["../../../../../../src/trinity/eve/attachment/plane/EvePlaneSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EvePlaneSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EvePlaneLight } from \"./EvePlaneLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Fade, Saturate } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport {\r\n AsPerPointLightData,\r\n CopyLightData,\r\n CreateLightDataScratch,\r\n CreateLightRecord,\r\n MatrixCopyFrom3x4\r\n} from \"../../lights/lightConversion.js\";\r\n\r\nconst WHITE = new Float32Array([1, 1, 1, 1]);\r\n\r\n\r\n/**\r\n * A hull's authored textured planes, owning their static and per-bone bounds,\r\n * the four shared texture parameters and the plane lights.\r\n */\r\n@type.define({ className: \"EvePlaneSet\", family: \"eve/attachment/planes\" })\r\nexport class EvePlaneSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.notify\r\n @io.persist\r\n @type.uint8\r\n pickBufferID = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n hideOnLowQuality = false;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EvePlaneSetItem\")\r\n planes = [];\r\n\r\n @io.persist\r\n @type.list(\"EvePlaneLight\")\r\n lights = [];\r\n\r\n // SOF-authored shared texture parameters; persisted so the values\r\n // interchange reproduces Carbon's hidden plane-set bindings.\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n imageMapParameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap1Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n layerMap2Parameter = null;\r\n\r\n @io.persist\r\n @type.objectRef(\"TriTextureParameter\")\r\n maskMapParameter = null;\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned, non-transparent plane (cpp:323-355). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor 0, EvePlaneSet.cpp:76). Lights are\r\n * BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored planes -\r\n * skipping any plane whose colour is fully zero, which contributes nothing -\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed vertices, bounds caches and quad registration are reconciled by\r\n // the renderer adapter from this authored graph.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon CreateBoundingBoxes (cpp:323-355) is the shared builder plus one\r\n // filter: a fully transparent plane contributes NO bounds at all.\r\n CreateItemSetBoundingBoxes(\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n this.skinned,\r\n this.planes.filter(item => !EvePlaneSet.#IsFullyTransparent(item))\r\n );\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Sets the effect that draws the planes. */\r\n @carbon.method\r\n @impl.implemented\r\n SetEffect(effect)\r\n {\r\n this.effect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Sets the 8-bit pick buffer id written by the plane geometry, rebuilding\r\n * immediately when planes are already authored because the id is packed into\r\n * it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetPickBufferID(pickBufferID)\r\n {\r\n this.pickBufferID = Number(pickBufferID) & 0xff;\r\n if (this.planes.length) this.Rebuild();\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAabb (cpp:273-276): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateVisibility (cpp:236-246): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EvePlaneSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the planes ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetIsSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /**\r\n * Appends an authored plane item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddPlaneItem(item)\r\n {\r\n this.planes.push(item);\r\n }\r\n\r\n /** The live plane item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetPlanes()\r\n {\r\n return this.planes;\r\n }\r\n\r\n /**\r\n * Sets a shader option on the plane effect, doing nothing when no effect that\r\n * accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Sets the shared image map texture parameter; its average colour is one of\r\n * the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetImageMapParameter(parameter)\r\n {\r\n this.imageMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared first layer map texture parameter; its average colour is one\r\n * of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap1Parameter(parameter)\r\n {\r\n this.layerMap1Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared second layer map texture parameter; its average colour is\r\n * one of the four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetLayerMap2Parameter(parameter)\r\n {\r\n this.layerMap2Parameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Sets the shared mask map texture parameter; its average colour is one of the\r\n * four factors tinting the plane lights.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetMaskMapParameter(parameter)\r\n {\r\n this.maskMapParameter = parameter ?? null;\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EvePlaneLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EvePlaneLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EvePlaneSet::RegisterComponents (cpp:535-542): LightOwner when\r\n * lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EvePlaneSet::UpdateLights (cpp:248-267): the shared packed-set\r\n * bone pattern (boneIndex > 0 only; column-stride Float4x3 unpack; 4th\r\n * column zeroed, [15] = 1; boneMatrix *= parentTransform - Carbon\r\n * row-vector, bone FIRST: gl operands SWAP; else copy the parent). Stamps\r\n * the activation strength (boosterGain unused by planes). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetAverageColor (cpp:499-528): the componentwise\r\n * product of the four texture parameters' average colors, each defaulting\r\n * to white when the map or its resource is missing. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The texture average color is a resource capability - read as a GetAverageColor duck on the parameter's resource, white when absent.\")\r\n GetAverageColor(out = new Float32Array(4))\r\n {\r\n const layer1 = EvePlaneSet.#MapAverageColor(this.layerMap1Parameter);\r\n const layer2 = EvePlaneSet.#MapAverageColor(this.layerMap2Parameter);\r\n const image = EvePlaneSet.#MapAverageColor(this.imageMapParameter);\r\n const mask = EvePlaneSet.#MapAverageColor(this.maskMapParameter);\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n out[channel] = layer1[channel] * layer2[channel] * image[channel] * mask[channel];\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon EvePlaneSet::GetLights (cpp:544-568): parentBrightness set once;\r\n * average color computed only when lights exist (cpp:550-553; zero\r\n * otherwise - moot, the loop is empty); the loop iterates BY VALUE\r\n * (cpp:555-557 `auto light` + lightDataCopy) so the stored items are never\r\n * mutated - a scratch copy carries: color = authored * averageColor\r\n * componentwise, then Saturate (extrapolating above 1), then brightness *=\r\n * Fade(fadeType, ...) (cpp:558-564); point conversion on the bone matrix. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); the texture average colors and profile packing follow the adapted ducks above.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EvePlaneSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const averageColor = EvePlaneSet.#averageColorScratch;\r\n if (this.lights.length > 0)\r\n {\r\n this.GetAverageColor(averageColor);\r\n }\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EvePlaneSet.#lightRecord;\r\n const dataCopy = EvePlaneSet.#lightDataScratch;\r\n\r\n for (const light of this.lights)\r\n {\r\n CopyLightData(dataCopy, light.lightData);\r\n dataCopy.color[0] *= averageColor[0];\r\n dataCopy.color[1] *= averageColor[1];\r\n dataCopy.color[2] *= averageColor[2];\r\n dataCopy.color[3] *= averageColor[3];\r\n Saturate(dataCopy.color, dataCopy.color, light.saturation);\r\n dataCopy.brightness *= Fade(time, light.fadeType, light.blinkRate, light.blinkPhase);\r\n AsPerPointLightData(record, dataCopy, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /**\r\n * The average colour of a texture parameter's resource, white when the\r\n * parameter, its resource or its average colour is missing, so an absent map\r\n * is a no-op in the four-way product.\r\n */\r\n static #MapAverageColor(parameter)\r\n {\r\n const average = parameter?.GetResource?.()?.GetAverageColor?.();\r\n return average ?? WHITE;\r\n }\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n /** Carbon CreateBoundingBoxes skips an item whose color is exactly\r\n * Color(0, 0, 0, 0) (cpp:332-335) - an authored \"off\" plane contributes no\r\n * bounds. Any non-zero channel, alpha included, counts. */\r\n static #IsFullyTransparent(item)\r\n {\r\n const color = item?.color;\r\n return !!color && !color[0] && !color[1] && !color[2] && !color[3];\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #lightRecord = CreateLightRecord();\r\n\r\n static #lightDataScratch = CreateLightDataScratch();\r\n\r\n static #averageColorScratch = new Float32Array(4);\r\n}\r\n"],"names":["WHITE","Float32Array","_EvePlaneSet","_identity","EvePlaneSet","IEveSpaceObjectAttachment","e","_init_pickBufferID","_init_extra_pickBufferID","_init_hideOnLowQuality","_init_extra_hideOnLowQuality","_init_effect","_init_extra_effect","_init_skinned","_init_extra_skinned","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_planes","_init_extra_planes","_init_lights","_init_extra_lights","_init_imageMapParameter","_init_extra_imageMapParameter","_init_layerMap1Parameter","_init_extra_layerMap1Parameter","_init_layerMap2Parameter","_init_extra_layerMap2Parameter","_init_maskMapParameter","_init_extra_maskMapParameter","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","notify","persist","uint8","boolean","objectRef","string","list","carbon","method","impl","adapted","implemented","reason","pickBufferID","hideOnLowQuality","effect","skinned","display","name","planes","lights","imageMapParameter","layerMap1Parameter","layerMap2Parameter","maskMapParameter","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","filter","item","Initialize","SetEffect","SetPickBufferID","Number","length","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetIsSkinned","AddPlaneItem","push","GetPlanes","SetShaderOption","value","SetOption","SetImageMapParameter","parameter","SetLayerMap1Parameter","SetLayerMap2Parameter","SetMaskMapParameter","AddLightFromSOF","light","EvePlaneLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetAverageColor","layer1","layer2","image","mask","channel","GetLights","lightManager","features","parentBrightness","parentScale","averageColor","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","dataCopy","CopyLightData","color","Saturate","saturation","brightness","Fade","fadeType","blinkRate","blinkPhase","AsPerPointLightData","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","#MapAverageColor","average","GetResource","#IsFullyTransparent","CreateLightRecord","CreateLightDataScratch","constructor"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { EveComponentType } from '../../EveComponentTypes.js';
8
8
  import { Tr2Light as _Tr2Light } from '../../lights/Tr2Light.js';
9
9
  import { CreateItemSetBoundingBoxes, GetItemSetAabb } from '../itemSetBounds.js';
10
10
  import { MatrixCopyFrom3x4, AsPerSpotLightData, CreateLightRecord } from '../../lights/lightConversion.js';
11
- import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition.js';
11
+ import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js';
12
12
  import { TriBatchType } from '#consts/graphics';
13
13
 
14
14
  let _initProto, _initClass, _init_spotlightItems, _init_extra_spotlightItems, _init_name, _init_extra_name, _init_display, _init_extra_display, _init_coneEffect, _init_extra_coneEffect, _init_glowEffect, _init_extra_glowEffect, _init_skinned, _init_extra_skinned, _init_intensity, _init_extra_intensity, _init_lights, _init_extra_lights;
@@ -167,7 +167,7 @@ new class extends _identity {
167
167
  return false;
168
168
  }
169
169
  box3.transformMat4(aabb, aabb, parentTransform);
170
- return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);
170
+ return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);
171
171
  }
172
172
 
173
173
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EveSpotlightSet.js","sources":["../../../../../../src/trinity/eve/attachment/spotlight/EveSpotlightSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveSpotlightLight } from \"./EveSpotlightLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerSpotLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { Tr2VertexDefinition } from \"../../../core/vertex/Tr2VertexDefinition.js\";\r\nimport { TriBatchType } from \"#consts/graphics\";\r\n\r\n\r\n// Carbon's two nested pool-vertex layouts, BUILT as Carbon builds them\r\n// (GlowPoolVertex::GetDefinition, EveSpotlightSet.cpp:16-32;\r\n// ConePoolVertex::GetDefinition, cpp:34-49). Stream 0 is the per-corner\r\n// TEXCOORD4 float; stream 1 is the instance data. The ledger lands exactly on\r\n// each struct's size: glow 3xVector4 + 12 halves = 72, cone 3xVector4 +\r\n// 6 halves = 60 (EveSpotlightSet.h:110-137).\r\nconst GLOW_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"TEXCOORD\", 3, 1, 1);\r\n\r\nconst CONE_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_2\", \"TEXCOORD\", 3, 1, 1);\r\n\r\n/** sizeof(GlowPoolVertex) / sizeof(ConePoolVertex): the stream-1 ledger. */\r\nconst GLOW_POOL_VERTEX_SIZE = GLOW_POOL_VERTEX_DEFINITION.nextOffset[1];\r\nconst CONE_POOL_VERTEX_SIZE = CONE_POOL_VERTEX_DEFINITION.nextOffset[1];\r\n\r\n// Carbon's anonymous-namespace quad counts (EveSpotlightSet.cpp:53-54).\r\nconst CONE_QUAD_COUNT = 4;\r\nconst SPRITE_QUAD_COUNT = 2;\r\n\r\n\r\n/**\r\n * A hull's authored spotlights, owning their static and per-bone bounds, the\r\n * cone and glow effects that draw them, and the spot lights they emit.\r\n */\r\n@type.define({ className: \"EveSpotlightSet\", family: \"eve/attachment/spotlights\" })\r\nexport class EveSpotlightSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpotlightSetItem\")\r\n spotlightItems = [];\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n coneEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n glowEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.list(\"EveSpotlightLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned spotlight (cpp:311). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength / m_boosterGain (ctor 0 / 0,\r\n * EveSpotlightSet.cpp:90-91). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored spotlight items\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed cone/glow vertices, bounds caches, effect hashes and quad\r\n // registration are reconciled by the concrete renderer adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds at the tail of the same pack (cpp:311).\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spotlightItems);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** The effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n GetConeEffect()\r\n {\r\n return this.coneEffect;\r\n }\r\n\r\n /** Sets the effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n SetConeEffect(effect)\r\n {\r\n this.coneEffect = effect ?? null;\r\n }\r\n\r\n /** The effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n GetGlowEffect()\r\n {\r\n return this.glowEffect;\r\n }\r\n\r\n /** Sets the effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n SetGlowEffect(effect)\r\n {\r\n this.glowEffect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererCone (EveSpotlightSet.cpp:124-127): one\r\n * additive-batch registration keyed by the cone effect's hash. Carbon\r\n * registers through its cached m_coneEffectHash; the key is read from the\r\n * effect here, exactly as EveSpriteSet's registration seam does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererCone(quadRenderer)\r\n {\r\n if (!this.coneEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.coneEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n CONE_POOL_VERTEX_SIZE,\r\n CONE_QUAD_COUNT,\r\n CONE_POOL_VERTEX_DEFINITION,\r\n this.coneEffect\r\n );\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererGlow (cpp:129-132): the glow twin, two quads\r\n * per sprite.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererGlow(quadRenderer)\r\n {\r\n if (!this.glowEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.glowEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n GLOW_POOL_VERTEX_SIZE,\r\n SPRITE_QUAD_COUNT,\r\n GLOW_POOL_VERTEX_DEFINITION,\r\n this.glowEffect\r\n );\r\n }\r\n\r\n /** The built ConePoolVertex declaration (nested-struct static in Carbon). */\r\n static getConeDefinition()\r\n {\r\n return CONE_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** The built GlowPoolVertex declaration (nested-struct static in Carbon). */\r\n static getGlowDefinition()\r\n {\r\n return GLOW_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetAabb (cpp:176-179): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateVisibility (cpp:138-148): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpotlightSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the spotlights ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /** The authored set name, which SOF uses to match this set to its DNA entry. */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored set name, coercing null or undefined to an empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** The live spotlight item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetSpotlightItems()\r\n {\r\n return this.spotlightItems;\r\n }\r\n\r\n /**\r\n * Appends an authored spotlight item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddSpotlightItem(item)\r\n {\r\n this.spotlightItems.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on both the cone and the glow effect, skipping\r\n * whichever is absent or does not accept options.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.coneEffect && typeof this.coneEffect.SetOption === \"function\")\r\n {\r\n this.coneEffect.SetOption(name, value);\r\n }\r\n if (this.glowEffect && typeof this.glowEffect.SetOption === \"function\")\r\n {\r\n this.glowEffect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpotlightLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpotlightLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpotlightSet::RegisterComponents (cpp:527-534): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateLights (cpp:150-170): the shared\r\n * packed-set bone pattern (boneIndex > 0 only; column-stride Float4x3\r\n * unpack; 4th column zeroed, [15] = 1; boneMatrix *= parentTransform -\r\n * Carbon row-vector, bone FIRST: gl operands SWAP; else copy the parent).\r\n * Stamps BOTH activationStrength and boosterGain (cpp:168-169). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetLights (cpp:536-552): the haze pattern\r\n * (parentBrightness inside the loop, boosterGainInfluence multiply) but\r\n * with the SPOT conversion (cpp:549) - cos-of-degree angles and the\r\n * 1/tan(outerAngle) projection-plane distance, Infinity at outerAngle 0\r\n * exactly as Carbon ships. The spot direction comes from lightData.rotation\r\n * via the conversion's swapped RotationMatrix * transform composition. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpotlightSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpotlightSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerSpotLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.SPOT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["GLOW_POOL_VERTEX_DEFINITION","Tr2VertexDefinition","Add","CONE_POOL_VERTEX_DEFINITION","GLOW_POOL_VERTEX_SIZE","nextOffset","CONE_POOL_VERTEX_SIZE","CONE_QUAD_COUNT","SPRITE_QUAD_COUNT","_EveSpotlightSet","_identity","EveSpotlightSet","IEveSpaceObjectAttachment","e","_init_spotlightItems","_init_extra_spotlightItems","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_coneEffect","_init_extra_coneEffect","_init_glowEffect","_init_extra_glowEffect","_init_skinned","_init_extra_skinned","_init_intensity","_init_extra_intensity","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","boolean","objectRef","float32","carbon","method","impl","adapted","implemented","reason","spotlightItems","name","display","coneEffect","glowEffect","skinned","intensity","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetConeEffect","SetConeEffect","effect","GetGlowEffect","SetGlowEffect","RegisterQuadRendererCone","quadRenderer","RegisterEffect","Number","GetHashValue","TriBatchType","TRIBATCHTYPE_ADDITIVE","RegisterQuadRendererGlow","getConeDefinition","getGlowDefinition","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetSkinned","GetName","SetName","String","GetSpotlightItems","AddSpotlightItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpotlightLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerSpotLightData","lightType","Tr2Light","SPOT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveSpotlightSet.js","sources":["../../../../../../src/trinity/eve/attachment/spotlight/EveSpotlightSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpotlightSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\r\nimport { EveSpotlightLight } from \"./EveSpotlightLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerSpotLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\nimport { Tr2VertexDefinition } from \"../../../core/vertex/Tr2VertexDefinition/index.js\";\r\nimport { TriBatchType } from \"#consts/graphics\";\r\n\r\n\r\n// Carbon's two nested pool-vertex layouts, BUILT as Carbon builds them\r\n// (GlowPoolVertex::GetDefinition, EveSpotlightSet.cpp:16-32;\r\n// ConePoolVertex::GetDefinition, cpp:34-49). Stream 0 is the per-corner\r\n// TEXCOORD4 float; stream 1 is the instance data. The ledger lands exactly on\r\n// each struct's size: glow 3xVector4 + 12 halves = 72, cone 3xVector4 +\r\n// 6 halves = 60 (EveSpotlightSet.h:110-137).\r\nconst GLOW_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 1, 1, 1);\r\nGLOW_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"TEXCOORD\", 3, 1, 1);\r\n\r\nconst CONE_POOL_VERTEX_DEFINITION = new Tr2VertexDefinition();\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_1\", \"TEXCOORD\", 4);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 1, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT32_4\", \"TEXCOORD\", 2, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_4\", \"COLOR\", 0, 1, 1);\r\nCONE_POOL_VERTEX_DEFINITION.Add(\"FLOAT16_2\", \"TEXCOORD\", 3, 1, 1);\r\n\r\n/** sizeof(GlowPoolVertex) / sizeof(ConePoolVertex): the stream-1 ledger. */\r\nconst GLOW_POOL_VERTEX_SIZE = GLOW_POOL_VERTEX_DEFINITION.nextOffset[1];\r\nconst CONE_POOL_VERTEX_SIZE = CONE_POOL_VERTEX_DEFINITION.nextOffset[1];\r\n\r\n// Carbon's anonymous-namespace quad counts (EveSpotlightSet.cpp:53-54).\r\nconst CONE_QUAD_COUNT = 4;\r\nconst SPRITE_QUAD_COUNT = 2;\r\n\r\n\r\n/**\r\n * A hull's authored spotlights, owning their static and per-bone bounds, the\r\n * cone and glow effects that draw them, and the spot lights they emit.\r\n */\r\n@type.define({ className: \"EveSpotlightSet\", family: \"eve/attachment/spotlights\" })\r\nexport class EveSpotlightSet extends IEveSpaceObjectAttachment\r\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpotlightSetItem\")\r\n spotlightItems = [];\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n coneEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n glowEffect = null;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.list(\"EveSpotlightLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned spotlight (cpp:311). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength / m_boosterGain (ctor 0 / 0,\r\n * EveSpotlightSet.cpp:90-91). Lights are BLACK until UpdateLights runs. */\r\n #activationStrength = 0;\r\n\r\n #boosterGain = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored spotlight items\r\n * and marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Packed cone/glow vertices, bounds caches, effect hashes and quad\r\n // registration are reconciled by the concrete renderer adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n // Carbon rebuilds the item-set bounds at the tail of the same pack (cpp:311).\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spotlightItems);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** The effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n GetConeEffect()\r\n {\r\n return this.coneEffect;\r\n }\r\n\r\n /** Sets the effect that draws the light cones. */\r\n @carbon.method\r\n @impl.implemented\r\n SetConeEffect(effect)\r\n {\r\n this.coneEffect = effect ?? null;\r\n }\r\n\r\n /** The effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n GetGlowEffect()\r\n {\r\n return this.glowEffect;\r\n }\r\n\r\n /** Sets the effect that draws the glow sprite at each cone's source. */\r\n @carbon.method\r\n @impl.implemented\r\n SetGlowEffect(effect)\r\n {\r\n this.glowEffect = effect ?? null;\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererCone (EveSpotlightSet.cpp:124-127): one\r\n * additive-batch registration keyed by the cone effect's hash. Carbon\r\n * registers through its cached m_coneEffectHash; the key is read from the\r\n * effect here, exactly as EveSpriteSet's registration seam does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererCone(quadRenderer)\r\n {\r\n if (!this.coneEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.coneEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n CONE_POOL_VERTEX_SIZE,\r\n CONE_QUAD_COUNT,\r\n CONE_POOL_VERTEX_DEFINITION,\r\n this.coneEffect\r\n );\r\n }\r\n\r\n /**\r\n * Carbon RegisterQuadRendererGlow (cpp:129-132): the glow twin, two quads\r\n * per sprite.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterQuadRendererGlow(quadRenderer)\r\n {\r\n if (!this.glowEffect) return;\r\n quadRenderer.RegisterEffect(\r\n Number(this.glowEffect.GetHashValue()) >>> 0,\r\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\r\n GLOW_POOL_VERTEX_SIZE,\r\n SPRITE_QUAD_COUNT,\r\n GLOW_POOL_VERTEX_DEFINITION,\r\n this.glowEffect\r\n );\r\n }\r\n\r\n /** The built ConePoolVertex declaration (nested-struct static in Carbon). */\r\n static getConeDefinition()\r\n {\r\n return CONE_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** The built GlowPoolVertex declaration (nested-struct static in Carbon). */\r\n static getGlowDefinition()\r\n {\r\n return GLOW_POOL_VERTEX_DEFINITION;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetAabb (cpp:176-179): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateVisibility (cpp:138-148): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpotlightSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /**\r\n * Sets whether the spotlights ride skeleton bones, which is what decides if\r\n * GetAabb consults the caller's bone list at all.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetSkinned(skinned)\r\n {\r\n this.skinned = !!skinned;\r\n }\r\n\r\n /** The authored set name, which SOF uses to match this set to its DNA entry. */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored set name, coercing null or undefined to an empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** The live spotlight item list, not a copy. */\r\n @carbon.method\r\n @impl.implemented\r\n GetSpotlightItems()\r\n {\r\n return this.spotlightItems;\r\n }\r\n\r\n /**\r\n * Appends an authored spotlight item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddSpotlightItem(item)\r\n {\r\n this.spotlightItems.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on both the cone and the glow effect, skipping\r\n * whichever is absent or does not accept options.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.coneEffect && typeof this.coneEffect.SetOption === \"function\")\r\n {\r\n this.coneEffect.SetOption(name, value);\r\n }\r\n if (this.glowEffect && typeof this.glowEffect.SetOption === \"function\")\r\n {\r\n this.glowEffect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpotlightLight and\r\n * appends it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpotlightLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpotlightSet::RegisterComponents (cpp:527-534): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpotlightSet::UpdateLights (cpp:150-170): the shared\r\n * packed-set bone pattern (boneIndex > 0 only; column-stride Float4x3\r\n * unpack; 4th column zeroed, [15] = 1; boneMatrix *= parentTransform -\r\n * Carbon row-vector, bone FIRST: gl operands SWAP; else copy the parent).\r\n * Stamps BOTH activationStrength and boosterGain (cpp:168-169). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n this.#boosterGain = Number(boosterGain) || 0;\r\n }\r\n\r\n /** Carbon EveSpotlightSet::GetLights (cpp:536-552): the haze pattern\r\n * (parentBrightness inside the loop, boosterGainInfluence multiply) but\r\n * with the SPOT conversion (cpp:549) - cos-of-degree angles and the\r\n * 1/tan(outerAngle) projection-plane distance, Infinity at outerAngle 0\r\n * exactly as Carbon ships. The spot direction comes from lightData.rotation\r\n * via the conversion's swapped RotationMatrix * transform composition. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Profile-index packing is by-reference per lightConversion.js conventions.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpotlightSet.#features;\r\n features.parentScale = 1;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpotlightSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n features.parentBrightness = this.#activationStrength;\r\n if (light.boosterGainInfluence)\r\n {\r\n features.parentBrightness *= this.#boosterGain;\r\n }\r\n AsPerSpotLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n record.lightType = Tr2Light.SPOT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["GLOW_POOL_VERTEX_DEFINITION","Tr2VertexDefinition","Add","CONE_POOL_VERTEX_DEFINITION","GLOW_POOL_VERTEX_SIZE","nextOffset","CONE_POOL_VERTEX_SIZE","CONE_QUAD_COUNT","SPRITE_QUAD_COUNT","_EveSpotlightSet","_identity","EveSpotlightSet","IEveSpaceObjectAttachment","e","_init_spotlightItems","_init_extra_spotlightItems","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_coneEffect","_init_extra_coneEffect","_init_glowEffect","_init_extra_glowEffect","_init_skinned","_init_extra_skinned","_init_intensity","_init_extra_intensity","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","string","boolean","objectRef","float32","carbon","method","impl","adapted","implemented","reason","spotlightItems","name","display","coneEffect","glowEffect","skinned","intensity","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetConeEffect","SetConeEffect","effect","GetGlowEffect","SetGlowEffect","RegisterQuadRendererCone","quadRenderer","RegisterEffect","Number","GetHashValue","TriBatchType","TRIBATCHTYPE_ADDITIVE","RegisterQuadRendererGlow","getConeDefinition","getGlowDefinition","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","SetSkinned","GetName","SetName","String","GetSpotlightItems","AddSpotlightItem","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpotlightLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","GetLights","lightManager","features","parentScale","quality","GetCurrentSpaceSceneShadowQuality","record","parentBrightness","boosterGainInfluence","AsPerSpotLightData","lightType","Tr2Light","SPOT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
@@ -83,7 +83,7 @@ new class extends _identity {
83
83
  return false;
84
84
  }
85
85
  box3.transformMat4(aabb, aabb, parentTransform);
86
- return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);
86
+ return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);
87
87
  }
88
88
 
89
89
  /** Sets the drawing effect and the skinned flag in one call. */
@@ -1 +1 @@
1
- {"version":3,"file":"EveSpriteLineSet.js","sources":["../../../../../../src/trinity/eve/attachment/sprite/EveSpriteLineSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EveSpriteLight } from \"./EveSpriteLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Blink } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\n\r\n\r\n/**\r\n * A hull's authored sprite runs - lines and circles of evenly spaced sprites -\r\n * owning their static and per-bone bounds and the point lights they emit.\r\n */\r\n@type.define({ className: \"EveSpriteLineSet\", family: \"eve/attachment/sprites\" })\r\nexport class EveSpriteLineSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpriteLineSetItem\")\r\n spriteLines = [];\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.read\r\n @type.uint32\r\n effectHash = 0;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.list(\"EveSpriteLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned sprite line (cpp:77). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor default 0, EveSpriteLineSet.cpp:26 -\r\n * NOT 1: packed-set lights are BLACK until UpdateLights runs). */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored sprite lines and\r\n * marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Position expansion is available on each item, but packed quad data,\r\n // effect hashes, bounds caches and registration belong to the adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spriteLines);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetAabb (cpp:177-180): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateVisibility (cpp:140-150): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpriteLineSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /** Sets the drawing effect and the skinned flag in one call. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect, isSkinned)\r\n {\r\n this.effect = effect ?? null;\r\n this.skinned = !!isSkinned;\r\n }\r\n\r\n /**\r\n * Appends an authored sprite line item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Add(item)\r\n {\r\n this.spriteLines.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the sprite line effect, doing nothing when no effect\r\n * that accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpriteLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpriteLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::RegisterComponents (cpp:349-356): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateLights (cpp:152-171): byte-identical to\r\n * EveSpriteSet's - boneIndex > 0 only (bone 0 never drives a packed-set\r\n * light), column-stride Float4x3 unpack, 4th column zeroed with [15] = 1,\r\n * then boneMatrix *= parentTransform - Carbon row-vector, bone FIRST: the\r\n * gl-matrix operands SWAP; else boneMatrix = parentTransform. Stamps the\r\n * activation strength (boosterGain unused). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetLights (cpp:358-373): byte-identical to\r\n * EveSpriteSet's (shared EveSpriteLight items) - point conversion on the\r\n * bone matrix, Blink scales radius + innerRadius after conversion, no\r\n * gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); profile-index packing is by-reference per lightConversion.js.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpriteLineSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpriteLineSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n const blinkScale = Blink(time, light.blinkRate, light.blinkPhase, light.minScale, light.maxScale);\r\n record.radius *= blinkScale;\r\n record.innerRadius *= blinkScale;\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveSpriteLineSet","_identity","EveSpriteLineSet","IEveSpaceObjectAttachment","e","_init_spriteLines","_init_extra_spriteLines","_init_skinned","_init_extra_skinned","_init_effectHash","_init_extra_effectHash","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","boolean","read","uint32","objectRef","readwrite","string","carbon","method","impl","adapted","implemented","reason","spriteLines","skinned","effectHash","effect","display","name","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","Setup","isSkinned","Add","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpriteLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentBrightness","parentScale","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","AsPerPointLightData","blinkScale","Blink","blinkRate","blinkPhase","minScale","maxScale","radius","innerRadius","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveSpriteLineSet.js","sources":["../../../../../../src/trinity/eve/attachment/sprite/EveSpriteLineSet.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/Sets/EveSpriteLineSet.cpp\r\nimport { box3 } from \"#math/box3\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { IEveSpaceObjectAttachment } from \"../IEveSpaceObjectAttachment.js\";\nimport { EveSpriteLight } from \"./EveSpriteLight.js\";\r\nimport { EveComponentType } from \"../../EveComponentTypes.js\";\r\nimport { Blink } from \"../EveSpaceObjectAttachmentUtils.js\";\r\nimport { Tr2Light } from \"../../lights/Tr2Light.js\";\r\nimport { CreateItemSetBoundingBoxes, GetItemSetAabb } from \"../itemSetBounds.js\";\r\nimport { AsPerPointLightData, CreateLightRecord, MatrixCopyFrom3x4 } from \"../../lights/lightConversion.js\";\r\n\r\n\r\n/**\r\n * A hull's authored sprite runs - lines and circles of evenly spaced sprites -\r\n * owning their static and per-bone bounds and the point lights they emit.\r\n */\r\n@type.define({ className: \"EveSpriteLineSet\", family: \"eve/attachment/sprites\" })\r\nexport class EveSpriteLineSet extends IEveSpaceObjectAttachment\n{\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.list(\"EveSpriteLineSetItem\")\r\n spriteLines = [];\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.boolean\r\n skinned = false;\r\n\r\n @io.read\r\n @type.uint32\r\n effectHash = 0;\r\n\r\n @io.rebuild(\"packedGeometry\")\r\n @io.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n effect = null;\r\n\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.list(\"EveSpriteLight\")\r\n lights = [];\r\n\r\n #rebuildRevision = 0;\r\n\r\n /** m_aabb - the union of every unskinned sprite line (cpp:77). */\r\n #staticBounds = box3.create();\r\n\r\n /** m_boundingBoxes - [{ boneIndex, bounds }], ascending. */\r\n #boneBounds = [];\r\n\r\n /** Carbon m_activationStrength (ctor default 0, EveSpriteLineSet.cpp:26 -\r\n * NOT 1: packed-set lights are BLACK until UpdateLights runs). */\r\n #activationStrength = 0;\r\n\r\n /**\r\n * Recomputes the static and per-bone bounds from the authored sprite lines and\r\n * marks the packed geometry stale.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Rebuild()\r\n {\r\n // Position expansion is available on each item, but packed quad data,\r\n // effect hashes, bounds caches and registration belong to the adapter.\r\n this.#rebuildRevision++;\r\n this.__state.rebuild.add(\"packedGeometry\");\r\n CreateItemSetBoundingBoxes(this.#staticBounds, this.#boneBounds, this.skinned, this.spriteLines);\r\n }\r\n\r\n /**\r\n * Runs the first Rebuild so the set has bounds before its first visibility\r\n * test.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.Rebuild();\r\n return true;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetAabb (cpp:177-180): the item-set bounds, with the bone\r\n * list forwarded only when the set is skinned. */\r\n @carbon.method\r\n @impl.implemented\r\n GetAabb(out, bones = null, boneCount = 0)\r\n {\r\n return GetItemSetAabb(\r\n out,\r\n this.#staticBounds,\r\n this.#boneBounds,\r\n bones,\r\n this.skinned ? boneCount : 0\r\n );\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateVisibility (cpp:140-150): an uninitialized set is\r\n * NOT visible; otherwise the bounds move into world space and take the\r\n * frustum box test. No LOD and no display gate. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, bones = null, boneCount = 0)\r\n {\r\n const aabb = this.GetAabb(EveSpriteLineSet.#aabbScratch, bones, boneCount);\r\n if (box3.isEmpty(aabb))\r\n {\r\n return false;\r\n }\r\n\r\n box3.transformMat4(aabb, aabb, parentTransform);\r\n return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);\r\n }\r\n\r\n /** Sets the drawing effect and the skinned flag in one call. */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(effect, isSkinned)\r\n {\r\n this.effect = effect ?? null;\r\n this.skinned = !!isSkinned;\r\n }\r\n\r\n /**\r\n * Appends an authored sprite line item; the bounds only pick it up on the next\r\n * Rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Add(item)\r\n {\r\n this.spriteLines.push(item);\r\n }\r\n\r\n /**\r\n * Sets a shader option on the sprite line effect, doing nothing when no effect\r\n * that accepts options is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetShaderOption(name, value)\r\n {\r\n if (this.effect && typeof this.effect.SetOption === \"function\")\r\n {\r\n this.effect.SetOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Converts a SOF-authored light description into an EveSpriteLight and appends\r\n * it to the set.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddLightFromSOF(light)\r\n {\r\n this.lights.push(EveSpriteLight.FromSOF(light));\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::RegisterComponents (cpp:349-356): LightOwner\r\n * when lights are authored. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::UpdateLights (cpp:152-171): byte-identical to\r\n * EveSpriteSet's - boneIndex > 0 only (bone 0 never drives a packed-set\r\n * light), column-stride Float4x3 unpack, 4th column zeroed with [15] = 1,\r\n * then boneMatrix *= parentTransform - Carbon row-vector, bone FIRST: the\r\n * gl-matrix operands SWAP; else boneMatrix = parentTransform. Stamps the\r\n * activation strength (boosterGain unused). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateLights(parentTransform, bones, boneCount, activationStrength, _boosterGain = 0)\r\n {\r\n for (const light of this.lights)\r\n {\r\n const boneIndex = light.lightData.boneIndex;\r\n if (bones && boneIndex > 0 && boneIndex < boneCount)\r\n {\r\n MatrixCopyFrom3x4(light.boneMatrix, bones, boneIndex);\r\n light.boneMatrix[3] = 0;\r\n light.boneMatrix[7] = 0;\r\n light.boneMatrix[11] = 0;\r\n light.boneMatrix[15] = 1;\r\n // Carbon (row-vector): boneMatrix * parentTransform - bone first.\r\n mat4.multiply(light.boneMatrix, parentTransform, light.boneMatrix);\r\n }\r\n else\r\n {\r\n mat4.copy(light.boneMatrix, parentTransform);\r\n }\r\n }\r\n this.#activationStrength = Number(activationStrength) || 0;\r\n }\r\n\r\n /** Carbon EveSpriteLineSet::GetLights (cpp:358-373): byte-identical to\r\n * EveSpriteSet's (shared EveSpriteLight items) - point conversion on the\r\n * bone matrix, Blink scales radius + innerRadius after conversion, no\r\n * gates. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer::GetAnimationTime relocates onto the light-manager duck (GetAnimationTime, default 0); profile-index packing is by-reference per lightConversion.js.\")\r\n GetLights(lightManager)\r\n {\r\n const features = EveSpriteLineSet.#features;\r\n features.parentBrightness = this.#activationStrength;\r\n features.parentScale = 1;\r\n const time = lightManager?.GetAnimationTime() ?? 0;\r\n const quality = lightManager?.GetCurrentSpaceSceneShadowQuality() ?? 0;\r\n const record = EveSpriteLineSet.#lightRecord;\r\n\r\n for (const light of this.lights)\r\n {\r\n AsPerPointLightData(record, light.lightData, light.boneMatrix, features, quality);\r\n const blinkScale = Blink(time, light.blinkRate, light.blinkPhase, light.minScale, light.maxScale);\r\n record.radius *= blinkScale;\r\n record.innerRadius *= blinkScale;\r\n record.lightType = Tr2Light.POINT_LIGHT;\r\n record.lightData = light.lightData;\r\n record.lightProfile = light.lightProfile;\r\n record.owner = this;\r\n lightManager?.AddLight(record);\r\n }\r\n }\r\n\r\n /** Per-frame scratch - UpdateVisibility must not allocate. */\r\n static #aabbScratch = box3.create();\r\n\r\n static #features = { parentBrightness: 0, parentScale: 1 };\r\n\r\n static #lightRecord = CreateLightRecord();\r\n}\r\n"],"names":["_EveSpriteLineSet","_identity","EveSpriteLineSet","IEveSpaceObjectAttachment","e","_init_spriteLines","_init_extra_spriteLines","_init_skinned","_init_extra_skinned","_init_effectHash","_init_extra_effectHash","_init_effect","_init_extra_effect","_init_display","_init_extra_display","_init_name","_init_extra_name","_init_lights","_init_extra_lights","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","rebuild","persist","list","boolean","read","uint32","objectRef","readwrite","string","carbon","method","impl","adapted","implemented","reason","spriteLines","skinned","effectHash","effect","display","name","lights","box3","create","Rebuild","__state","add","CreateItemSetBoundingBoxes","Initialize","GetAabb","out","bones","boneCount","GetItemSetAabb","UpdateVisibility","updateContext","parentTransform","aabb","isEmpty","transformMat4","GetFrustum","IsBoxVisible","Setup","isSkinned","Add","item","push","SetShaderOption","value","SetOption","AddLightFromSOF","light","EveSpriteLight","FromSOF","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","UpdateLights","activationStrength","_boosterGain","boneIndex","lightData","MatrixCopyFrom3x4","boneMatrix","mat4","multiply","copy","Number","GetLights","lightManager","features","parentBrightness","parentScale","time","GetAnimationTime","quality","GetCurrentSpaceSceneShadowQuality","record","AsPerPointLightData","blinkScale","Blink","blinkRate","blinkPhase","minScale","maxScale","radius","innerRadius","lightType","Tr2Light","POINT_LIGHT","lightProfile","owner","AddLight","CreateLightRecord","constructor"],"mappings":";;;;;;;;;;;;;;AAcA;AACA;AACA;AACA;AAHA,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAIA,MAAAC,gBAAA,SACsCC,qBAAyB,CAC/D;AAAA,IAAA;AAAA,MAAA,CAAA;AAAAC,QAAAA,CAAA,EAAA,CAAAC,iBAAA,EAAAC,uBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAApB,iBAAA,EAAAqB,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,kBAAkB;AAAEC,QAAAA,MAAM,EAAE;OAA0B,CAAC,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EAG9EC,EAAE,CAACC,OAAO,CAAC,gBAAgB,CAAC,EAC5BD,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACO,IAAI,CAAC,sBAAsB,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,MAAA,EAGjCH,EAAE,CAACC,OAAO,CAAC,gBAAgB,CAAC,EAC5BD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAGZJ,EAAE,EAAFA,EAAE,CAACK,IAAI,EACPT,IAAI,EAAJA,IAAI,CAACU,MAAM,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,MAAA,EAGXN,EAAE,CAACC,OAAO,CAAC,gBAAgB,CAAC,EAC5BD,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACW,SAAS,CAAC,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAG3BP,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAGZJ,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACa,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAGXT,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACO,IAAI,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAmB3BO,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAcZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CASZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAehBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAchBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAWhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAaZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAQZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAgBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CA4BhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,kKAAkK,CAAC,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAvM5IvC,qBAAyB,CAAA;AAAA;AAK7DwC,IAAAA,WAAW,IAAAxB,UAAA,CAAA,IAAA,CAAA,EAAAd,iBAAA,OAAG,EAAE,CAAA;AAKhBuC,IAAAA,OAAO,IAAAtC,uBAAA,CAAA,IAAA,CAAA,EAAAC,aAAA,OAAG,KAAK,CAAA;AAIfsC,IAAAA,UAAU,IAAArC,mBAAA,CAAA,IAAA,CAAA,EAAAC,gBAAA,OAAG,CAAC,CAAA;AAKdqC,IAAAA,MAAM,IAAApC,sBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,IAAI,CAAA;AAIboC,IAAAA,OAAO,IAAAnC,kBAAA,CAAA,IAAA,CAAA,EAAAC,aAAA,OAAG,IAAI,CAAA;AAIdmC,IAAAA,IAAI,IAAAlC,mBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;AAITkC,IAAAA,MAAM,IAAAjC,gBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,EAAE,CAAA;AAEX,IAAA,gBAAgB,IAAAC,kBAAA,CAAA,IAAA,CAAA,EAAG,CAAC;;AAEpB;AACA,IAAA,aAAa,GAAGgC,IAAI,CAACC,MAAM,EAAE;;AAE7B;IACA,WAAW,GAAG,EAAE;;AAEhB;AACF;IACE,mBAAmB,GAAG,CAAC;;AAEvB;AACF;AACA;AACA;AAGEC,IAAAA,OAAOA,GACP;AACE;AACA;MACA,IAAI,CAAC,gBAAgB,EAAE;MACvB,IAAI,CAACC,OAAO,CAACzB,OAAO,CAAC0B,GAAG,CAAC,gBAAgB,CAAC;AAC1CC,MAAAA,0BAA0B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAACX,OAAO,EAAE,IAAI,CAACD,WAAW,CAAC;AAClG,IAAA;;AAEA;AACF;AACA;AACA;AAGEa,IAAAA,UAAUA,GACV;MACE,IAAI,CAACJ,OAAO,EAAE;AACd,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;IAGEK,OAAOA,CAACC,GAAG,EAAEC,KAAK,GAAG,IAAI,EAAEC,SAAS,GAAG,CAAC,EACxC;MACE,OAAOC,cAAc,CACnBH,GAAG,EACH,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,EAChBC,KAAK,EACL,IAAI,CAACf,OAAO,GAAGgB,SAAS,GAAG,CAC7B,CAAC;AACH,IAAA;;AAEA;AACF;AACA;AAGEE,IAAAA,gBAAgBA,CAACC,aAAa,EAAEC,eAAe,EAAEL,KAAK,GAAG,IAAI,EAAEC,SAAS,GAAG,CAAC,EAC5E;AACE,MAAA,MAAMK,IAAI,GAAG,IAAI,CAACR,OAAO,CAACvD,iBAAgB,CAAC,YAAY,EAAEyD,KAAK,EAAEC,SAAS,CAAC;AAC1E,MAAA,IAAIV,IAAI,CAACgB,OAAO,CAACD,IAAI,CAAC,EACtB;AACE,QAAA,OAAO,KAAK;AACd,MAAA;MAEAf,IAAI,CAACiB,aAAa,CAACF,IAAI,EAAEA,IAAI,EAAED,eAAe,CAAC;MAC/C,OAAO,CAAC,CAACD,aAAa,EAAEK,UAAU,EAAE,EAAEC,YAAY,CAACJ,IAAI,CAAC;AAC1D,IAAA;;AAEA;AAGAK,IAAAA,KAAKA,CAACxB,MAAM,EAAEyB,SAAS,EACvB;AACE,MAAA,IAAI,CAACzB,MAAM,GAAGA,MAAM,IAAI,IAAI;AAC5B,MAAA,IAAI,CAACF,OAAO,GAAG,CAAC,CAAC2B,SAAS;AAC5B,IAAA;;AAEA;AACF;AACA;AACA;IAGEC,GAAGA,CAACC,IAAI,EACR;AACE,MAAA,IAAI,CAAC9B,WAAW,CAAC+B,IAAI,CAACD,IAAI,CAAC;AAC7B,IAAA;;AAEA;AACF;AACA;AACA;AAGEE,IAAAA,eAAeA,CAAC3B,IAAI,EAAE4B,KAAK,EAC3B;AACE,MAAA,IAAI,IAAI,CAAC9B,MAAM,IAAI,OAAO,IAAI,CAACA,MAAM,CAAC+B,SAAS,KAAK,UAAU,EAC9D;QACE,IAAI,CAAC/B,MAAM,CAAC+B,SAAS,CAAC7B,IAAI,EAAE4B,KAAK,CAAC;AACpC,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;IAGEE,eAAeA,CAACC,KAAK,EACrB;MACE,IAAI,CAAC9B,MAAM,CAACyB,IAAI,CAACM,eAAc,CAACC,OAAO,CAACF,KAAK,CAAC,CAAC;AACjD,IAAA;;AAEA;AACF;AAGEG,IAAAA,kBAAkBA,GAClB;AACE,MAAA,MAAMC,QAAQ,GAAG,IAAI,CAACC,oBAAoB,EAAE;AAC5C,MAAA,IAAID,QAAQ,IAAI,IAAI,CAAClC,MAAM,CAACoC,MAAM,EAClC;QACEF,QAAQ,CAACG,iBAAiB,CAACC,gBAAgB,CAACC,UAAU,EAAE,IAAI,CAAC;AAC/D,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AAGEC,IAAAA,YAAYA,CAACzB,eAAe,EAAEL,KAAK,EAAEC,SAAS,EAAE8B,kBAAkB,EAAEC,YAAY,GAAG,CAAC,EACpF;AACE,MAAA,KAAK,MAAMZ,KAAK,IAAI,IAAI,CAAC9B,MAAM,EAC/B;AACE,QAAA,MAAM2C,SAAS,GAAGb,KAAK,CAACc,SAAS,CAACD,SAAS;QAC3C,IAAIjC,KAAK,IAAIiC,SAAS,GAAG,CAAC,IAAIA,SAAS,GAAGhC,SAAS,EACnD;UACEkC,iBAAiB,CAACf,KAAK,CAACgB,UAAU,EAAEpC,KAAK,EAAEiC,SAAS,CAAC;AACrDb,UAAAA,KAAK,CAACgB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AACvBhB,UAAAA,KAAK,CAACgB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AACvBhB,UAAAA,KAAK,CAACgB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;AACxBhB,UAAAA,KAAK,CAACgB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;AACxB;AACAC,UAAAA,IAAI,CAACC,QAAQ,CAAClB,KAAK,CAACgB,UAAU,EAAE/B,eAAe,EAAEe,KAAK,CAACgB,UAAU,CAAC;AACpE,QAAA,CAAC,MAED;UACEC,IAAI,CAACE,IAAI,CAACnB,KAAK,CAACgB,UAAU,EAAE/B,eAAe,CAAC;AAC9C,QAAA;AACF,MAAA;MACA,IAAI,CAAC,mBAAmB,GAAGmC,MAAM,CAACT,kBAAkB,CAAC,IAAI,CAAC;AAC5D,IAAA;;AAEA;AACF;AACA;AACA;IAIEU,SAASA,CAACC,YAAY,EACtB;AACE,MAAA,MAAMC,QAAQ,GAAGpG,iBAAgB,CAAC,SAAS;AAC3CoG,MAAAA,QAAQ,CAACC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB;MACpDD,QAAQ,CAACE,WAAW,GAAG,CAAC;MACxB,MAAMC,IAAI,GAAGJ,YAAY,EAAEK,gBAAgB,EAAE,IAAI,CAAC;MAClD,MAAMC,OAAO,GAAGN,YAAY,EAAEO,iCAAiC,EAAE,IAAI,CAAC;AACtE,MAAA,MAAMC,MAAM,GAAG3G,iBAAgB,CAAC,YAAY;AAE5C,MAAA,KAAK,MAAM6E,KAAK,IAAI,IAAI,CAAC9B,MAAM,EAC/B;AACE6D,QAAAA,mBAAmB,CAACD,MAAM,EAAE9B,KAAK,CAACc,SAAS,EAAEd,KAAK,CAACgB,UAAU,EAAEO,QAAQ,EAAEK,OAAO,CAAC;QACjF,MAAMI,UAAU,GAAGC,KAAK,CAACP,IAAI,EAAE1B,KAAK,CAACkC,SAAS,EAAElC,KAAK,CAACmC,UAAU,EAAEnC,KAAK,CAACoC,QAAQ,EAAEpC,KAAK,CAACqC,QAAQ,CAAC;QACjGP,MAAM,CAACQ,MAAM,IAAIN,UAAU;QAC3BF,MAAM,CAACS,WAAW,IAAIP,UAAU;AAChCF,QAAAA,MAAM,CAACU,SAAS,GAAGC,SAAQ,CAACC,WAAW;AACvCZ,QAAAA,MAAM,CAAChB,SAAS,GAAGd,KAAK,CAACc,SAAS;AAClCgB,QAAAA,MAAM,CAACa,YAAY,GAAG3C,KAAK,CAAC2C,YAAY;QACxCb,MAAM,CAACc,KAAK,GAAG,IAAI;AACnBtB,QAAAA,YAAY,EAAEuB,QAAQ,CAACf,MAAM,CAAC;AAChC,MAAA;AACF,IAAA;;AAEA;GAMD;AALQ,EAAA,YAAY,GAAG3D,IAAI,CAACC,MAAM,EAAE;AAE5B,EAAA,SAAS,GAAG;AAAEoD,IAAAA,gBAAgB,EAAE,CAAC;AAAEC,IAAAA,WAAW,EAAE;GAAG;AAEnD,EAAA,YAAY,GAAGqB,iBAAiB,EAAE;EAACC,WAAAA,GAAA;IAAA,KAAA,CAAA9H,iBAAA,GAAAqB,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
@@ -14,7 +14,7 @@ import { Tr2Light as _Tr2Light } from '../../lights/Tr2Light.js';
14
14
  import { MatrixCopyFrom3x4, AsPerPointLightData, CreateLightRecord } from '../../lights/lightConversion.js';
15
15
  import { TriBatchType } from '#consts/graphics';
16
16
  import { num } from '#math/num';
17
- import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition.js';
17
+ import { Tr2VertexDefinition } from '../../../core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js';
18
18
 
19
19
  let _initProto, _initClass, _init_sprites, _init_extra_sprites, _init_name, _init_extra_name, _init_effect, _init_extra_effect, _init_skinned, _init_extra_skinned, _init_intensity, _init_extra_intensity, _init_display, _init_extra_display, _init_lights, _init_extra_lights;
20
20
 
@@ -332,6 +332,8 @@ new class extends _identity {
332
332
  this.#WritePosition(i, position);
333
333
  }
334
334
  }
335
+
336
+ /** Writes one sprite position as three little-endian floats in the vertex pool. */
335
337
  #WritePosition(index, position) {
336
338
  const base = index * POOL_VERTEX_SIZE;
337
339
  this.#poolView.setFloat32(base, position[0], true);
@@ -355,7 +357,7 @@ new class extends _identity {
355
357
  return false;
356
358
  }
357
359
  box3.transformMat4(aabb, aabb, parentTransform);
358
- return !!updateContext?.GetFrustum?.()?.IsBoxVisible(aabb);
360
+ return !!updateContext?.GetFrustum()?.IsBoxVisible(aabb);
359
361
  }
360
362
 
361
363
  /**