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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -19,8 +19,14 @@ import { EveLODHelper } from '../EveLODHelper.js';
19
19
  import { TriBatchType, ReflectionMode } from '#consts/graphics';
20
20
  import { MatrixCopyFrom3x4 } from '../lights/lightConversion.js';
21
21
  import { getBoneList } from '../../core/animation/Tr2GrannyAnimation.js';
22
- import '../../core/rawData/Tr2PerObjectData.js';
23
- import { TriRenderBatchAreaBlock, Tr2RenderBatch } from '../../core/batch/Tr2RenderBatch.js';
22
+ import '../../core/rawData/perObjectData/Tr2PerObjectData.js';
23
+ import { TriRenderBatchAreaBlock } from '../../core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js';
24
+ import { Tr2RenderBatch } from '../../core/batch/TriRenderBatch/Tr2RenderBatch.js';
25
+ import '../../core/batch/TriRenderBatch/DefaultKeyGenerator.js';
26
+ import '../../core/batch/TriRenderBatch/EffectKeyGenerator.js';
27
+ import '../../core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js';
28
+ import { Tr2RenderReason } from '../../generated/trinityCore/enums.js';
29
+ import '#consts/render-context';
24
30
  import { Tr2EffectStateManager as _Tr2EffectStateManage } from '../../shader/Tr2EffectStateManager.js';
25
31
  import { CarbonVertexElements } from '../../core/vertex/vertexUsage.js';
26
32
  import { RawData } from '../../core/rawData/RawData.js';
@@ -32,7 +38,6 @@ import { EveLocatorSets as _EveLocatorSets, EveGetLocatorPose } from '../locator
32
38
  import { Locator as _Locator } from '../locator/Locator.js';
33
39
  import { TriPerlinCurve as _TriPerlinCurve } from '../../curves/curve/TriPerlinCurve.js';
34
40
  import { withITr2Renderable } from '../../core/ITr2Renderable.js';
35
- import { Tr2RenderReason } from '../../generated/trinityCore/enums.js';
36
41
  import { Tr2Lod } from '#consts/trinity';
37
42
 
38
43
  var _withIEveInheritPrope;
@@ -48,11 +53,11 @@ const TRANSPARENT_CENTER = vec3.create();
48
53
  const OVERLAY_TYPE_OPAQUEONLY = 0;
49
54
  const OVERLAY_TYPE_ALL = 1;
50
55
 
51
- /**
52
- * The hull of an EVE space object - its mesh, locators, locator sets, decals,
53
- * attachments, lights, effect children, overlay effects, impact overlay and
54
- * controllers - together with the curve-driven world transform, visibility, LOD
55
- * and batch submission that drive them each frame.
56
+ /**
57
+ * The hull of an EVE space object - its mesh, locators, locator sets, decals,
58
+ * attachments, lights, effect children, overlay effects, impact overlay and
59
+ * controllers - together with the curve-driven world transform, visibility, LOD
60
+ * and batch submission that drive them each frame.
56
61
  */
57
62
  let _EveSpaceObject;
58
63
  new class extends _identity {
@@ -64,7 +69,7 @@ new class extends _identity {
64
69
  } = _applyDecs2311(this, [type.define({
65
70
  className: "EveSpaceObject2",
66
71
  family: "eve/spaceObject"
67
- })], [[[io, io.notify, io, io.persist, type, type.int32, void 0, type.enum("ReflectionMode")], 16, "reflectionMode"], [[io, io.persist, void 0, type.list("IEveSpaceObjectChild")], 16, "effectChildren"], [[io, io.persist, void 0, type.list("IEveTransform")], 16, "children"], [[io, io.notify, io, io.persist, type, type.string], 16, "name"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "mute"], [[io, io.readwrite, void 0, type.objectRef("EveChildInheritProperties")], 16, "inheritProperties"], [[io, io.persist, void 0, type.list("EveCustomMask")], 16, "customMasks"], [[io, io.persist, void 0, type.list("EveMeshOverlayEffect")], 16, "overlayEffects"], [[io, io.read, void 0, type.objectRef("Tr2BindingVector3")], 16, "positionDelta"], [[io, io.read, type, type.int32, void 0, type.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.readwrite, type, type.boolean], 16, "isPickable"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameter"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameterWithChildren"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidCenter"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidRadius"], [[io, io.read, void 0, type.objectRef("Tr2GrannyAnimation")], 16, "animationUpdater"], [[io, io.persist, type, type.string], 16, "dna"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "castShadow"], [[io, io.persist, type, type.boolean], 16, "isAnimated"], [[io, io.persist, type, type.boolean], 16, "dynamicBoundingSphereEnabled"], [[io, io.persist, void 0, type.list("IEveSpaceObjectAttachment")], 16, "attachments"], [[io, io.persist, void 0, type.list("EveSpaceObjectDecal")], 16, "decals"], [[io, io.notify, io, io.persist, void 0, type.list("Tr2Light")], 16, "lights"], [[io, io.persist, void 0, type.list("Tr2ExternalParameter")], 16, "externalParameters"], [[io, io.persist, void 0, type.list("ITr2Controller")], 16, "controllers"], [[io, io.persist, void 0, type.list("EveLocator2")], 16, "locators"], [[io, io.persist, void 0, type.objectRef("Tr2MeshBase")], 16, "mesh"], [[io, io.persist, void 0, type.objectRef("EveImpactOverlay")], 16, "impactOverlay"], [[io, io.persist, type, type.vec3], 16, "clipSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor2"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor"], [[io, io.persist, void 0, type.list("TriObserverLocal")], 16, "observers"], [[io, io.read, type, type.vec3], 16, "worldPosition"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "rotationCurve"], [[io, io.read, type, type.quat], 16, "worldRotation"], [[io, io.persist, type, type.float32], 16, "modelScale"], [[io, io.persist, void 0, type.list("EveLocatorSets")], 16, "locatorSets"], [[io, io.readwrite, type, type.float32], 16, "activationStrength"], [[io, io.readwrite, type, type.color], 16, "albedoColor"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.read, type, type.float32], 16, "secondaryLightingSphereRadius"], [[io, io.persist, type, type.vec3], 16, "boundingSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "dirtLevel"], [[io, io.readwrite, type, type.vec4], 16, "customShaderData"], [[io, io.read, type, type.vec4], 16, "spaceObjectShipData"], [[io, io.read, type, type.int32], 16, "lastDamageLocatorHit"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "damageLocatorAutoFilterEnabled"], [[io, io.persist, type, type.float32], 16, "boundingSphereRadius"], [[io, io.read, type, type.vec3], 16, "modelWorldPosition"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "modelTranslationCurve"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "modelRotationCurve"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidCenter"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidRadius"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "translationCurve"], [[io, io.read, type, type.mat4], 16, "worldTransform"], [[io, io.read, type, type.mat4], 16, "inverseWorldTransform"], [[io, io.read, type, type.mat4], 16, "lastWorldTransform"], [[io, io.read, type, type.vec3], 16, "worldVelocity"], [[io, io.readwrite, void 0, type.objectRef("ITr2AudGeometry")], 16, "audioGeometry"], [[type, type.boolean], 16, "isVisible"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetOverlayEffects"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddController"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddObserver"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetInheritProperties"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetEffectChildByName"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddToEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "RemoveFromEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateWorldTransform"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The browser runtime refreshes the cache with world-transform updates instead of Carbon's renderer-side PrepareShaderData pass.")], 18, "UpdateWorldBounds"], [[carbon, carbon.method, impl, impl.implemented], 18, "PrepareShaderData"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateShLighting"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearShLighting"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetParentData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectStructs"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.")], 18, "RebuildCachedData"], [[carbon, carbon.method, impl, impl.implemented], 18, "ReleaseCachedData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPickingBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetID"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Overlay selection is fully represented in the CPU graph; realized-LOD draw arguments remain engine-owned.")], 18, "GetBatchesFromOverlayVector"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable mesh area access replaces Carbon's native mesh-area vectors.")], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Trinity retains and fills persistent VS/PS RawData; the engine owns device buffers, GPU-derived offsets, upload, and binding.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLights"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The optional length-one array replaces Carbon's float& sizeInShadow out-parameter.")], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayChildren"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetObserverTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocalToWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelCenterWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldRotation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FindSoundEmitter"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMute"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingBoxFromTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "InvalidateMergedLocators"], [[carbon, carbon.method, impl, impl.adapted], 18, "EnsureChildLocatorMerged"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateDamageLocatorFilter"], [[carbon, carbon.method, impl, impl.implemented], 18, "RunDamageLocatorFilter"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearImpactDamage"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearAnimations"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateImpactFromPosition"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "EndAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FreezeHighDetailMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorsForSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "MergeToLocatorSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLocatorSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearLocatorSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCloseLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetGoodLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetDamageLocatorDirection"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.")], 18, "GetDamageLocatorPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocatorBindPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetClosestDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriRand is represented by Math.random; all locator scoring remains source-faithful.")], 18, "GetGoodDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRadius"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMissPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetImpactConfiguration"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetImpactOverlay"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetImpactOverlay"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasImpactConfigurationShield"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.")], 18, "GetImpactPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocator"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTransformedDamageLocator"], [[carbon, carbon.method, impl, impl.adapted], 18, "IsImpostor"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorPositionFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorRotationFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "RebuildBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.")], 18, "SetBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetControllerVariables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources without multi-LOD support expose their sole browser LOD as index zero.")], 18, "GetLastUsedMeshLod"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocatorTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocalBoundingBox"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetWorldBoundingBox"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsBoundingBoxReady"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.")], 18, "EstimatePixelDiameter"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsInFrustum"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereCenter"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereRadius"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoneCount"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetImpactDamageState"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetImpactAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetProceduralContainerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted], 18, "TransformLocators"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorInObjectSpace"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShapeEllipsoid"]], 0, void 0, _withIEveInheritPrope));
72
+ })], [[[io, io.notify, io, io.persist, type, type.int32, void 0, type.enum("ReflectionMode")], 16, "reflectionMode"], [[io, io.persist, void 0, type.list("IEveSpaceObjectChild")], 16, "effectChildren"], [[io, io.persist, void 0, type.list("IEveTransform")], 16, "children"], [[io, io.notify, io, io.persist, type, type.string], 16, "name"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "mute"], [[io, io.readwrite, void 0, type.objectRef("EveChildInheritProperties")], 16, "inheritProperties"], [[io, io.persist, void 0, type.list("EveCustomMask")], 16, "customMasks"], [[io, io.persist, void 0, type.list("EveMeshOverlayEffect")], 16, "overlayEffects"], [[io, io.read, void 0, type.objectRef("Tr2BindingVector3")], 16, "positionDelta"], [[io, io.read, type, type.int32, void 0, type.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.readwrite, type, type.boolean], 16, "isPickable"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameter"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameterWithChildren"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidCenter"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidRadius"], [[io, io.read, void 0, type.objectRef("Tr2GrannyAnimation")], 16, "animationUpdater"], [[io, io.persist, type, type.string], 16, "dna"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "castShadow"], [[io, io.persist, type, type.boolean], 16, "isAnimated"], [[io, io.persist, type, type.boolean], 16, "dynamicBoundingSphereEnabled"], [[io, io.persist, void 0, type.list("IEveSpaceObjectAttachment")], 16, "attachments"], [[io, io.persist, void 0, type.list("EveSpaceObjectDecal")], 16, "decals"], [[io, io.notify, io, io.persist, void 0, type.list("Tr2Light")], 16, "lights"], [[io, io.persist, void 0, type.list("Tr2ExternalParameter")], 16, "externalParameters"], [[io, io.persist, void 0, type.list("ITr2Controller")], 16, "controllers"], [[io, io.persist, void 0, type.list("EveLocator2")], 16, "locators"], [[io, io.persist, void 0, type.objectRef("Tr2MeshBase")], 16, "mesh"], [[io, io.persist, void 0, type.objectRef("EveImpactOverlay")], 16, "impactOverlay"], [[io, io.persist, type, type.vec3], 16, "clipSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor2"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor"], [[io, io.persist, void 0, type.list("TriObserverLocal")], 16, "observers"], [[io, io.read, type, type.vec3], 16, "worldPosition"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "rotationCurve"], [[io, io.read, type, type.quat], 16, "worldRotation"], [[io, io.persist, type, type.float32], 16, "modelScale"], [[io, io.persist, void 0, type.list("EveLocatorSets")], 16, "locatorSets"], [[io, io.readwrite, type, type.float32], 16, "activationStrength"], [[io, io.readwrite, type, type.color], 16, "albedoColor"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.read, type, type.float32], 16, "secondaryLightingSphereRadius"], [[io, io.persist, type, type.vec3], 16, "boundingSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "dirtLevel"], [[io, io.readwrite, type, type.vec4], 16, "customShaderData"], [[io, io.read, type, type.vec4], 16, "spaceObjectShipData"], [[io, io.read, type, type.int32], 16, "lastDamageLocatorHit"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "damageLocatorAutoFilterEnabled"], [[io, io.persist, type, type.float32], 16, "boundingSphereRadius"], [[io, io.read, type, type.vec3], 16, "modelWorldPosition"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "modelTranslationCurve"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "modelRotationCurve"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidCenter"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidRadius"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "translationCurve"], [[io, io.read, type, type.mat4], 16, "worldTransform"], [[io, io.read, type, type.mat4], 16, "inverseWorldTransform"], [[io, io.read, type, type.mat4], 16, "lastWorldTransform"], [[io, io.read, type, type.vec3], 16, "worldVelocity"], [[io, io.readwrite, void 0, type.objectRef("ITr2AudGeometry")], 16, "audioGeometry"], [[type, type.boolean], 16, "isVisible"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetOverlayEffects"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddController"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddObserver"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetInheritProperties"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetEffectChildByName"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddToEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "RemoveFromEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateWorldBounds"], [[carbon, carbon.method, impl, impl.implemented], 18, "PrepareShaderData"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateShLighting"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearShLighting"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetParentData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectStructs"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.")], 18, "RebuildCachedData"], [[carbon, carbon.method, impl, impl.implemented], 18, "ReleaseCachedData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPickingBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetID"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Overlay selection is fully represented in the CPU graph; realized-LOD draw arguments remain engine-owned.")], 18, "GetBatchesFromOverlayVector"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable mesh area access replaces Carbon's native mesh-area vectors.")], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Trinity retains and fills persistent VS/PS RawData; the engine owns device buffers, GPU-derived offsets, upload, and binding.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLights"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The optional length-one array replaces Carbon's float& sizeInShadow out-parameter.")], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayChildren"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetObserverTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocalToWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelCenterWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldRotation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FindSoundEmitter"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMute"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingBoxFromTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "InvalidateMergedLocators"], [[carbon, carbon.method, impl, impl.adapted], 18, "EnsureChildLocatorMerged"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateDamageLocatorFilter"], [[carbon, carbon.method, impl, impl.implemented], 18, "RunDamageLocatorFilter"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearImpactDamage"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearAnimations"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateImpactFromPosition"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "EndAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FreezeHighDetailMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorsForSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "MergeToLocatorSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLocatorSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearLocatorSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCloseLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetGoodLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetDamageLocatorDirection"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.")], 18, "GetDamageLocatorPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocatorBindPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetClosestDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriRand is represented by Math.random; all locator scoring remains source-faithful.")], 18, "GetGoodDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRadius"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMissPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetImpactConfiguration"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetImpactOverlay"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetImpactOverlay"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasImpactConfigurationShield"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.")], 18, "GetImpactPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocator"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTransformedDamageLocator"], [[carbon, carbon.method, impl, impl.adapted], 18, "IsImpostor"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorPositionFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorRotationFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "RebuildBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.")], 18, "SetBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetControllerVariables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources without multi-LOD support expose their sole browser LOD as index zero.")], 18, "GetLastUsedMeshLod"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocatorTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocalBoundingBox"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetWorldBoundingBox"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsBoundingBoxReady"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.")], 18, "EstimatePixelDiameter"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsInFrustum"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereCenter"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereRadius"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoneCount"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetImpactDamageState"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetImpactAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetProceduralContainerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted], 18, "TransformLocators"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorInObjectSpace"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShapeEllipsoid"]], 0, void 0, _withIEveInheritPrope));
68
73
  }
69
74
  /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */
70
75
  reflectionMode = (_initProto(this), _init_reflectionMode(this, 3));
@@ -204,10 +209,10 @@ new class extends _identity {
204
209
  /** m_psData.customData (Vector4) [READWRITE] - script/SOF-driven custom shader data. */
205
210
  customShaderData = (_init_extra_dirtLevel(this), _init_customShaderData(this, vec4.create()));
206
211
 
207
- /**
208
- * m_spaceObjectShipData (Vector4) [READ] - the packed shader ship data:
209
- * .y activation strength, .z dirt level, .w bounding-sphere radius
210
- * (PrepareShaderData, cpp:734-744). .x is authored elsewhere and left alone.
212
+ /**
213
+ * m_spaceObjectShipData (Vector4) [READ] - the packed shader ship data:
214
+ * .y activation strength, .z dirt level, .w bounding-sphere radius
215
+ * (PrepareShaderData, cpp:734-744). .x is authored elsewhere and left alone.
211
216
  */
212
217
  spaceObjectShipData = (_init_extra_customShaderData(this), _init_spaceObjectShipData(this, vec4.create()));
213
218
 
@@ -253,7 +258,8 @@ new class extends _identity {
253
258
  #dynamicBoundingSphere = sph3.set(sph3.create(), 0, 0, 0, -1);
254
259
 
255
260
  // Carbon keeps the realized world sphere separate from the authored local
256
- // sphere. It is refreshed by UpdateWorldBounds after transform changes.
261
+ // sphere. UpdateWorldBounds refreshes it from PrepareShaderData, which is
262
+ // Carbon's only refresh point - so a reader sees one value for a whole frame.
257
263
  #boundingSphereWorldRadius = -1;
258
264
 
259
265
  // Carbon visibility and mesh LOD state are runtime-only renderer results.
@@ -293,10 +299,10 @@ new class extends _identity {
293
299
 
294
300
  /** EVE_SPACEOBJECT_CUSTOWMASK_MAX (EveSpaceObject2.h:49) - custom-mask slots. */
295
301
 
296
- /**
297
- * Carbon g_secondaryLightingRadiusCutoffFactor (cpp:52), a registered engine
298
- * setting defaulting to 0.3. It scales this hull's bounding radius into the
299
- * cutoff below which a secondary light source is too small to matter.
302
+ /**
303
+ * Carbon g_secondaryLightingRadiusCutoffFactor (cpp:52), a registered engine
304
+ * setting defaulting to 0.3. It scales this hull's bounding radius into the
305
+ * cutoff below which a secondary light source is too small to matter.
300
306
  */
301
307
 
302
308
  /** Scratch for the per-frame shader-data fill; never allocate in it. */
@@ -320,12 +326,12 @@ new class extends _identity {
320
326
  this.mesh = mesh ?? null;
321
327
  }
322
328
 
323
- /**
324
- * Links the authored controllers, pushes authored inherit properties down to
325
- * the effect children and lights, and derives the impact overlay's damage
326
- * locator count from the "damage" locator set - which Carbon does at build
327
- * time - so a field-populated graph reaches the same live state as the
328
- * authoring path.
329
+ /**
330
+ * Links the authored controllers, pushes authored inherit properties down to
331
+ * the effect children and lights, and derives the impact overlay's damage
332
+ * locator count from the "damage" locator set - which Carbon does at build
333
+ * time - so a field-populated graph reaches the same live state as the
334
+ * authoring path.
329
335
  */
330
336
  Initialize() {
331
337
  for (const controller of this.controllers) {
@@ -356,9 +362,9 @@ new class extends _identity {
356
362
  return this.mesh;
357
363
  }
358
364
 
359
- /**
360
- * Replaces the hull mesh; the cached area blocks are only rebuilt on the next
361
- * batch call.
365
+ /**
366
+ * Replaces the hull mesh; the cached area blocks are only rebuilt on the next
367
+ * batch call.
362
368
  */
363
369
  SetMesh(mesh) {
364
370
  this.mesh = mesh ?? null;
@@ -369,9 +375,9 @@ new class extends _identity {
369
375
  return this.overlayEffects;
370
376
  }
371
377
 
372
- /**
373
- * Appends a controller, links it to this object when it is not already linked,
374
- * and replays the current controller variables onto it.
378
+ /**
379
+ * Appends a controller, links it to this object when it is not already linked,
380
+ * and replays the current controller variables onto it.
375
381
  */
376
382
  AddController(controller) {
377
383
  this.controllers.push(controller);
@@ -382,20 +388,20 @@ new class extends _identity {
382
388
  return controller;
383
389
  }
384
390
 
385
- /**
386
- * Appends a placement observer, which is repositioned from the observer
387
- * transform on every synchronous update; the observer is returned for
388
- * chaining.
391
+ /**
392
+ * Appends a placement observer, which is repositioned from the observer
393
+ * transform on every synchronous update; the observer is returned for
394
+ * chaining.
389
395
  */
390
396
  AddObserver(observer) {
391
397
  this.observers.push(observer);
392
398
  return observer;
393
399
  }
394
400
 
395
- /**
396
- * Sets the colour set that effect children and lights inherit, creating the
397
- * inherit-properties holder on first use, and pushes it to the existing
398
- * children and lights.
401
+ /**
402
+ * Sets the colour set that effect children and lights inherit, creating the
403
+ * inherit-properties holder on first use, and pushes it to the existing
404
+ * children and lights.
399
405
  */
400
406
  SetInheritProperties(colorSet) {
401
407
  if (!this.inheritProperties) {
@@ -416,9 +422,9 @@ new class extends _identity {
416
422
  }
417
423
  }
418
424
 
419
- /**
420
- * Returns the first effect child with the given name, or null when none
421
- * matches.
425
+ /**
426
+ * Returns the first effect child with the given name, or null when none
427
+ * matches.
422
428
  */
423
429
  GetEffectChildByName(name) {
424
430
  const target = String(name ?? "");
@@ -430,10 +436,10 @@ new class extends _identity {
430
436
  return null;
431
437
  }
432
438
 
433
- /**
434
- * Appends an effect child, first giving it the hull's inherited properties and
435
- * then replaying the current controller variables onto it, so a late addition
436
- * starts in the same state as the rest.
439
+ /**
440
+ * Appends an effect child, first giving it the hull's inherited properties and
441
+ * then replaying the current controller variables onto it, so a late addition
442
+ * starts in the same state as the rest.
437
443
  */
438
444
  AddToEffectChildrenList(child) {
439
445
  if (this.inheritProperties) {
@@ -454,17 +460,17 @@ new class extends _identity {
454
460
  this.lights.push(light);
455
461
  }
456
462
 
457
- /**
458
- * Drops every light from the hull; component registration is not revisited
459
- * here.
463
+ /**
464
+ * Drops every light from the hull; component registration is not revisited
465
+ * here.
460
466
  */
461
467
  ClearLights() {
462
468
  this.lights.length = 0;
463
469
  }
464
470
 
465
- /**
466
- * Removes an effect child, returning false when it is not attached to this
467
- * hull.
471
+ /**
472
+ * Removes an effect child, returning false when it is not attached to this
473
+ * hull.
468
474
  */
469
475
  RemoveFromEffectChildrenList(child) {
470
476
  const index = this.effectChildren.indexOf(child);
@@ -477,9 +483,9 @@ new class extends _identity {
477
483
  return true;
478
484
  }
479
485
 
480
- /**
481
- * Sets the curve that rotates the model within the hull's ball rotation, or
482
- * clears it when passed nothing.
486
+ /**
487
+ * Sets the curve that rotates the model within the hull's ball rotation, or
488
+ * clears it when passed nothing.
483
489
  */
484
490
  SetModelRotationCurve(curve) {
485
491
  this.modelRotationCurve = curve ?? null;
@@ -490,9 +496,9 @@ new class extends _identity {
490
496
  return this.modelRotationCurve;
491
497
  }
492
498
 
493
- /**
494
- * Sets the curve that offsets the model within the hull's ball position, or
495
- * clears it when passed nothing.
499
+ /**
500
+ * Sets the curve that offsets the model within the hull's ball position, or
501
+ * clears it when passed nothing.
496
502
  */
497
503
  SetModelTranslationCurve(curve) {
498
504
  this.modelTranslationCurve = curve ?? null;
@@ -503,10 +509,10 @@ new class extends _identity {
503
509
  return this.modelTranslationCurve;
504
510
  }
505
511
 
506
- /**
507
- * Rebuilds the hull world transform for a frame from the ball position and rotation curves plus the optional model translation and rotation curves, applies modelScale as a uniform scale, then refreshes the inverse transform and the world bounds; the previous world transform is kept for motion vectors and the world velocity comes from the position curve's derivative.
508
- * @param {number} time Frame time; repeating the previous call's time is a no-op.
509
- * @returns {boolean} False when the transform had already been built for this time.
512
+ /**
513
+ * Rebuilds the hull world transform for a frame from the ball position and rotation curves plus the optional model translation and rotation curves, applies modelScale as a uniform scale, then refreshes the inverse transform and the world bounds; the previous world transform is kept for motion vectors and the world velocity comes from the position curve's derivative.
514
+ * @param {number} time Frame time; repeating the previous call's time is a no-op.
515
+ * @returns {boolean} False when the transform had already been built for this time.
510
516
  */
511
517
  UpdateWorldTransform(time) {
512
518
  const nextTime = Number(time) || 0;
@@ -557,13 +563,12 @@ new class extends _identity {
557
563
  if (!mat4.invert(this.inverseWorldTransform, this.worldTransform)) {
558
564
  mat4.identity(this.inverseWorldTransform);
559
565
  }
560
- this.UpdateWorldBounds();
561
566
  return true;
562
567
  }
563
568
 
564
- /**
565
- * Refreshes Carbon's realized world-space sphere from the dynamic skinned
566
- * sphere when available, otherwise from the authored local sphere.
569
+ /**
570
+ * Refreshes Carbon's realized world-space sphere from the dynamic skinned
571
+ * sphere when available, otherwise from the authored local sphere.
567
572
  */
568
573
  UpdateWorldBounds() {
569
574
  const updater = this.animationUpdater;
@@ -572,21 +577,19 @@ new class extends _identity {
572
577
  if (this.#dynamicBoundingSphere[3] > 0) {
573
578
  vec3.transformMat4(this.modelWorldPosition, this.#dynamicBoundingSphere, this.worldTransform);
574
579
  this.#boundingSphereWorldRadius = this.modelScale * this.#dynamicBoundingSphere[3];
575
- return true;
580
+ return;
576
581
  }
577
582
  }
578
583
  if (this.boundingSphereRadius > 0) {
579
584
  vec3.transformMat4(this.modelWorldPosition, this.boundingSphereCenter, this.worldTransform);
580
585
  this.#boundingSphereWorldRadius = this.modelScale * this.boundingSphereRadius;
581
- return true;
582
586
  }
583
- return false;
584
587
  }
585
588
 
586
- /**
587
- * Carbon EveSpaceObject2::PrepareShaderData (cpp:734-763): refreshes the
588
- * world bounds, packs the ship data, and derives the clip-sphere dissolve
589
- * values into the persistent per-object records.
589
+ /**
590
+ * Carbon EveSpaceObject2::PrepareShaderData (cpp:734-763): refreshes the
591
+ * world bounds, packs the ship data, and derives the clip-sphere dissolve
592
+ * values into the persistent per-object records.
590
593
  */
591
594
  PrepareShaderData(updateContext = null) {
592
595
  this.UpdateWorldBounds();
@@ -616,14 +619,14 @@ new class extends _identity {
616
619
  this.#psData.Set("clipSphereFactor2", [this.clipSphereFactor2]);
617
620
  }
618
621
 
619
- /**
620
- * Carbon EveSpaceObject2::UpdateShLighting (cpp:1411-1421): asks the scene's
621
- * SH lighting manager for this hull's secondary-lighting coefficients, faded
622
- * in across the low-detail threshold so a hull entering that range does not
623
- * pop. The coefficients are cleared first, which is also what leaves the
624
- * unwritten tail zero on the L1 path.
625
- * @param {Object} manager - Tr2ShLightingManager
626
- * @param {Object} [updateContext] - frame context, for the detail thresholds
622
+ /**
623
+ * Carbon EveSpaceObject2::UpdateShLighting (cpp:1411-1421): asks the scene's
624
+ * SH lighting manager for this hull's secondary-lighting coefficients, faded
625
+ * in across the low-detail threshold so a hull entering that range does not
626
+ * pop. The coefficients are cleared first, which is also what leaves the
627
+ * unwritten tail zero on the L1 path.
628
+ * @param {Object} manager - Tr2ShLightingManager
629
+ * @param {Object} [updateContext] - frame context, for the detail thresholds
627
630
  */
628
631
  UpdateShLighting(manager, updateContext = null) {
629
632
  const coefficients = this.#psData.Get("shLightingCoefficients");
@@ -639,21 +642,21 @@ new class extends _identity {
639
642
  return true;
640
643
  }
641
644
 
642
- /**
643
- * Carbon EveSpaceObject2::ClearShLighting (cpp:1423-1426): drops this hull's
644
- * secondary-lighting contribution back to nothing.
645
+ /**
646
+ * Carbon EveSpaceObject2::ClearShLighting (cpp:1423-1426): drops this hull's
647
+ * secondary-lighting contribution back to nothing.
645
648
  */
646
649
  ClearShLighting() {
647
650
  this.#psData.Get("shLightingCoefficients").fill(0);
648
651
  return true;
649
652
  }
650
653
 
651
- /**
652
- * Carbon EveSpaceObject2::GetParentData (cpp:1872-1885): the values an
653
- * attachment needs from its hull. `shLighting` is a LIVE view into the PS
654
- * record, exactly as Carbon hands out a raw pointer into m_psData - an
655
- * attachment reading it sees the hull's current coefficients.
656
- * @param {Object} [out] - caller-owned record, refreshed in place
654
+ /**
655
+ * Carbon EveSpaceObject2::GetParentData (cpp:1872-1885): the values an
656
+ * attachment needs from its hull. `shLighting` is a LIVE view into the PS
657
+ * record, exactly as Carbon hands out a raw pointer into m_psData - an
658
+ * attachment reading it sees the hull's current coefficients.
659
+ * @param {Object} [out] - caller-owned record, refreshed in place
657
660
  */
658
661
  GetParentData(out = new _IEveSpaceObject2Pare()) {
659
662
  mat4.copy(out.transform, this.worldTransform);
@@ -670,11 +673,11 @@ new class extends _identity {
670
673
  return out;
671
674
  }
672
675
 
673
- /**
674
- * Carbon EveSpaceObject2::GetPerObjectStructs (cpp:1485-1490): hands a copy
675
- * of both records to a caller, with the VS record's customData taken from the
676
- * PS record as Carbon does.
677
- * @returns {{vs: RawData, ps: RawData}} independent copies, not live records
676
+ /**
677
+ * Carbon EveSpaceObject2::GetPerObjectStructs (cpp:1485-1490): hands a copy
678
+ * of both records to a caller, with the VS record's customData taken from the
679
+ * PS record as Carbon does.
680
+ * @returns {{vs: RawData, ps: RawData}} independent copies, not live records
678
681
  */
679
682
  GetPerObjectStructs(vsData = RawData.create("EveSpaceObjectVSData"), psData = RawData.create("EveSpaceObjectPSData")) {
680
683
  vsData.CopyFrom(this.#vsData);
@@ -686,9 +689,9 @@ new class extends _identity {
686
689
  };
687
690
  }
688
691
 
689
- /**
690
- * Refreshes the world transform, then - when the update flag is on - places the observers, stamps the LOD-gated curve clock while advancing the overlay effects, runs the effect children's synchronous pass with the current placement, and updates the impact overlay; the overlay effects receive the context time as both clocks, as Carbon does.
691
- * @returns {boolean} False when the update flag is off; the world transform is refreshed either way.
692
+ /**
693
+ * Refreshes the world transform, then - when the update flag is on - places the observers, stamps the LOD-gated curve clock while advancing the overlay effects, runs the effect children's synchronous pass with the current placement, and updates the impact overlay; the overlay effects receive the context time as both clocks, as Carbon does.
694
+ * @returns {boolean} False when the update flag is off; the world transform is refreshed either way.
692
695
  */
693
696
  UpdateSyncronous(updateContext = null) {
694
697
  const time = _EveSpaceObject.#GetContextValue(updateContext, "GetTime", "currentTime", "time");
@@ -729,9 +732,9 @@ new class extends _identity {
729
732
  return true;
730
733
  }
731
734
 
732
- /**
733
- * Runs the controllers at a frequency derived from the hull's estimated pixel diameter against the context's high-detail threshold, advances the object curve sets only on frames the synchronous LOD gate stamped, then updates the transform children, the effect children and the impact overlay.
734
- * @returns {number} The controller update frequency in 0..1, which is also handed to the effect children; 0 when the hull is not visible or the update flag is off.
735
+ /**
736
+ * Runs the controllers at a frequency derived from the hull's estimated pixel diameter against the context's high-detail threshold, advances the object curve sets only on frames the synchronous LOD gate stamped, then updates the transform children, the effect children and the impact overlay.
737
+ * @returns {number} The controller update frequency in 0..1, which is also handed to the effect children; 0 when the hull is not visible or the update flag is off.
735
738
  */
736
739
  UpdateAsyncronous(updateContext = null) {
737
740
  if (!this.update) {
@@ -808,9 +811,9 @@ new class extends _identity {
808
811
  return frequency;
809
812
  }
810
813
 
811
- /**
812
- * Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards
813
- * visibility to the explicitly owned visual branches.
814
+ /**
815
+ * Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards
816
+ * visibility to the explicitly owned visual branches.
814
817
  */
815
818
  UpdateVisibility(updateContext = null, _parentTransform = _EveSpaceObject.#identityTransform) {
816
819
  this.isVisible = false;
@@ -819,7 +822,6 @@ new class extends _identity {
819
822
  if (!this.display) {
820
823
  return false;
821
824
  }
822
- this.UpdateWorldBounds();
823
825
  this.lodLevel = Tr2Lod.TR2_LOD_LOW;
824
826
  this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;
825
827
  this.#impostorMode = false;
@@ -910,10 +912,10 @@ new class extends _identity {
910
912
  return out;
911
913
  }
912
914
 
913
- /** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated
914
- * attachments recurse, the impact overlay contributes, the hull mesh delegates
915
- * per batch type, and TRANSPARENT routes through the distance-sorted area
916
- * path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is
915
+ /** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated
916
+ * attachments recurse, the impact overlay contributes, the hull mesh delegates
917
+ * per batch type, and TRANSPARENT routes through the distance-sorted area
918
+ * path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is
917
919
  * deferred with the overlay realization work. */
918
920
  GetBatches(batches, batchType, perObjectData, reason, renderContext = null) {
919
921
  if (!this.mesh) return false;
@@ -953,11 +955,11 @@ new class extends _identity {
953
955
  // from the geometry resource when it exposes them; a failed lookup keeps
954
956
  // Carbon's origin-center fallback.
955
957
 
956
- /**
957
- * Commits the mesh's transparent areas back-to-front, ordering them by the
958
- * squared distance from the view position to each area's world-space
959
- * bounding-box center and falling back to the object origin when the geometry
960
- * resource cannot supply a box.
958
+ /**
959
+ * Commits the mesh's transparent areas back-to-front, ordering them by the
960
+ * squared distance from the view position to each area's world-space
961
+ * bounding-box center and falling back to the object origin when the geometry
962
+ * resource cannot supply a box.
961
963
  */
962
964
  #GetSortedTransparentBatches(areas, batches, perObjectData, renderContext) {
963
965
  const geometry = this.mesh.GetGeometryResource() ?? null;
@@ -995,10 +997,10 @@ new class extends _identity {
995
997
  }
996
998
  }
997
999
 
998
- /** Rebuilds the cached overlay/shadow area-block lists from the current mesh
999
- * (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by
1000
- * the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +
1001
- * TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the
1000
+ /** Rebuilds the cached overlay/shadow area-block lists from the current mesh
1001
+ * (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by
1002
+ * the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +
1003
+ * TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the
1002
1004
  * shadow list groups OPAQUE areas by shared material. All coalesced. */
1003
1005
  RebuildCachedData() {
1004
1006
  this.ReleaseCachedData();
@@ -1018,9 +1020,9 @@ new class extends _identity {
1018
1020
  this.#cachedAreaBlocksBuilt = true;
1019
1021
  }
1020
1022
 
1021
- /**
1022
- * Drops the cached overlay and shadow area-block lists so the next batch call
1023
- * rebuilds them from the current mesh.
1023
+ /**
1024
+ * Drops the cached overlay and shadow area-block lists so the next batch call
1025
+ * rebuilds them from the current mesh.
1024
1026
  */
1025
1027
  ReleaseCachedData() {
1026
1028
  for (const blocks of this.#overlayMeshAreaBlocks) {
@@ -1030,25 +1032,25 @@ new class extends _identity {
1030
1032
  this.#cachedAreaBlocksBuilt = false;
1031
1033
  }
1032
1034
 
1033
- /**
1034
- * Rebuilds the cached area blocks on first use when a mesh is attached; Carbon
1035
- * instead rebuilds them from the geometry-resource load callback.
1035
+ /**
1036
+ * Rebuilds the cached area blocks on first use when a mesh is attached; Carbon
1037
+ * instead rebuilds them from the geometry-resource load callback.
1036
1038
  */
1037
1039
  #EnsureCachedAreaBlocks() {
1038
1040
  if (!this.#cachedAreaBlocksBuilt && this.mesh) this.RebuildCachedData();
1039
1041
  }
1040
1042
 
1041
- /**
1042
- * Carbon EveSpaceObject2::GetPickingBatches (cpp:3645-3675): collects the
1043
- * geometry a pick pass should test, by mask. It is ordinary batch collection
1044
- * - the pick itself is an engine pass that renders these and reads IDs back.
1045
- *
1046
- * The OPAQUE bit deliberately pulls in the transparent and additive OVERLAY
1047
- * effects too, so a cloaking hull stays pickable.
1048
- *
1049
- * @param {Object} batches - the picking accumulator
1050
- * @param {Number} pickTypes - a Tr2PickType mask
1051
- * @param {Object} perObjectData - this hull's per-object record
1043
+ /**
1044
+ * Carbon EveSpaceObject2::GetPickingBatches (cpp:3645-3675): collects the
1045
+ * geometry a pick pass should test, by mask. It is ordinary batch collection
1046
+ * - the pick itself is an engine pass that renders these and reads IDs back.
1047
+ *
1048
+ * The OPAQUE bit deliberately pulls in the transparent and additive OVERLAY
1049
+ * effects too, so a cloaking hull stays pickable.
1050
+ *
1051
+ * @param {Object} batches - the picking accumulator
1052
+ * @param {Number} pickTypes - a Tr2PickType mask
1053
+ * @param {Object} perObjectData - this hull's per-object record
1052
1054
  */
1053
1055
  GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null) {
1054
1056
  if (pickTypes & Tr2PickType.PICK_TYPE_PICKING) {
@@ -1077,20 +1079,20 @@ new class extends _identity {
1077
1079
  return true;
1078
1080
  }
1079
1081
 
1080
- /**
1081
- * Carbon EveSpaceObject2::GetID (cpp:3640-3643): a picked area resolves to
1082
- * the hull itself, so the area index is deliberately ignored.
1083
- * @param {Number} [_areaID] - the picked area, unused by this class
1084
- * @returns {EveSpaceObject2} this
1082
+ /**
1083
+ * Carbon EveSpaceObject2::GetID (cpp:3640-3643): a picked area resolves to
1084
+ * the hull itself, so the area index is deliberately ignored.
1085
+ * @param {Number} [_areaID] - the picked area, unused by this class
1086
+ * @returns {EveSpaceObject2} this
1085
1087
  */
1086
1088
  GetID(_areaID = 0) {
1087
1089
  return this;
1088
1090
  }
1089
1091
 
1090
- /** Carbon GetShadowBatches (EveSpaceObject2.cpp:1143-1184): one batch per
1091
- * cached shared-material OPAQUE area block, using the area's own material.
1092
- * Carbon bakes realized-LOD draw args; the GPU-free port defers them to the
1093
- * engine via the geometry source descriptor, so shadowPixelSize travels unused
1092
+ /** Carbon GetShadowBatches (EveSpaceObject2.cpp:1143-1184): one batch per
1093
+ * cached shared-material OPAQUE area block, using the area's own material.
1094
+ * Carbon bakes realized-LOD draw args; the GPU-free port defers them to the
1095
+ * engine via the geometry source descriptor, so shadowPixelSize travels unused
1094
1096
  * until engine LOD selection consumes it. */
1095
1097
  GetShadowBatches(batches, perObjectData, _shadowPixelSize) {
1096
1098
  if (!this.mesh || this.mesh.display === false) return false;
@@ -1113,10 +1115,10 @@ new class extends _identity {
1113
1115
  return committed;
1114
1116
  }
1115
1117
 
1116
- /** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the
1117
- * impact overlay's armor-damage shader draws over the TYPE_ALL blocks at
1118
- * maximum priority; each displayed overlay effect draws its per-batch-type
1119
- * effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything
1118
+ /** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the
1119
+ * impact overlay's armor-damage shader draws over the TYPE_ALL blocks at
1120
+ * maximum priority; each displayed overlay effect draws its per-batch-type
1121
+ * effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything
1120
1122
  * else -> TYPE_ALL). */
1121
1123
  GetBatchesFromOverlayVector(batches, perObjectData, batchType, mesh) {
1122
1124
  const impactEffect = this.impactOverlay?.GetArmorDamageShader?.(batchType) ?? null;
@@ -1161,10 +1163,10 @@ new class extends _identity {
1161
1163
  return (batches.GetBatchCount?.() ?? 0) > committedBefore;
1162
1164
  }
1163
1165
 
1164
- /**
1165
- * Builds and commits one render batch drawing a single cached area block with
1166
- * the given material and optional priority, skipping the block when the
1167
- * material yields no valid batch.
1166
+ /**
1167
+ * Builds and commits one render batch drawing a single cached area block with
1168
+ * the given material and optional priority, skipping the block when the
1169
+ * material yields no valid batch.
1168
1170
  */
1169
1171
  #CommitBlockBatch(batches, material, geometry, meshIndex, block, perObjectData, priority, lod, vertexDeclaration) {
1170
1172
  const batch = new Tr2RenderBatch();
@@ -1182,18 +1184,18 @@ new class extends _identity {
1182
1184
 
1183
1185
  // EveMeshOverlayEffect::GetEffects (display-gated, per batch type).
1184
1186
 
1185
- /**
1186
- * Returns an overlay effect's display-gated effect list for a batch type, or
1187
- * null when it contributes none.
1187
+ /**
1188
+ * Returns an overlay effect's display-gated effect list for a batch type, or
1189
+ * null when it contributes none.
1188
1190
  */
1189
1191
  #OverlayEffectsFor(overlay, batchType) {
1190
1192
  return overlay?.GetEffects?.(batchType) ?? null;
1191
1193
  }
1192
1194
 
1193
- /**
1194
- * Reports whether the hull mesh has transparent areas or any overlay effect
1195
- * does, which tells the renderer to route this object through the sorted
1196
- * transparent pass.
1195
+ /**
1196
+ * Reports whether the hull mesh has transparent areas or any overlay effect
1197
+ * does, which tells the renderer to route this object through the sorted
1198
+ * transparent pass.
1197
1199
  */
1198
1200
  HasTransparentBatches() {
1199
1201
  if (!this.mesh) return false;
@@ -1204,9 +1206,9 @@ new class extends _identity {
1204
1206
  return false;
1205
1207
  }
1206
1208
 
1207
- /**
1208
- * Returns the distance from the render context's view position to the hull
1209
- * world translation, used to order transparent renderables back-to-front.
1209
+ /**
1210
+ * Returns the distance from the render context's view position to the hull
1211
+ * world translation, used to order transparent renderables back-to-front.
1210
1212
  */
1211
1213
  GetSortValue(renderContext = null) {
1212
1214
  const viewPosition = renderContext?.GetViewPosition();
@@ -1216,9 +1218,9 @@ new class extends _identity {
1216
1218
  return Math.hypot(x, y, z);
1217
1219
  }
1218
1220
 
1219
- /** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>.
1220
- * This port retains persistent VS/PS RawData and returns those records
1221
- * directly. GPU-derived bone-ring offsets remain at their CPU defaults until
1221
+ /** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>.
1222
+ * This port retains persistent VS/PS RawData and returns those records
1223
+ * directly. GPU-derived bone-ring offsets remain at their CPU defaults until
1222
1224
  * an engine supplies them; other CPU-known values are already encoded. */
1223
1225
  GetPerObjectData(_accumulator = null) {
1224
1226
  // Carbon cpp:1437-1445: the bone ring is uploaded and its OFFSETS stamped
@@ -1242,13 +1244,13 @@ new class extends _identity {
1242
1244
  return this.GetPerObjectData(accumulator);
1243
1245
  }
1244
1246
 
1245
- /** Carbon EveSpaceObject2::GetLights (cpp:3536-3555): display gate only
1246
- * (no lights-empty early-out, unlike EveChildMesh), then per light
1247
- * AddLight(manager, worldTransform, 1, bones, boneCount) FOLLOWED by
1248
- * SetBrightnessMultiplier(m_activationStrength) - the order is contract:
1249
- * the submission uses the multiplier stamped on the PREVIOUS pass (first
1250
- * pass uses the Tr2Light default 1) - one frame of activation-strength
1251
- * lag, preserved verbatim. cpp:3554's dead `DisplayChildren()` local is
1247
+ /** Carbon EveSpaceObject2::GetLights (cpp:3536-3555): display gate only
1248
+ * (no lights-empty early-out, unlike EveChildMesh), then per light
1249
+ * AddLight(manager, worldTransform, 1, bones, boneCount) FOLLOWED by
1250
+ * SetBrightnessMultiplier(m_activationStrength) - the order is contract:
1251
+ * the submission uses the multiplier stamped on the PREVIOUS pass (first
1252
+ * pass uses the Tr2Light default 1) - one frame of activation-strength
1253
+ * lag, preserved verbatim. cpp:3554's dead `DisplayChildren()` local is
1252
1254
  * not ported. */
1253
1255
  GetLights(lightManager) {
1254
1256
  if (!this.display) {
@@ -1267,11 +1269,11 @@ new class extends _identity {
1267
1269
  }
1268
1270
  }
1269
1271
 
1270
- /**
1271
- * Carbon EveSpaceObject2::IsCastingShadow (cpp:2252-2274): applies the
1272
- * display, world-sphere and reflection gates, then tests the realized sphere
1273
- * against the supplied shadow frustum. Carbon's float& result is represented
1274
- * by an optional length-one array.
1272
+ /**
1273
+ * Carbon EveSpaceObject2::IsCastingShadow (cpp:2252-2274): applies the
1274
+ * display, world-sphere and reflection gates, then tests the realized sphere
1275
+ * against the supplied shadow frustum. Carbon's float& result is represented
1276
+ * by an optional length-one array.
1275
1277
  */
1276
1278
  IsCastingShadow(cameraFrustum, shadowFrustum, renderReason, sizeInShadowOut = null) {
1277
1279
  if (!this.display || this.#boundingSphereWorldRadius <= 0) {
@@ -1294,9 +1296,9 @@ new class extends _identity {
1294
1296
  return sizeInShadow > 15;
1295
1297
  }
1296
1298
 
1297
- /** Carbon EveSpaceObject2::RegisterComponents (cpp:3568-3609): registers its
1298
- * own components and its children with the scene registration container "so
1299
- * we don't have to traverse the tree every frame". RegisterAudioGeometry
1299
+ /** Carbon EveSpaceObject2::RegisterComponents (cpp:3568-3609): registers its
1300
+ * own components and its children with the scene registration container "so
1301
+ * we don't have to traverse the tree every frame". RegisterAudioGeometry
1300
1302
  * (cpp:3572-3575) is audio-engine-owned and unported. Gate m_display. */
1301
1303
  RegisterComponents() {
1302
1304
  const registry = this.GetComponentRegistry();
@@ -1319,10 +1321,10 @@ new class extends _identity {
1319
1321
  }
1320
1322
  }
1321
1323
 
1322
- /** Carbon EveSpaceObject2::UnRegisterComponents (cpp:3615-3638): forwards
1323
- * the un-registration to the children only - EveEntity::UnRegister already
1324
- * called UnRegisterAllComponents(this) first (EveEntity.cpp:90) - and does
1325
- * not re-check display. UnregisterAudioGeometry (cpp:3617) is
1324
+ /** Carbon EveSpaceObject2::UnRegisterComponents (cpp:3615-3638): forwards
1325
+ * the un-registration to the children only - EveEntity::UnRegister already
1326
+ * called UnRegisterAllComponents(this) first (EveEntity.cpp:90) - and does
1327
+ * not re-check display. UnregisterAudioGeometry (cpp:3617) is
1326
1328
  * audio-engine-owned and unported. */
1327
1329
  UnRegisterComponents() {
1328
1330
  const registry = this.GetComponentRegistry();
@@ -1336,25 +1338,25 @@ new class extends _identity {
1336
1338
  }
1337
1339
  }
1338
1340
 
1339
- /**
1340
- * Reports whether children and effect children should be shown; always true on
1341
- * the base hull, subclasses gate it on activation state.
1341
+ /**
1342
+ * Reports whether children and effect children should be shown; always true on
1343
+ * the base hull, subclasses gate it on activation state.
1342
1344
  */
1343
1345
  DisplayChildren() {
1344
1346
  return true;
1345
1347
  }
1346
1348
 
1347
- /**
1348
- * Returns the transform placement observers are attached to - the live hull
1349
- * world transform.
1349
+ /**
1350
+ * Returns the transform placement observers are attached to - the live hull
1351
+ * world transform.
1350
1352
  */
1351
1353
  GetObserverTransform() {
1352
1354
  return this.worldTransform;
1353
1355
  }
1354
1356
 
1355
- /**
1356
- * Returns the transform effect children are placed against - the live hull
1357
- * world transform, not a copy.
1357
+ /**
1358
+ * Returns the transform effect children are placed against - the live hull
1359
+ * world transform, not a copy.
1358
1360
  */
1359
1361
  GetLocalToWorldTransform() {
1360
1362
  return this.worldTransform;
@@ -1365,26 +1367,26 @@ new class extends _identity {
1365
1367
  vec3.transformMat4(out, this.boundingSphereCenter, this.worldTransform);
1366
1368
  }
1367
1369
 
1368
- /**
1369
- * Returns the live curve-sampled ball position; the array is the object's own
1370
- * field and is rewritten by the next transform update.
1370
+ /**
1371
+ * Returns the live curve-sampled ball position; the array is the object's own
1372
+ * field and is rewritten by the next transform update.
1371
1373
  */
1372
1374
  GetWorldPosition() {
1373
1375
  return this.worldPosition;
1374
1376
  }
1375
1377
 
1376
- /**
1377
- * Returns the live curve-sampled ball rotation, which excludes the model
1378
- * rotation curve; the quaternion is the object's own field and is rewritten by
1379
- * the next transform update.
1378
+ /**
1379
+ * Returns the live curve-sampled ball rotation, which excludes the model
1380
+ * rotation curve; the quaternion is the object's own field and is rewritten by
1381
+ * the next transform update.
1380
1382
  */
1381
1383
  GetWorldRotation() {
1382
1384
  return this.worldRotation;
1383
1385
  }
1384
1386
 
1385
- /**
1386
- * Finds a sound emitter by observer name on this hull and then recursively in
1387
- * the effect children, returning null when no emitter carries the name.
1387
+ /**
1388
+ * Finds a sound emitter by observer name on this hull and then recursively in
1389
+ * the effect children, returning null when no emitter carries the name.
1388
1390
  */
1389
1391
  FindSoundEmitter(name) {
1390
1392
  const target = String(name ?? "");
@@ -1402,9 +1404,9 @@ new class extends _identity {
1402
1404
  return null;
1403
1405
  }
1404
1406
 
1405
- /**
1406
- * Sets the mute flag and pushes it to every effect child and placement
1407
- * observer.
1407
+ /**
1408
+ * Sets the mute flag and pushes it to every effect child and placement
1409
+ * observer.
1408
1410
  */
1409
1411
  SetMute(mute) {
1410
1412
  this.mute = !!mute;
@@ -1416,19 +1418,19 @@ new class extends _identity {
1416
1418
  }
1417
1419
  }
1418
1420
 
1419
- /**
1420
- * Plays an animation with explicit loop, start, and speed settings
1421
- * (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).
1421
+ /**
1422
+ * Plays an animation with explicit loop, start, and speed settings
1423
+ * (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).
1422
1424
  */
1423
1425
  PlayAnimationEx(animName, loopCount, start, speed, clearWhenDone = true) {
1424
1426
  this.#PlayAnimation(animName, true, loopCount, start, speed, clearWhenDone);
1425
1427
  }
1426
1428
 
1427
- /**
1428
- * Calculates the skinned bounding box under a transform (CMF path: the
1429
- * local box corners transformed with perspective divide). The granny path
1430
- * is unported. Returns an inverted-empty { min, max } box when dynamic
1431
- * bounds are disabled, as Carbon's BoundingBoxInitialize does.
1429
+ /**
1430
+ * Calculates the skinned bounding box under a transform (CMF path: the
1431
+ * local box corners transformed with perspective divide). The granny path
1432
+ * is unported. Returns an inverted-empty { min, max } box when dynamic
1433
+ * bounds are disabled, as Carbon's BoundingBoxInitialize does.
1432
1434
  */
1433
1435
  CalculateSkinnedBoundingBoxFromTransform(transform) {
1434
1436
  const min = vec3.fromValues(Infinity, Infinity, Infinity);
@@ -1452,10 +1454,10 @@ new class extends _identity {
1452
1454
  };
1453
1455
  }
1454
1456
 
1455
- /**
1456
- * Calculates the skinned bounding sphere (CMF path: the current bounding
1457
- * sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds
1458
- * are disabled.
1457
+ /**
1458
+ * Calculates the skinned bounding sphere (CMF path: the current bounding
1459
+ * sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds
1460
+ * are disabled.
1459
1461
  */
1460
1462
  CalculateSkinnedBoundingSphere(out = vec4.create()) {
1461
1463
  if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource()?.IsUsingCMF?.()) {
@@ -1474,9 +1476,9 @@ new class extends _identity {
1474
1476
  }
1475
1477
  }
1476
1478
 
1477
- /**
1478
- * Rebuilds the locator sets visible on this object from its own authored sets
1479
- * plus the sets owned by child meshes and nested child containers.
1479
+ /**
1480
+ * Rebuilds the locator sets visible on this object from its own authored sets
1481
+ * plus the sets owned by child meshes and nested child containers.
1480
1482
  */
1481
1483
  EnsureChildLocatorMerged() {
1482
1484
  if (!this.#mergedLocatorSetsDirty) return;
@@ -1540,11 +1542,11 @@ new class extends _identity {
1540
1542
  this.#damageFilterAreas.length = 0;
1541
1543
  }
1542
1544
 
1543
- /**
1544
- * Collects prepared hull and child geometry and opens raycast sessions
1545
- * (Carbon CollectOccluders, EveSpaceObject2.cpp:1960-2028): occluders carry
1546
- * areaStart/areaCount ranges into the shared #damageFilterAreas pool, and
1547
- * records with no matching areas are skipped rather than raycast whole.
1545
+ /**
1546
+ * Collects prepared hull and child geometry and opens raycast sessions
1547
+ * (Carbon CollectOccluders, EveSpaceObject2.cpp:1960-2028): occluders carry
1548
+ * areaStart/areaCount ranges into the shared #damageFilterAreas pool, and
1549
+ * records with no matching areas are skipped rather than raycast whole.
1548
1550
  */
1549
1551
  #CollectDamageFilterOccluders() {
1550
1552
  this.#damageFilterOccluders.length = 0;
@@ -1691,8 +1693,8 @@ new class extends _identity {
1691
1693
  if (this.#damageFilterState === 0) this.#damageFilterState = 1;
1692
1694
  }
1693
1695
 
1694
- /**
1695
- * Clears all impact and damage effects on the impact overlay.
1696
+ /**
1697
+ * Clears all impact and damage effects on the impact overlay.
1696
1698
  */
1697
1699
  ClearImpactDamage() {
1698
1700
  if (this.impactOverlay) this.impactOverlay.Clear();
@@ -1703,23 +1705,23 @@ new class extends _identity {
1703
1705
  }
1704
1706
  }
1705
1707
 
1706
- /**
1707
- * Clears all animations on the animation updater.
1708
+ /**
1709
+ * Clears all animations on the animation updater.
1708
1710
  */
1709
1711
  ClearAnimations() {
1710
1712
  this.animationUpdater?.ClearAnimations?.();
1711
1713
  }
1712
1714
 
1713
- /**
1714
- * Creates an impact facing a position on the closest facing damage locator.
1715
+ /**
1716
+ * Creates an impact facing a position on the closest facing damage locator.
1715
1717
  */
1716
1718
  CreateImpactFromPosition(position, direction, lifeTime, size) {
1717
1719
  const closestDamageLocator = this.#GetClosestLocatorIndex(position, _EveSpaceObject.#damageLocatorSetName);
1718
1720
  return this.CreateImpact(closestDamageLocator, direction, lifeTime, size);
1719
1721
  }
1720
1722
 
1721
- /**
1722
- * Creates an impact effect on a damage locator through the impact overlay.
1723
+ /**
1724
+ * Creates an impact effect on a damage locator through the impact overlay.
1723
1725
  */
1724
1726
  CreateImpact(damageLocatorIndex, direction, lifeTime, size) {
1725
1727
  if (this.impactOverlay) {
@@ -1736,16 +1738,16 @@ new class extends _identity {
1736
1738
  return -1;
1737
1739
  }
1738
1740
 
1739
- /**
1740
- * Ends the current animation on the animation updater.
1741
+ /**
1742
+ * Ends the current animation on the animation updater.
1741
1743
  */
1742
1744
  EndAnimation() {
1743
1745
  this.animationUpdater?.EndAnimation?.();
1744
1746
  }
1745
1747
 
1746
- /**
1747
- * Freezes LOD selection at the current mesh and marks decal geometry
1748
- * frozen.
1748
+ /**
1749
+ * Freezes LOD selection at the current mesh and marks decal geometry
1750
+ * frozen.
1749
1751
  */
1750
1752
  FreezeHighDetailMesh() {
1751
1753
  this.#allowLodSelection = false;
@@ -1754,23 +1756,23 @@ new class extends _identity {
1754
1756
  }
1755
1757
  }
1756
1758
 
1757
- /**
1758
- * Gets the number of damage locators on this object.
1759
+ /**
1760
+ * Gets the number of damage locators on this object.
1759
1761
  */
1760
1762
  GetDamageLocatorCount() {
1761
1763
  return this.GetLocatorCount(_EveSpaceObject.#damageLocatorSetName);
1762
1764
  }
1763
1765
 
1764
- /**
1765
- * Gets the number of locators in a named locator set.
1766
+ /**
1767
+ * Gets the number of locators in a named locator set.
1766
1768
  */
1767
1769
  GetLocatorCount(locatorSetName) {
1768
1770
  return this.#GetLocatorsForSet(locatorSetName)?.length ?? 0;
1769
1771
  }
1770
1772
 
1771
- /**
1772
- * Gets the first locator list whose set has the requested Carbon name.
1773
- * The returned list remains owned by the locator set.
1773
+ /**
1774
+ * Gets the first locator list whose set has the requested Carbon name.
1775
+ * The returned list remains owned by the locator set.
1774
1776
  */
1775
1777
  GetLocatorsForSet(locatorSetName) {
1776
1778
  return this.#GetLocatorsForSet(locatorSetName);
@@ -1804,9 +1806,9 @@ new class extends _identity {
1804
1806
  this.InvalidateMergedLocators("structure");
1805
1807
  }
1806
1808
 
1807
- /**
1808
- * Gets the closest locator in a set to a world position, ignoring locator
1809
- * facing. Returns -1 when the set is missing or empty.
1809
+ /**
1810
+ * Gets the closest locator in a set to a world position, ignoring locator
1811
+ * facing. Returns -1 when the set is missing or empty.
1810
1812
  */
1811
1813
  GetCloseLocatorIndex(position, locatorSetName) {
1812
1814
  const locators = this.#GetLocatorsForSet(locatorSetName);
@@ -1830,19 +1832,19 @@ new class extends _identity {
1830
1832
  return closestIndex;
1831
1833
  }
1832
1834
 
1833
- /**
1834
- * Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex
1835
- * (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not
1836
- * script-exposed.
1835
+ /**
1836
+ * Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex
1837
+ * (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not
1838
+ * script-exposed.
1837
1839
  */
1838
1840
  GetGoodLocatorIndex(position, locatorSetName) {
1839
1841
  return this.GetCloseLocatorIndex(position, locatorSetName);
1840
1842
  }
1841
1843
 
1842
- /**
1843
- * Gets the local direction of an indexed damage locator, (0,0,0) for
1844
- * indices out of range (Carbon script GetDamageLocatorDirection maps to
1845
- * GetDamageLocatorDirectionLocal).
1844
+ /**
1845
+ * Gets the local direction of an indexed damage locator, (0,0,0) for
1846
+ * indices out of range (Carbon script GetDamageLocatorDirection maps to
1847
+ * GetDamageLocatorDirectionLocal).
1846
1848
  */
1847
1849
  GetDamageLocatorDirection(index, inWorldSpaceOrOut = vec3.create(), out = vec3.create()) {
1848
1850
  const targetableCall = typeof inWorldSpaceOrOut === "boolean";
@@ -1871,10 +1873,10 @@ new class extends _identity {
1871
1873
  return true;
1872
1874
  }
1873
1875
 
1874
- /**
1875
- * Gets a damage locator's BIND position in object space - the merged set's
1876
- * authored position, no animation (Carbon EveSpaceObject2.cpp:2785-2796).
1877
- * Impact overlays seed decals here so they stay put on animated parts.
1876
+ /**
1877
+ * Gets a damage locator's BIND position in object space - the merged set's
1878
+ * authored position, no animation (Carbon EveSpaceObject2.cpp:2785-2796).
1879
+ * Impact overlays seed decals here so they stay put on animated parts.
1878
1880
  */
1879
1881
  GetDamageLocatorBindPosition(index, out = vec3.create()) {
1880
1882
  const locators = this.#GetLocatorsForSet(_EveSpaceObject.#damageLocatorSetName);
@@ -2015,9 +2017,9 @@ new class extends _identity {
2015
2017
  return false;
2016
2018
  }
2017
2019
 
2018
- /**
2019
- * Gets the local position of an indexed damage locator, (0,0,0) for
2020
- * indices out of range.
2020
+ /**
2021
+ * Gets the local position of an indexed damage locator, (0,0,0) for
2022
+ * indices out of range.
2021
2023
  */
2022
2024
  GetDamageLocator(index, out = vec3.create()) {
2023
2025
  const locators = this.#GetLocatorsForSet(_EveSpaceObject.#damageLocatorSetName);
@@ -2029,9 +2031,9 @@ new class extends _identity {
2029
2031
  return out;
2030
2032
  }
2031
2033
 
2032
- /**
2033
- * Gets the world-space position of an indexed damage locator, (0,0,0) for
2034
- * indices out of range (returned untransformed, as Carbon does).
2034
+ /**
2035
+ * Gets the world-space position of an indexed damage locator, (0,0,0) for
2036
+ * indices out of range (returned untransformed, as Carbon does).
2035
2037
  */
2036
2038
  GetTransformedDamageLocator(index, out = vec3.create()) {
2037
2039
  const locators = this.#GetLocatorsForSet(_EveSpaceObject.#damageLocatorSetName);
@@ -2043,18 +2045,18 @@ new class extends _identity {
2043
2045
  return vec3.transformMat4(out, out, this.worldTransform);
2044
2046
  }
2045
2047
 
2046
- /**
2047
- * Checks whether this object is in impostor mode. The impostor system that
2048
- * raises the flag is unported, so this reports the default until then.
2048
+ /**
2049
+ * Checks whether this object is in impostor mode. The impostor system that
2050
+ * raises the flag is unported, so this reports the default until then.
2049
2051
  */
2050
2052
  IsImpostor() {
2051
2053
  return this.#impostorMode;
2052
2054
  }
2053
2055
 
2054
- /**
2055
- * Gets a locator position from a named set. Out-of-range or missing-set
2056
- * queries return the world translation in world space and (0,0,0) in
2057
- * object space, as Carbon does.
2056
+ /**
2057
+ * Gets a locator position from a named set. Out-of-range or missing-set
2058
+ * queries return the world translation in world space and (0,0,0) in
2059
+ * object space, as Carbon does.
2058
2060
  */
2059
2061
  GetLocatorPositionFromSet(index, inWorldSpace, locatorSetName, out = vec3.create()) {
2060
2062
  const locators = this.#GetLocatorsForSet(locatorSetName);
@@ -2072,9 +2074,9 @@ new class extends _identity {
2072
2074
  return out;
2073
2075
  }
2074
2076
 
2075
- /**
2076
- * Gets a locator direction from a named set. Out-of-range or missing-set
2077
- * queries return (0,1,0), as Carbon does.
2077
+ /**
2078
+ * Gets a locator direction from a named set. Out-of-range or missing-set
2079
+ * queries return (0,1,0), as Carbon does.
2078
2080
  */
2079
2081
  GetLocatorRotationFromSet(index, inWorldSpace, locatorSetName, out = vec3.create()) {
2080
2082
  const locators = this.#GetLocatorsForSet(locatorSetName);
@@ -2089,9 +2091,9 @@ new class extends _identity {
2089
2091
  return out;
2090
2092
  }
2091
2093
 
2092
- /**
2093
- * Raises a named controller event on this hull's controllers and forwards it
2094
- * to the effect children and overlay effects.
2094
+ /**
2095
+ * Raises a named controller event on this hull's controllers and forwards it
2096
+ * to the effect children and overlay effects.
2095
2097
  */
2096
2098
  HandleControllerEvent(name) {
2097
2099
  const eventName = String(name ?? "");
@@ -2106,24 +2108,24 @@ new class extends _identity {
2106
2108
  }
2107
2109
  }
2108
2110
 
2109
- /**
2110
- * Plays an animation once, replacing the current one
2111
- * (Carbon script PlayAnimation maps to PlayAnimationOnce).
2111
+ /**
2112
+ * Plays an animation once, replacing the current one
2113
+ * (Carbon script PlayAnimation maps to PlayAnimationOnce).
2112
2114
  */
2113
2115
  PlayAnimation(animName) {
2114
2116
  this.#PlayAnimation(animName, true, 1, 0, 1, true);
2115
2117
  }
2116
2118
 
2117
- /**
2118
- * Chains an animation once after the current one (Carbon ChainAnimation).
2119
+ /**
2120
+ * Chains an animation once after the current one (Carbon ChainAnimation).
2119
2121
  */
2120
2122
  ChainAnimation(animName) {
2121
2123
  this.#PlayAnimation(animName, false, 1, 0, 1, true);
2122
2124
  }
2123
2125
 
2124
- /**
2125
- * Chains an animation with explicit loop, start, and speed settings
2126
- * (Carbon ChainAnimationEx).
2126
+ /**
2127
+ * Chains an animation with explicit loop, start, and speed settings
2128
+ * (Carbon ChainAnimationEx).
2127
2129
  */
2128
2130
  ChainAnimationEx(animName, loopCount, start, speed) {
2129
2131
  this.#PlayAnimation(animName, false, loopCount, start, speed, true);
@@ -2133,17 +2135,17 @@ new class extends _identity {
2133
2135
  // into the animation updater, which owns playback state; a missing updater
2134
2136
  // is a Carbon-faithful no-op.
2135
2137
 
2136
- /**
2137
- * Forwards a playback request to the animation updater, which owns all
2138
- * animation state; a hull without an updater does nothing, as in Carbon.
2138
+ /**
2139
+ * Forwards a playback request to the animation updater, which owns all
2140
+ * animation state; a hull without an updater does nothing, as in Carbon.
2139
2141
  */
2140
2142
  #PlayAnimation(animName, replace, loopCount, delay, speed, clearWhenDone) {
2141
2143
  this.animationUpdater?.PlayAnimation?.(String(animName ?? ""), replace, loopCount, delay, speed, clearWhenDone);
2142
2144
  }
2143
2145
 
2144
- /**
2145
- * Recalculates the authored bounding sphere from the mesh geometry
2146
- * resource. Fails when no mesh or ready geometry resource is attached.
2146
+ /**
2147
+ * Recalculates the authored bounding sphere from the mesh geometry
2148
+ * resource. Fails when no mesh or ready geometry resource is attached.
2147
2149
  */
2148
2150
  RebuildBoundingSphereInformation() {
2149
2151
  const mesh = this.mesh;
@@ -2170,13 +2172,12 @@ new class extends _identity {
2170
2172
  } else {
2171
2173
  this.boundingSphereRadius = sph3.extract(sphere, this.boundingSphereCenter);
2172
2174
  }
2173
- this.UpdateWorldBounds();
2174
2175
  return this;
2175
2176
  }
2176
2177
 
2177
- /**
2178
- * Returns a plain-object snapshot of the controller variables currently
2179
- * stamped on this hull.
2178
+ /**
2179
+ * Returns a plain-object snapshot of the controller variables currently
2180
+ * stamped on this hull.
2180
2181
  */
2181
2182
  GetControllerVariables() {
2182
2183
  return Object.fromEntries(this.#controllerVariables);
@@ -2190,11 +2191,11 @@ new class extends _identity {
2190
2191
  return geometryResource.GetLodIndexForScreenSize?.(this.mesh?.GetMeshIndex?.() ?? 0, this.#meshScreenSize) ?? 0;
2191
2192
  }
2192
2193
 
2193
- /**
2194
- * Gets a named locator's transform (Carbon script GetLocatorTransform maps
2195
- * to GetEveLocatorTransform): the identity for unknown names, the animated
2196
- * bone world transform when the animation updater resolves the name, else
2197
- * the authored locator transform.
2194
+ /**
2195
+ * Gets a named locator's transform (Carbon script GetLocatorTransform maps
2196
+ * to GetEveLocatorTransform): the identity for unknown names, the animated
2197
+ * bone world transform when the animation updater resolves the name, else
2198
+ * the authored locator transform.
2198
2199
  */
2199
2200
  GetLocatorTransform(name, out = mat4.create()) {
2200
2201
  const target = String(name ?? "");
@@ -2214,11 +2215,11 @@ new class extends _identity {
2214
2215
  return mat4.copy(out, locator.GetTransform());
2215
2216
  }
2216
2217
 
2217
- /**
2218
- * Gets the local axis-aligned bounding box: dynamic skinned bounds when
2219
- * enabled, else the mesh box, else the cached box (at worst it lags one
2220
- * frame). With out arguments it fills them and returns true; without, it
2221
- * returns { min, max }.
2218
+ /**
2219
+ * Gets the local axis-aligned bounding box: dynamic skinned bounds when
2220
+ * enabled, else the mesh box, else the cached box (at worst it lags one
2221
+ * frame). With out arguments it fills them and returns true; without, it
2222
+ * returns { min, max }.
2222
2223
  */
2223
2224
  GetLocalBoundingBox(minBounds, maxBounds) {
2224
2225
  const min = vec3.create();
@@ -2268,12 +2269,12 @@ new class extends _identity {
2268
2269
  return geometryResource ? geometryResource.IsGood() : false;
2269
2270
  }
2270
2271
 
2271
- /**
2272
- * Gets Carbon's realized world sphere, optionally accumulated with transform
2273
- * and effect children when query is EVE_BOUNDS_WITH_CHILDREN.
2272
+ /**
2273
+ * Gets Carbon's realized world sphere, optionally accumulated with transform
2274
+ * and effect children when query is EVE_BOUNDS_WITH_CHILDREN.
2274
2275
  */
2275
2276
  GetBoundingSphere(out = sph3.create(), query = 0) {
2276
- if (!this.UpdateWorldBounds()) return false;
2277
+ if (this.boundingSphereRadius <= 0 && this.#dynamicBoundingSphere[3] <= 0) return false;
2277
2278
  _EveSpaceObject.#SetSphere(out, this.modelWorldPosition, this.#boundingSphereWorldRadius);
2278
2279
  if (!query || !this.DisplayChildren()) return true;
2279
2280
  for (const child of this.children) {
@@ -2306,9 +2307,9 @@ new class extends _identity {
2306
2307
  return this.#isInFrustum;
2307
2308
  }
2308
2309
 
2309
- /**
2310
- * Gets the bounding sphere center, preferring the dynamic skinned sphere
2311
- * when one is published.
2310
+ /**
2311
+ * Gets the bounding sphere center, preferring the dynamic skinned sphere
2312
+ * when one is published.
2312
2313
  */
2313
2314
  GetBoundingSphereCenter(out = vec3.create()) {
2314
2315
  if (this.#dynamicBoundingSphere[3] !== -1) {
@@ -2317,9 +2318,9 @@ new class extends _identity {
2317
2318
  return vec3.copy(out, this.boundingSphereCenter);
2318
2319
  }
2319
2320
 
2320
- /**
2321
- * Gets the model-scaled bounding sphere radius, preferring the dynamic
2322
- * skinned sphere when one is published.
2321
+ /**
2322
+ * Gets the model-scaled bounding sphere radius, preferring the dynamic
2323
+ * skinned sphere when one is published.
2323
2324
  */
2324
2325
  GetBoundingSphereRadius() {
2325
2326
  if (this.#dynamicBoundingSphere[3] !== -1) {
@@ -2328,9 +2329,9 @@ new class extends _identity {
2328
2329
  return this.modelScale * this.boundingSphereRadius;
2329
2330
  }
2330
2331
 
2331
- /**
2332
- * Gets the number of mesh-bound bones. Carbon dereferences the animation
2333
- * updater unchecked; CarbonEngineJS reports 0 when none is attached.
2332
+ /**
2333
+ * Gets the number of mesh-bound bones. Carbon dereferences the animation
2334
+ * updater unchecked; CarbonEngineJS reports 0 when none is attached.
2334
2335
  */
2335
2336
  GetBoneCount() {
2336
2337
  const updater = this.animationUpdater;
@@ -2346,10 +2347,10 @@ new class extends _identity {
2346
2347
  return updater.GetMeshBindingBoneCount?.() ?? 0;
2347
2348
  }
2348
2349
 
2349
- /**
2350
- * Pushes shield, armor and hull damage levels to the impact overlay and
2351
- * mirrors them into the ShieldDamage, ArmorDamage and HullDamage controller
2352
- * variables so bound effects follow.
2350
+ /**
2351
+ * Pushes shield, armor and hull damage levels to the impact overlay and
2352
+ * mirrors them into the ShieldDamage, ArmorDamage and HullDamage controller
2353
+ * variables so bound effects follow.
2353
2354
  */
2354
2355
  SetImpactDamageState(shield, armor, hull, doCreateArmorImpacts = true) {
2355
2356
  if (this.impactOverlay) {
@@ -2365,8 +2366,8 @@ new class extends _identity {
2365
2366
  this.SetControllerVariable("HullDamage", hull);
2366
2367
  }
2367
2368
 
2368
- /**
2369
- * Toggles a named impact-overlay animation (boosters, hardeners, ...).
2369
+ /**
2370
+ * Toggles a named impact-overlay animation (boosters, hardeners, ...).
2370
2371
  */
2371
2372
  SetImpactAnimation(name, enable, duration) {
2372
2373
  if (!this.impactOverlay) return;
@@ -2398,10 +2399,10 @@ new class extends _identity {
2398
2399
  return overlay;
2399
2400
  }
2400
2401
 
2401
- /**
2402
- * Stores a controller variable on the hull and pushes it to the controllers,
2403
- * effect children and overlay effects; the stored value is replayed onto
2404
- * controllers and children added later.
2402
+ /**
2403
+ * Stores a controller variable on the hull and pushes it to the controllers,
2404
+ * effect children and overlay effects; the stored value is replayed onto
2405
+ * controllers and children added later.
2405
2406
  */
2406
2407
  SetControllerVariable(name, value) {
2407
2408
  const key = String(name ?? "");
@@ -2418,9 +2419,9 @@ new class extends _identity {
2418
2419
  }
2419
2420
  }
2420
2421
 
2421
- /**
2422
- * Forwards a procedural-container variable to every effect child; the hull
2423
- * itself keeps no copy.
2422
+ /**
2423
+ * Forwards a procedural-container variable to every effect child; the hull
2424
+ * itself keeps no copy.
2424
2425
  */
2425
2426
  SetProceduralContainerVariable(name, value) {
2426
2427
  for (const child of this.effectChildren) {
@@ -2428,9 +2429,9 @@ new class extends _identity {
2428
2429
  }
2429
2430
  }
2430
2431
 
2431
- /**
2432
- * Starts this hull's controllers and those of its effect children and overlay
2433
- * effects.
2432
+ /**
2433
+ * Starts this hull's controllers and those of its effect children and overlay
2434
+ * effects.
2434
2435
  */
2435
2436
  StartControllers() {
2436
2437
  for (const controller of this.controllers) {
@@ -2444,13 +2445,13 @@ new class extends _identity {
2444
2445
  }
2445
2446
  }
2446
2447
 
2447
- /**
2448
- * Applies bone and model transforms to locators and returns
2449
- * [position, rotation, boneIndex] tuples, as the Carbon script surface
2450
- * does (TransformLocators maps to PyTransformLocators). Accepts either
2451
- * locator records ({ position, direction, boneIndex }, Carbon's
2452
- * LocatorStructureList shape) or the same [position, rotation, boneIndex]
2453
- * tuple shape it returns.
2448
+ /**
2449
+ * Applies bone and model transforms to locators and returns
2450
+ * [position, rotation, boneIndex] tuples, as the Carbon script surface
2451
+ * does (TransformLocators maps to PyTransformLocators). Accepts either
2452
+ * locator records ({ position, direction, boneIndex }, Carbon's
2453
+ * LocatorStructureList shape) or the same [position, rotation, boneIndex]
2454
+ * tuple shape it returns.
2454
2455
  */
2455
2456
  TransformLocators(locators = []) {
2456
2457
  const result = [];
@@ -2479,10 +2480,10 @@ new class extends _identity {
2479
2480
  // Carbon Blue TransformLocator: bone-attached records pick up the mesh
2480
2481
  // bone matrix; without bone data the authored values pass through.
2481
2482
 
2482
- /**
2483
- * Applies the mesh bone matrix to a locator position and rotation for
2484
- * bone-attached locators; the authored values pass through unchanged when
2485
- * there is no usable bone data.
2483
+ /**
2484
+ * Applies the mesh bone matrix to a locator position and rotation for
2485
+ * bone-attached locators; the authored values pass through unchanged when
2486
+ * there is no usable bone data.
2486
2487
  */
2487
2488
  #TransformLocator(position, rotation, boneIndex) {
2488
2489
  const updater = this.animationUpdater;
@@ -2502,10 +2503,10 @@ new class extends _identity {
2502
2503
  // origin (pure GetValueAt, no playback advance): translation adds, model
2503
2504
  // rotation rotates the position and pre-multiplies.
2504
2505
 
2505
- /**
2506
- * Applies the model translation and rotation curves sampled at time 0 to a
2507
- * locator position and rotation, matching Carbon's Blue locator surface, which
2508
- * reads the curves without advancing playback.
2506
+ /**
2507
+ * Applies the model translation and rotation curves sampled at time 0 to a
2508
+ * locator position and rotation, matching Carbon's Blue locator surface, which
2509
+ * reads the curves without advancing playback.
2509
2510
  */
2510
2511
  #ApplyModelTransform(position, rotation) {
2511
2512
  if (this.modelTranslationCurve) {
@@ -2523,9 +2524,9 @@ new class extends _identity {
2523
2524
 
2524
2525
  // Carbon GetLocatorsForSet: first set matching the name wins.
2525
2526
 
2526
- /**
2527
- * Returns the locator list of the first locator set carrying the name, or null
2528
- * when no set matches; the list stays owned by the locator set.
2527
+ /**
2528
+ * Returns the locator list of the first locator set carrying the name, or null
2529
+ * when no set matches; the list stays owned by the locator set.
2529
2530
  */
2530
2531
  #GetLocatorsForSet(locatorSetName) {
2531
2532
  const target = String(locatorSetName ?? "");
@@ -2538,19 +2539,19 @@ new class extends _identity {
2538
2539
  return null;
2539
2540
  }
2540
2541
 
2541
- /**
2542
- * Writes a locator's object-space position and direction (Carbon
2543
- * EveSpaceObject2.cpp:3751-3772, rewritten upstream by 3d988b1d).
2544
- *
2545
- * A merged damage locator (mergedDamageIndex >= 0, indexing the merged
2546
- * damage set) delegates to the owning child's animated pose - the locator's
2547
- * boneIndex addresses the CHILD's skeleton, never this object's - then
2548
- * lifts the result through the range's childToObject transform; Carbon
2549
- * normalizes the direction HERE but not in EveGetLocatorPose, and that
2550
- * asymmetry is preserved. Every other locator resolves against this
2551
- * object's own animation updater.
2552
- *
2553
- * Overridable on purpose: Carbon's EveSwarm overrides this.
2542
+ /**
2543
+ * Writes a locator's object-space position and direction (Carbon
2544
+ * EveSpaceObject2.cpp:3751-3772, rewritten upstream by 3d988b1d).
2545
+ *
2546
+ * A merged damage locator (mergedDamageIndex >= 0, indexing the merged
2547
+ * damage set) delegates to the owning child's animated pose - the locator's
2548
+ * boneIndex addresses the CHILD's skeleton, never this object's - then
2549
+ * lifts the result through the range's childToObject transform; Carbon
2550
+ * normalizes the direction HERE but not in EveGetLocatorPose, and that
2551
+ * asymmetry is preserved. Every other locator resolves against this
2552
+ * object's own animation updater.
2553
+ *
2554
+ * Overridable on purpose: Carbon's EveSwarm overrides this.
2554
2555
  */
2555
2556
  GetLocatorInObjectSpace(outPosition, outDirection, locator, mergedDamageIndex = -1) {
2556
2557
  if (mergedDamageIndex >= 0) {
@@ -2573,10 +2574,10 @@ new class extends _identity {
2573
2574
  // Carbon GetClosestLocatorIndex: facing-gated closest search; 0 when the
2574
2575
  // set is missing, -1 when no locator faces the position.
2575
2576
 
2576
- /**
2577
- * Returns the index of the nearest locator in a named set that faces the given
2578
- * world position - 0 when the set is missing, -1 when no locator faces the
2579
- * position.
2577
+ /**
2578
+ * Returns the index of the nearest locator in a named set that faces the given
2579
+ * world position - 0 when the set is missing, -1 when no locator faces the
2580
+ * position.
2580
2581
  */
2581
2582
  #GetClosestLocatorIndex(position, locatorSetName) {
2582
2583
  const locators = this.#GetLocatorsForSet(locatorSetName);
@@ -2603,9 +2604,9 @@ new class extends _identity {
2603
2604
  return closestIndex;
2604
2605
  }
2605
2606
 
2606
- /**
2607
- * Reports whether a locator faces a position, by testing that stepping the
2608
- * object-space position back along the locator direction shortens it.
2607
+ /**
2608
+ * Reports whether a locator faces a position, by testing that stepping the
2609
+ * object-space position back along the locator direction shortens it.
2609
2610
  */
2610
2611
 
2611
2612
  /** Rotates a direction by a matrix's rotation basis, ignoring its translation. */
@@ -2629,15 +2630,15 @@ new class extends _identity {
2629
2630
  vec3.copy(this.generatedShapeEllipsoidRadius, outRadii);
2630
2631
  }
2631
2632
 
2632
- /**
2633
- * Maps the negated dot product of a locator direction and an offset direction
2634
- * onto Carbon's square-root fit score, the ranking used to pick a varied
2635
- * damage locator.
2633
+ /**
2634
+ * Maps the negated dot product of a locator direction and an offset direction
2635
+ * onto Carbon's square-root fit score, the ranking used to pick a varied
2636
+ * damage locator.
2636
2637
  */
2637
2638
 
2638
- /**
2639
- * Intersects a ray with an axis-aligned ellipsoid in the ellipsoid's own space and writes the hit point into out.
2640
- * @returns {number|null} The ray parameter at the hit, or null when the ray is degenerate or misses.
2639
+ /**
2640
+ * Intersects a ray with an axis-aligned ellipsoid in the ellipsoid's own space and writes the hit point into out.
2641
+ * @returns {number|null} The ray parameter at the hit, or null when the ray is degenerate or misses.
2641
2642
  */
2642
2643
 
2643
2644
  /** Reports whether a point lies inside an axis-aligned ellipsoid. */
@@ -2645,42 +2646,42 @@ new class extends _identity {
2645
2646
  // Mesh bone matrices come from the animation updater; only mat4-shaped
2646
2647
  // entries are usable.
2647
2648
 
2648
- /**
2649
- * Unpacks one bone from the updater's palette into a mat4, or null when the
2650
- * index is out of range.
2651
- *
2652
- * The palette is Carbon's storage - one contiguous Float4x3 buffer, stride
2653
- * 12 - so a bone is expanded rather than borrowed. Carbon does the same at
2654
- * every read site with TriMatrixCopyFrom3x4.
2649
+ /**
2650
+ * Unpacks one bone from the updater's palette into a mat4, or null when the
2651
+ * index is out of range.
2652
+ *
2653
+ * The palette is Carbon's storage - one contiguous Float4x3 buffer, stride
2654
+ * 12 - so a bone is expanded rather than borrowed. Carbon does the same at
2655
+ * every read site with TriMatrixCopyFrom3x4.
2655
2656
  */
2656
2657
 
2657
- /**
2658
- * Replays every stored controller variable onto a newly added controller or
2659
- * effect child through the named setter, so late additions start with the same
2660
- * state.
2658
+ /**
2659
+ * Replays every stored controller variable onto a newly added controller or
2660
+ * effect child through the named setter, so late additions start with the same
2661
+ * state.
2661
2662
  */
2662
2663
 
2663
- /**
2664
- * Samples a curve into out through whichever of Update or GetValueAt it
2665
- * exposes, writing the fallback when there is no curve and copying back curves
2666
- * that return a new array instead of filling out.
2664
+ /**
2665
+ * Samples a curve into out through whichever of Update or GetValueAt it
2666
+ * exposes, writing the fallback when there is no curve and copying back curves
2667
+ * that return a new array instead of filling out.
2667
2668
  */
2668
2669
 
2669
- /**
2670
- * Reads a numeric value from the update context, preferring a getter method
2671
- * and falling back to the named properties, and yields 0 when nothing supplies
2672
- * it.
2670
+ /**
2671
+ * Reads a numeric value from the update context, preferring a getter method
2672
+ * and falling back to the named properties, and yields 0 when nothing supplies
2673
+ * it.
2673
2674
  */
2674
2675
 
2675
- /**
2676
- * Returns a world sphere's on-screen diameter in pixels from the frustum's
2677
- * exact query, or 0 when the frustum does not expose it.
2676
+ /**
2677
+ * Returns a world sphere's on-screen diameter in pixels from the frustum's
2678
+ * exact query, or 0 when the frustum does not expose it.
2678
2679
  */
2679
2680
 
2680
- /**
2681
- * Returns a world sphere's on-screen diameter in pixels, preferring the
2682
- * frustum's cheaper estimated query and falling back to the exact one, or 0
2683
- * when the frustum exposes neither.
2681
+ /**
2682
+ * Returns a world sphere's on-screen diameter in pixels, preferring the
2683
+ * frustum's cheaper estimated query and falling back to the exact one, or 0
2684
+ * when the frustum exposes neither.
2684
2685
  */
2685
2686
 
2686
2687
  /** Writes a center and radius into a caller-owned sph3. */