@carbonenginejs/runtime 0.1.0-alpha.3 → 0.1.0-alpha.4

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 (1620) hide show
  1. package/NOTICE +5 -4
  2. package/dist/audio/generated/audio/AudEventKey.js +2 -2
  3. package/dist/audio/generated/audio/AudEventKey.js.map +1 -1
  4. package/dist/audio/generated/audio/AudSettings.js +2 -2
  5. package/dist/audio/generated/audio/AudSettings.js.map +1 -1
  6. package/dist/audio/index.js +1 -1
  7. package/dist/audio/trinity/audio/AudEmitter.js +4 -5
  8. package/dist/audio/trinity/audio/AudEmitter.js.map +1 -1
  9. package/dist/audio/trinity/audio/AudEventCurve.js +14 -14
  10. package/dist/audio/trinity/audio/AudEventCurve.js.map +1 -1
  11. package/dist/audio/trinity/audio/AudGameObjResource.js +13 -25
  12. package/dist/audio/trinity/audio/AudGameObjResource.js.map +1 -1
  13. package/dist/audio/trinity/audio/AudManager.js +2 -2
  14. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  15. package/dist/audio/trinity/audio/AudParameter.js +7 -11
  16. package/dist/audio/trinity/audio/AudParameter.js.map +1 -1
  17. package/dist/audio/trinity/audio/AudUIPlayer.js +2 -2
  18. package/dist/audio/trinity/audio/AudUIPlayer.js.map +1 -1
  19. package/dist/audio/trinity/audio/AudioCurveSetDriver.js +2 -2
  20. package/dist/audio/trinity/audio/AudioCurveSetDriver.js.map +1 -1
  21. package/dist/audio/trinity/audio/StretchAudio.js +2 -2
  22. package/dist/audio/trinity/audio/StretchAudio.js.map +1 -1
  23. package/dist/audio/trinity/index.js +1 -1
  24. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js +2 -2
  25. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js.map +1 -1
  26. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js +2 -2
  27. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js.map +1 -1
  28. package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js +1 -37
  29. package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js.map +1 -1
  30. package/dist/character/incarna/curves/Tr2ColorCurve.js +2 -2
  31. package/dist/character/incarna/curves/Tr2ColorCurve.js.map +1 -1
  32. package/dist/character/incarna/curves/Tr2ColorKey.js +2 -2
  33. package/dist/character/incarna/curves/Tr2ColorKey.js.map +1 -1
  34. package/dist/character/incarna/curves/Tr2ScalarCurve.js +2 -2
  35. package/dist/character/incarna/curves/Tr2ScalarCurve.js.map +1 -1
  36. package/dist/character/incarna/curves/Tr2ScalarKey.js +2 -2
  37. package/dist/character/incarna/curves/Tr2ScalarKey.js.map +1 -1
  38. package/dist/character/incarna/interior/Tr2InteriorCell.js +2 -2
  39. package/dist/character/incarna/interior/Tr2InteriorCell.js.map +1 -1
  40. package/dist/character/library/CjsCharacterLibrary.js +9 -16
  41. package/dist/character/library/CjsCharacterLibrary.js.map +1 -1
  42. package/dist/character/library/CjsCharacterLibraryDocuments.js +20 -4
  43. package/dist/character/library/CjsCharacterLibraryDocuments.js.map +1 -1
  44. package/dist/character/model/CjsCharacterRecord.js +2 -2
  45. package/dist/character/model/CjsCharacterRecord.js.map +1 -1
  46. package/dist/character/model/activity/CjsCharacterArchetype.js +2 -2
  47. package/dist/character/model/activity/CjsCharacterArchetype.js.map +1 -1
  48. package/dist/character/model/appearance/CjsCharacterColorLocation.js +2 -2
  49. package/dist/character/model/appearance/CjsCharacterColorLocation.js.map +1 -1
  50. package/dist/character/model/appearance/CjsCharacterColorName.js +2 -2
  51. package/dist/character/model/appearance/CjsCharacterColorName.js.map +1 -1
  52. package/dist/character/model/appearance/CjsCharacterColorSelection.js +2 -2
  53. package/dist/character/model/appearance/CjsCharacterColorSelection.js.map +1 -1
  54. package/dist/character/model/appearance/CjsCharacterSculptSelection.js +2 -2
  55. package/dist/character/model/appearance/CjsCharacterSculptSelection.js.map +1 -1
  56. package/dist/character/model/appearance/CjsCharacterSculptingLocation.js +2 -2
  57. package/dist/character/model/appearance/CjsCharacterSculptingLocation.js.map +1 -1
  58. package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js +2 -2
  59. package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js.map +1 -1
  60. package/dist/character/model/catalog/CjsCharacterColorValue.js +2 -2
  61. package/dist/character/model/catalog/CjsCharacterColorValue.js.map +1 -1
  62. package/dist/character/model/catalog/CjsCharacterDefinition.js +2 -2
  63. package/dist/character/model/catalog/CjsCharacterDefinition.js.map +1 -1
  64. package/dist/character/model/catalog/CjsCharacterMaterialProfile.js +2 -2
  65. package/dist/character/model/catalog/CjsCharacterMaterialProfile.js.map +1 -1
  66. package/dist/character/model/catalog/CjsCharacterModifierReference.js +2 -2
  67. package/dist/character/model/catalog/CjsCharacterModifierReference.js.map +1 -1
  68. package/dist/character/model/catalog/CjsCharacterPartMetadata.js +2 -2
  69. package/dist/character/model/catalog/CjsCharacterPartMetadata.js.map +1 -1
  70. package/dist/character/model/catalog/CjsCharacterPartModelBundle.js +2 -2
  71. package/dist/character/model/catalog/CjsCharacterPartModelBundle.js.map +1 -1
  72. package/dist/character/model/catalog/CjsCharacterPartSource.js +2 -2
  73. package/dist/character/model/catalog/CjsCharacterPartSource.js.map +1 -1
  74. package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js +2 -2
  75. package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js.map +1 -1
  76. package/dist/character/model/catalog/CjsCharacterPartType.js +2 -2
  77. package/dist/character/model/catalog/CjsCharacterPartType.js.map +1 -1
  78. package/dist/character/model/catalog/CjsCharacterProjectionProfile.js +2 -2
  79. package/dist/character/model/catalog/CjsCharacterProjectionProfile.js.map +1 -1
  80. package/dist/character/model/catalog/CjsCharacterRecipeEntry.js +2 -2
  81. package/dist/character/model/catalog/CjsCharacterRecipeEntry.js.map +1 -1
  82. package/dist/character/model/catalog/CjsCharacterRecipeProfile.js +2 -2
  83. package/dist/character/model/catalog/CjsCharacterRecipeProfile.js.map +1 -1
  84. package/dist/character/model/catalog/CjsCharacterTextureMetadata.js +2 -2
  85. package/dist/character/model/catalog/CjsCharacterTextureMetadata.js.map +1 -1
  86. package/dist/character/model/composition/CjsCharacterModifierLocation.js +2 -2
  87. package/dist/character/model/composition/CjsCharacterModifierLocation.js.map +1 -1
  88. package/dist/character/model/composition/CjsCharacterModifierSelection.js +2 -2
  89. package/dist/character/model/composition/CjsCharacterModifierSelection.js.map +1 -1
  90. package/dist/character/model/creation/CjsCharacterPaperdoll.js +2 -2
  91. package/dist/character/model/creation/CjsCharacterPaperdoll.js.map +1 -1
  92. package/dist/character/model/demographics/CjsCharacterAncestry.js +2 -2
  93. package/dist/character/model/demographics/CjsCharacterAncestry.js.map +1 -1
  94. package/dist/character/model/demographics/CjsCharacterBloodline.js +2 -2
  95. package/dist/character/model/demographics/CjsCharacterBloodline.js.map +1 -1
  96. package/dist/character/model/demographics/CjsCharacterRace.js +2 -2
  97. package/dist/character/model/demographics/CjsCharacterRace.js.map +1 -1
  98. package/dist/character/model/planning/CjsCharacterAppearanceBinding.js +2 -2
  99. package/dist/character/model/planning/CjsCharacterAppearanceBinding.js.map +1 -1
  100. package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js +2 -2
  101. package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js.map +1 -1
  102. package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js +2 -2
  103. package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js.map +1 -1
  104. package/dist/character/model/planning/CjsCharacterAppearanceLayer.js +2 -2
  105. package/dist/character/model/planning/CjsCharacterAppearanceLayer.js.map +1 -1
  106. package/dist/character/model/planning/CjsCharacterAppearancePlan.js +2 -2
  107. package/dist/character/model/planning/CjsCharacterAppearancePlan.js.map +1 -1
  108. package/dist/character/model/planning/CjsCharacterAppearanceSelection.js +2 -2
  109. package/dist/character/model/planning/CjsCharacterAppearanceSelection.js.map +1 -1
  110. package/dist/character/model/planning/CjsCharacterBindingAlpha.js +2 -2
  111. package/dist/character/model/planning/CjsCharacterBindingAlpha.js.map +1 -1
  112. package/dist/character/model/planning/CjsCharacterCompositionInput.js +2 -2
  113. package/dist/character/model/planning/CjsCharacterCompositionInput.js.map +1 -1
  114. package/dist/character/model/planning/CjsCharacterCompositionPass.js +2 -2
  115. package/dist/character/model/planning/CjsCharacterCompositionPass.js.map +1 -1
  116. package/dist/character/model/planning/CjsCharacterCompositionTarget.js +2 -2
  117. package/dist/character/model/planning/CjsCharacterCompositionTarget.js.map +1 -1
  118. package/dist/character/model/planning/CjsCharacterCoverage.js +2 -2
  119. package/dist/character/model/planning/CjsCharacterCoverage.js.map +1 -1
  120. package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js +2 -2
  121. package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js.map +1 -1
  122. package/dist/character/model/planning/CjsCharacterOrigin.js +2 -2
  123. package/dist/character/model/planning/CjsCharacterOrigin.js.map +1 -1
  124. package/dist/character/model/planning/CjsCharacterResolvedPart.js +2 -2
  125. package/dist/character/model/planning/CjsCharacterResolvedPart.js.map +1 -1
  126. package/dist/character/model/planning/CjsCharacterTextureAsset.js +2 -2
  127. package/dist/character/model/planning/CjsCharacterTextureAsset.js.map +1 -1
  128. package/dist/character/model/planning/CjsCharacterTextureChannel.js +2 -2
  129. package/dist/character/model/planning/CjsCharacterTextureChannel.js.map +1 -1
  130. package/dist/character/model/resources/CjsCharacterPortraitResource.js +2 -2
  131. package/dist/character/model/resources/CjsCharacterPortraitResource.js.map +1 -1
  132. package/dist/character/model/resources/CjsCharacterResource.js +2 -2
  133. package/dist/character/model/resources/CjsCharacterResource.js.map +1 -1
  134. package/dist/character/trinity/interior/Tr2IntSkinnedObject.js +6 -5
  135. package/dist/character/trinity/interior/Tr2IntSkinnedObject.js.map +1 -1
  136. package/dist/character/trinity/interior/Tr2InteriorLightSource.js +2 -2
  137. package/dist/character/trinity/interior/Tr2InteriorLightSource.js.map +1 -1
  138. package/dist/character/trinity/interior/Tr2InteriorPlaceable.js +4 -5
  139. package/dist/character/trinity/interior/Tr2InteriorPlaceable.js.map +1 -1
  140. package/dist/character/trinity/interior/Tr2InteriorScene.js +2 -2
  141. package/dist/character/trinity/interior/Tr2InteriorScene.js.map +1 -1
  142. package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js +2 -2
  143. package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js.map +1 -1
  144. package/dist/character/trinity/trinityCore/Tr2GStateParameter.js +2 -2
  145. package/dist/character/trinity/trinityCore/Tr2GStateParameter.js.map +1 -1
  146. package/dist/character/trinity/trinityCore/Tr2Model.js +2 -2
  147. package/dist/character/trinity/trinityCore/Tr2Model.js.map +1 -1
  148. package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js +21 -10
  149. package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js.map +1 -1
  150. package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js +64 -57
  151. package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js.map +1 -1
  152. package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js +1 -1
  153. package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js.map +1 -1
  154. package/dist/character/trinity/wod/WodBakingScene.js +2 -2
  155. package/dist/character/trinity/wod/WodBakingScene.js.map +1 -1
  156. package/dist/core/CjsLibrary.js +32 -685
  157. package/dist/core/CjsLibrary.js.map +1 -1
  158. package/dist/core/index.js +1 -2
  159. package/dist/core/index.js.map +1 -1
  160. package/dist/global/blue/BeInfo.js +95 -0
  161. package/dist/global/blue/BeInfo.js.map +1 -0
  162. package/dist/global/blue/CcpDateTime.js +53 -0
  163. package/dist/global/blue/CcpDateTime.js.map +1 -0
  164. package/dist/global/blue/CcpTime.js +148 -0
  165. package/dist/global/blue/CcpTime.js.map +1 -0
  166. package/dist/global/blue/CjsBlueOS.js +301 -0
  167. package/dist/global/blue/CjsBlueOS.js.map +1 -0
  168. package/dist/global/blue/CjsBluePaths.js +97 -0
  169. package/dist/global/blue/CjsBluePaths.js.map +1 -0
  170. package/dist/global/blue/IBlueDynamicResourceConstructor.js +29 -0
  171. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -0
  172. package/dist/global/blue/IBlueEvents.js +34 -0
  173. package/dist/global/blue/IBlueEvents.js.map +1 -0
  174. package/dist/global/blue/IBlueOS.js +132 -0
  175. package/dist/global/blue/IBlueOS.js.map +1 -0
  176. package/dist/global/blue/IBluePaths.js +72 -0
  177. package/dist/global/blue/IBluePaths.js.map +1 -0
  178. package/dist/global/blue/IBlueResMan.js +93 -0
  179. package/dist/global/blue/IBlueResMan.js.map +1 -0
  180. package/dist/global/blue/IBlueResManNotifications.js +51 -0
  181. package/dist/global/blue/IBlueResManNotifications.js.map +1 -0
  182. package/dist/global/blue/ICatchupTicks.js +25 -0
  183. package/dist/global/blue/ICatchupTicks.js.map +1 -0
  184. package/dist/global/blue/IInitialize.js +47 -0
  185. package/dist/global/blue/IInitialize.js.map +1 -0
  186. package/dist/global/blue/IListNotify.js +44 -0
  187. package/dist/global/blue/IListNotify.js.map +1 -0
  188. package/dist/global/blue/INotify.js +65 -0
  189. package/dist/global/blue/INotify.js.map +1 -0
  190. package/dist/global/blue/ISimTimeRebaseNotify.js +28 -0
  191. package/dist/global/blue/ISimTimeRebaseNotify.js.map +1 -0
  192. package/dist/global/blue/IVariableTicker.js +24 -0
  193. package/dist/global/blue/IVariableTicker.js.map +1 -0
  194. package/dist/global/blue/blue.js +61 -0
  195. package/dist/global/blue/blue.js.map +1 -0
  196. package/dist/global/blue/enums/CjsBlueEnumRegistry.js +173 -0
  197. package/dist/global/blue/enums/CjsBlueEnumRegistry.js.map +1 -0
  198. package/dist/global/blue/index.js +19 -0
  199. package/dist/global/blue/index.js.map +1 -1
  200. package/dist/global/blue/registerTrinityEnums.js +43 -0
  201. package/dist/global/blue/registerTrinityEnums.js.map +1 -0
  202. package/dist/global/compose/abstract.js +81 -0
  203. package/dist/global/compose/abstract.js.map +1 -0
  204. package/dist/global/compose/interface.js +131 -26
  205. package/dist/global/compose/interface.js.map +1 -1
  206. package/dist/global/compose/notify.js +10 -1
  207. package/dist/global/compose/notify.js.map +1 -1
  208. package/dist/global/compose/values.js +116 -53
  209. package/dist/global/compose/values.js.map +1 -1
  210. package/dist/global/consts/blue.js +73 -0
  211. package/dist/global/consts/blue.js.map +1 -0
  212. package/dist/global/consts/graphics/index.js +1 -1
  213. package/dist/global/consts/graphics/trinityEnums.js +19 -7
  214. package/dist/global/consts/graphics/trinityEnums.js.map +1 -1
  215. package/dist/global/consts/index.js +2 -1
  216. package/dist/global/consts/index.js.map +1 -1
  217. package/dist/global/consts/trinity.js.map +1 -1
  218. package/dist/global/contracts/ITr2BoundingBox.js +1 -34
  219. package/dist/global/contracts/ITr2BoundingBox.js.map +1 -1
  220. package/dist/global/contracts/ITr2RenderNode.js +1 -27
  221. package/dist/global/contracts/ITr2RenderNode.js.map +1 -1
  222. package/dist/global/contracts/index.js +2 -4
  223. package/dist/global/contracts/index.js.map +1 -1
  224. package/dist/global/index.js +23 -5
  225. package/dist/global/index.js.map +1 -1
  226. package/dist/global/model/CjsModel.js +79 -98
  227. package/dist/global/model/CjsModel.js.map +1 -1
  228. package/dist/global/model/CjsModelState.js +0 -15
  229. package/dist/global/model/CjsModelState.js.map +1 -1
  230. package/dist/global/model/index.js +1 -1
  231. package/dist/global/schema/CjsSchema.js +177 -51
  232. package/dist/global/schema/CjsSchema.js.map +1 -1
  233. package/dist/global/schema/index.js +4 -3
  234. package/dist/global/schema/index.js.map +1 -1
  235. package/dist/global/schema/types/carbonTypes.js +1 -1
  236. package/dist/global/schema/types/carbonTypes.js.map +1 -1
  237. package/dist/global/utils/bytes.js +2 -0
  238. package/dist/global/utils/bytes.js.map +1 -1
  239. package/dist/global/utils/path.js +30 -1
  240. package/dist/global/utils/path.js.map +1 -1
  241. package/dist/index.js +57 -24
  242. package/dist/index.js.map +1 -1
  243. package/dist/resource/CjsResMan.js +33 -43
  244. package/dist/resource/CjsResMan.js.map +1 -1
  245. package/dist/resource/CjsResource.js +4 -1
  246. package/dist/resource/CjsResource.js.map +1 -1
  247. package/dist/resource/format/CjsBlueReader.js +0 -1
  248. package/dist/resource/format/CjsBlueReader.js.map +1 -1
  249. package/dist/resource/format/CjsResourceProbe.js +15 -16
  250. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  251. package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js +132 -75
  252. package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -1
  253. package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js +26 -0
  254. package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  255. package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js +2 -1
  256. package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  257. package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js +4 -0
  258. package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js.map +1 -0
  259. package/dist/resource/formats/black/core/blackDefinitions.js +1 -1
  260. package/dist/resource/formats/black/core/blackDefinitions.js.map +1 -1
  261. package/dist/resource/formats/black/core/blackSchema.js +1 -1
  262. package/dist/resource/formats/dds/CjsDdsFormat.js +50 -1
  263. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  264. package/dist/resource/formats/dds/core/helpers.js +51 -5
  265. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  266. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js +94 -0
  267. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js.map +1 -0
  268. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js +189 -0
  269. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js.map +1 -0
  270. package/dist/resource/formats/fsd/64/readers/index.js +2 -0
  271. package/dist/resource/formats/fsd/64/readers/index.js.map +1 -1
  272. package/dist/resource/formats/hlsl/core/detailMapFamily.js +18 -92
  273. package/dist/resource/formats/hlsl/core/detailMapFamily.js.map +1 -1
  274. package/dist/resource/formats/hlsl/core/textureArrayFamilies.js +285 -0
  275. package/dist/resource/formats/hlsl/core/textureArrayFamilies.js.map +1 -0
  276. package/dist/resource/formats/pickle/CjsPickleFormat.js +34 -14
  277. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  278. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +60 -451
  279. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  280. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +407 -0
  281. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -0
  282. package/dist/resource/formats/pickle/core/pickleCommon.js +671 -0
  283. package/dist/resource/formats/pickle/core/pickleCommon.js.map +1 -0
  284. package/dist/resource/formats/red/core/blackDefinitions.js +1 -1
  285. package/dist/resource/formats/webgl/core/effectPackage.js +85 -7
  286. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  287. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +659 -564
  288. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  289. package/dist/resource/formats/webgl/core/glslBackendBodySet.js +4 -4
  290. package/dist/resource/formats/webgl/core/glslBackendBodySet.js.map +1 -1
  291. package/dist/resource/formats/webgl/core/helpers.js +2 -2
  292. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  293. package/dist/resource/geometry/TriGeometryRes.js +61 -7
  294. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +11 -11
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +9 -0
  298. package/dist/resource/index.js.map +1 -1
  299. package/dist/resource/shader/Tr2EffectRes.js +2 -3
  300. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  301. package/dist/resource/shader/Tr2MaterialArea.js +3 -3
  302. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  303. package/dist/resource/shader/Tr2MaterialMesh.js +2 -2
  304. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  305. package/dist/resource/shader/Tr2MaterialRes.js +3 -3
  306. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  307. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +2 -2
  308. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +2 -2
  310. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  311. package/dist/resource/shader/reflection/Tr2Pass.js +4 -4
  312. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  313. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  314. package/dist/resource/texture/Tr2ImageRes.js +3 -4
  315. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +0 -1
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TexturePackChannel.js +4 -4
  319. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePipeline.js +3 -4
  321. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +5 -5
  323. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +3 -3
  325. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +2 -2
  327. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +6 -6
  329. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  330. package/dist/resource/texture/TriTextureRes.js +23 -22
  331. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  332. package/dist/resource/video/AudioMetadata.js +41 -0
  333. package/dist/resource/video/AudioMetadata.js.map +1 -0
  334. package/dist/resource/video/IAudioSink.js +51 -0
  335. package/dist/resource/video/IAudioSink.js.map +1 -0
  336. package/dist/resource/video/IEncodedFrame.js +52 -0
  337. package/dist/resource/video/IEncodedFrame.js.map +1 -0
  338. package/dist/resource/video/IVideoContainerParser.js +70 -0
  339. package/dist/resource/video/IVideoContainerParser.js.map +1 -0
  340. package/dist/resource/video/IVideoDecoder.js +36 -0
  341. package/dist/resource/video/IVideoDecoder.js.map +1 -0
  342. package/dist/resource/video/PcmFrame.js +33 -0
  343. package/dist/resource/video/PcmFrame.js.map +1 -0
  344. package/dist/resource/video/VideoFrame.js +45 -0
  345. package/dist/resource/video/VideoFrame.js.map +1 -0
  346. package/dist/resource/video/VideoMetadata.js +34 -0
  347. package/dist/resource/video/VideoMetadata.js.map +1 -0
  348. package/dist/resource/video/enums.js +30 -0
  349. package/dist/resource/video/enums.js.map +1 -0
  350. package/dist/sof/EveSOF.js +176 -176
  351. package/dist/sof/EveSOF.js.map +1 -1
  352. package/dist/sof/EveSOFDNA.js +5 -1
  353. package/dist/sof/EveSOFDNA.js.map +1 -1
  354. package/dist/sof/EveSOFData.js +2 -2
  355. package/dist/sof/EveSOFData.js.map +1 -1
  356. package/dist/sof/faction/EveSOFDataFaction.js +2 -2
  357. package/dist/sof/faction/EveSOFDataFaction.js.map +1 -1
  358. package/dist/sof/faction/EveSOFDataFactionChild.js +2 -2
  359. package/dist/sof/faction/EveSOFDataFactionChild.js.map +1 -1
  360. package/dist/sof/faction/EveSOFDataFactionColorSet.js +189 -3
  361. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  362. package/dist/sof/faction/EveSOFDataFactionHullArea.js +2 -2
  363. package/dist/sof/faction/EveSOFDataFactionHullArea.js.map +1 -1
  364. package/dist/sof/faction/EveSOFDataFactionPlaneSet.js +2 -2
  365. package/dist/sof/faction/EveSOFDataFactionPlaneSet.js.map +1 -1
  366. package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js +2 -2
  367. package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js.map +1 -1
  368. package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js +2 -2
  369. package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js.map +1 -1
  370. package/dist/sof/generic/EveSOFDataGeneric.js +234 -230
  371. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  372. package/dist/sof/generic/EveSOFDataGenericDamage.js +2 -2
  373. package/dist/sof/generic/EveSOFDataGenericDamage.js.map +1 -1
  374. package/dist/sof/generic/EveSOFDataGenericDecalShader.js +2 -2
  375. package/dist/sof/generic/EveSOFDataGenericDecalShader.js.map +1 -1
  376. package/dist/sof/generic/EveSOFDataGenericHullCategory.js +27 -23
  377. package/dist/sof/generic/EveSOFDataGenericHullCategory.js.map +1 -1
  378. package/dist/sof/generic/EveSOFDataGenericHullDamage.js +2 -2
  379. package/dist/sof/generic/EveSOFDataGenericHullDamage.js.map +1 -1
  380. package/dist/sof/generic/EveSOFDataGenericShader.js +2 -2
  381. package/dist/sof/generic/EveSOFDataGenericShader.js.map +1 -1
  382. package/dist/sof/generic/EveSOFDataGenericString.js +2 -2
  383. package/dist/sof/generic/EveSOFDataGenericString.js.map +1 -1
  384. package/dist/sof/generic/EveSOFDataGenericSwarm.js +2 -2
  385. package/dist/sof/generic/EveSOFDataGenericSwarm.js.map +1 -1
  386. package/dist/sof/generic/EveSOFDataGenericVariant.js +2 -2
  387. package/dist/sof/generic/EveSOFDataGenericVariant.js.map +1 -1
  388. package/dist/sof/generic/EveSOFDataVisibilityGroup.js +2 -2
  389. package/dist/sof/generic/EveSOFDataVisibilityGroup.js.map +1 -1
  390. package/dist/sof/hull/EveSOFDataHull.js +56 -3
  391. package/dist/sof/hull/EveSOFDataHull.js.map +1 -1
  392. package/dist/sof/hull/EveSOFDataHullAnimation.js +2 -2
  393. package/dist/sof/hull/EveSOFDataHullAnimation.js.map +1 -1
  394. package/dist/sof/hull/EveSOFDataHullArea.js +58 -54
  395. package/dist/sof/hull/EveSOFDataHullArea.js.map +1 -1
  396. package/dist/sof/hull/EveSOFDataHullBanner.js +109 -3
  397. package/dist/sof/hull/EveSOFDataHullBanner.js.map +1 -1
  398. package/dist/sof/hull/EveSOFDataHullBannerLight.js +2 -2
  399. package/dist/sof/hull/EveSOFDataHullBannerLight.js.map +1 -1
  400. package/dist/sof/hull/EveSOFDataHullBannerSet.js +2 -2
  401. package/dist/sof/hull/EveSOFDataHullBannerSet.js.map +1 -1
  402. package/dist/sof/hull/EveSOFDataHullBannerSetItem.js +109 -3
  403. package/dist/sof/hull/EveSOFDataHullBannerSetItem.js.map +1 -1
  404. package/dist/sof/hull/EveSOFDataHullBooster.js +2 -2
  405. package/dist/sof/hull/EveSOFDataHullBooster.js.map +1 -1
  406. package/dist/sof/hull/EveSOFDataHullBoosterItem.js +2 -2
  407. package/dist/sof/hull/EveSOFDataHullBoosterItem.js.map +1 -1
  408. package/dist/sof/hull/EveSOFDataHullChild.js +55 -50
  409. package/dist/sof/hull/EveSOFDataHullChild.js.map +1 -1
  410. package/dist/sof/hull/EveSOFDataHullChildSet.js +2 -2
  411. package/dist/sof/hull/EveSOFDataHullChildSet.js.map +1 -1
  412. package/dist/sof/hull/EveSOFDataHullChildSetItem.js +51 -46
  413. package/dist/sof/hull/EveSOFDataHullChildSetItem.js.map +1 -1
  414. package/dist/sof/hull/EveSOFDataHullController.js +2 -2
  415. package/dist/sof/hull/EveSOFDataHullController.js.map +1 -1
  416. package/dist/sof/hull/EveSOFDataHullDecalSet.js +2 -2
  417. package/dist/sof/hull/EveSOFDataHullDecalSet.js.map +1 -1
  418. package/dist/sof/hull/EveSOFDataHullDecalSetItem.js +45 -3
  419. package/dist/sof/hull/EveSOFDataHullDecalSetItem.js.map +1 -1
  420. package/dist/sof/hull/EveSOFDataHullHazeSet.js +21 -3
  421. package/dist/sof/hull/EveSOFDataHullHazeSet.js.map +1 -1
  422. package/dist/sof/hull/EveSOFDataHullHazeSetItem.js +47 -43
  423. package/dist/sof/hull/EveSOFDataHullHazeSetItem.js.map +1 -1
  424. package/dist/sof/hull/EveSOFDataHullLightSet.js +2 -2
  425. package/dist/sof/hull/EveSOFDataHullLightSet.js.map +1 -1
  426. package/dist/sof/hull/EveSOFDataHullLightSetItem.js +4 -2
  427. package/dist/sof/hull/EveSOFDataHullLightSetItem.js.map +1 -1
  428. package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js +2 -2
  429. package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js.map +1 -1
  430. package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js +2 -2
  431. package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js.map +1 -1
  432. package/dist/sof/hull/EveSOFDataHullLocator.js +2 -2
  433. package/dist/sof/hull/EveSOFDataHullLocator.js.map +1 -1
  434. package/dist/sof/hull/EveSOFDataHullLocatorSet.js +2 -2
  435. package/dist/sof/hull/EveSOFDataHullLocatorSet.js.map +1 -1
  436. package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js +2 -2
  437. package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js.map +1 -1
  438. package/dist/sof/hull/EveSOFDataHullPlaneSet.js +29 -3
  439. package/dist/sof/hull/EveSOFDataHullPlaneSet.js.map +1 -1
  440. package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js +81 -75
  441. package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js.map +1 -1
  442. package/dist/sof/hull/EveSOFDataHullSoundEmitter.js +2 -2
  443. package/dist/sof/hull/EveSOFDataHullSoundEmitter.js.map +1 -1
  444. package/dist/sof/hull/EveSOFDataHullSpotlightSet.js +2 -2
  445. package/dist/sof/hull/EveSOFDataHullSpotlightSet.js.map +1 -1
  446. package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js +45 -41
  447. package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js.map +1 -1
  448. package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js +2 -2
  449. package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js.map +1 -1
  450. package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js +70 -66
  451. package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js.map +1 -1
  452. package/dist/sof/hull/EveSOFDataHullSpriteSet.js +2 -2
  453. package/dist/sof/hull/EveSOFDataHullSpriteSet.js.map +1 -1
  454. package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js +45 -41
  455. package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js.map +1 -1
  456. package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js +2 -2
  457. package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js.map +1 -1
  458. package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js +2 -2
  459. package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js.map +1 -1
  460. package/dist/sof/layout/EveSOFDataHullExtensionBucket.js +2 -2
  461. package/dist/sof/layout/EveSOFDataHullExtensionBucket.js.map +1 -1
  462. package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js +2 -2
  463. package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js.map +1 -1
  464. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js +2 -2
  465. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js.map +1 -1
  466. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js +35 -3
  467. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js.map +1 -1
  468. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js +2 -2
  469. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js.map +1 -1
  470. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js +2 -2
  471. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js.map +1 -1
  472. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js +2 -2
  473. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js.map +1 -1
  474. package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js +2 -2
  475. package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js.map +1 -1
  476. package/dist/sof/layout/EveSOFDataLayout.js +2 -2
  477. package/dist/sof/layout/EveSOFDataLayout.js.map +1 -1
  478. package/dist/sof/pattern/EveSOFDataPattern.js +2 -2
  479. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  480. package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js +2 -2
  481. package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js.map +1 -1
  482. package/dist/sof/pattern/EveSOFDataPatternLayer.js +60 -3
  483. package/dist/sof/pattern/EveSOFDataPatternLayer.js.map +1 -1
  484. package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js +23 -3
  485. package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js.map +1 -1
  486. package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js +2 -2
  487. package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js.map +1 -1
  488. package/dist/sof/pattern/EveSOFDataPatternPerHull.js +2 -2
  489. package/dist/sof/pattern/EveSOFDataPatternPerHull.js.map +1 -1
  490. package/dist/sof/pattern/EveSOFDataPatternTransform.js +2 -2
  491. package/dist/sof/pattern/EveSOFDataPatternTransform.js.map +1 -1
  492. package/dist/sof/race/EveSOFDataRace.js +46 -42
  493. package/dist/sof/race/EveSOFDataRace.js.map +1 -1
  494. package/dist/sof/race/EveSOFDataRaceDamage.js +2 -2
  495. package/dist/sof/race/EveSOFDataRaceDamage.js.map +1 -1
  496. package/dist/sof/shared/CjsExternalRef.js +2 -2
  497. package/dist/sof/shared/CjsExternalRef.js.map +1 -1
  498. package/dist/sof/shared/EveSOFDNADescriptor.js +2 -2
  499. package/dist/sof/shared/EveSOFDNADescriptor.js.map +1 -1
  500. package/dist/sof/shared/EveSOFDataArea.js +61 -3
  501. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  502. package/dist/sof/shared/EveSOFDataAreaMaterial.js +4 -2
  503. package/dist/sof/shared/EveSOFDataAreaMaterial.js.map +1 -1
  504. package/dist/sof/shared/EveSOFDataBlinkType.js +48 -8
  505. package/dist/sof/shared/EveSOFDataBlinkType.js.map +1 -1
  506. package/dist/sof/shared/EveSOFDataBooster.js +2 -2
  507. package/dist/sof/shared/EveSOFDataBooster.js.map +1 -1
  508. package/dist/sof/shared/EveSOFDataBoosterShape.js +2 -2
  509. package/dist/sof/shared/EveSOFDataBoosterShape.js.map +1 -1
  510. package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js +2 -2
  511. package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js.map +1 -1
  512. package/dist/sof/shared/EveSOFDataInstancedMesh.js +40 -3
  513. package/dist/sof/shared/EveSOFDataInstancedMesh.js.map +1 -1
  514. package/dist/sof/shared/EveSOFDataLogo.js +2 -2
  515. package/dist/sof/shared/EveSOFDataLogo.js.map +1 -1
  516. package/dist/sof/shared/EveSOFDataLogoSet.js +33 -3
  517. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  518. package/dist/sof/shared/EveSOFDataMaterial.js +2 -2
  519. package/dist/sof/shared/EveSOFDataMaterial.js.map +1 -1
  520. package/dist/sof/shared/EveSOFDataParameter.js +2 -2
  521. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  522. package/dist/sof/shared/EveSOFDataParameterBool.js +2 -2
  523. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -1
  524. package/dist/sof/shared/EveSOFDataParameterColor.js +2 -2
  525. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -1
  526. package/dist/sof/shared/EveSOFDataParameterFloat.js +2 -2
  527. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -1
  528. package/dist/sof/shared/EveSOFDataParameterInt.js +2 -2
  529. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -1
  530. package/dist/sof/shared/EveSOFDataParameterVector2.js +2 -2
  531. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -1
  532. package/dist/sof/shared/EveSOFDataParameterVector3.js +2 -2
  533. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -1
  534. package/dist/sof/shared/EveSOFDataPointLightAttachment.js +2 -2
  535. package/dist/sof/shared/EveSOFDataPointLightAttachment.js.map +1 -1
  536. package/dist/sof/shared/EveSOFDataSpotLightAttachment.js +2 -2
  537. package/dist/sof/shared/EveSOFDataSpotLightAttachment.js.map +1 -1
  538. package/dist/sof/shared/EveSOFDataTexture.js +2 -2
  539. package/dist/sof/shared/EveSOFDataTexture.js.map +1 -1
  540. package/dist/sof/shared/EveSOFDataTransform.js +2 -2
  541. package/dist/sof/shared/EveSOFDataTransform.js.map +1 -1
  542. package/dist/sof/shared/EveSofDataMeshInstance.js +2 -2
  543. package/dist/sof/shared/EveSofDataMeshInstance.js.map +1 -1
  544. package/dist/sof/sofDocumentValues.js +9 -0
  545. package/dist/sof/sofDocumentValues.js.map +1 -1
  546. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +2 -25
  547. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -1
  548. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js +2 -72
  549. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -1
  550. package/dist/trinity/controllers/ITr2ControllerOwner.js +1 -36
  551. package/dist/trinity/controllers/ITr2ControllerOwner.js.map +1 -1
  552. package/dist/trinity/controllers/Tr2Controller.js +4 -5
  553. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  554. package/dist/trinity/controllers/Tr2ControllerEventHandler.js +2 -2
  555. package/dist/trinity/controllers/Tr2ControllerEventHandler.js.map +1 -1
  556. package/dist/trinity/controllers/Tr2ControllerReference.js +9 -17
  557. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  558. package/dist/trinity/controllers/Tr2SyncToAnimation.js +4 -5
  559. package/dist/trinity/controllers/Tr2SyncToAnimation.js.map +1 -1
  560. package/dist/trinity/controllers/action/ITr2ControllerAction.js +1 -28
  561. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  562. package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js +9 -7
  563. package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js.map +1 -1
  564. package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js +11 -9
  565. package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js.map +1 -1
  566. package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js +9 -7
  567. package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js.map +1 -1
  568. package/dist/trinity/controllers/action/Tr2ActionCallback.js +4 -5
  569. package/dist/trinity/controllers/action/Tr2ActionCallback.js.map +1 -1
  570. package/dist/trinity/controllers/action/Tr2ActionChildEffect.js +4 -5
  571. package/dist/trinity/controllers/action/Tr2ActionChildEffect.js.map +1 -1
  572. package/dist/trinity/controllers/action/Tr2ActionOverlay.js +4 -5
  573. package/dist/trinity/controllers/action/Tr2ActionOverlay.js.map +1 -1
  574. package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js +4 -5
  575. package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js.map +1 -1
  576. package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js +13 -9
  577. package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js.map +1 -1
  578. package/dist/trinity/controllers/action/Tr2ActionPlaySound.js +4 -5
  579. package/dist/trinity/controllers/action/Tr2ActionPlaySound.js.map +1 -1
  580. package/dist/trinity/controllers/action/Tr2ActionPython.js +6 -6
  581. package/dist/trinity/controllers/action/Tr2ActionPython.js.map +1 -1
  582. package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js +4 -5
  583. package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js.map +1 -1
  584. package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js +4 -5
  585. package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js.map +1 -1
  586. package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js +4 -5
  587. package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  588. package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js +4 -5
  589. package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js.map +1 -1
  590. package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js +8 -17
  591. package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  592. package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js +4 -5
  593. package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js.map +1 -1
  594. package/dist/trinity/controllers/action/Tr2ActionSetValue.js +11 -9
  595. package/dist/trinity/controllers/action/Tr2ActionSetValue.js.map +1 -1
  596. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +4 -5
  597. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  598. package/dist/trinity/controllers/contracts.js +27 -19
  599. package/dist/trinity/controllers/contracts.js.map +1 -1
  600. package/dist/trinity/controllers/expression/Tr2BindingPoint.js +6 -15
  601. package/dist/trinity/controllers/expression/Tr2BindingPoint.js.map +1 -1
  602. package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js +2 -2
  603. package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js.map +1 -1
  604. package/dist/trinity/controllers/expression/expressionRuntime.js +136 -0
  605. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -1
  606. package/dist/trinity/controllers/index.js +6 -6
  607. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +1 -24
  608. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  609. package/dist/trinity/controllers/state/Tr2StateMachine.js +4 -6
  610. package/dist/trinity/controllers/state/Tr2StateMachine.js.map +1 -1
  611. package/dist/trinity/controllers/state/Tr2StateMachineState.js +6 -6
  612. package/dist/trinity/controllers/state/Tr2StateMachineState.js.map +1 -1
  613. package/dist/trinity/controllers/state/Tr2StateMachineTransition.js +12 -9
  614. package/dist/trinity/controllers/state/Tr2StateMachineTransition.js.map +1 -1
  615. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +5 -6
  616. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  617. package/dist/trinity/core/ITr2Renderable.js +1 -49
  618. package/dist/trinity/core/ITr2Renderable.js.map +1 -1
  619. package/dist/trinity/core/ITr2Updateable.js +1 -22
  620. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  621. package/dist/trinity/core/ITriReroutable.js +56 -0
  622. package/dist/trinity/core/ITriReroutable.js.map +1 -0
  623. package/dist/trinity/core/Tr2Denoiser.js +2 -2
  624. package/dist/trinity/core/Tr2Denoiser.js.map +1 -1
  625. package/dist/trinity/core/Tr2MaterialParameterStore.js +2 -2
  626. package/dist/trinity/core/Tr2MaterialParameterStore.js.map +1 -1
  627. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js +2 -2
  628. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -1
  629. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +1 -1
  630. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -1
  631. package/dist/trinity/core/Tr2Renderer.js +161 -4
  632. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  633. package/dist/trinity/core/Tr2ShadowMap.js +3 -3
  634. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  635. package/dist/trinity/core/Tr2StreamingBitmapSaver.js +2 -2
  636. package/dist/trinity/core/Tr2StreamingBitmapSaver.js.map +1 -1
  637. package/dist/trinity/core/Tr2Transform.js +4 -5
  638. package/dist/trinity/core/Tr2Transform.js.map +1 -1
  639. package/dist/trinity/core/animation/Tr2GrannyAnimation.js +2 -2
  640. package/dist/trinity/core/animation/Tr2GrannyAnimation.js.map +1 -1
  641. package/dist/trinity/core/animation/Tr2TextureAnimation.js +2 -2
  642. package/dist/trinity/core/animation/Tr2TextureAnimation.js.map +1 -1
  643. package/dist/trinity/core/animation/TriRigidOrientation.js +2 -2
  644. package/dist/trinity/core/animation/TriRigidOrientation.js.map +1 -1
  645. package/dist/trinity/core/animation/TriTorque.js +2 -2
  646. package/dist/trinity/core/animation/TriTorque.js.map +1 -1
  647. package/dist/trinity/core/batch/CjsBatchManager.js +15 -50
  648. package/dist/trinity/core/batch/CjsBatchManager.js.map +1 -1
  649. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -1
  650. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js +12 -14
  651. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -1
  652. package/dist/trinity/core/binding/Tr2BindingVector3.js +2 -2
  653. package/dist/trinity/core/binding/Tr2BindingVector3.js.map +1 -1
  654. package/dist/trinity/core/binding/Tr2DynamicBinding.js +6 -20
  655. package/dist/trinity/core/binding/Tr2DynamicBinding.js.map +1 -1
  656. package/dist/trinity/core/binding/Tr2ExternalParameter.js +3 -6
  657. package/dist/trinity/core/binding/Tr2ExternalParameter.js.map +1 -1
  658. package/dist/trinity/core/binding/Tr2PyValueBinding.js +2 -2
  659. package/dist/trinity/core/binding/Tr2PyValueBinding.js.map +1 -1
  660. package/dist/trinity/core/binding/TriValueBinding.js +50 -24
  661. package/dist/trinity/core/binding/TriValueBinding.js.map +1 -1
  662. package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js +0 -6
  663. package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js.map +1 -1
  664. package/dist/trinity/core/context/CjsTrinityStepExecutor.js +7 -10
  665. package/dist/trinity/core/context/CjsTrinityStepExecutor.js.map +1 -1
  666. package/dist/trinity/core/context/Tr2RenderContext.js +74 -116
  667. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  668. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  669. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  670. package/dist/trinity/core/device/Tr2GpuBuffer.js +2 -2
  671. package/dist/trinity/core/device/Tr2GpuBuffer.js.map +1 -1
  672. package/dist/trinity/core/device/Tr2RenderTarget.js +2 -2
  673. package/dist/trinity/core/device/Tr2RenderTarget.js.map +1 -1
  674. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +2 -2
  675. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -1
  676. package/dist/trinity/core/device/Tr2SwapChain.js +2 -2
  677. package/dist/trinity/core/device/Tr2SwapChain.js.map +1 -1
  678. package/dist/trinity/core/device/TriDevice.js +576 -37
  679. package/dist/trinity/core/device/TriDevice.js.map +1 -1
  680. package/dist/trinity/core/device/gTriDev.js +49 -0
  681. package/dist/trinity/core/device/gTriDev.js.map +1 -0
  682. package/dist/trinity/core/index.js +9 -5
  683. package/dist/trinity/core/index.js.map +1 -1
  684. package/dist/trinity/core/lighting/Tr2KelvinColor.js +2 -2
  685. package/dist/trinity/core/lighting/Tr2KelvinColor.js.map +1 -1
  686. package/dist/trinity/core/lighting/Tr2LightManager.js +7 -17
  687. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  688. package/dist/trinity/core/lighting/Tr2ShLightingManager.js +2 -2
  689. package/dist/trinity/core/lighting/Tr2ShLightingManager.js.map +1 -1
  690. package/dist/trinity/core/line/Tr2BoundingLineSet.js +2 -2
  691. package/dist/trinity/core/line/Tr2BoundingLineSet.js.map +1 -1
  692. package/dist/trinity/core/line/Tr2CurveLineSet.js +10 -7
  693. package/dist/trinity/core/line/Tr2CurveLineSet.js.map +1 -1
  694. package/dist/trinity/core/line/Tr2LineGraph.js +2 -2
  695. package/dist/trinity/core/line/Tr2LineGraph.js.map +1 -1
  696. package/dist/trinity/core/line/Tr2PrimitiveSet.js +4 -5
  697. package/dist/trinity/core/line/Tr2PrimitiveSet.js.map +1 -1
  698. package/dist/trinity/core/line/TriLineSet.js +2 -2
  699. package/dist/trinity/core/line/TriLineSet.js.map +1 -1
  700. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js +1 -37
  701. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -1
  702. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js +1 -34
  703. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -1
  704. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +5 -6
  705. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  706. package/dist/trinity/core/mesh/Tr2InstancedMesh.js +2 -2
  707. package/dist/trinity/core/mesh/Tr2InstancedMesh.js.map +1 -1
  708. package/dist/trinity/core/mesh/Tr2Mesh.js +288 -183
  709. package/dist/trinity/core/mesh/Tr2Mesh.js.map +1 -1
  710. package/dist/trinity/core/mesh/Tr2MeshArea.js +32 -3
  711. package/dist/trinity/core/mesh/Tr2MeshArea.js.map +1 -1
  712. package/dist/trinity/core/mesh/Tr2MeshBase.js +58 -8
  713. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  714. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +141 -142
  715. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  716. package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js +2 -2
  717. package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js.map +1 -1
  718. package/dist/trinity/core/procedural/GradientTextureConstructor.js +62 -0
  719. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -0
  720. package/dist/trinity/core/procedural/gradientTexture.js +196 -0
  721. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -0
  722. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -1
  723. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +5 -0
  724. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -1
  725. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +2 -0
  726. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -1
  727. package/dist/trinity/core/tool/Tr2ManipulationTool.js +2 -2
  728. package/dist/trinity/core/tool/Tr2ManipulationTool.js.map +1 -1
  729. package/dist/trinity/core/tool/Tr2RotationTool.js +2 -2
  730. package/dist/trinity/core/tool/Tr2RotationTool.js.map +1 -1
  731. package/dist/trinity/core/tool/Tr2ScalingTool.js +2 -2
  732. package/dist/trinity/core/tool/Tr2ScalingTool.js.map +1 -1
  733. package/dist/trinity/core/tool/Tr2TranslationTool.js +2 -2
  734. package/dist/trinity/core/tool/Tr2TranslationTool.js.map +1 -1
  735. package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js +2 -2
  736. package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js.map +1 -1
  737. package/dist/trinity/core/variable/TriFloat.js +2 -2
  738. package/dist/trinity/core/variable/TriFloat.js.map +1 -1
  739. package/dist/trinity/core/variable/TriObserverLocal.js +2 -2
  740. package/dist/trinity/core/variable/TriObserverLocal.js.map +1 -1
  741. package/dist/trinity/core/variable/TriVariable.js +2 -2
  742. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  743. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js +2 -0
  744. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -1
  745. package/dist/trinity/core/view/TriProjection.js +2 -2
  746. package/dist/trinity/core/view/TriProjection.js.map +1 -1
  747. package/dist/trinity/core/view/TriRect.js +2 -2
  748. package/dist/trinity/core/view/TriRect.js.map +1 -1
  749. package/dist/trinity/core/view/TriView.js +2 -2
  750. package/dist/trinity/core/view/TriView.js.map +1 -1
  751. package/dist/trinity/core/view/TriViewport.js +2 -2
  752. package/dist/trinity/core/view/TriViewport.js.map +1 -1
  753. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +3 -3
  754. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  755. package/dist/trinity/curves/Tr2CurveSetRange.js +2 -2
  756. package/dist/trinity/curves/Tr2CurveSetRange.js.map +1 -1
  757. package/dist/trinity/curves/TriCurveSet.js +2 -2
  758. package/dist/trinity/curves/TriCurveSet.js.map +1 -1
  759. package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js +2 -2
  760. package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js.map +1 -1
  761. package/dist/trinity/curves/curve/Tr2CurveColor.js +2 -2
  762. package/dist/trinity/curves/curve/Tr2CurveColor.js.map +1 -1
  763. package/dist/trinity/curves/curve/Tr2CurveColorMixer.js +2 -2
  764. package/dist/trinity/curves/curve/Tr2CurveColorMixer.js.map +1 -1
  765. package/dist/trinity/curves/curve/Tr2CurveCombiner.js +3 -3
  766. package/dist/trinity/curves/curve/Tr2CurveCombiner.js.map +1 -1
  767. package/dist/trinity/curves/curve/Tr2CurveConstant.js +2 -2
  768. package/dist/trinity/curves/curve/Tr2CurveConstant.js.map +1 -1
  769. package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js +2 -2
  770. package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js.map +1 -1
  771. package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js +2 -2
  772. package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js.map +1 -1
  773. package/dist/trinity/curves/curve/Tr2CurveQuaternion.js +3 -3
  774. package/dist/trinity/curves/curve/Tr2CurveQuaternion.js.map +1 -1
  775. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +2 -2
  776. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  777. package/dist/trinity/curves/curve/Tr2CurveScalar.js +3 -3
  778. package/dist/trinity/curves/curve/Tr2CurveScalar.js.map +1 -1
  779. package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js +2 -2
  780. package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js.map +1 -1
  781. package/dist/trinity/curves/curve/Tr2CurveVector2.js +2 -2
  782. package/dist/trinity/curves/curve/Tr2CurveVector2.js.map +1 -1
  783. package/dist/trinity/curves/curve/Tr2CurveVector3.js +2 -2
  784. package/dist/trinity/curves/curve/Tr2CurveVector3.js.map +1 -1
  785. package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js +2 -2
  786. package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js.map +1 -1
  787. package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js +2 -2
  788. package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js.map +1 -1
  789. package/dist/trinity/curves/curve/Tr2DistanceTracker.js +5 -5
  790. package/dist/trinity/curves/curve/Tr2DistanceTracker.js.map +1 -1
  791. package/dist/trinity/curves/curve/Tr2FollowCurve.js +2 -2
  792. package/dist/trinity/curves/curve/Tr2FollowCurve.js.map +1 -1
  793. package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js +2 -2
  794. package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js.map +1 -1
  795. package/dist/trinity/curves/curve/Tr2RotationAdapter.js +2 -2
  796. package/dist/trinity/curves/curve/Tr2RotationAdapter.js.map +1 -1
  797. package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js +2 -2
  798. package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js.map +1 -1
  799. package/dist/trinity/curves/curve/Tr2ScalarFader.js +2 -2
  800. package/dist/trinity/curves/curve/Tr2ScalarFader.js.map +1 -1
  801. package/dist/trinity/curves/curve/Tr2TranslationAdapter.js +2 -2
  802. package/dist/trinity/curves/curve/Tr2TranslationAdapter.js.map +1 -1
  803. package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js +2 -2
  804. package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js.map +1 -1
  805. package/dist/trinity/curves/curve/TriColorSequencer.js +18 -18
  806. package/dist/trinity/curves/curve/TriColorSequencer.js.map +1 -1
  807. package/dist/trinity/curves/curve/TriEventCurve.js +51 -51
  808. package/dist/trinity/curves/curve/TriEventCurve.js.map +1 -1
  809. package/dist/trinity/curves/curve/TriPerlinCurve.js +2 -2
  810. package/dist/trinity/curves/curve/TriPerlinCurve.js.map +1 -1
  811. package/dist/trinity/curves/curve/TriVectorSequencer.js +36 -36
  812. package/dist/trinity/curves/curve/TriVectorSequencer.js.map +1 -1
  813. package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js +2 -2
  814. package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js.map +1 -1
  815. package/dist/trinity/curves/key/Tr2MatrixKey.js +2 -2
  816. package/dist/trinity/curves/key/Tr2MatrixKey.js.map +1 -1
  817. package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js +2 -2
  818. package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js.map +1 -1
  819. package/dist/trinity/curves/key/Tr2ScalarExprKey.js +28 -24
  820. package/dist/trinity/curves/key/Tr2ScalarExprKey.js.map +1 -1
  821. package/dist/trinity/curves/key/TriEventKey.js +2 -2
  822. package/dist/trinity/curves/key/TriEventKey.js.map +1 -1
  823. package/dist/trinity/curves/track/Tr2GrannyEventTrack.js +2 -2
  824. package/dist/trinity/curves/track/Tr2GrannyEventTrack.js.map +1 -1
  825. package/dist/trinity/curves/track/Tr2GrannyTrack.js +9 -4
  826. package/dist/trinity/curves/track/Tr2GrannyTrack.js.map +1 -1
  827. package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js +2 -2
  828. package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js.map +1 -1
  829. package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js +2 -2
  830. package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js.map +1 -1
  831. package/dist/trinity/eve/AudioGameObject.js +6 -8
  832. package/dist/trinity/eve/AudioGameObject.js.map +1 -1
  833. package/dist/trinity/eve/EveCustomMask.js +2 -2
  834. package/dist/trinity/eve/EveCustomMask.js.map +1 -1
  835. package/dist/trinity/eve/EveDistanceField.js +6 -4
  836. package/dist/trinity/eve/EveDistanceField.js.map +1 -1
  837. package/dist/trinity/eve/EveImpactOverlay.js +2 -2
  838. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  839. package/dist/trinity/eve/EveThrottleable.js +2 -2
  840. package/dist/trinity/eve/EveThrottleable.js.map +1 -1
  841. package/dist/trinity/eve/EveTriggerVolume.js +4 -5
  842. package/dist/trinity/eve/EveTriggerVolume.js.map +1 -1
  843. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +1 -23
  844. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  845. package/dist/trinity/eve/IEveSpaceObject2.js +1 -24
  846. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  847. package/dist/trinity/eve/IEveTransform.js +1 -22
  848. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  849. package/dist/trinity/eve/attachment/banner/EveBannerItem.js +2 -2
  850. package/dist/trinity/eve/attachment/banner/EveBannerItem.js.map +1 -1
  851. package/dist/trinity/eve/attachment/banner/EveBannerLight.js +2 -2
  852. package/dist/trinity/eve/attachment/banner/EveBannerLight.js.map +1 -1
  853. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +20 -3
  854. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  855. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +127 -122
  856. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  857. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +5 -5
  858. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -1
  859. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +4 -5
  860. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  861. package/dist/trinity/eve/attachment/booster/EveTrailsSet.js +4 -2
  862. package/dist/trinity/eve/attachment/booster/EveTrailsSet.js.map +1 -1
  863. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +151 -148
  864. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  865. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +3 -3
  866. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  867. package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js +2 -2
  868. package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js.map +1 -1
  869. package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js +2 -2
  870. package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js.map +1 -1
  871. package/dist/trinity/eve/attachment/plane/EvePlaneLight.js +2 -2
  872. package/dist/trinity/eve/attachment/plane/EvePlaneLight.js.map +1 -1
  873. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +10 -4
  874. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  875. package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js +3 -2
  876. package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js.map +1 -1
  877. package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js +2 -2
  878. package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -1
  879. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +3 -3
  880. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  881. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js +2 -2
  882. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -1
  883. package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js +2 -2
  884. package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js.map +1 -1
  885. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +4 -4
  886. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  887. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js +2 -2
  888. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -1
  889. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +5 -5
  890. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  891. package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js +2 -2
  892. package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -1
  893. package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js +7 -4
  894. package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  895. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +177 -144
  896. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  897. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +2 -2
  898. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  899. package/dist/trinity/eve/camera/EveCamera.js +5 -11
  900. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  901. package/dist/trinity/eve/child/EveChildAudio.js +4 -5
  902. package/dist/trinity/eve/child/EveChildAudio.js.map +1 -1
  903. package/dist/trinity/eve/child/EveChildBehaviorSystem.js +5 -6
  904. package/dist/trinity/eve/child/EveChildBehaviorSystem.js.map +1 -1
  905. package/dist/trinity/eve/child/EveChildBoosterSet.js +6 -6
  906. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  907. package/dist/trinity/eve/child/EveChildBulletStorm.js +4 -5
  908. package/dist/trinity/eve/child/EveChildBulletStorm.js.map +1 -1
  909. package/dist/trinity/eve/child/EveChildCloud.js +5 -6
  910. package/dist/trinity/eve/child/EveChildCloud.js.map +1 -1
  911. package/dist/trinity/eve/child/EveChildCloud2.js +166 -166
  912. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  913. package/dist/trinity/eve/child/EveChildContainer.js +235 -169
  914. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  915. package/dist/trinity/eve/child/EveChildEffectPropagator.js +9 -9
  916. package/dist/trinity/eve/child/EveChildEffectPropagator.js.map +1 -1
  917. package/dist/trinity/eve/child/EveChildExplosion.js +11 -7
  918. package/dist/trinity/eve/child/EveChildExplosion.js.map +1 -1
  919. package/dist/trinity/eve/child/EveChildFogVolume.js +2 -2
  920. package/dist/trinity/eve/child/EveChildFogVolume.js.map +1 -1
  921. package/dist/trinity/eve/child/EveChildInheritProperties.js +2 -2
  922. package/dist/trinity/eve/child/EveChildInheritProperties.js.map +1 -1
  923. package/dist/trinity/eve/child/EveChildInstanceContainer.js +2 -2
  924. package/dist/trinity/eve/child/EveChildInstanceContainer.js.map +1 -1
  925. package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js +11 -7
  926. package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
  927. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +2 -2
  928. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  929. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +2 -2
  930. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -1
  931. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +2 -2
  932. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -1
  933. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +4 -5
  934. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  935. package/dist/trinity/eve/child/EveChildLightingOverride.js +4 -5
  936. package/dist/trinity/eve/child/EveChildLightingOverride.js.map +1 -1
  937. package/dist/trinity/eve/child/EveChildLineSet.js +4 -5
  938. package/dist/trinity/eve/child/EveChildLineSet.js.map +1 -1
  939. package/dist/trinity/eve/child/EveChildLink.js +2 -2
  940. package/dist/trinity/eve/child/EveChildLink.js.map +1 -1
  941. package/dist/trinity/eve/child/EveChildMesh.js +299 -227
  942. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  943. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +2 -2
  944. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -1
  945. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js +2 -2
  946. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -1
  947. package/dist/trinity/eve/child/EveChildParticleSphere.js +4 -5
  948. package/dist/trinity/eve/child/EveChildParticleSphere.js.map +1 -1
  949. package/dist/trinity/eve/child/EveChildParticleSystem.js +36 -36
  950. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  951. package/dist/trinity/eve/child/EveChildPlug.js +60 -14
  952. package/dist/trinity/eve/child/EveChildPlug.js.map +1 -1
  953. package/dist/trinity/eve/child/EveChildPostProcessVolume.js +2 -2
  954. package/dist/trinity/eve/child/EveChildPostProcessVolume.js.map +1 -1
  955. package/dist/trinity/eve/child/EveChildQuad.js +4 -5
  956. package/dist/trinity/eve/child/EveChildQuad.js.map +1 -1
  957. package/dist/trinity/eve/child/EveChildRef.js +2 -2
  958. package/dist/trinity/eve/child/EveChildRef.js.map +1 -1
  959. package/dist/trinity/eve/child/EveChildSocket.js +2 -2
  960. package/dist/trinity/eve/child/EveChildSocket.js.map +1 -1
  961. package/dist/trinity/eve/child/EveChildSpherePin.js +4 -4
  962. package/dist/trinity/eve/child/EveChildSpherePin.js.map +1 -1
  963. package/dist/trinity/eve/child/EveChildTurret.js +4 -4
  964. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  965. package/dist/trinity/eve/child/EveCloudVolumeBall.js +2 -2
  966. package/dist/trinity/eve/child/EveCloudVolumeBall.js.map +1 -1
  967. package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js +6 -6
  968. package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
  969. package/dist/trinity/eve/child/EveSpaceObjectChild.js +2 -2
  970. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  971. package/dist/trinity/eve/child/IEveLightingOverride.js +1 -23
  972. package/dist/trinity/eve/child/IEveLightingOverride.js.map +1 -1
  973. package/dist/trinity/eve/child/behaviors/Allign.js +2 -2
  974. package/dist/trinity/eve/child/behaviors/Allign.js.map +1 -1
  975. package/dist/trinity/eve/child/behaviors/ApproachGroup.js +2 -2
  976. package/dist/trinity/eve/child/behaviors/ApproachGroup.js.map +1 -1
  977. package/dist/trinity/eve/child/behaviors/BackAndForth.js +2 -2
  978. package/dist/trinity/eve/child/behaviors/BackAndForth.js.map +1 -1
  979. package/dist/trinity/eve/child/behaviors/BehaviorGroup.js +4 -4
  980. package/dist/trinity/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  981. package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js +2 -2
  982. package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
  983. package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js +2 -2
  984. package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js.map +1 -1
  985. package/dist/trinity/eve/child/behaviors/DroneAvoidance.js +2 -2
  986. package/dist/trinity/eve/child/behaviors/DroneAvoidance.js.map +1 -1
  987. package/dist/trinity/eve/child/behaviors/FollowASpline.js +2 -2
  988. package/dist/trinity/eve/child/behaviors/FollowASpline.js.map +1 -1
  989. package/dist/trinity/eve/child/behaviors/Formation.js +2 -2
  990. package/dist/trinity/eve/child/behaviors/Formation.js.map +1 -1
  991. package/dist/trinity/eve/child/behaviors/InclusionVolume.js +2 -2
  992. package/dist/trinity/eve/child/behaviors/InclusionVolume.js.map +1 -1
  993. package/dist/trinity/eve/child/behaviors/Inertia.js +2 -2
  994. package/dist/trinity/eve/child/behaviors/Inertia.js.map +1 -1
  995. package/dist/trinity/eve/child/behaviors/PlayFX.js +2 -2
  996. package/dist/trinity/eve/child/behaviors/PlayFX.js.map +1 -1
  997. package/dist/trinity/eve/child/behaviors/SeekTarget.js +2 -2
  998. package/dist/trinity/eve/child/behaviors/SeekTarget.js.map +1 -1
  999. package/dist/trinity/eve/child/behaviors/SpawnDrones.js +2 -2
  1000. package/dist/trinity/eve/child/behaviors/SpawnDrones.js.map +1 -1
  1001. package/dist/trinity/eve/child/behaviors/Wander.js +2 -2
  1002. package/dist/trinity/eve/child/behaviors/Wander.js.map +1 -1
  1003. package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js +2 -2
  1004. package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -1
  1005. package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js +2 -2
  1006. package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -1
  1007. package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js +8 -8
  1008. package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  1009. package/dist/trinity/eve/child/lineSetPaths/EveCircle.js +8 -8
  1010. package/dist/trinity/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  1011. package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js +2 -2
  1012. package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
  1013. package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js +2 -2
  1014. package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -1
  1015. package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js +2 -2
  1016. package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -1
  1017. package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js +2 -2
  1018. package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  1019. package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js +2 -2
  1020. package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js.map +1 -1
  1021. package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js +2 -2
  1022. package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -1
  1023. package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js +5 -6
  1024. package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
  1025. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js +3 -3
  1026. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -1
  1027. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +3 -3
  1028. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -1
  1029. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js +2 -2
  1030. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -1
  1031. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js +3 -3
  1032. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -1
  1033. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js +4 -4
  1034. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -1
  1035. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js +4 -4
  1036. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -1
  1037. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js +4 -4
  1038. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -1
  1039. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js +4 -4
  1040. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -1
  1041. package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js +2 -2
  1042. package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js.map +1 -1
  1043. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +2 -2
  1044. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -1
  1045. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +2 -2
  1046. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -1
  1047. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +2 -2
  1048. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -1
  1049. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js +2 -2
  1050. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -1
  1051. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +4 -4
  1052. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -1
  1053. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js +2 -2
  1054. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -1
  1055. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +2 -2
  1056. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -1
  1057. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +2 -2
  1058. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -1
  1059. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +2 -2
  1060. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -1
  1061. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +2 -2
  1062. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -1
  1063. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js +2 -2
  1064. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -1
  1065. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +2 -2
  1066. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -1
  1067. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js +2 -2
  1068. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -1
  1069. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +2 -2
  1070. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -1
  1071. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +2 -2
  1072. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -1
  1073. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +2 -2
  1074. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -1
  1075. package/dist/trinity/eve/effect/lensflare/EveLensflare.js +4 -5
  1076. package/dist/trinity/eve/effect/lensflare/EveLensflare.js.map +1 -1
  1077. package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js +4 -5
  1078. package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js.map +1 -1
  1079. package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js +4 -4
  1080. package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -1
  1081. package/dist/trinity/eve/index.js +4 -4
  1082. package/dist/trinity/eve/lights/Tr2FactionLight.js +5 -6
  1083. package/dist/trinity/eve/lights/Tr2FactionLight.js.map +1 -1
  1084. package/dist/trinity/eve/lights/Tr2Light.js +37 -9
  1085. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  1086. package/dist/trinity/eve/lights/Tr2PointLight.js +2 -2
  1087. package/dist/trinity/eve/lights/Tr2PointLight.js.map +1 -1
  1088. package/dist/trinity/eve/lights/Tr2SpotLight.js +2 -2
  1089. package/dist/trinity/eve/lights/Tr2SpotLight.js.map +1 -1
  1090. package/dist/trinity/eve/lights/Tr2TexturedPointLight.js +29 -31
  1091. package/dist/trinity/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  1092. package/dist/trinity/eve/locator/EveLocator2.js +2 -2
  1093. package/dist/trinity/eve/locator/EveLocator2.js.map +1 -1
  1094. package/dist/trinity/eve/locator/EveLocatorSets.js +2 -2
  1095. package/dist/trinity/eve/locator/EveLocatorSets.js.map +1 -1
  1096. package/dist/trinity/eve/locator/Locator.js +2 -2
  1097. package/dist/trinity/eve/locator/Locator.js.map +1 -1
  1098. package/dist/trinity/eve/overlays/EveDamageOverlay.js +2 -2
  1099. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  1100. package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js +2 -2
  1101. package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js.map +1 -1
  1102. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +5 -6
  1103. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  1104. package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js +4 -5
  1105. package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  1106. package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js +2 -2
  1107. package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  1108. package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js +2 -2
  1109. package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  1110. package/dist/trinity/eve/renderable/stretch/EveStretch.js +6 -6
  1111. package/dist/trinity/eve/renderable/stretch/EveStretch.js.map +1 -1
  1112. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +10 -8
  1113. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  1114. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +4 -5
  1115. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  1116. package/dist/trinity/eve/scene/EveSpaceScene.js +2 -2
  1117. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  1118. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -2
  1119. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  1120. package/dist/trinity/eve/scene/components/EveComponentRegistry.js +3 -3
  1121. package/dist/trinity/eve/scene/components/EveComponentRegistry.js.map +1 -1
  1122. package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js +6 -7
  1123. package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  1124. package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js +2 -2
  1125. package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
  1126. package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js +4 -8
  1127. package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  1128. package/dist/trinity/eve/smartLights/EveSmartLightMesh.js +7 -4
  1129. package/dist/trinity/eve/smartLights/EveSmartLightMesh.js.map +1 -1
  1130. package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js +25 -15
  1131. package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  1132. package/dist/trinity/eve/smartLights/EveSmartLightQuad.js +4 -9
  1133. package/dist/trinity/eve/smartLights/EveSmartLightQuad.js.map +1 -1
  1134. package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js +2 -2
  1135. package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
  1136. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +2 -3
  1137. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -1
  1138. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +2 -2
  1139. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -1
  1140. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +2 -2
  1141. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -1
  1142. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +10 -18
  1143. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -1
  1144. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +2 -2
  1145. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -1
  1146. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +2 -2
  1147. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -1
  1148. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +4 -9
  1149. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -1
  1150. package/dist/trinity/eve/socket/EveSocketParameterBool.js +2 -2
  1151. package/dist/trinity/eve/socket/EveSocketParameterBool.js.map +1 -1
  1152. package/dist/trinity/eve/socket/EveSocketParameterColor.js +2 -2
  1153. package/dist/trinity/eve/socket/EveSocketParameterColor.js.map +1 -1
  1154. package/dist/trinity/eve/socket/EveSocketParameterFloat.js +2 -2
  1155. package/dist/trinity/eve/socket/EveSocketParameterFloat.js.map +1 -1
  1156. package/dist/trinity/eve/socket/EveSocketParameterInt.js +2 -2
  1157. package/dist/trinity/eve/socket/EveSocketParameterInt.js.map +1 -1
  1158. package/dist/trinity/eve/socket/EveSocketParameterString.js +2 -2
  1159. package/dist/trinity/eve/socket/EveSocketParameterString.js.map +1 -1
  1160. package/dist/trinity/eve/socket/EveSocketParameterVector2.js +2 -2
  1161. package/dist/trinity/eve/socket/EveSocketParameterVector2.js.map +1 -1
  1162. package/dist/trinity/eve/socket/EveSocketParameterVector3.js +2 -2
  1163. package/dist/trinity/eve/socket/EveSocketParameterVector3.js.map +1 -1
  1164. package/dist/trinity/eve/socket/EveSocketParameterVector4.js +2 -2
  1165. package/dist/trinity/eve/socket/EveSocketParameterVector4.js.map +1 -1
  1166. package/dist/trinity/eve/spaceObject/EveEffectRoot2.js +20 -17
  1167. package/dist/trinity/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  1168. package/dist/trinity/eve/spaceObject/EveMissile.js +2 -2
  1169. package/dist/trinity/eve/spaceObject/EveMissile.js.map +1 -1
  1170. package/dist/trinity/eve/spaceObject/EveMissileWarhead.js +2 -2
  1171. package/dist/trinity/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  1172. package/dist/trinity/eve/spaceObject/EveMobile.js +2 -2
  1173. package/dist/trinity/eve/spaceObject/EveMobile.js.map +1 -1
  1174. package/dist/trinity/eve/spaceObject/EveRootTransform.js +2 -2
  1175. package/dist/trinity/eve/spaceObject/EveRootTransform.js.map +1 -1
  1176. package/dist/trinity/eve/spaceObject/EveShip2.js +2 -2
  1177. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  1178. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +525 -431
  1179. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  1180. package/dist/trinity/eve/spaceObject/EveTransform.js +7 -7
  1181. package/dist/trinity/eve/spaceObject/EveTransform.js.map +1 -1
  1182. package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +2 -2
  1183. package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -1
  1184. package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +2 -2
  1185. package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -1
  1186. package/dist/trinity/eve/spaceObject/planet/EvePlanet.js +2 -2
  1187. package/dist/trinity/eve/spaceObject/planet/EvePlanet.js.map +1 -1
  1188. package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js +2 -2
  1189. package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  1190. package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js +7 -8
  1191. package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
  1192. package/dist/trinity/eve/ui/EveConnector.js +2 -2
  1193. package/dist/trinity/eve/ui/EveConnector.js.map +1 -1
  1194. package/dist/trinity/eve/ui/EveEllipseDefinition.js +2 -2
  1195. package/dist/trinity/eve/ui/EveEllipseDefinition.js.map +1 -1
  1196. package/dist/trinity/eve/ui/EveEllipseSet.js +36 -6
  1197. package/dist/trinity/eve/ui/EveEllipseSet.js.map +1 -1
  1198. package/dist/trinity/eve/ui/EveLineContainer.js +4 -5
  1199. package/dist/trinity/eve/ui/EveLineContainer.js.map +1 -1
  1200. package/dist/trinity/eve/ui/EveProjectBracket.js +11 -3
  1201. package/dist/trinity/eve/ui/EveProjectBracket.js.map +1 -1
  1202. package/dist/trinity/eve/ui/EveSpherePin.js +6 -7
  1203. package/dist/trinity/eve/ui/EveSpherePin.js.map +1 -1
  1204. package/dist/trinity/eve/ui/EveSprite2dBracket.js +2 -2
  1205. package/dist/trinity/eve/ui/EveSprite2dBracket.js.map +1 -1
  1206. package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js +2 -2
  1207. package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
  1208. package/dist/trinity/eve/ui/EveTacticalOverlay.js +6 -24
  1209. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  1210. package/dist/trinity/eve/ui/EveUiObject.js +2 -2
  1211. package/dist/trinity/eve/ui/EveUiObject.js.map +1 -1
  1212. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +4 -5
  1213. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  1214. package/dist/trinity/eve/ui/lines/EveLineSet.js +6 -7
  1215. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  1216. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +2 -2
  1217. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -1
  1218. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +8 -9
  1219. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  1220. package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js +2 -2
  1221. package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  1222. package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js +2 -2
  1223. package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  1224. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +2 -2
  1225. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  1226. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +4 -4
  1227. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  1228. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +2 -2
  1229. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  1230. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +2 -2
  1231. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  1232. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +2 -2
  1233. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  1234. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +4 -4
  1235. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  1236. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +2 -2
  1237. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  1238. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +2 -2
  1239. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  1240. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +2 -2
  1241. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  1242. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +2 -2
  1243. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  1244. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +2 -2
  1245. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  1246. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +2 -2
  1247. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  1248. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +2 -2
  1249. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  1250. package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +2 -2
  1251. package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  1252. package/dist/trinity/eve/volume/EveBoxVolume.js +44 -44
  1253. package/dist/trinity/eve/volume/EveBoxVolume.js.map +1 -1
  1254. package/dist/trinity/eve/volume/EveEllipsoidVolume.js +2 -2
  1255. package/dist/trinity/eve/volume/EveEllipsoidVolume.js.map +1 -1
  1256. package/dist/trinity/eve/volume/EveSphereVolume.js +5 -6
  1257. package/dist/trinity/eve/volume/EveSphereVolume.js.map +1 -1
  1258. package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js +2 -2
  1259. package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
  1260. package/dist/trinity/generated/eve/effect/EveOccluder.js +2 -2
  1261. package/dist/trinity/generated/eve/effect/EveOccluder.js.map +1 -1
  1262. package/dist/trinity/generated/eve/effect/EveStarfield.js +2 -2
  1263. package/dist/trinity/generated/eve/effect/EveStarfield.js.map +1 -1
  1264. package/dist/trinity/generated/font/Tr2FontManager.js +2 -2
  1265. package/dist/trinity/generated/font/Tr2FontManager.js.map +1 -1
  1266. package/dist/trinity/generated/font/Tr2FontMeasurer.js +2 -2
  1267. package/dist/trinity/generated/font/Tr2FontMeasurer.js.map +1 -1
  1268. package/dist/trinity/generated/font/Tr2SBitWrapper.js +2 -2
  1269. package/dist/trinity/generated/font/Tr2SBitWrapper.js.map +1 -1
  1270. package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js +2 -2
  1271. package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
  1272. package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js +2 -2
  1273. package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
  1274. package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js +2 -2
  1275. package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
  1276. package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
  1277. package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
  1278. package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js +2 -2
  1279. package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
  1280. package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js +2 -2
  1281. package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
  1282. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
  1283. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
  1284. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js +2 -2
  1285. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
  1286. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js +2 -2
  1287. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
  1288. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js +2 -2
  1289. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
  1290. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js +2 -2
  1291. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
  1292. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js +2 -2
  1293. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
  1294. package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js +2 -2
  1295. package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
  1296. package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js +2 -2
  1297. package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
  1298. package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
  1299. package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
  1300. package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js +2 -2
  1301. package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
  1302. package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js +2 -2
  1303. package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
  1304. package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js +2 -2
  1305. package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
  1306. package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
  1307. package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
  1308. package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js +2 -2
  1309. package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
  1310. package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js +2 -2
  1311. package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
  1312. package/dist/trinity/generated/trinityCore/Tr2SSSSS.js +2 -2
  1313. package/dist/trinity/generated/trinityCore/Tr2SSSSS.js.map +1 -1
  1314. package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js +2 -2
  1315. package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
  1316. package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
  1317. package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
  1318. package/dist/trinity/index.js +23 -16
  1319. package/dist/trinity/index.js.map +1 -1
  1320. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js +1 -31
  1321. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -1
  1322. package/dist/trinity/particle/Tr2ParticleSystem.js +51 -52
  1323. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  1324. package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js +2 -2
  1325. package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
  1326. package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js +2 -2
  1327. package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
  1328. package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js +2 -2
  1329. package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
  1330. package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js +2 -2
  1331. package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
  1332. package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js +2 -2
  1333. package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js.map +1 -1
  1334. package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js +2 -2
  1335. package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js.map +1 -1
  1336. package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js +2 -2
  1337. package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js.map +1 -1
  1338. package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js +13 -3
  1339. package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js.map +1 -1
  1340. package/dist/trinity/particle/constraint/Tr2SphereConstraint.js +2 -2
  1341. package/dist/trinity/particle/constraint/Tr2SphereConstraint.js.map +1 -1
  1342. package/dist/trinity/particle/element/Tr2ParticleElementData.js +22 -8
  1343. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  1344. package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js +13 -25
  1345. package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js.map +1 -1
  1346. package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js +38 -3
  1347. package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js.map +1 -1
  1348. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +26 -27
  1349. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  1350. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +4 -5
  1351. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  1352. package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js +2 -2
  1353. package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js.map +1 -1
  1354. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +17 -18
  1355. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  1356. package/dist/trinity/particle/force/Tr2ForceSphereVolume.js +2 -2
  1357. package/dist/trinity/particle/force/Tr2ForceSphereVolume.js.map +1 -1
  1358. package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js +2 -2
  1359. package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js.map +1 -1
  1360. package/dist/trinity/particle/force/Tr2ParticleDirectForce.js +2 -2
  1361. package/dist/trinity/particle/force/Tr2ParticleDirectForce.js.map +1 -1
  1362. package/dist/trinity/particle/force/Tr2ParticleDragForce.js +2 -2
  1363. package/dist/trinity/particle/force/Tr2ParticleDragForce.js.map +1 -1
  1364. package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js +2 -2
  1365. package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js.map +1 -1
  1366. package/dist/trinity/particle/force/Tr2ParticleSpring.js +2 -2
  1367. package/dist/trinity/particle/force/Tr2ParticleSpring.js.map +1 -1
  1368. package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js +2 -2
  1369. package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js.map +1 -1
  1370. package/dist/trinity/particle/force/Tr2ParticleVortexForce.js +2 -2
  1371. package/dist/trinity/particle/force/Tr2ParticleVortexForce.js.map +1 -1
  1372. package/dist/trinity/particle/index.js +1 -1
  1373. package/dist/trinity/postProcess/Tr2PostProcess.js +2 -2
  1374. package/dist/trinity/postProcess/Tr2PostProcess.js.map +1 -1
  1375. package/dist/trinity/postProcess/Tr2PostProcess2.js +2 -2
  1376. package/dist/trinity/postProcess/Tr2PostProcess2.js.map +1 -1
  1377. package/dist/trinity/postProcess/Tr2PostProcessAttributes.js +2 -2
  1378. package/dist/trinity/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  1379. package/dist/trinity/postProcess/Tr2PostProcessRenderer.js +4 -4
  1380. package/dist/trinity/postProcess/Tr2PostProcessRenderer.js.map +1 -1
  1381. package/dist/trinity/postProcess/Tr2SSAO.js +4 -4
  1382. package/dist/trinity/postProcess/Tr2SSAO.js.map +1 -1
  1383. package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js +2 -2
  1384. package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js.map +1 -1
  1385. package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js +2 -2
  1386. package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js.map +1 -1
  1387. package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js +2 -2
  1388. package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js.map +1 -1
  1389. package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js +2 -2
  1390. package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js.map +1 -1
  1391. package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js +2 -2
  1392. package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js.map +1 -1
  1393. package/dist/trinity/postProcess/effect/Tr2PPEffect.js +2 -2
  1394. package/dist/trinity/postProcess/effect/Tr2PPEffect.js.map +1 -1
  1395. package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js +2 -2
  1396. package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js.map +1 -1
  1397. package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js +2 -2
  1398. package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js.map +1 -1
  1399. package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js +2 -2
  1400. package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js.map +1 -1
  1401. package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js +2 -2
  1402. package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js.map +1 -1
  1403. package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js +2 -2
  1404. package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js.map +1 -1
  1405. package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js +2 -2
  1406. package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js.map +1 -1
  1407. package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js +2 -2
  1408. package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js.map +1 -1
  1409. package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js +2 -2
  1410. package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js.map +1 -1
  1411. package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js +2 -2
  1412. package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js.map +1 -1
  1413. package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js +2 -2
  1414. package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js.map +1 -1
  1415. package/dist/trinity/renderJob/Tr2RenderJobs.js +5 -5
  1416. package/dist/trinity/renderJob/Tr2RenderJobs.js.map +1 -1
  1417. package/dist/trinity/renderJob/TriRenderJob.js +4 -4
  1418. package/dist/trinity/renderJob/TriRenderJob.js.map +1 -1
  1419. package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js +4 -5
  1420. package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js.map +1 -1
  1421. package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js +4 -5
  1422. package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js.map +1 -1
  1423. package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js +2 -2
  1424. package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js.map +1 -1
  1425. package/dist/trinity/renderJob/step/TriRenderStep.js +2 -2
  1426. package/dist/trinity/renderJob/step/TriRenderStep.js.map +1 -1
  1427. package/dist/trinity/renderJob/step/TriStepClear.js +2 -2
  1428. package/dist/trinity/renderJob/step/TriStepClear.js.map +1 -1
  1429. package/dist/trinity/renderJob/step/TriStepClearUav.js +2 -2
  1430. package/dist/trinity/renderJob/step/TriStepClearUav.js.map +1 -1
  1431. package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js +2 -2
  1432. package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js.map +1 -1
  1433. package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js +2 -2
  1434. package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js.map +1 -1
  1435. package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js +2 -2
  1436. package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js.map +1 -1
  1437. package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js +2 -2
  1438. package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js.map +1 -1
  1439. package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js +2 -2
  1440. package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js.map +1 -1
  1441. package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js +2 -2
  1442. package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js.map +1 -1
  1443. package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js +2 -2
  1444. package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js.map +1 -1
  1445. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +2 -2
  1446. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  1447. package/dist/trinity/renderJob/step/TriStepRenderAtlas.js +2 -2
  1448. package/dist/trinity/renderJob/step/TriStepRenderAtlas.js.map +1 -1
  1449. package/dist/trinity/renderJob/step/TriStepRenderDebug.js +2 -2
  1450. package/dist/trinity/renderJob/step/TriStepRenderDebug.js.map +1 -1
  1451. package/dist/trinity/renderJob/step/TriStepRenderEffect.js +2 -2
  1452. package/dist/trinity/renderJob/step/TriStepRenderEffect.js.map +1 -1
  1453. package/dist/trinity/renderJob/step/TriStepRenderFps.js +2 -2
  1454. package/dist/trinity/renderJob/step/TriStepRenderFps.js.map +1 -1
  1455. package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js +2 -2
  1456. package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js.map +1 -1
  1457. package/dist/trinity/renderJob/step/TriStepRenderObject.js +2 -2
  1458. package/dist/trinity/renderJob/step/TriStepRenderObject.js.map +1 -1
  1459. package/dist/trinity/renderJob/step/TriStepRenderPass.js +2 -2
  1460. package/dist/trinity/renderJob/step/TriStepRenderPass.js.map +1 -1
  1461. package/dist/trinity/renderJob/step/TriStepRenderScene.js +2 -2
  1462. package/dist/trinity/renderJob/step/TriStepRenderScene.js.map +1 -1
  1463. package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js +2 -2
  1464. package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js.map +1 -1
  1465. package/dist/trinity/renderJob/step/TriStepRenderTexture.js +2 -2
  1466. package/dist/trinity/renderJob/step/TriStepRenderTexture.js.map +1 -1
  1467. package/dist/trinity/renderJob/step/TriStepResolve.js +2 -2
  1468. package/dist/trinity/renderJob/step/TriStepResolve.js.map +1 -1
  1469. package/dist/trinity/renderJob/step/TriStepRunComputeShader.js +2 -2
  1470. package/dist/trinity/renderJob/step/TriStepRunComputeShader.js.map +1 -1
  1471. package/dist/trinity/renderJob/step/TriStepRunJob.js +2 -2
  1472. package/dist/trinity/renderJob/step/TriStepRunJob.js.map +1 -1
  1473. package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js +2 -2
  1474. package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js.map +1 -1
  1475. package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js +2 -2
  1476. package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js.map +1 -1
  1477. package/dist/trinity/renderJob/step/TriStepSetProjection.js +2 -2
  1478. package/dist/trinity/renderJob/step/TriStepSetProjection.js.map +1 -1
  1479. package/dist/trinity/renderJob/step/TriStepSetRenderState.js +2 -2
  1480. package/dist/trinity/renderJob/step/TriStepSetRenderState.js.map +1 -1
  1481. package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js +2 -2
  1482. package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js.map +1 -1
  1483. package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js +2 -2
  1484. package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js.map +1 -1
  1485. package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js +2 -2
  1486. package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js.map +1 -1
  1487. package/dist/trinity/renderJob/step/TriStepSetVariableStore.js +2 -2
  1488. package/dist/trinity/renderJob/step/TriStepSetVariableStore.js.map +1 -1
  1489. package/dist/trinity/renderJob/step/TriStepSetView.js +2 -2
  1490. package/dist/trinity/renderJob/step/TriStepSetView.js.map +1 -1
  1491. package/dist/trinity/renderJob/step/TriStepSetViewport.js +2 -2
  1492. package/dist/trinity/renderJob/step/TriStepSetViewport.js.map +1 -1
  1493. package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js +2 -2
  1494. package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js.map +1 -1
  1495. package/dist/trinity/renderJob/step/TriStepTestBlocking.js +2 -2
  1496. package/dist/trinity/renderJob/step/TriStepTestBlocking.js.map +1 -1
  1497. package/dist/trinity/renderJob/step/TriStepToggleCubemap.js +2 -2
  1498. package/dist/trinity/renderJob/step/TriStepToggleCubemap.js.map +1 -1
  1499. package/dist/trinity/renderJob/step/TriStepUpdate.js +2 -2
  1500. package/dist/trinity/renderJob/step/TriStepUpdate.js.map +1 -1
  1501. package/dist/trinity/shader/Tr2DataTextureManager.js +9 -9
  1502. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  1503. package/dist/trinity/shader/Tr2Effect.js +370 -347
  1504. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  1505. package/dist/trinity/shader/Tr2Material.js +5 -5
  1506. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  1507. package/dist/trinity/shader/Tr2ShaderBuffer.js +3 -4
  1508. package/dist/trinity/shader/Tr2ShaderBuffer.js.map +1 -1
  1509. package/dist/trinity/shader/index.js +3 -0
  1510. package/dist/trinity/shader/index.js.map +1 -1
  1511. package/dist/trinity/shader/parameter/CjsParameter.js +202 -185
  1512. package/dist/trinity/shader/parameter/CjsParameter.js.map +1 -1
  1513. package/dist/trinity/shader/parameter/CjsVectorParameter.js +2 -2
  1514. package/dist/trinity/shader/parameter/CjsVectorParameter.js.map +1 -1
  1515. package/dist/trinity/shader/parameter/ITriEffectParameter.js +56 -0
  1516. package/dist/trinity/shader/parameter/ITriEffectParameter.js.map +1 -0
  1517. package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js +31 -0
  1518. package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js.map +1 -0
  1519. package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js +43 -0
  1520. package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js.map +1 -0
  1521. package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js +17 -5
  1522. package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
  1523. package/dist/trinity/shader/parameter/Tr2FloatParameter.js +46 -45
  1524. package/dist/trinity/shader/parameter/Tr2FloatParameter.js.map +1 -1
  1525. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +14 -12
  1526. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  1527. package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js +33 -32
  1528. package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  1529. package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js +11 -10
  1530. package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  1531. package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js +55 -53
  1532. package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  1533. package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js +49 -48
  1534. package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  1535. package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js +52 -51
  1536. package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  1537. package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js +56 -55
  1538. package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  1539. package/dist/trinity/shader/parameter/TriFloatArrayParameter.js +8 -8
  1540. package/dist/trinity/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  1541. package/dist/trinity/shader/parameter/TriTextureParameter.js +27 -22
  1542. package/dist/trinity/shader/parameter/TriTextureParameter.js.map +1 -1
  1543. package/dist/trinity/shader/parameter/TriTransformParameter.js +27 -27
  1544. package/dist/trinity/shader/parameter/TriTransformParameter.js.map +1 -1
  1545. package/dist/trinity/shader/parameter/TriVariableParameter.js +53 -54
  1546. package/dist/trinity/shader/parameter/TriVariableParameter.js.map +1 -1
  1547. package/dist/trinity/shader/parameter/TriVector4.js +2 -2
  1548. package/dist/trinity/shader/parameter/TriVector4.js.map +1 -1
  1549. package/dist/trinity/shader/reflection/Tr2ShaderOption.js +4 -2
  1550. package/dist/trinity/shader/reflection/Tr2ShaderOption.js.map +1 -1
  1551. package/dist/trinity/shader/sampler/Tr2SamplerOverride.js +11 -2
  1552. package/dist/trinity/shader/sampler/Tr2SamplerOverride.js.map +1 -1
  1553. package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js +2 -2
  1554. package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
  1555. package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js +2 -2
  1556. package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
  1557. package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js +2 -2
  1558. package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
  1559. package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js +8 -9
  1560. package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
  1561. package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js +2 -2
  1562. package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
  1563. package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js +2 -2
  1564. package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
  1565. package/dist/trinity/sprite2d/Tr2Sprite2dScene.js +4 -4
  1566. package/dist/trinity/sprite2d/Tr2Sprite2dScene.js.map +1 -1
  1567. package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js +2 -2
  1568. package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
  1569. package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js +2 -2
  1570. package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
  1571. package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js +2 -2
  1572. package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
  1573. package/dist/trinity/ui/Tr2PresentParameters.js +2 -2
  1574. package/dist/trinity/ui/Tr2PresentParameters.js.map +1 -1
  1575. package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js +3 -3
  1576. package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js.map +1 -1
  1577. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -1
  1578. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  1579. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  1580. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  1581. package/docs/core/README.md +38 -38
  1582. package/docs/core/architecture.md +6 -5
  1583. package/docs/core/reference/api.md +0 -10
  1584. package/docs/core/reference/classes/README.md +57 -67
  1585. package/docs/global/architecture.md +1 -3
  1586. package/docs/global/blue-enums.md +115 -0
  1587. package/docs/global/concepts/model-lifecycle.md +177 -182
  1588. package/docs/global/core-types/README.md +394 -317
  1589. package/docs/global/reference/api.md +2 -2
  1590. package/docs/global/reference/classes/README.md +355 -205
  1591. package/docs/global/reference/classes/dropped.md +40 -0
  1592. package/docs/resource/architecture.md +152 -112
  1593. package/docs/resource/concepts/resource-lifecycle.md +14 -10
  1594. package/docs/resource/formats/pickle.md +126 -100
  1595. package/docs/resource/formats/provenance.md +15 -9
  1596. package/docs/resource/formats/webgl/carbon-constant-layouts.md +98 -232
  1597. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +278 -530
  1598. package/docs/resource/reference/classes/README.md +3 -1
  1599. package/docs/resource/reference/classes/dropped.md +21 -1
  1600. package/docs/resource/reference/classes/formats.md +33 -0
  1601. package/docs/resource/reference/classes/video.md +92 -0
  1602. package/docs/resource/reference/events.md +10 -9
  1603. package/docs/resource/reference/queues.md +8 -1
  1604. package/docs/trinity/README.md +5 -5
  1605. package/docs/trinity/architecture.md +355 -344
  1606. package/docs/trinity/concepts/eve-runtime-behavior.md +1 -1
  1607. package/docs/trinity/reference/api.md +19 -7
  1608. package/docs/trinity/reference/classes/dropped.md +2 -11
  1609. package/docs/trinity/reference/classes/eve-runtime.md +1 -1
  1610. package/docs/trinity/reference/classes/trinity-core.md +1672 -1622
  1611. package/docs/trinity/reference/implementation-status.md +92 -92
  1612. package/package.json +2 -1
  1613. package/dist/core/CjsFrameDriver.js +0 -109
  1614. package/dist/core/CjsFrameDriver.js.map +0 -1
  1615. package/dist/global/contracts/CjsFrameLifecycle.js +0 -49
  1616. package/dist/global/contracts/CjsFrameLifecycle.js.map +0 -1
  1617. package/dist/global/contracts/CjsInstancedMeshManager.js +0 -58
  1618. package/dist/global/contracts/CjsInstancedMeshManager.js.map +0 -1
  1619. package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js +0 -4
  1620. package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EveChildMesh.js","sources":["../../../../../src/trinity/eve/child/EveChildMesh.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh.h\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh_Blue.cpp\nimport { mat4 } from \"#math/mat4\";\nimport { quat } from \"#math/quat\";\nimport { sph3 } from \"#math/sph3\";\nimport { vec3 } from \"#math/vec3\";\nimport { getBoneList } from \"../../core/animation/Tr2GrannyAnimation.js\";\nimport { vec4 } from \"#math/vec4\";\nimport { carbon, impl, io, type } from \"#schema\";\nimport { ReflectionMode, TriBatchType } from \"#consts/graphics\";\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\nimport { Origin } from \"../../generated/eve/child/enums.js\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\nimport { Tr2PerObjectData } from \"../../core/rawData/perObjectData/Tr2PerObjectData.js\";\nimport { IEveSpaceObject2ParentData } from \"../spaceObject/IEveSpaceObject2ParentData.js\";\nimport { TR2_PICK_TYPE_DEFAULT, Tr2PickType } from \"../../core/view/Tr2PickType.js\";\nimport {\n createChildPerObjectRecords,\n inheritParentPerObjectData,\n stampChildTransforms\n} from \"../perObjectData/childPerObjectRecords.js\";\nimport { Float4x3 } from \"../../utilities/Float4x3.js\";\nimport { EveCollectAreas } from \"./EveSpaceObjectChild.js\";\nimport { EveGetLocatorPose } from \"../locator/EveLocatorSets.js\";\nimport { EveDamageOverlay } from \"../overlays/EveDamageOverlay.js\";\nimport {\n CollectOverlayAreaBlocks,\n EmitDamageOverlayBatches,\n EmitOverlayBatches\n} from \"../overlays/overlayBatches.js\";\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\n\n// Module scratch for the hot per-frame visibility/shadow paths (allocation\n// rules: copy-into, never allocate per call; child updates run sequentially so\n// the scratch is non-reentrant by construction).\nconst INVERSE_WORLD_SCRATCH = mat4.create();\nconst LOCAL_VIEW_SCRATCH = vec3.create();\nconst INSTANCE_SPHERE_SCRATCH = vec4.create();\nconst SHADOW_SPHERE_SCRATCH = vec4.create();\nconst BOX_CORNER_SCRATCH = vec3.create();\nconst BOX_QUERY_SCRATCH = { min: vec3.create(), max: vec3.create() };\nconst ZERO_VEC3 = vec3.create();\n\n// Carbon's (nullptr, 0) bone result - frozen so callers cannot mutate it.\nconst NO_BONE_TRANSFORMS = Object.freeze({ bones: null, boneCount: 0 });\n\n\n/**\n * Space-object child that draws one mesh under its own transform, owning its\n * decals, lights, attachments, morph weights, world bounds and screen-size LOD\n * state.\n */\n@type.define({ className: \"EveChildMesh\", family: \"eve/child\" })\nexport class EveChildMesh extends withITr2Renderable(EveChildTransform)\n{\n #isMorphsBaked = false;\n\n #morphAnimationBuffer = [];\n\n #morphAnimationOffsets = {\n runtimeEvaluatedOffset: 0,\n runtimeEvaluatedCount: 0,\n bakedOffset: 0,\n bakedCount: 0,\n allCount: 0\n };\n\n // Carbon m_isVisible/m_instancesVisible/m_hasUpdated/m_activationStrength:\n // runtime-only frame state (never persisted; Carbon keeps them out of the\n // Blue surface too).\n #isVisible = false;\n\n #instancesVisible = false;\n\n #hasUpdated = false;\n\n #activationStrength = 1;\n\n /** m_vsData / m_psData - this child's PERSISTENT per-object record pair. */\n #perObjectData = createChildPerObjectRecords();\n\n /** Carbon's local `lastWorldTransform` (cpp:912), kept across frames here. */\n #lastWorldTransform = mat4.create();\n\n // Carbon m_worldBoundingBox/m_worldBoundingSphere: world-space bounds\n // refreshed by UpdateAsyncronous; the sphere is invalid while radius <= 0.\n #worldBoundsMin = vec3.create();\n\n #worldBoundsMax = vec3.create();\n\n #worldBoundsValid = false;\n\n #worldBoundingSphere = vec4.create();\n\n /** Identity rest-pose palette for skinned shaders without live animation. */\n #restPoseBoneTransforms = null;\n\n #parentOverlayEffects = null;\n\n /** m_parentData (IEveSpaceObject2::ParentData) - refreshed from the space\n * object parent in UpdateSyncronous and handed to the decals (cpp:1015, 450). */\n #parentData = new IEveSpaceObject2ParentData();\n\n #overlayAreaBlocks = [ [], [] ];\n\n #overlayAreaBlocksBuilt = false;\n\n // Carbon sets these two programmatically from SOF (EveSOF.cpp:3971-3972);\n // CarbonEngineJS delivers built objects as documents, so both persist.\n @io.persist\n @type.list(\"EveLocatorSets\")\n ownedLocatorSets = [];\n\n @io.persist\n @type.objectRef(\"Tr2Effect\")\n armorDamageShader = null;\n\n /**\n * Clears the private visibility state for a derived child whose own Carbon\n * cull rejects it before EveChildMesh::UpdateVisibility runs.\n *\n * EveChildInstanceMeshRenderer owns exactly that two-stage cull. Keeping the\n * mutation here preserves one state owner instead of shadowing the four\n * private values in the subclass.\n */\n _ResetVisibilityState()\n {\n this.#isVisible = false;\n this.currentScreenSize = -1;\n this.#instancesVisible = false;\n this.currentInstanceScreenSize = -1;\n }\n\n /** Carbon-derived classes read m_activationStrength after the mesh update. */\n _GetActivationStrength()\n {\n return this.#activationStrength;\n }\n\n @io.notify\n @io.persist\n @type.int32\n @type.enum(\"ReflectionMode\")\n reflectionMode = 3;\n\n @io.persist\n @type.list(\"IEveChildTransformModifier\")\n transformModifiers = [];\n\n @io.read\n @type.mat4\n worldTransform = mat4.create();\n\n @io.notify\n @io.persist\n @type.boolean\n display = true;\n\n @io.persist\n @type.boolean\n inheritOverlayEffects = true;\n\n @io.persist\n @type.list(\"EveMeshOverlayEffect\")\n overlayEffects = [];\n\n @io.persist\n @type.objectRef(\"EveDamageOverlay\")\n damageOverlay = null;\n\n @io.notify\n @io.persist\n @type.boolean\n castShadow = false;\n\n @io.notify\n @io.persist\n @type.objectRef(\"Tr2MeshBase\")\n mesh = null;\n\n @io.persist\n @type.string\n name = \"\";\n\n @io.persist\n @type.quat\n rotation = quat.create();\n\n @io.persist\n @type.vec3\n translation = vec3.create();\n\n @io.persist\n @type.vec3\n scaling = vec3.fromValues(1, 1, 1);\n\n @io.persist\n @type.mat4\n localTransform = mat4.create();\n\n @io.persist\n @type.list(\"EveSpaceObjectDecal\")\n decals = [];\n\n @io.persist\n @type.boolean\n staticTransform = false;\n\n @io.notify\n @io.persist\n @type.objectRef(\"Tr2GrannyAnimation\")\n animationUpdater = null;\n\n @io.persist\n @type.list(\"IEveSpaceObjectAttachment\")\n attachments = [];\n\n @io.persist\n @type.list(\"Tr2Light\")\n lights = [];\n\n @io.persist\n @type.int32\n @type.enum(\"Tr2Lod\")\n lowestLodVisible = 0;\n\n @io.persist\n @type.float32\n minScreenSize = 0;\n\n @io.persist\n @type.float32\n sortValueOffset = 0;\n\n @io.persist\n @type.float32\n sortValueScale = 1;\n\n @io.read\n @type.float32\n currentScreenSize = -1;\n\n @io.read\n @type.float32\n currentInstanceScreenSize = -1;\n\n @io.persist\n @type.boolean\n useSRT = true;\n\n @io.persist\n @type.boolean\n updateAnimation = true;\n\n // SOF-authored placement/instance values; persisted so the values\n // interchange reproduces Carbon's hidden child placement state.\n @io.persist\n @type.int32\n @type.enum(\"Origin\")\n origin = 0;\n\n @io.rebuild(\"instanceBuffer\")\n @io.persist\n @type.array(\"mat4\")\n instanceTransforms = [];\n\n @io.persist\n @type.string\n sofDna = \"\";\n\n @io.persist\n @type.string\n sofParentHullName = \"\";\n\n @io.persist\n @type.string\n sofLocatorSetName = \"\";\n\n @io.persist\n @type.string\n sofLocatorIndex = \"\";\n\n /**\n * Rebuilds the local transform up front when the child is marked\n * staticTransform, since UpdateTransform will not rebuild it on later frames.\n */\n @carbon.method\n @impl.adapted\n Initialize()\n {\n if (this.staticTransform)\n {\n this.RebuildLocalTransform();\n }\n\n // cpp:84 - bind the updater to this mesh's geometry.\n this.InitializeAnimation();\n\n return true;\n }\n\n /**\n * Applies the authored scale/rotation/translation and, when supplied, the\n * lowest LOD level at which the child stays visible; returns the rebuilt local\n * transform.\n */\n @carbon.method\n @impl.implemented\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\n {\n super.Setup(scale, rotation, translation, lowestLodVisible);\n if (lowestLodVisible !== null && lowestLodVisible !== undefined)\n {\n this.lowestLodVisible = Number(lowestLodVisible) | 0;\n }\n return this.localTransform;\n }\n\n /**\n * Replaces the instance placement list with clones of the supplied matrices, so later caller mutations do not reach the child.\n * @param {Iterable<Float32Array>} instances - 16-value matrices; a wrongly sized entry throws TypeError\n * @returns {Array<Float32Array>} the stored list\n */\n @carbon.method\n @impl.implemented\n SetInstanceTransforms(instances)\n {\n const next = [];\n for (const transform of instances ?? [])\n {\n if (!transform || transform.length !== 16)\n {\n throw new TypeError(\"EveChildMesh instance transforms must contain 16 values\");\n }\n next.push(mat4.clone(transform));\n }\n this.instanceTransforms = next;\n return this.instanceTransforms;\n }\n\n /**\n * Returns the live instance transform list, not a copy - mutating it changes\n * what the child renders.\n */\n @carbon.method\n @impl.adapted\n GetInstanceTransforms()\n {\n return this.instanceTransforms;\n }\n\n /**\n * Assigns the Tr2MeshBase this child draws; a nullish value clears it, which\n * also makes the child permanently invisible (UpdateVisibility requires a\n * mesh).\n */\n @carbon.method\n @impl.implemented\n SetMesh(mesh)\n {\n this.mesh = mesh ?? null;\n this.#overlayAreaBlocksBuilt = false;\n this.#restPoseBoneTransforms = null;\n }\n\n /** Appends an overlay owned by this child; inherited hull overlays render after it. */\n @carbon.method\n @impl.implemented\n AddOverlayEffect(effect)\n {\n if (!effect) throw new TypeError(\"EveChildMesh overlay effect must not be null\");\n this.overlayEffects.push(effect);\n }\n\n /** Removes the first matching owned overlay. */\n @carbon.method\n @impl.implemented\n RemoveOverlayEffect(effect)\n {\n const index = this.overlayEffects.indexOf(effect);\n if (index !== -1) this.overlayEffects.splice(index, 1);\n }\n\n /** Returns the first owned overlay whose authored name matches. */\n @carbon.method\n @impl.implemented\n GetOverlayEffectByName(name)\n {\n return this.overlayEffects.find(effect => effect.name === String(name)) ?? null;\n }\n\n /**\n * Records whether this child's placement was authored in space or by SOF (the\n * Origin enum).\n */\n @carbon.method\n @impl.implemented\n SetOrigin(origin)\n {\n this.origin = Number(origin) | 0;\n }\n\n /**\n * Copies the given scale into the child's SRT scaling; it reaches the world\n * transform on the next local-transform rebuild.\n */\n @carbon.method\n @impl.implemented\n SetScale(scale)\n {\n vec3.copy(this.scaling, scale);\n }\n\n /**\n * Sets the reflection mode, which decides whether the child registers as a\n * ReflectionRenderable and whether it casts shadows during reflection passes.\n */\n @carbon.method\n @impl.implemented\n SetReflectionMode(mode)\n {\n this.reflectionMode = Number(mode) | 0;\n }\n\n /**\n * Sets whether the child registers as a shadow caster and contributes opaque\n * shadow batches.\n */\n @carbon.method\n @impl.implemented\n SetCastShadow(castShadow)\n {\n this.castShadow = !!castShadow;\n }\n\n /**\n * Sets the minimum screen size, in pixels across, that the child's world\n * bounding sphere must reach - after the frame's inverse LOD factor scaling -\n * before UpdateVisibility marks it visible.\n */\n @carbon.method\n @impl.implemented\n SetMinScreenSize(minScreenSize)\n {\n this.minScreenSize = Number(minScreenSize);\n }\n\n /** Carbon EveChildMesh::GetLocalToWorldTransform (cpp:1047-1050); the\n * optional out follows the EveChildInstancedMeshes copy-out shape. */\n @carbon.method\n @impl.implemented\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n /**\n * The authored name, persisted with the child and used to identify it in the\n * parent graph.\n */\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n /** Sets the authored child name, coercing nullish to the empty string. */\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n /**\n * Appends a transform modifier; modifiers fold over the child's world\n * transform in insertion order on each async update.\n */\n @carbon.method\n @impl.implemented\n AddTransformModifier(modifier)\n {\n this.transformModifiers.push(modifier);\n }\n\n /**\n * Appends a decal; decals refresh their visibility only while the child itself\n * is visible, and ride along in GetRenderables when the mesh has a geometry\n * resource.\n */\n @carbon.method\n @impl.implemented\n AddDecal(decal)\n {\n this.decals.push(decal);\n }\n\n /**\n * Appends an attachment; attachments refresh their lights and visibility every\n * frame regardless of the child's own visibility.\n */\n @carbon.method\n @impl.implemented\n AddAttachment(attachment)\n {\n this.attachments.push(attachment);\n }\n\n /**\n * Drops every attachment, removing their lights, batches and visibility\n * updates from this child.\n */\n @carbon.method\n @impl.implemented\n ClearAttachments()\n {\n this.attachments.length = 0;\n }\n\n /**\n * Appends a light, submitted to the light manager from the child's world\n * transform while the child displays.\n */\n @carbon.method\n @impl.implemented\n AddLight(light)\n {\n this.lights.push(light);\n }\n\n /**\n * Drops every light, which also stops the child registering as a LightOwner on\n * the next component registration.\n */\n @carbon.method\n @impl.implemented\n ClearLights()\n {\n this.lights.length = 0;\n }\n\n /** Returns true unconditionally - a child mesh reports itself as always on. */\n @carbon.method\n @impl.implemented\n IsAlwaysOn()\n {\n return true;\n }\n\n /** Forwards a shader option to the mesh, every decal and every attachment. */\n @carbon.method\n @impl.implemented\n SetShaderOption(name, value)\n {\n this.mesh?.SetShaderOption?.(name, value);\n for (const decal of this.decals)\n {\n decal?.SetShaderOption?.(name, value);\n }\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n attachment.SetShaderOption(name, value);\n }\n }\n\n /**\n * Names of the mesh's morph targets in index order, or an empty array when the\n * mesh exposes none; the indices line up with the records GetMorphTargets\n * returns.\n */\n @carbon.method\n @impl.adapted\n GetMorphTargetNames()\n {\n return this.mesh?.GetMorphTargetNames?.() ?? [];\n }\n\n /**\n * Writes a named morph weight on the mesh; it only reaches the render path\n * after the next UpdateMorphAnimationBuffer pass re-sorts the indexed buffer.\n */\n @carbon.method\n @impl.adapted\n SetMorphTargetWeight(name, weight)\n {\n this.mesh?.SetMorphTargetWeight?.(name, weight);\n }\n\n /**\n * Reads a named morph weight straight from the mesh (0 when it has no such\n * target), bypassing any animation-driven value the morph buffer may have\n * applied.\n */\n @carbon.method\n @impl.adapted\n GetMorphTargetWeight(name)\n {\n return this.mesh?.GetMorphTargetWeight?.(name) ?? 0;\n }\n\n /** Rebuilds the source-backed indexed morph buffer from manual and animation weights. */\n @impl.adapted\n UpdateMorphAnimationBuffer()\n {\n const names = this.mesh?.GetMorphTargetNames?.();\n\n this.#morphAnimationOffsets = {\n runtimeEvaluatedOffset: 0,\n runtimeEvaluatedCount: 0,\n bakedOffset: 0,\n bakedCount: 0,\n allCount: 0\n };\n\n if (!Array.isArray(names))\n {\n this.#morphAnimationBuffer = [];\n return 0;\n }\n\n const manual = this.mesh?.GetMorphAnimations?.();\n const records = names.map((name, index) => ({\n index,\n weight: ReadMorphWeight(\n ReadNamedMorph(manual, name) ?? this.mesh?.GetMorphTargetWeight?.(name) ?? 0,\n name,\n \"mesh\"\n ),\n baked: !!(this.mesh?.IsBakedMorph?.(index)\n ?? this.mesh?.GetBakedMorphTarget?.(name)\n ?? false)\n }));\n\n if (this.animationUpdater?.IsInitialized?.())\n {\n const animated = this.animationUpdater.GetMorphAnimations?.();\n\n for (const record of records)\n {\n const name = names[record.index];\n const value = ReadNamedMorph(animated, name);\n\n if (value !== undefined)\n {\n record.weight = ReadMorphWeight(value, name, \"animation\");\n }\n }\n }\n\n const runtime = [];\n const baked = [];\n const inactive = [];\n\n for (const record of records)\n {\n if (record.weight >= 0.001)\n {\n (record.baked ? baked : runtime).push(record);\n }\n else\n {\n inactive.push(record);\n }\n }\n\n this.#morphAnimationBuffer = [ ...runtime, ...baked, ...inactive ];\n this.#morphAnimationOffsets.runtimeEvaluatedCount = runtime.length;\n this.#morphAnimationOffsets.bakedOffset = runtime.length;\n this.#morphAnimationOffsets.bakedCount = baked.length;\n this.#morphAnimationOffsets.allCount = runtime.length + baked.length;\n return this.#morphAnimationOffsets.allCount;\n }\n\n /** Returns detached active indexed morph records for the native filter. */\n @impl.adapted\n GetMorphTargets(filter = 2)\n {\n const normalized = NormalizeMorphFilter(filter);\n let offset = 0;\n let count = 0;\n\n if (normalized === 2)\n {\n count = this.#morphAnimationOffsets.allCount;\n }\n else if (normalized === 0)\n {\n offset = this.#isMorphsBaked\n ? this.#morphAnimationOffsets.runtimeEvaluatedOffset\n : 0;\n count = this.#isMorphsBaked\n ? this.#morphAnimationOffsets.runtimeEvaluatedCount\n : this.#morphAnimationOffsets.allCount;\n }\n else\n {\n offset = this.#morphAnimationOffsets.bakedOffset;\n count = this.#morphAnimationOffsets.bakedCount;\n }\n\n return this.#morphAnimationBuffer.slice(offset, offset + count)\n .map(value => ({ index: value.index, weight: value.weight }));\n }\n\n /**\n * Always returns null: a child mesh exposes no packed area-id lookup, since\n * its SOF identity lives directly on its\n * sofParentHullName/sofLocatorSetName/sofLocatorIndex fields.\n */\n @carbon.method\n @impl.adapted\n GetSofSourceLocator()\n {\n return null;\n }\n\n /**\n * Sync-side frame update (Carbon EveChildMesh::UpdateSyncronous,\n * cpp:1002-1045). Carbon's body is entirely audio-geometry registration\n * (cpp:1004-1010, 1044 - engine/audio-owned, omitted) plus animationUpdater\n * re-binding and PrePhysicsAnimation stepping (cpp:1011-1042 - skipped: the\n * JS animation seam is absent, there is no Tr2GrannyAnimation runtime), so\n * the port is a documented frame-contract no-op.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Audio-geometry registration is engine-owned and the animationUpdater branches await the JS animation seam; nothing else remains in Carbon's body.\")\n UpdateSyncronous(updateContext, _params)\n {\n if (this.damageOverlay) this.damageOverlay.UpdateSyncronous(updateContext);\n\n const time = updateContext.GetTime();\n for (const overlay of this.overlayEffects) overlay.Update(time, time);\n }\n\n /**\n * Per-frame async update (Carbon EveChildMesh::UpdateAsyncronous,\n * cpp:903-1000): rebuild the world transform from the parent, fold the\n * transform modifiers over it, store the activation strength, refresh the\n * attachment lights, the morph buffer, and the world bounds. The GPU ring\n * buffer advance/per-object-data invalidation (cpp:905-909), audio geometry\n * (cpp:920-930), parent VS/PS struct refresh (cpp:932-960), and the skinned\n * GetBounds overload are not modelled, hence @impl.adapted.\n * @param {Object} updateContext - frame context (EveUpdateContext), threaded to modifiers\n * @param {EveChildUpdateParams} params - localToWorldTransform + boneCount/bones\n * @returns {Float32Array} worldTransform\n */\n @carbon.method\n @carbon.contextual([\"camera\"])\n @impl.adapted\n UpdateAsyncronous(updateContext, params)\n {\n const parentTransform = params?.localToWorldTransform;\n\n // Carbon captures the OUTGOING transform before rebuilding (cpp:912).\n mat4.copy(this.#lastWorldTransform, this.worldTransform);\n\n if (parentTransform && parentTransform.length === 16)\n {\n this.UpdateTransform(parentTransform);\n }\n\n applyTransformModifiers(\n this,\n updateContext,\n params?.boneCount ?? 0,\n params?.bones ?? null\n );\n\n // Carbon cpp:932-954: inherit the hull's per-object values, rebase the clip\n // data by this child's translation, then stamp our own transforms.\n const parent = params?.spaceObjectParent ?? null;\n inheritParentPerObjectData(this.#perObjectData, parent, this.translation);\n // Carbon cpp:1015: the decals' parent data comes from the space object\n // parent, then is made relevant to this child below.\n if (parent) parent.GetParentData(this.#parentData);\n this.#parentOverlayEffects = this.inheritOverlayEffects && Array.isArray(parent?.overlayEffects)\n ? parent.overlayEffects\n : null;\n if (parent && !this.inheritOverlayEffects)\n {\n this.#perObjectData.vs.Set(\"clipData\", [ 0, 0, 0, 0 ]);\n this.#perObjectData.ps.Set(\"clipRadiusSq\", [ 0 ]);\n this.#perObjectData.ps.Set(\"clipRadius2Sq\", [ 0 ]);\n this.#perObjectData.ps.Set(\"clipSphereFactor\", [ 0 ]);\n this.#perObjectData.ps.Set(\"clipSphereFactor2\", [ 0 ]);\n // cpp:1033-1036: the decals lose the inherited clip sphere too.\n this.#parentData.clipRadiusSq = 0;\n this.#parentData.clipRadius2Sq = 0;\n this.#parentData.clipFactor = 0;\n this.#parentData.clipFactor2 = 0;\n }\n // cpp:1044: the decals are placed by this child's world transform.\n if (parent) mat4.copy(this.#parentData.transform, this.worldTransform);\n stampChildTransforms(this.#perObjectData, this.worldTransform, this.#lastWorldTransform);\n\n this.#activationStrength = Number(params?.activationStrength ?? 1);\n if (this.damageOverlay)\n {\n const flicker = this.damageOverlay.GetActivationStrength(updateContext);\n this.#activationStrength *= flicker;\n const shipData = this.#perObjectData.ps.Get(\"shipData\");\n this.#perObjectData.ps.Set(\"shipData\", [ shipData[0], parent ? shipData[1] * flicker : flicker, shipData[2], shipData[3] ]);\n this.#perObjectData.ps.Set(\"impactDataOffset\", [ this.damageOverlay.GetDataTextureOffset() ]);\n }\n\n // Carbon (cpp:962-970): attachments refresh their lights from the updated\n // world transform. Bones come from GetBoneTransforms (animationUpdater) -\n // null until the JS animation seam exists.\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n attachment.UpdateLights(this.worldTransform, null, 0, this.#activationStrength, 0);\n }\n\n this.UpdateMorphAnimationBuffer();\n\n // Carbon (cpp:974-997): world AABB from the mesh bounds, world sphere\n // enclosing it. The skinned GetBounds overload (animation transforms +\n // morph targets, cpp:977-982) awaits the animation seam; the maintained\n // Tr2MeshBase GetBounds supplies the static/material bounds meanwhile.\n this.#worldBoundsValid = false;\n const bounds = this.mesh ? this.mesh.GetBounds() : null;\n\n if (bounds?.min && bounds?.max)\n {\n this.#worldBoundsMin[0] = this.#worldBoundsMin[1] = this.#worldBoundsMin[2] = Infinity;\n this.#worldBoundsMax[0] = this.#worldBoundsMax[1] = this.#worldBoundsMax[2] = -Infinity;\n for (let index = 0; index < 8; index++)\n {\n vec3.set(\n BOX_CORNER_SCRATCH,\n index & 1 ? bounds.max[0] : bounds.min[0],\n index & 2 ? bounds.max[1] : bounds.min[1],\n index & 4 ? bounds.max[2] : bounds.min[2]\n );\n vec3.transformMat4(BOX_CORNER_SCRATCH, BOX_CORNER_SCRATCH, this.worldTransform);\n vec3.min(this.#worldBoundsMin, this.#worldBoundsMin, BOX_CORNER_SCRATCH);\n vec3.max(this.#worldBoundsMax, this.#worldBoundsMax, BOX_CORNER_SCRATCH);\n }\n this.#worldBoundsValid = true;\n sph3.fromBounds(this.#worldBoundingSphere, this.#worldBoundsMin, this.#worldBoundsMax);\n }\n else\n {\n sph3.set(this.#worldBoundingSphere, 0, 0, 0, 0);\n }\n\n if (this.damageOverlay)\n {\n const localSphere = vec4.fromValues(0, 0, 0, -1);\n if (bounds?.min && bounds?.max)\n {\n const cx = (bounds.min[0] + bounds.max[0]) * 0.5;\n const cy = (bounds.min[1] + bounds.max[1]) * 0.5;\n const cz = (bounds.min[2] + bounds.max[2]) * 0.5;\n vec4.set(localSphere, cx, cy, cz,\n Math.hypot(bounds.max[0] - cx, bounds.max[1] - cy, bounds.max[2] - cz));\n }\n this.damageOverlay.UpdateAsyncronous(updateContext, {\n boundingSphere: localSphere,\n estimatedPixelDiameter: Math.max(this.currentScreenSize, 0),\n isInFrustum: this.#isVisible,\n // Bind pose, not animated: the overlay seeds decals at the stable\n // authored position (Carbon EveChildMesh.cpp:1130, commit 98ee5e08).\n getDamageLocatorPositionOS: (index, out) => this.GetDamageLocatorBindPositionLocal(index, out)\n }, 0, false);\n }\n\n this.#hasUpdated = true;\n return this.worldTransform;\n }\n\n /**\n * Frame visibility + LOD state (Carbon EveChildMesh::UpdateVisibility,\n * cpp:366-463): screen size via the frustum, invLodFactor scaling, the\n * minScreenSize/lowestLodVisible gates, the per-instance visibility gate,\n * and the attachment/decal visibility fan-out. Carbon recomputes the local\n * mesh bounds here (cpp:380-394) but consumes only the world sphere/box\n * computed in UpdateAsyncronous, so the dead recompute is skipped. The\n * raytracing branch (cpp:450-462) is engine-owned and omitted.\n * @param {Object} updateContext - frame context (frustum + invLodFactor ducks)\n * @param {Float32Array} _parentTransform\n * @param {Number} parentLod - parent Tr2Lod level\n * @returns {Boolean} isVisible\n */\n /**\n * The mesh's bone palette, as a borrowed Float4x3 buffer and its bone count.\n *\n * Carbon `EveChildMesh::GetBoneTransforms` (cpp:1285-1307). Carbon branches:\n * the updater's own palette when it has a mesh binding, otherwise a separate\n * `Tr2AnimationMeshBinding` palette. Only the first branch exists here -\n * `Tr2AnimationMeshBinding` is unported - so a mesh relying on the second\n * gets no bones rather than the wrong ones.\n *\n * Carbon also assigns `accumulatedTransforms` and never reads it; that dead\n * local is not reproduced.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Tr2AnimationMeshBinding remains unported; Carbon's identity rest-pose fallback is used when neither live palette source is available.\")\n GetBoneTransforms()\n {\n const updater = this.animationUpdater;\n\n if (!updater || !updater.IsInitialized())\n {\n return this.GetRestPoseBoneTransforms();\n }\n\n // cpp:1297-1302 - the updater's own palette when it binds to the mesh.\n if (updater.HasMeshBinding())\n {\n return getBoneList(updater);\n }\n\n // A maintained Tr2AnimationMeshBinding would be consulted here. Until that\n // source exists, Carbon's final identity rest-pose path is the safe result.\n return this.GetRestPoseBoneTransforms();\n }\n\n /**\n * Builds Carbon's identity Float4x3 rest-pose palette. Geometry with no bone\n * bindings still receives one identity because skinned shaders read bone 0.\n */\n @impl.implemented\n GetRestPoseBoneTransforms()\n {\n const geometry = this.mesh ? this.mesh.GetGeometryResource() : null;\n if (!geometry)\n {\n return NO_BONE_TRANSFORMS;\n }\n\n const meshIndex = Number(this.mesh.GetMeshIndex()) >>> 0;\n const mesh = geometry.GetMeshData(meshIndex);\n const boneCount = Math.max(mesh?.boneBindings?.length ?? 0, 1);\n\n if (!this.#restPoseBoneTransforms || this.#restPoseBoneTransforms.length !== boneCount * 12)\n {\n const identity = Float4x3.fromMat4(mat4.create());\n this.#restPoseBoneTransforms = new Float32Array(boneCount * 12);\n for (let index = 0; index < boneCount; index++)\n {\n this.#restPoseBoneTransforms.set(identity, index * 12);\n }\n }\n\n return { bones: this.#restPoseBoneTransforms, boneCount };\n }\n\n /**\n * Resolves this child's visibility for the frame from its world bounding\n * sphere, the parent LOD, and the authored screen-size thresholds, recording\n * the mesh and per-instance screen sizes the batch path then draws at.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Bone-fed decal bounds still await the decal seam and the raytracing refresh is engine-owned; the LOD/screen-size math and the bone-fed attachment pass are ported.\")\n UpdateVisibility(updateContext, _parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\n {\n this.#isVisible = false;\n this.currentScreenSize = -1;\n this.#instancesVisible = false;\n this.currentInstanceScreenSize = -1;\n\n if (!this.#hasUpdated)\n {\n return false;\n }\n\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n const invLodFactor = Number(updateContext?.GetInvLodFactor?.() ?? updateContext?.invLodFactor) || 1;\n\n if (this.mesh)\n {\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccross?.(this.#worldBoundingSphere) ?? Infinity) || 0;\n\n // Cached Tr2InstancedMesh downcast in Carbon (m_instancedMesh); the JS\n // port duck-types the instanced surface instead.\n const instanced = typeof this.mesh.GetInstanceBoundsClosestToPoint === \"function\";\n let instanceBounds = null;\n\n if (instanced)\n {\n // Carbon: TransformCoord(frustum.m_viewPos, Inverse(m_worldTransform))\n // - a single-matrix point transform (no composition; TransformCoord\n // maps to vec3.transformMat4 unchanged per the math conventions).\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\n {\n mat4.identity(INVERSE_WORLD_SCRATCH);\n }\n const viewPos = frustum?.viewPos ?? ZERO_VEC3;\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, viewPos, INVERSE_WORLD_SCRATCH);\n instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\n }\n\n if (instanceBounds)\n {\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\n // sphere transform, ported via sph3.transformMat4.\n sph3.set(\n INSTANCE_SPHERE_SCRATCH,\n instanceBounds.center[0],\n instanceBounds.center[1],\n instanceBounds.center[2],\n instanceBounds.radius\n );\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\n this.currentInstanceScreenSize = Number(frustum?.GetPixelSizeAccross?.(INSTANCE_SPHERE_SCRATCH) ?? Infinity) || 0;\n this.mesh.UseWithScreenSize?.(this.currentInstanceScreenSize, INSTANCE_SPHERE_SCRATCH[3]);\n }\n else\n {\n // Carbon uses std::numeric_limits<float>::max(); Infinity keeps the\n // instance gate permanently open the same way.\n this.currentInstanceScreenSize = Infinity;\n this.mesh.UseWithScreenSize?.(this.currentScreenSize, this.#worldBoundingSphere[3]);\n }\n\n this.currentScreenSize *= invLodFactor;\n this.currentInstanceScreenSize *= invLodFactor;\n\n BOX_QUERY_SCRATCH.min = this.#worldBoundsMin;\n BOX_QUERY_SCRATCH.max = this.#worldBoundsMax;\n const boxVisible = this.#worldBoundsValid &&\n (frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(BOX_QUERY_SCRATCH) : true);\n\n if (boxVisible)\n {\n this.#isVisible = parentLod >= this.lowestLodVisible && this.currentScreenSize >= this.minScreenSize;\n this.#instancesVisible = this.#isVisible &&\n this.currentInstanceScreenSize >= EveChildMesh.#instanceScreenSizeThreshold;\n }\n }\n\n // Carbon (cpp:427-435): attachments always refresh visibility, fed the bone\n // palette so a bone-parented attachment is placed by its bone.\n const { bones, boneCount } = this.GetBoneTransforms();\n\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n attachment.UpdateVisibility(updateContext, this.worldTransform, bones, boneCount);\n }\n\n if (this.#isVisible)\n {\n for (const decal of this.decals)\n {\n // Carbon (cpp:441-446) feeds animated bone matrices to the decal first\n // - skipped until the JS animation seam exists. Carbon passes\n // &m_parentData (cpp:450), refreshed in UpdateSyncronous.\n decal?.UpdateVisibility(updateContext, this.#parentData);\n }\n }\n\n return this.#isVisible;\n }\n\n /**\n * Collects this child (and its decals) as renderables (Carbon\n * EveChildMesh::GetRenderables, cpp:571-616): instanced meshes contribute\n * only while the per-instance gate passed; decals ride along through their\n * duck-typed renderable collectors (mesh cache is engine-owned, passed null\n * as in EveSpaceObject2.GetRenderables).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The decal mesh cache is engine-owned (null placeholder); collection structure is ported.\")\n GetRenderables(out = [])\n {\n if (!this.#isVisible)\n {\n return out;\n }\n\n const instanced = typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\";\n\n if (instanced)\n {\n if (this.#instancesVisible)\n {\n out.push(this);\n if (this.decals.length && this.mesh.GetGeometryResource())\n {\n for (const decal of this.decals)\n {\n decal?.GetInstancedRenderables?.(out, null, this.mesh, this.currentInstanceScreenSize);\n }\n }\n }\n }\n else\n {\n out.push(this);\n const geometryResource = this.mesh?.GetGeometryResource();\n if (this.decals.length && geometryResource)\n {\n for (const decal of this.decals)\n {\n decal?.GetRenderables(out, null, geometryResource, this.currentScreenSize);\n }\n }\n }\n\n return out;\n }\n\n /** Carbon EveChildMesh::GetBoundingSphere (cpp:618-627): the realized world\n * sphere, valid only after an update produced bounds (radius > 0). */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), _query = 0)\n {\n if (this.#worldBoundingSphere[3] > 0)\n {\n vec4.copy(out, this.#worldBoundingSphere);\n return true;\n }\n return false;\n }\n\n /** Carbon EveChildMesh::HasTransparentBatches (cpp:629-637). */\n @carbon.method\n @impl.implemented\n HasTransparentBatches()\n {\n if (this.display && this.mesh)\n {\n if ((this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0) return true;\n for (const overlay of this.overlayEffects)\n {\n if (overlay.HasTransparentArea()) return true;\n }\n for (const overlay of this.#parentOverlayEffects ?? [])\n {\n if (overlay.HasTransparentArea()) return true;\n }\n }\n return false;\n }\n\n /** Carbon EveChildMesh::IsVisible (cpp:639-650): sphere-in-frustum plus the\n * estimated pixel size against the context visibility threshold. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Frustum and threshold arrive via the duck-typed update context instead of renderer state.\")\n IsVisible(updateContext)\n {\n if (this.#worldBoundingSphere[3] > 0)\n {\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n if (frustum?.IsSphereVisible(this.#worldBoundingSphere) !== false)\n {\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\n const size = Number(typeof method === \"function\" ? method.call(frustum, this.#worldBoundingSphere) : 0) || 0;\n const threshold = Number(updateContext?.GetVisibilityThreshold?.() ?? updateContext?.visibilityThreshold) || 0;\n return size >= threshold;\n }\n }\n return false;\n }\n\n /** Carbon EveChildMesh::GetBatches (cpp:652-670): the mesh delegates per\n * batch type and activated attachments recurse, at\n * min(currentInstanceScreenSize, currentScreenSize) and with a reverse-winding\n * flag from Determinant(m_worldTransform) < 0 - a negative determinant means\n * the transform mirrors, which flips triangle facing. A determinant is\n * transpose-invariant, so the row-vector/column-vector difference does not\n * apply to this test. Returns whether any batch was committed (JS addition;\n * Carbon returns void). */\n @carbon.method\n @impl.implemented\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!this.display)\n {\n return false;\n }\n\n let committed = false;\n\n if (this.mesh)\n {\n committed = this.mesh.GetBatches(\n batches,\n this.mesh.GetAreas(batchType),\n perObjectData,\n Math.min(this.currentInstanceScreenSize, this.currentScreenSize),\n mat4.determinant(this.worldTransform) < 0) === true;\n }\n\n if (this.#activationStrength !== 0)\n {\n for (const attachment of this.attachments)\n {\n if (!attachment) continue;\n committed = attachment.GetBatches(batches, batchType, perObjectData, reason) === true || committed;\n }\n }\n\n committed = this.GetBatchesFromOverlayVector(batches, perObjectData, batchType) || committed;\n\n return committed;\n }\n\n /** Emits damage, child-owned, then inherited parent overlays over this mesh. */\n @carbon.method\n @impl.adapted\n GetBatchesFromOverlayVector(batches, perObjectData, batchType)\n {\n const damageEffect = this.damageOverlay\n ? this.damageOverlay.GetArmorDamageShader(batchType)\n : null;\n const parentOverlays = this.#parentOverlayEffects;\n if (!this.mesh || (!damageEffect && !this.overlayEffects.length && !parentOverlays?.length)) return false;\n\n const geometry = this.mesh.GetGeometryResource();\n if (!geometry || geometry.IsGood() === false) return false;\n\n if (!this.#overlayAreaBlocksBuilt)\n {\n CollectOverlayAreaBlocks(this.mesh, this.#overlayAreaBlocks);\n this.#overlayAreaBlocksBuilt = true;\n }\n\n const meshIndex = this.mesh.GetMeshIndex();\n const lod = geometry.GetMeshLod(\n meshIndex, Math.min(this.currentInstanceScreenSize, this.currentScreenSize));\n let committed = false;\n\n if (damageEffect)\n {\n committed = EmitDamageOverlayBatches(\n batches, perObjectData, damageEffect, this.#overlayAreaBlocks, geometry, meshIndex, lod) || committed;\n }\n if (this.overlayEffects.length)\n {\n committed = EmitOverlayBatches(\n batches, perObjectData, batchType, this.overlayEffects,\n this.#overlayAreaBlocks, geometry, meshIndex, lod) || committed;\n }\n if (parentOverlays?.length)\n {\n committed = EmitOverlayBatches(\n batches, perObjectData, batchType, parentOverlays,\n this.#overlayAreaBlocks, geometry, meshIndex, lod) || committed;\n }\n return committed;\n }\n\n /** Carbon EveChildMesh::GetShadowBatches (cpp:672-681): the OPAQUE areas\n * only, gated on display/mesh/hasUpdated, at the caller's shadow pixel size\n * rather than the child's own screen size. Returns whether any batch was\n * committed (JS addition; Carbon returns void). */\n @carbon.method\n @impl.implemented\n GetShadowBatches(batches, perObjectData, shadowPixelSize = Infinity)\n {\n if (this.display && this.mesh && this.#hasUpdated)\n {\n return this.mesh.GetBatches(\n batches,\n this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_OPAQUE),\n perObjectData,\n shadowPixelSize,\n mat4.determinant(this.worldTransform) < 0) === true;\n }\n return false;\n }\n\n /** Carbon EveChildMesh::GetSortValue (cpp:787-792): view distance scaled by\n * sortValueScale plus sortValueOffset. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\n GetSortValue(renderContext = null)\n {\n const viewPosition = renderContext?.GetViewPosition();\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\n return Math.hypot(x, y, z) * this.sortValueScale + this.sortValueOffset;\n }\n\n /** Carbon EveChildMesh::GetShadowPerObjectData (cpp:794-797) forwards the\n * shadow pass to the same per-object record. */\n @carbon.method\n @impl.implemented\n GetShadowPerObjectData(accumulator = null)\n {\n return this.GetPerObjectData(accumulator);\n }\n\n /**\n * Carbon EveChildMesh::GetPerObjectData (cpp:799-843): resets the morph\n * counters, uploads the bone and morph rings, then hands back a handle over\n * this child's two PERSISTENT buffers.\n *\n * The ring OFFSETS (`boneOffsets[0..1]`, `morphTargetAnimationDataOffset`,\n * `morphTargetVertexDataOffset`, `bakedMorphTargetVertexDataOffset`) are GPU\n * addresses with no CPU derivation, so they keep their defaults; the counts,\n * which are CPU-known, are written.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"GPU ring-buffer offsets have no CPU derivation and keep their defaults; every CPU-known field is filled.\")\n GetPerObjectData(_accumulator = null)\n {\n this.#perObjectData.vs.Set(\"activeMorphTargetsCount\", [ 0 ]);\n // Carbon seeds the baked-morph offset with UINT32_MAX, not zero.\n this.#perObjectData.vs.Set(\"bakedMorphTargetVertexDataOffset\", [ 0xffffffff ]);\n\n if (this.animationUpdater && this.animationUpdater.IsInitialized())\n {\n const boneCount = this.animationUpdater.GetMeshBoneCount();\n this.#perObjectData.vs.SetIndex(\"boneOffsets\", 2, [ boneCount ]);\n }\n\n return { vs: this.#perObjectData.vs, ps: this.#perObjectData.ps };\n }\n\n /**\n * Carbon's two IsCastingShadow overloads, dispatched on the second argument:\n * a position vector (length >= 3) selects the sphere-overlap overload\n * (cpp:338-364); anything else is the shadow-frustum overload (cpp:295-336),\n * whose Carbon out-param float& sizeInShadow becomes the optional trailing\n * length-1 array (out-params last).\n * @param {Object} cameraFrustum\n * @param {Object|Float32Array} shadowFrustumOrPosition\n * @param {Number} renderReasonOrRadius\n * @param {Array|Number} sizeInShadowOutOrRenderReason\n * @returns {Boolean}\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Overload dispatch by argument shape and a length-1 out array replace C++ overloading and the float& out-param; the shadow math is ported.\")\n IsCastingShadow(cameraFrustum, shadowFrustumOrPosition, renderReasonOrRadius, sizeInShadowOutOrRenderReason = null)\n {\n if (!this.display || !this.castShadow || !this.#hasUpdated)\n {\n return false;\n }\n\n const positionOverload = typeof shadowFrustumOrPosition?.length === \"number\" &&\n shadowFrustumOrPosition.length >= 3;\n const renderReason = positionOverload\n ? Number(sizeInShadowOutOrRenderReason ?? Tr2RenderReason.TR2RENDERREASON_NORMAL)\n : Number(renderReasonOrRadius ?? Tr2RenderReason.TR2RENDERREASON_NORMAL);\n\n if (renderReason === Tr2RenderReason.TR2RENDERREASON_REFLECTION &&\n !ShouldReflect(this.reflectionMode))\n {\n return false;\n }\n\n if (positionOverload)\n {\n // Carbon (cpp:338-364): squared distance between the world sphere and\n // the query sphere against their combined radius.\n if (!this.GetBoundingSphere(SHADOW_SPHERE_SCRATCH))\n {\n return false;\n }\n const position = shadowFrustumOrPosition;\n const radius = Number(renderReasonOrRadius) || 0;\n const dx = SHADOW_SPHERE_SCRATCH[0] - position[0];\n const dy = SHADOW_SPHERE_SCRATCH[1] - position[1];\n const dz = SHADOW_SPHERE_SCRATCH[2] - position[2];\n const combined = radius + SHADOW_SPHERE_SCRATCH[3];\n return dx * dx + dy * dy + dz * dz - combined * combined < 0;\n }\n\n // Carbon (cpp:295-336): shadow-frustum visibility, then the size in the\n // shadow map from the instance sphere nearest the shadow eye (falling back\n // to the whole world sphere).\n const shadowFrustum = shadowFrustumOrPosition;\n const sizeOut = sizeInShadowOutOrRenderReason;\n if (sizeOut)\n {\n sizeOut[0] = 0;\n }\n\n if (this.#worldBoundingSphere[3] <= 0)\n {\n return false;\n }\n\n let sizeInShadow = 0;\n if (shadowFrustum?.IsVisible?.(cameraFrustum, this.#worldBoundingSphere))\n {\n let sphere = this.#worldBoundingSphere;\n if (typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\")\n {\n // Carbon: TransformCoord(shadowFrustum.GetEyePos(), Inverse(\n // m_worldTransform)) - single-matrix point transform (no composition).\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\n {\n mat4.identity(INVERSE_WORLD_SCRATCH);\n }\n const eyePos = shadowFrustum?.GetEyePos?.() ?? ZERO_VEC3;\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, eyePos, INVERSE_WORLD_SCRATCH);\n const instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\n if (instanceBounds)\n {\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\n // sphere transform.\n sph3.set(\n INSTANCE_SPHERE_SCRATCH,\n instanceBounds.center[0],\n instanceBounds.center[1],\n instanceBounds.center[2],\n instanceBounds.radius\n );\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\n sphere = INSTANCE_SPHERE_SCRATCH;\n }\n }\n sizeInShadow = Number(shadowFrustum?.GetSizeInShadow?.(sphere)) || 0;\n }\n\n if (sizeOut)\n {\n sizeOut[0] = sizeInShadow;\n }\n return sizeInShadow > 5;\n }\n\n /** Carbon EveChildMesh::ChangeLOD (cpp:1052-1054) is an intentional no-op. */\n @carbon.method\n @impl.implemented\n ChangeLOD(_lod)\n {\n }\n\n /** Carbon EveChildMesh::RegisterComponents (cpp:239-269): LightOwner when\n * lights are authored; ReflectionRenderable (ShouldReflect) and ShadowCaster\n * (castShadow) only when a mesh is present; then forwards the attachments.\n * Gate m_display. \"MeshMorph\" stays OUT-OF-BAND: Carbon registers it at\n * baked-morph need inside BakeMorphs (cpp:1404-1409), not here - the JS\n * BakeMorphs stub is the site that would register it when the GPU morph\n * bake is ported. */\n @carbon.method\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry && this.display)\n {\n if (this.lights.length)\n {\n registry.RegisterComponent(EveComponentType.LightOwner, this);\n }\n\n if (this.mesh !== null)\n {\n if (ShouldReflect(this.reflectionMode))\n {\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\n }\n if (this.castShadow)\n {\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\n }\n }\n\n for (const attachment of this.attachments)\n {\n attachment?.Register(registry);\n }\n }\n }\n\n /** Carbon EveChildMesh::UnRegisterComponents (cpp:275-290): forwards the\n * attachments only (own components were already removed by\n * EveEntity::UnRegister, EveEntity.cpp:90); no display re-check.\n * UnregisterAudioGeometry (cpp:277) is audio-engine-owned and unported. */\n @carbon.method\n @impl.implemented\n UnRegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry)\n {\n for (const attachment of this.attachments)\n {\n attachment?.UnRegister(registry);\n }\n }\n }\n\n /** Carbon EveChildMesh::GetLights (cpp:1638-1652): BOTH gates (empty\n * lights and display, cpp:1640 - unlike EveSpaceObject2's display-only),\n * then per light AddLight(manager, worldTransform, 1, bones, boneCount)\n * FOLLOWED by SetBrightnessMultiplier(m_activationStrength) - the\n * one-frame-lag order is contract (the submission uses the multiplier\n * stamped on the previous pass; the first pass uses the Tr2Light default\n * 1). */\n @carbon.method\n @impl.implemented\n GetLights(lightManager)\n {\n if (!this.lights.length || !this.display)\n {\n return;\n }\n\n // cpp:1645 - bones so a bone-parented light is placed by its bone.\n const { bones, boneCount } = this.GetBoneTransforms();\n\n for (const light of this.lights)\n {\n light?.AddLight(lightManager, this.worldTransform, 1, bones, boneCount);\n light?.SetBrightnessMultiplier?.(this.#activationStrength);\n }\n }\n\n /** Carbon EveChildMesh::GetID returns GetRawRoot(), i.e. this object. */\n @carbon.method\n @impl.implemented\n GetID(_area = 0)\n {\n return this;\n }\n\n /** Invalidates merged locators on both the old and new owner. */\n @carbon.method\n @impl.implemented\n SetOwner(owner)\n {\n if (this.GetOwner() === owner) return;\n const oldOwner = this.GetOwner();\n if (oldOwner) oldOwner.InvalidateMergedLocators(\"structure\");\n super.SetOwner(owner);\n if (owner) owner.InvalidateMergedLocators(\"structure\");\n }\n\n /** Contributes child-owned locator sets with the child-to-object transform. */\n @carbon.method\n @impl.adapted\n CollectOwnedLocatorSets(parentTransform, out)\n {\n if (!this.ownedLocatorSets.length) return;\n const local = this.RebuildLocalTransform();\n const childToObject = mat4.create();\n mat4.multiply(childToObject, parentTransform, local);\n for (const sets of this.ownedLocatorSets)\n {\n out.push({ childToObject: mat4.clone(childToObject), owner: this, sets });\n }\n }\n\n /**\n * Contributes this child's geometry to the owner's merged raycast set\n * (Carbon EveChildMesh.cpp:2061-2077): one record per mesh, its areas\n * appended to the shared pool by batch type.\n */\n @carbon.method\n @impl.implemented\n CollectOwnedGeometry(type, parentTransform, out, areaPool)\n {\n const geometry = this.mesh ? this.mesh.GetGeometryResource() : null;\n if (!geometry) return;\n const local = this.RebuildLocalTransform();\n const childToObject = mat4.create();\n mat4.multiply(childToObject, parentTransform, local);\n const areaStart = areaPool.length;\n EveCollectAreas(type, this.mesh, areaPool);\n out.push({ geometry, childToObject, areaStart, areaCount: areaPool.length - areaStart });\n }\n\n /** Replaces the locator sets owned by this child and invalidates the owner. */\n @carbon.method\n @impl.adapted\n SetOwnedLocatorSets(sets)\n {\n this.ownedLocatorSets = Array.from(sets ?? []);\n const owner = this.GetOwner();\n if (owner) owner.InvalidateMergedLocators(\"structure\");\n }\n\n /** Returns this child mesh's armour and hull damage overlay. */\n @carbon.method\n @impl.implemented\n GetDamageOverlay()\n {\n return this.damageOverlay;\n }\n\n /** Creates this child mesh's damage overlay when it does not yet exist. */\n @carbon.method\n @impl.implemented\n EnsureDamageOverlay()\n {\n this.damageOverlay ??= new EveDamageOverlay();\n return this.damageOverlay;\n }\n\n /** Sets the per-part armour damage shader stamped by SOF placement creation. */\n @carbon.method\n @impl.implemented\n SetArmorDamageShaderEffect(effect)\n {\n this.armorDamageShader = effect ?? null;\n }\n\n /** Returns the per-part armour damage shader, or null when the part has none. */\n @carbon.method\n @impl.implemented\n GetArmorDamageShaderEffect()\n {\n return this.armorDamageShader;\n }\n\n /**\n * Returns the locator list of this child's own damage set, or null when the\n * child owns no damage locators (Carbon EveChildMesh.cpp:2117-2127).\n */\n @carbon.method\n @impl.implemented\n GetOwnedDamageLocators()\n {\n for (const set of this.ownedLocatorSets)\n {\n if (set.HasName(\"damage\")) return set.GetLocators();\n }\n return null;\n }\n\n /**\n * Resolves one damage locator's BIND-pose position in the child's local\n * space - no bone transform, the stable overlay seed position (Carbon\n * EveChildMesh.cpp:2129-2139).\n */\n @carbon.method\n @impl.implemented\n GetDamageLocatorBindPositionLocal(index, out = vec3.create())\n {\n const locators = this.GetOwnedDamageLocators();\n const locatorIndex = Number(index) | 0;\n if (!locators || locatorIndex < 0 || locatorIndex >= locators.length) return false;\n vec3.copy(out, locators[locatorIndex].position);\n return true;\n }\n\n /**\n * Resolves one damage locator's animated position and direction in the\n * child's local space, posed by this child's own animation updater (Carbon\n * EveChildMesh.cpp:2141-2151).\n */\n @carbon.method\n @impl.implemented\n GetDamageLocatorAnimatedLocal(index, outPosition, outDirection)\n {\n const locators = this.GetOwnedDamageLocators();\n const locatorIndex = Number(index) | 0;\n if (!locators || locatorIndex < 0 || locatorIndex >= locators.length) return false;\n EveGetLocatorPose(outPosition, outDirection, this.animationUpdater, locators[locatorIndex]);\n return true;\n }\n\n /**\n * Carbon EveChildMesh::GetPickingBatches (cpp:862-889): collects the geometry\n * a pick pass should test, by mask. Unlike the hull's version this one has no\n * overlay effects to pull in.\n *\n * @param {Object} batches - the picking accumulator\n * @param {Number} pickTypes - a Tr2PickType mask\n * @param {Object} perObjectData - this child's per-object record\n */\n @carbon.method\n @impl.implemented\n GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null)\n {\n if (pickTypes & Tr2PickType.PICK_TYPE_PICKING)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_PICKING, perObjectData);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_OPAQUE)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_OPAQUE, perObjectData);\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_DECAL, perObjectData);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_TRANSPARENT)\n {\n // A hidden mesh suppresses the transparent pass only; Carbon returns\n // early here, after the collections above have already run.\n if (!this.mesh || this.mesh.display === false)\n {\n return true;\n }\n\n for (const batchType of [ TriBatchType.TRIBATCHTYPE_TRANSPARENT, TriBatchType.TRIBATCHTYPE_ADDITIVE ])\n {\n const areas = this.mesh.GetAreas(batchType);\n\n if (areas)\n {\n this.mesh.GetBatches?.(batches, areas, perObjectData);\n }\n }\n }\n\n return true;\n }\n\n /**\n * Binds the animation updater to this mesh's geometry, so a child with no\n * animation resource of its own animates from the mesh's own bone binding.\n *\n * Carbon `EveChildMesh::InitializeAnimation` (cpp:217-232). Only runs when\n * the updater has no authored resPath - one that does keeps its own\n * resource. When the mesh has no geometry yet the shared binding is cleared\n * rather than left stale, so a later mesh swap rebinds cleanly.\n */\n @carbon.method\n @impl.implemented\n InitializeAnimation()\n {\n const updater = this.animationUpdater;\n\n if (!updater || updater.resPath_)\n {\n return;\n }\n\n const geometry = this.mesh ? this.mesh.GetGeometryResource() : null;\n\n if (geometry)\n {\n updater.SetUseMeshBinding(true);\n updater.SetSharedGeometryRes(geometry);\n return;\n }\n\n updater.SetSharedGeometryRes(null);\n }\n\n /** Carbon BakeMorphs runs the merge-morphs GPU compute pass; GPU-owned. */\n @carbon.method\n @impl.notImplemented\n BakeMorphs(..._args)\n {\n throw new Error(\"EveChildMesh.BakeMorphs is not implemented in CarbonEngineJS.\");\n }\n\n /** Carbon UnbakeMorphs releases the baked-morph GPU allocation; GPU-owned. */\n @carbon.method\n @impl.notImplemented\n UnbakeMorphs(..._args)\n {\n throw new Error(\"EveChildMesh.UnbakeMorphs is not implemented in CarbonEngineJS.\");\n }\n\n /** Carbon IsMeshBaked reads the baked-morph GPU allocation state; GPU-owned. */\n @carbon.method\n @impl.notImplemented\n IsMeshBaked(..._args)\n {\n throw new Error(\"EveChildMesh.IsMeshBaked is not implemented in CarbonEngineJS.\");\n }\n\n // Carbon s_instanceScreenSizeThreshold (EveChildMesh.cpp:22).\n static #instanceScreenSizeThreshold = 1;\n\n static Origin = Origin;\n\n static ReflectionMode = ReflectionMode;\n\n static Tr2Lod = Tr2Lod;\n\n}\n\nfunction ReadNamedMorph(values, name)\n{\n if (values instanceof Map)\n {\n return values.has(name) ? values.get(name) : undefined;\n }\n\n if (values && typeof values === \"object\" && Object.hasOwn(values, name))\n {\n return values[name];\n }\n\n return undefined;\n}\n\nfunction ReadMorphWeight(value, name, source)\n{\n const weight = Number(value && typeof value === \"object\" ? value.weight : value);\n\n if (!Number.isFinite(weight))\n {\n throw new TypeError(`EveChildMesh ${source} morph target \"${name}\" weight must be finite`);\n }\n\n return weight;\n}\n\nfunction NormalizeMorphFilter(value)\n{\n if (typeof value === \"string\")\n {\n const normalized = value.toLowerCase();\n if (normalized === \"runtime\" || normalized === \"runtime_evaluated\") return 0;\n if (normalized === \"baked\") return 1;\n if (normalized === \"all\") return 2;\n }\n\n const filter = Number(value);\n if (filter === 0 || filter === 1 || filter === 2) return filter;\n throw new TypeError(`Unsupported EveChildMesh morph target filter \"${value}\"`);\n}\n"],"names":["INVERSE_WORLD_SCRATCH","mat4","create","LOCAL_VIEW_SCRATCH","vec3","INSTANCE_SPHERE_SCRATCH","vec4","SHADOW_SPHERE_SCRATCH","BOX_CORNER_SCRATCH","BOX_QUERY_SCRATCH","min","max","ZERO_VEC3","NO_BONE_TRANSFORMS","Object","freeze","bones","boneCount","_EveChildMesh","_identity","EveChildMesh","_withITr2Renderable","withITr2Renderable","EveChildTransform","e","_init_ownedLocatorSets","_init_extra_ownedLocatorSets","_init_armorDamageShader","_init_extra_armorDamageShader","_init_reflectionMode","_init_extra_reflectionMode","_init_transformModifiers","_init_extra_transformModifiers","_init_worldTransform","_init_extra_worldTransform","_init_display","_init_extra_display","_init_inheritOverlayEffects","_init_extra_inheritOverlayEffects","_init_overlayEffects","_init_extra_overlayEffects","_init_damageOverlay","_init_extra_damageOverlay","_init_castShadow","_init_extra_castShadow","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_localTransform","_init_extra_localTransform","_init_decals","_init_extra_decals","_init_staticTransform","_init_extra_staticTransform","_init_animationUpdater","_init_extra_animationUpdater","_init_attachments","_init_extra_attachments","_init_lights","_init_extra_lights","_init_lowestLodVisible","_init_extra_lowestLodVisible","_init_minScreenSize","_init_extra_minScreenSize","_init_sortValueOffset","_init_extra_sortValueOffset","_init_sortValueScale","_init_extra_sortValueScale","_init_currentScreenSize","_init_extra_currentScreenSize","_init_currentInstanceScreenSize","_init_extra_currentInstanceScreenSize","_init_useSRT","_init_extra_useSRT","_init_updateAnimation","_init_extra_updateAnimation","_init_origin","_init_extra_origin","_init_instanceTransforms","_init_extra_instanceTransforms","_init_sofDna","_init_extra_sofDna","_init_sofParentHullName","_init_extra_sofParentHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_sofLocatorIndex","_init_extra_sofLocatorIndex","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","list","objectRef","notify","int32","enum","read","boolean","string","quat","float32","rebuild","array","carbon","method","impl","adapted","implemented","reason","contextual","notImplemented","constructor","args","runtimeEvaluatedOffset","runtimeEvaluatedCount","bakedOffset","bakedCount","allCount","createChildPerObjectRecords","IEveSpaceObject2ParentData","ownedLocatorSets","armorDamageShader","_ResetVisibilityState","currentScreenSize","currentInstanceScreenSize","_GetActivationStrength","reflectionMode","transformModifiers","worldTransform","display","inheritOverlayEffects","overlayEffects","damageOverlay","castShadow","mesh","name","rotation","translation","scaling","fromValues","localTransform","decals","staticTransform","animationUpdater","attachments","lights","lowestLodVisible","minScreenSize","sortValueOffset","sortValueScale","useSRT","updateAnimation","origin","instanceTransforms","sofDna","sofParentHullName","sofLocatorSetName","sofLocatorIndex","Initialize","RebuildLocalTransform","InitializeAnimation","Setup","scale","undefined","Number","SetInstanceTransforms","instances","next","transform","length","TypeError","push","clone","GetInstanceTransforms","SetMesh","AddOverlayEffect","effect","RemoveOverlayEffect","index","indexOf","splice","GetOverlayEffectByName","find","String","SetOrigin","SetScale","copy","SetReflectionMode","mode","SetCastShadow","SetMinScreenSize","GetLocalToWorldTransform","out","GetName","SetName","AddTransformModifier","modifier","AddDecal","decal","AddAttachment","attachment","ClearAttachments","AddLight","light","ClearLights","IsAlwaysOn","SetShaderOption","value","GetMorphTargetNames","SetMorphTargetWeight","weight","GetMorphTargetWeight","UpdateMorphAnimationBuffer","names","Array","isArray","manual","GetMorphAnimations","records","map","ReadMorphWeight","ReadNamedMorph","baked","IsBakedMorph","GetBakedMorphTarget","IsInitialized","animated","record","runtime","inactive","GetMorphTargets","filter","normalized","NormalizeMorphFilter","offset","count","slice","GetSofSourceLocator","UpdateSyncronous","updateContext","_params","time","GetTime","overlay","Update","UpdateAsyncronous","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","parent","spaceObjectParent","inheritParentPerObjectData","GetParentData","vs","Set","ps","clipRadiusSq","clipRadius2Sq","clipFactor","clipFactor2","stampChildTransforms","activationStrength","flicker","GetActivationStrength","shipData","Get","GetDataTextureOffset","UpdateLights","bounds","GetBounds","Infinity","set","transformMat4","sph3","fromBounds","localSphere","cx","cy","cz","Math","hypot","boundingSphere","estimatedPixelDiameter","isInFrustum","getDamageLocatorPositionOS","GetDamageLocatorBindPositionLocal","GetBoneTransforms","updater","GetRestPoseBoneTransforms","HasMeshBinding","getBoneList","geometry","GetGeometryResource","meshIndex","GetMeshIndex","GetMeshData","boneBindings","identity","Float4x3","fromMat4","Float32Array","UpdateVisibility","_parentTransform","parentLod","Tr2Lod","TR2_LOD_HIGH","frustum","GetFrustum","invLodFactor","GetInvLodFactor","GetPixelSizeAccross","instanced","GetInstanceBoundsClosestToPoint","instanceBounds","invert","viewPos","center","radius","UseWithScreenSize","boxVisible","IsBoxVisible","GetRenderables","GetInstancedRenderables","geometryResource","GetBoundingSphere","_query","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","HasTransparentArea","IsVisible","IsSphereVisible","GetPixelSizeAccrossEst","size","call","threshold","GetVisibilityThreshold","visibilityThreshold","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","committed","determinant","GetBatchesFromOverlayVector","damageEffect","GetArmorDamageShader","parentOverlays","IsGood","CollectOverlayAreaBlocks","lod","GetMeshLod","EmitDamageOverlayBatches","EmitOverlayBatches","GetShadowBatches","shadowPixelSize","TRIBATCHTYPE_OPAQUE","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","GetShadowPerObjectData","accumulator","GetPerObjectData","_accumulator","GetMeshBoneCount","SetIndex","IsCastingShadow","cameraFrustum","shadowFrustumOrPosition","renderReasonOrRadius","sizeInShadowOutOrRenderReason","positionOverload","renderReason","TR2RENDERREASON_REFLECTION","ShouldReflect","position","dx","dy","dz","combined","shadowFrustum","sizeOut","sizeInShadow","sphere","eyePos","GetEyePos","GetSizeInShadow","ChangeLOD","_lod","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","ReflectionRenderable","ShadowCaster","Register","UnRegisterComponents","UnRegister","GetLights","lightManager","SetBrightnessMultiplier","GetID","_area","SetOwner","owner","GetOwner","oldOwner","InvalidateMergedLocators","CollectOwnedLocatorSets","local","childToObject","multiply","sets","CollectOwnedGeometry","areaPool","areaStart","EveCollectAreas","areaCount","SetOwnedLocatorSets","from","GetDamageOverlay","EnsureDamageOverlay","EveDamageOverlay","SetArmorDamageShaderEffect","GetArmorDamageShaderEffect","GetOwnedDamageLocators","HasName","GetLocators","locators","locatorIndex","GetDamageLocatorAnimatedLocal","outPosition","outDirection","EveGetLocatorPose","GetPickingBatches","pickTypes","TR2_PICK_TYPE_DEFAULT","Tr2PickType","PICK_TYPE_PICKING","TRIBATCHTYPE_PICKING","PICK_TYPE_OPAQUE","TRIBATCHTYPE_DECAL","PICK_TYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","areas","resPath_","SetUseMeshBinding","SetSharedGeometryRes","BakeMorphs","_args","Error","UnbakeMorphs","IsMeshBaked","Origin","ReflectionMode","values","Map","has","get","hasOwn","source","isFinite","toLowerCase"],"mappings":"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"}
1
+ {"version":3,"file":"EveChildMesh.js","sources":["../../../../../src/trinity/eve/child/EveChildMesh.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh.h\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh.cpp\r\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildMesh_Blue.cpp\r\nimport \"../../../global/blue/registerTrinityEnums.js\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { sph3 } from \"#math/sph3\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { getBoneList } from \"../../core/animation/Tr2GrannyAnimation.js\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { carbon, CjsSchema, edit, impl, type } from \"#schema\";\r\nimport { BLUELISTEVENT } from \"#consts/blue\";\r\nimport { IListNotify } from \"#blue\";\r\nimport { EveEntity } from \"../EveEntity.js\";\r\nimport { ReflectionMode, TriBatchType } from \"#consts/graphics\";\r\nimport { EveChildTransform, applyTransformModifiers } from \"./EveChildTransform.js\";\r\nimport { Origin } from \"../../generated/eve/child/enums.js\";\r\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\r\nimport { Tr2RenderReason } from \"../../generated/trinityCore/enums.js\";\r\nimport { Tr2Lod } from \"../EveLODHelper.js\";\r\nimport { Tr2PerObjectData } from \"../../core/rawData/perObjectData/Tr2PerObjectData.js\";\r\nimport { IEveSpaceObject2ParentData } from \"../spaceObject/IEveSpaceObject2ParentData.js\";\r\nimport { TR2_PICK_TYPE_DEFAULT, Tr2PickType } from \"../../core/view/Tr2PickType.js\";\r\nimport {\r\n createChildPerObjectRecords,\r\n inheritParentPerObjectData,\r\n stampChildTransforms\r\n} from \"../perObjectData/childPerObjectRecords.js\";\r\nimport { Float4x3 } from \"../../utilities/Float4x3.js\";\r\nimport { EveCollectAreas } from \"./EveSpaceObjectChild.js\";\r\nimport { EveGetLocatorPose } from \"../locator/EveLocatorSets.js\";\r\nimport { EveDamageOverlay } from \"../overlays/EveDamageOverlay.js\";\r\nimport {\r\n CollectOverlayAreaBlocks,\r\n EmitDamageOverlayBatches,\r\n EmitOverlayBatches\r\n} from \"../overlays/overlayBatches.js\";\r\nimport { ITr2Renderable } from \"../../core/ITr2Renderable.js\";\r\n\r\n// Module scratch for the hot per-frame visibility/shadow paths (allocation\r\n// rules: copy-into, never allocate per call; child updates run sequentially so\r\n// the scratch is non-reentrant by construction).\r\nconst INVERSE_WORLD_SCRATCH = mat4.create();\r\nconst LOCAL_VIEW_SCRATCH = vec3.create();\r\nconst INSTANCE_SPHERE_SCRATCH = vec4.create();\r\nconst SHADOW_SPHERE_SCRATCH = vec4.create();\r\nconst BOX_CORNER_SCRATCH = vec3.create();\r\nconst BOX_QUERY_SCRATCH = { min: vec3.create(), max: vec3.create() };\r\nconst ZERO_VEC3 = vec3.create();\r\n\r\n// Carbon's (nullptr, 0) bone result - frozen so callers cannot mutate it.\r\nconst NO_BONE_TRANSFORMS = Object.freeze({ bones: null, boneCount: 0 });\r\n\r\n\r\n/**\r\n * Space-object child that draws one mesh under its own transform, owning its\r\n * decals, lights, attachments, morph weights, world bounds and screen-size LOD\r\n * state.\r\n */\r\n@type.define({ className: \"EveChildMesh\", family: \"eve/child\" })\r\n@carbon.inherit(ITr2Renderable)\r\n@carbon.inherit(IListNotify)\r\nexport class EveChildMesh extends EveChildTransform\r\n{\r\n #isMorphsBaked = false;\r\n\r\n #morphAnimationBuffer = [];\r\n\r\n #morphAnimationOffsets = {\r\n runtimeEvaluatedOffset: 0,\r\n runtimeEvaluatedCount: 0,\r\n bakedOffset: 0,\r\n bakedCount: 0,\r\n allCount: 0\r\n };\r\n\r\n // Carbon m_isVisible/m_instancesVisible/m_hasUpdated/m_activationStrength:\r\n // runtime-only frame state (never persisted; Carbon keeps them out of the\r\n // Blue surface too).\r\n #isVisible = false;\r\n\r\n #instancesVisible = false;\r\n\r\n #hasUpdated = false;\r\n\r\n #activationStrength = 1;\r\n\r\n /** m_vsData / m_psData - this child's PERSISTENT per-object record pair. */\r\n #perObjectData = createChildPerObjectRecords();\r\n\r\n /** Carbon's local `lastWorldTransform` (cpp:912), kept across frames here. */\r\n #lastWorldTransform = mat4.create();\r\n\r\n // Carbon m_worldBoundingBox/m_worldBoundingSphere: world-space bounds\r\n // refreshed by UpdateAsyncronous; the sphere is invalid while radius <= 0.\r\n #worldBoundsMin = vec3.create();\r\n\r\n #worldBoundsMax = vec3.create();\r\n\r\n #worldBoundsValid = false;\r\n\r\n #worldBoundingSphere = vec4.create();\r\n\r\n /** Identity rest-pose palette for skinned shaders without live animation. */\r\n #restPoseBoneTransforms = null;\r\n\r\n #parentOverlayEffects = null;\r\n\r\n /** m_parentData (IEveSpaceObject2::ParentData) - refreshed from the space\r\n * object parent in UpdateSyncronous and handed to the decals (cpp:1015, 450). */\r\n #parentData = new IEveSpaceObject2ParentData();\r\n\r\n #overlayAreaBlocks = [ [], [] ];\r\n\r\n #overlayAreaBlocksBuilt = false;\r\n\r\n // Carbon sets these two programmatically from SOF (EveSOF.cpp:3971-3972);\r\n // CarbonEngineJS delivers built objects as documents, so both persist.\r\n @edit.persist\r\n @type.list(\"EveLocatorSets\")\r\n ownedLocatorSets = [];\r\n\r\n @edit.persist\r\n @type.objectRef(\"Tr2Effect\")\r\n armorDamageShader = null;\r\n\r\n /**\r\n * Clears the private visibility state for a derived child whose own Carbon\r\n * cull rejects it before EveChildMesh::UpdateVisibility runs.\r\n *\r\n * EveChildInstanceMeshRenderer owns exactly that two-stage cull. Keeping the\r\n * mutation here preserves one state owner instead of shadowing the four\r\n * private values in the subclass.\r\n */\r\n _ResetVisibilityState()\r\n {\r\n this.#isVisible = false;\r\n this.currentScreenSize = -1;\r\n this.#instancesVisible = false;\r\n this.currentInstanceScreenSize = -1;\r\n }\r\n\r\n /** Carbon-derived classes read m_activationStrength after the mesh update. */\r\n _GetActivationStrength()\r\n {\r\n return this.#activationStrength;\r\n }\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.int32\r\n @type.enum(\"trinity.EntityComponents.ReflectionMode\")\r\n reflectionMode = 3;\r\n\r\n @edit.persist\r\n @type.list(\"IEveChildTransformModifier\")\r\n transformModifiers = [];\r\n\r\n @edit.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.boolean\r\n display = true;\r\n\r\n @edit.persist\r\n @type.boolean\r\n inheritOverlayEffects = true;\r\n\r\n @edit.persist\r\n @type.list(\"EveMeshOverlayEffect\")\r\n overlayEffects = [];\r\n\r\n @edit.persist\r\n @type.objectRef(\"EveDamageOverlay\")\r\n damageOverlay = null;\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.boolean\r\n castShadow = false;\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.objectRef(\"Tr2MeshBase\")\r\n mesh = null;\r\n\r\n @edit.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.vec3\r\n scaling = vec3.fromValues(1, 1, 1);\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.mat4\r\n localTransform = mat4.create();\r\n\r\n @edit.persist\r\n @type.list(\"EveSpaceObjectDecal\")\r\n decals = [];\r\n\r\n @edit.persist\r\n @type.boolean\r\n staticTransform = false;\r\n\r\n @edit.notify\r\n @edit.persist\r\n @type.objectRef(\"Tr2GrannyAnimation\")\r\n animationUpdater = null;\r\n\r\n @edit.persist\r\n @type.list(\"IEveSpaceObjectAttachment\")\r\n attachments = [];\r\n\r\n @edit.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n @edit.persist\r\n @type.int32\r\n @type.enum(\"trinity.Tr2Lod\")\r\n lowestLodVisible = 0;\r\n\r\n @edit.persist\r\n @type.float32\r\n minScreenSize = 0;\r\n\r\n @edit.persist\r\n @type.float32\r\n sortValueOffset = 0;\r\n\r\n @edit.persist\r\n @type.float32\r\n sortValueScale = 1;\r\n\r\n @edit.read\r\n @type.float32\r\n currentScreenSize = -1;\r\n\r\n @edit.read\r\n @type.float32\r\n currentInstanceScreenSize = -1;\r\n\r\n @edit.persist\r\n @type.boolean\r\n useSRT = true;\r\n\r\n @edit.persist\r\n @type.boolean\r\n updateAnimation = true;\r\n\r\n // SOF-authored placement/instance values; persisted so the values\r\n // interchange reproduces Carbon's hidden child placement state.\r\n @edit.persist\r\n @type.int32\r\n @type.enum(\"Origin\")\r\n origin = 0;\r\n\r\n @edit.persist\r\n @type.array(\"mat4\")\r\n instanceTransforms = [];\r\n\r\n @edit.persist\r\n @type.string\r\n sofDna = \"\";\r\n\r\n @edit.persist\r\n @type.string\r\n sofParentHullName = \"\";\r\n\r\n @edit.persist\r\n @type.string\r\n sofLocatorSetName = \"\";\r\n\r\n @edit.persist\r\n @type.string\r\n sofLocatorIndex = \"\";\r\n\r\n /**\r\n * Rebuilds the local transform up front when the child is marked\r\n * staticTransform, since UpdateTransform will not rebuild it on later frames.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n if (this.staticTransform)\r\n {\r\n this.RebuildLocalTransform();\r\n }\r\n\r\n // cpp:84 - bind the updater to this mesh's geometry.\r\n this.InitializeAnimation();\r\n\r\n for (let index = 0; index < this.decals.length; index++) this.decals[index].SetPriority(index);\r\n\r\n return true;\r\n }\r\n\r\n /** Carbon owner-list consequences (EveChildMesh.cpp:103–194). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"JS arrays use the shared list mutation entry points; component interface IDs use the existing EveComponentType map.\")\r\n OnListModified(event, key, key2, value, list)\r\n {\r\n const kind = event & BLUELISTEVENT.BELIST_EVENTMASK;\r\n if (list === this.decals)\r\n {\r\n if (kind === BLUELISTEVENT.BELIST_INSERTED || kind === BLUELISTEVENT.BELIST_REMOVED)\r\n {\r\n // Carbon quirk: Blue append may report size rather than size - 1.\r\n // EveChildMesh.cpp:107–111 retains that off-by-one workaround.\r\n const first = kind === BLUELISTEVENT.BELIST_INSERTED && key === this.decals.length ? key - 1 : key;\r\n for (let index = first; index < this.decals.length; index++) this.decals[index].SetPriority(index);\r\n }\r\n else if (kind === BLUELISTEVENT.BELIST_SWAPPED)\r\n {\r\n this.decals[key].SetPriority(key);\r\n this.decals[key2].SetPriority(key2);\r\n }\r\n else if (kind === BLUELISTEVENT.BELIST_MOVED)\r\n {\r\n for (let index = Math.min(key, key2); index <= Math.max(key, key2); index++) this.decals[index].SetPriority(index);\r\n }\r\n }\r\n if (list === this.lights)\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n if (kind === BLUELISTEVENT.BELIST_UNLOADSTART || (kind === BLUELISTEVENT.BELIST_REMOVED && !this.lights.length))\r\n {\r\n registry.UnRegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n else if (kind === BLUELISTEVENT.BELIST_INSERTED && this.lights.length === 1)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n }\r\n }\r\n if (list === this.attachments && !(event & BLUELISTEVENT.BELIST_LOADING) && this.IsInRegistry())\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (kind === BLUELISTEVENT.BELIST_INSERTED || kind === BLUELISTEVENT.BELIST_REMOVED)\r\n {\r\n const entity = CjsSchema.cast(value, EveEntity);\r\n if (entity)\r\n {\r\n if (kind === BLUELISTEVENT.BELIST_INSERTED) entity.Register(registry);\r\n else entity.UnRegister(registry);\r\n }\r\n }\r\n else if (kind === BLUELISTEVENT.BELIST_UNLOADSTART)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n const entity = CjsSchema.cast(attachment, EveEntity);\r\n if (entity) entity.UnRegister(registry);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Applies the authored scale/rotation/translation and, when supplied, the\r\n * lowest LOD level at which the child stays visible; returns the rebuilt local\r\n * transform.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Setup(scale = null, rotation = null, translation = null, lowestLodVisible = null)\r\n {\r\n super.Setup(scale, rotation, translation, lowestLodVisible);\r\n if (lowestLodVisible !== null && lowestLodVisible !== undefined)\r\n {\r\n this.lowestLodVisible = Number(lowestLodVisible) | 0;\r\n }\r\n return this.localTransform;\r\n }\r\n\r\n /**\r\n * Replaces the instance placement list with clones of the supplied matrices, so later caller mutations do not reach the child.\r\n * @param {Iterable<Float32Array>} instances - 16-value matrices; a wrongly sized entry throws TypeError\r\n * @returns {Array<Float32Array>} the stored list\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetInstanceTransforms(instances)\r\n {\r\n const next = [];\r\n for (const transform of instances ?? [])\r\n {\r\n if (!transform || transform.length !== 16)\r\n {\r\n throw new TypeError(\"EveChildMesh instance transforms must contain 16 values\");\r\n }\r\n next.push(mat4.clone(transform));\r\n }\r\n this.instanceTransforms = next;\r\n return this.instanceTransforms;\r\n }\r\n\r\n /**\r\n * Returns the live instance transform list, not a copy - mutating it changes\r\n * what the child renders.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetInstanceTransforms()\r\n {\r\n return this.instanceTransforms;\r\n }\r\n\r\n /**\r\n * Assigns the Tr2MeshBase this child draws; a nullish value clears it, which\r\n * also makes the child permanently invisible (UpdateVisibility requires a\r\n * mesh).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetMesh(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n this.#overlayAreaBlocksBuilt = false;\r\n this.#restPoseBoneTransforms = null;\r\n }\r\n\r\n /** Appends an overlay owned by this child; inherited hull overlays render after it. */\r\n @carbon.method\r\n @impl.implemented\r\n AddOverlayEffect(effect)\r\n {\r\n if (!effect) throw new TypeError(\"EveChildMesh overlay effect must not be null\");\r\n this.overlayEffects.push(effect);\r\n }\r\n\r\n /** Removes the first matching owned overlay. */\r\n @carbon.method\r\n @impl.implemented\r\n RemoveOverlayEffect(effect)\r\n {\r\n const index = this.overlayEffects.indexOf(effect);\r\n if (index !== -1) this.overlayEffects.splice(index, 1);\r\n }\r\n\r\n /** Returns the first owned overlay whose authored name matches. */\r\n @carbon.method\r\n @impl.implemented\r\n GetOverlayEffectByName(name)\r\n {\r\n return this.overlayEffects.find(effect => effect.name === String(name)) ?? null;\r\n }\r\n\r\n /**\r\n * Records whether this child's placement was authored in space or by SOF (the\r\n * Origin enum).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetOrigin(origin)\r\n {\r\n this.origin = Number(origin) | 0;\r\n }\r\n\r\n /**\r\n * Copies the given scale into the child's SRT scaling; it reaches the world\r\n * transform on the next local-transform rebuild.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetScale(scale)\r\n {\r\n vec3.copy(this.scaling, scale);\r\n }\r\n\r\n /**\r\n * Sets the reflection mode, which decides whether the child registers as a\r\n * ReflectionRenderable and whether it casts shadows during reflection passes.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetReflectionMode(mode)\r\n {\r\n this.reflectionMode = Number(mode) | 0;\r\n }\r\n\r\n /**\r\n * Sets whether the child registers as a shadow caster and contributes opaque\r\n * shadow batches.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetCastShadow(castShadow)\r\n {\r\n this.castShadow = !!castShadow;\r\n }\r\n\r\n /**\r\n * Sets the minimum screen size, in pixels across, that the child's world\r\n * bounding sphere must reach - after the frame's inverse LOD factor scaling -\r\n * before UpdateVisibility marks it visible.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetMinScreenSize(minScreenSize)\r\n {\r\n this.minScreenSize = Number(minScreenSize);\r\n }\r\n\r\n /** Carbon EveChildMesh::GetLocalToWorldTransform (cpp:1047-1050); the\r\n * optional out follows the EveChildInstancedMeshes copy-out shape. */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n /**\r\n * The authored name, persisted with the child and used to identify it in the\r\n * parent graph.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored child name, coercing nullish to the empty string. */\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /**\r\n * Appends a transform modifier; modifiers fold over the child's world\r\n * transform in insertion order on each async update.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddTransformModifier(modifier)\r\n {\r\n this.transformModifiers.push(modifier);\r\n }\r\n\r\n /**\r\n * Appends a decal; decals refresh their visibility only while the child itself\r\n * is visible, and ride along in GetRenderables when the mesh has a geometry\r\n * resource.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddDecal(decal)\r\n {\r\n this.decals.push(decal);\r\n }\r\n\r\n /**\r\n * Appends an attachment; attachments refresh their lights and visibility every\r\n * frame regardless of the child's own visibility.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddAttachment(attachment)\r\n {\r\n this.attachments.push(attachment);\r\n }\r\n\r\n /**\r\n * Drops every attachment, removing their lights, batches and visibility\r\n * updates from this child.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearAttachments()\r\n {\r\n this.attachments.length = 0;\r\n }\r\n\r\n /**\r\n * Appends a light, submitted to the light manager from the child's world\r\n * transform while the child displays.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddLight(light)\r\n {\r\n this.lights.push(light);\r\n }\r\n\r\n /**\r\n * Drops every light, which also stops the child registering as a LightOwner on\r\n * the next component registration.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearLights()\r\n {\r\n this.lights.length = 0;\r\n }\r\n\r\n /** Returns true unconditionally - a child mesh reports itself as always on. */\r\n @carbon.method\r\n @impl.implemented\r\n IsAlwaysOn()\r\n {\r\n return true;\r\n }\r\n\r\n /** Forwards a shader option to the mesh, every decal and every attachment. */\r\n @carbon.method\r\n @impl.implemented\r\n SetShaderOption(name, value)\r\n {\r\n this.mesh?.SetShaderOption?.(name, value);\r\n for (const decal of this.decals)\r\n {\r\n decal?.SetShaderOption?.(name, value);\r\n }\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n attachment.SetShaderOption(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Names of the mesh's morph targets in index order, or an empty array when the\r\n * mesh exposes none; the indices line up with the records GetMorphTargets\r\n * returns.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMorphTargetNames()\r\n {\r\n return this.mesh?.GetMorphTargetNames?.() ?? [];\r\n }\r\n\r\n /**\r\n * Writes a named morph weight on the mesh; it only reaches the render path\r\n * after the next UpdateMorphAnimationBuffer pass re-sorts the indexed buffer.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetMorphTargetWeight(name, weight)\r\n {\r\n this.mesh?.SetMorphTargetWeight?.(name, weight);\r\n }\r\n\r\n /**\r\n * Reads a named morph weight straight from the mesh (0 when it has no such\r\n * target), bypassing any animation-driven value the morph buffer may have\r\n * applied.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMorphTargetWeight(name)\r\n {\r\n return this.mesh?.GetMorphTargetWeight?.(name) ?? 0;\r\n }\r\n\r\n /** Rebuilds the source-backed indexed morph buffer from manual and animation weights. */\r\n @impl.adapted\r\n UpdateMorphAnimationBuffer()\r\n {\r\n const names = this.mesh?.GetMorphTargetNames?.();\r\n\r\n this.#morphAnimationOffsets = {\r\n runtimeEvaluatedOffset: 0,\r\n runtimeEvaluatedCount: 0,\r\n bakedOffset: 0,\r\n bakedCount: 0,\r\n allCount: 0\r\n };\r\n\r\n if (!Array.isArray(names))\r\n {\r\n this.#morphAnimationBuffer = [];\r\n return 0;\r\n }\r\n\r\n const manual = this.mesh?.GetMorphAnimations?.();\r\n const records = names.map((name, index) => ({\r\n index,\r\n weight: ReadMorphWeight(\r\n ReadNamedMorph(manual, name) ?? this.mesh?.GetMorphTargetWeight?.(name) ?? 0,\r\n name,\r\n \"mesh\"\r\n ),\r\n baked: !!(this.mesh?.IsBakedMorph?.(index)\r\n ?? this.mesh?.GetBakedMorphTarget?.(name)\r\n ?? false)\r\n }));\r\n\r\n if (this.animationUpdater?.IsInitialized?.())\r\n {\r\n const animated = this.animationUpdater.GetMorphAnimations?.();\r\n\r\n for (const record of records)\r\n {\r\n const name = names[record.index];\r\n const value = ReadNamedMorph(animated, name);\r\n\r\n if (value !== undefined)\r\n {\r\n record.weight = ReadMorphWeight(value, name, \"animation\");\r\n }\r\n }\r\n }\r\n\r\n const runtime = [];\r\n const baked = [];\r\n const inactive = [];\r\n\r\n for (const record of records)\r\n {\r\n if (record.weight >= 0.001)\r\n {\r\n (record.baked ? baked : runtime).push(record);\r\n }\r\n else\r\n {\r\n inactive.push(record);\r\n }\r\n }\r\n\r\n this.#morphAnimationBuffer = [ ...runtime, ...baked, ...inactive ];\r\n this.#morphAnimationOffsets.runtimeEvaluatedCount = runtime.length;\r\n this.#morphAnimationOffsets.bakedOffset = runtime.length;\r\n this.#morphAnimationOffsets.bakedCount = baked.length;\r\n this.#morphAnimationOffsets.allCount = runtime.length + baked.length;\r\n return this.#morphAnimationOffsets.allCount;\r\n }\r\n\r\n /** Returns detached active indexed morph records for the native filter. */\r\n @impl.adapted\r\n GetMorphTargets(filter = 2)\r\n {\r\n const normalized = NormalizeMorphFilter(filter);\r\n let offset = 0;\r\n let count = 0;\r\n\r\n if (normalized === 2)\r\n {\r\n count = this.#morphAnimationOffsets.allCount;\r\n }\r\n else if (normalized === 0)\r\n {\r\n offset = this.#isMorphsBaked\r\n ? this.#morphAnimationOffsets.runtimeEvaluatedOffset\r\n : 0;\r\n count = this.#isMorphsBaked\r\n ? this.#morphAnimationOffsets.runtimeEvaluatedCount\r\n : this.#morphAnimationOffsets.allCount;\r\n }\r\n else\r\n {\r\n offset = this.#morphAnimationOffsets.bakedOffset;\r\n count = this.#morphAnimationOffsets.bakedCount;\r\n }\r\n\r\n return this.#morphAnimationBuffer.slice(offset, offset + count)\r\n .map(value => ({ index: value.index, weight: value.weight }));\r\n }\r\n\r\n /**\r\n * Always returns null: a child mesh exposes no packed area-id lookup, since\r\n * its SOF identity lives directly on its\r\n * sofParentHullName/sofLocatorSetName/sofLocatorIndex fields.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetSofSourceLocator()\r\n {\r\n return null;\r\n }\r\n\r\n /**\r\n * Sync-side frame update (Carbon EveChildMesh::UpdateSyncronous,\r\n * cpp:1002-1045). Carbon's body is entirely audio-geometry registration\r\n * (cpp:1004-1010, 1044 - engine/audio-owned, omitted) plus animationUpdater\r\n * re-binding and PrePhysicsAnimation stepping (cpp:1011-1042 - skipped: the\r\n * JS animation seam is absent, there is no Tr2GrannyAnimation runtime), so\r\n * the port is a documented frame-contract no-op.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Audio-geometry registration is not ported yet and the animationUpdater branches await the JS animation seam; nothing else remains in Carbon's body.\")\r\n UpdateSyncronous(updateContext, _params)\r\n {\r\n if (this.damageOverlay) this.damageOverlay.UpdateSyncronous(updateContext);\r\n\r\n const time = updateContext.GetTime();\r\n for (const overlay of this.overlayEffects) overlay.Update(time, time);\r\n }\r\n\r\n /**\r\n * Per-frame async update (Carbon EveChildMesh::UpdateAsyncronous,\r\n * cpp:903-1000): rebuild the world transform from the parent, fold the\r\n * transform modifiers over it, store the activation strength, refresh the\r\n * attachment lights, the morph buffer, and the world bounds. The GPU ring\r\n * buffer advance/per-object-data invalidation (cpp:905-909), audio geometry\r\n * (cpp:920-930), parent VS/PS struct refresh (cpp:932-960), and the skinned\r\n * GetBounds overload are not modelled, hence @impl.adapted.\r\n * @param {Object} updateContext - frame context (EveUpdateContext), threaded to modifiers\r\n * @param {EveChildUpdateParams} params - localToWorldTransform + boneCount/bones\r\n * @returns {Float32Array} worldTransform\r\n */\r\n @carbon.method\r\n @carbon.contextual([\"camera\"])\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext, params)\r\n {\r\n const parentTransform = params?.localToWorldTransform;\r\n\r\n // Carbon captures the OUTGOING transform before rebuilding (cpp:912).\r\n mat4.copy(this.#lastWorldTransform, this.worldTransform);\r\n\r\n if (parentTransform && parentTransform.length === 16)\r\n {\r\n this.UpdateTransform(parentTransform);\r\n }\r\n\r\n applyTransformModifiers(\r\n this,\r\n updateContext,\r\n params?.boneCount ?? 0,\r\n params?.bones ?? null\r\n );\r\n\r\n // Carbon cpp:932-954: inherit the hull's per-object values, rebase the clip\r\n // data by this child's translation, then stamp our own transforms.\r\n const parent = params?.spaceObjectParent ?? null;\r\n inheritParentPerObjectData(this.#perObjectData, parent, this.translation);\r\n // Carbon cpp:1015: the decals' parent data comes from the space object\r\n // parent, then is made relevant to this child below.\r\n if (parent) parent.GetParentData(this.#parentData);\r\n this.#parentOverlayEffects = this.inheritOverlayEffects && Array.isArray(parent?.overlayEffects)\r\n ? parent.overlayEffects\r\n : null;\r\n if (parent && !this.inheritOverlayEffects)\r\n {\r\n this.#perObjectData.vs.Set(\"clipData\", [ 0, 0, 0, 0 ]);\r\n this.#perObjectData.ps.Set(\"clipRadiusSq\", [ 0 ]);\r\n this.#perObjectData.ps.Set(\"clipRadius2Sq\", [ 0 ]);\r\n this.#perObjectData.ps.Set(\"clipSphereFactor\", [ 0 ]);\r\n this.#perObjectData.ps.Set(\"clipSphereFactor2\", [ 0 ]);\r\n // cpp:1033-1036: the decals lose the inherited clip sphere too.\r\n this.#parentData.clipRadiusSq = 0;\r\n this.#parentData.clipRadius2Sq = 0;\r\n this.#parentData.clipFactor = 0;\r\n this.#parentData.clipFactor2 = 0;\r\n }\r\n // cpp:1044: the decals are placed by this child's world transform.\r\n if (parent) mat4.copy(this.#parentData.transform, this.worldTransform);\r\n stampChildTransforms(this.#perObjectData, this.worldTransform, this.#lastWorldTransform);\r\n\r\n this.#activationStrength = Number(params?.activationStrength ?? 1);\r\n if (this.damageOverlay)\r\n {\r\n const flicker = this.damageOverlay.GetActivationStrength(updateContext);\r\n this.#activationStrength *= flicker;\r\n const shipData = this.#perObjectData.ps.Get(\"shipData\");\r\n this.#perObjectData.ps.Set(\"shipData\", [ shipData[0], parent ? shipData[1] * flicker : flicker, shipData[2], shipData[3] ]);\r\n this.#perObjectData.ps.Set(\"impactDataOffset\", [ this.damageOverlay.GetDataTextureOffset() ]);\r\n }\r\n\r\n // Carbon (cpp:962-970): attachments refresh their lights from the updated\r\n // world transform. Bones come from GetBoneTransforms (animationUpdater) -\r\n // null until the JS animation seam exists.\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n attachment.UpdateLights(this.worldTransform, null, 0, this.#activationStrength, 0);\r\n }\r\n\r\n this.UpdateMorphAnimationBuffer();\r\n\r\n // Carbon (cpp:974-997): world AABB from the mesh bounds, world sphere\r\n // enclosing it. The skinned GetBounds overload (animation transforms +\r\n // morph targets, cpp:977-982) awaits the animation seam; the maintained\r\n // Tr2MeshBase GetBounds supplies the static/material bounds meanwhile.\r\n this.#worldBoundsValid = false;\r\n const bounds = this.mesh ? this.mesh.GetBounds() : null;\r\n\r\n if (bounds?.min && bounds?.max)\r\n {\r\n this.#worldBoundsMin[0] = this.#worldBoundsMin[1] = this.#worldBoundsMin[2] = Infinity;\r\n this.#worldBoundsMax[0] = this.#worldBoundsMax[1] = this.#worldBoundsMax[2] = -Infinity;\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n BOX_CORNER_SCRATCH,\r\n index & 1 ? bounds.max[0] : bounds.min[0],\r\n index & 2 ? bounds.max[1] : bounds.min[1],\r\n index & 4 ? bounds.max[2] : bounds.min[2]\r\n );\r\n vec3.transformMat4(BOX_CORNER_SCRATCH, BOX_CORNER_SCRATCH, this.worldTransform);\r\n vec3.min(this.#worldBoundsMin, this.#worldBoundsMin, BOX_CORNER_SCRATCH);\r\n vec3.max(this.#worldBoundsMax, this.#worldBoundsMax, BOX_CORNER_SCRATCH);\r\n }\r\n this.#worldBoundsValid = true;\r\n sph3.fromBounds(this.#worldBoundingSphere, this.#worldBoundsMin, this.#worldBoundsMax);\r\n }\r\n else\r\n {\r\n sph3.set(this.#worldBoundingSphere, 0, 0, 0, 0);\r\n }\r\n\r\n if (this.damageOverlay)\r\n {\r\n const localSphere = vec4.fromValues(0, 0, 0, -1);\r\n if (bounds?.min && bounds?.max)\r\n {\r\n const cx = (bounds.min[0] + bounds.max[0]) * 0.5;\r\n const cy = (bounds.min[1] + bounds.max[1]) * 0.5;\r\n const cz = (bounds.min[2] + bounds.max[2]) * 0.5;\r\n vec4.set(localSphere, cx, cy, cz,\r\n Math.hypot(bounds.max[0] - cx, bounds.max[1] - cy, bounds.max[2] - cz));\r\n }\r\n this.damageOverlay.UpdateAsyncronous(updateContext, {\r\n boundingSphere: localSphere,\r\n estimatedPixelDiameter: Math.max(this.currentScreenSize, 0),\r\n isInFrustum: this.#isVisible,\r\n // Bind pose, not animated: the overlay seeds decals at the stable\r\n // authored position (Carbon EveChildMesh.cpp:1130, commit 98ee5e08).\r\n getDamageLocatorPositionOS: (index, out) => this.GetDamageLocatorBindPositionLocal(index, out)\r\n }, 0, false);\r\n }\r\n\r\n this.#hasUpdated = true;\r\n return this.worldTransform;\r\n }\r\n\r\n /**\r\n * Frame visibility + LOD state (Carbon EveChildMesh::UpdateVisibility,\r\n * cpp:366-463): screen size via the frustum, invLodFactor scaling, the\r\n * minScreenSize/lowestLodVisible gates, the per-instance visibility gate,\r\n * and the attachment/decal visibility fan-out. Carbon recomputes the local\r\n * mesh bounds here (cpp:380-394) but consumes only the world sphere/box\r\n * computed in UpdateAsyncronous, so the dead recompute is skipped. The\r\n * raytracing branch (cpp:450-462) is not ported yet and omitted.\r\n * @param {Object} updateContext - frame context (frustum + invLodFactor ducks)\r\n * @param {Float32Array} _parentTransform\r\n * @param {Number} parentLod - parent Tr2Lod level\r\n * @returns {Boolean} isVisible\r\n */\r\n /**\r\n * The mesh's bone palette, as a borrowed Float4x3 buffer and its bone count.\r\n *\r\n * Carbon `EveChildMesh::GetBoneTransforms` (cpp:1285-1307). Carbon branches:\r\n * the updater's own palette when it has a mesh binding, otherwise a separate\r\n * `Tr2AnimationMeshBinding` palette. Only the first branch exists here -\r\n * `Tr2AnimationMeshBinding` is unported - so a mesh relying on the second\r\n * gets no bones rather than the wrong ones.\r\n *\r\n * Carbon also assigns `accumulatedTransforms` and never reads it; that dead\r\n * local is not reproduced.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2AnimationMeshBinding remains unported; Carbon's identity rest-pose fallback is used when neither live palette source is available.\")\r\n GetBoneTransforms()\r\n {\r\n const updater = this.animationUpdater;\r\n\r\n if (!updater || !updater.IsInitialized())\r\n {\r\n return this.GetRestPoseBoneTransforms();\r\n }\r\n\r\n // cpp:1297-1302 - the updater's own palette when it binds to the mesh.\r\n if (updater.HasMeshBinding())\r\n {\r\n return getBoneList(updater);\r\n }\r\n\r\n // A maintained Tr2AnimationMeshBinding would be consulted here. Until that\r\n // source exists, Carbon's final identity rest-pose path is the safe result.\r\n return this.GetRestPoseBoneTransforms();\r\n }\r\n\r\n /**\r\n * Builds Carbon's identity Float4x3 rest-pose palette. Geometry with no bone\r\n * bindings still receives one identity because skinned shaders read bone 0.\r\n */\r\n @impl.implemented\r\n GetRestPoseBoneTransforms()\r\n {\r\n const geometry = this.mesh ? this.mesh.GetGeometryResource() : null;\r\n if (!geometry)\r\n {\r\n return NO_BONE_TRANSFORMS;\r\n }\r\n\r\n const meshIndex = Number(this.mesh.GetMeshIndex()) >>> 0;\r\n const mesh = geometry.GetMeshData(meshIndex);\r\n const boneCount = Math.max(mesh?.boneBindings?.length ?? 0, 1);\r\n\r\n if (!this.#restPoseBoneTransforms || this.#restPoseBoneTransforms.length !== boneCount * 12)\r\n {\r\n const identity = Float4x3.fromMat4(mat4.create());\r\n this.#restPoseBoneTransforms = new Float32Array(boneCount * 12);\r\n for (let index = 0; index < boneCount; index++)\r\n {\r\n this.#restPoseBoneTransforms.set(identity, index * 12);\r\n }\r\n }\r\n\r\n return { bones: this.#restPoseBoneTransforms, boneCount };\r\n }\r\n\r\n /**\r\n * Resolves this child's visibility for the frame from its world bounding\r\n * sphere, the parent LOD, and the authored screen-size thresholds, recording\r\n * the mesh and per-instance screen sizes the batch path then draws at.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Bone-fed decal bounds still await the decal seam and the raytracing refresh is not ported yet; the LOD/screen-size math and the bone-fed attachment pass are ported.\")\r\n UpdateVisibility(updateContext, _parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\r\n {\r\n this.#isVisible = false;\r\n this.currentScreenSize = -1;\r\n this.#instancesVisible = false;\r\n this.currentInstanceScreenSize = -1;\r\n\r\n if (!this.#hasUpdated)\r\n {\r\n return false;\r\n }\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const invLodFactor = Number(updateContext?.GetInvLodFactor?.() ?? updateContext?.invLodFactor) || 1;\r\n\r\n if (this.mesh)\r\n {\r\n this.currentScreenSize = Number(frustum?.GetPixelSizeAccross?.(this.#worldBoundingSphere) ?? Infinity) || 0;\r\n\r\n // Cached Tr2InstancedMesh downcast in Carbon (m_instancedMesh); the JS\r\n // port duck-types the instanced surface instead.\r\n const instanced = typeof this.mesh.GetInstanceBoundsClosestToPoint === \"function\";\r\n let instanceBounds = null;\r\n\r\n if (instanced)\r\n {\r\n // Carbon: TransformCoord(frustum.m_viewPos, Inverse(m_worldTransform))\r\n // - a single-matrix point transform (no composition; TransformCoord\r\n // maps to vec3.transformMat4 unchanged per the math conventions).\r\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\r\n {\r\n mat4.identity(INVERSE_WORLD_SCRATCH);\r\n }\r\n const viewPos = frustum?.viewPos ?? ZERO_VEC3;\r\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, viewPos, INVERSE_WORLD_SCRATCH);\r\n instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\r\n }\r\n\r\n if (instanceBounds)\r\n {\r\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\r\n // sphere transform, ported via sph3.transformMat4.\r\n sph3.set(\r\n INSTANCE_SPHERE_SCRATCH,\r\n instanceBounds.center[0],\r\n instanceBounds.center[1],\r\n instanceBounds.center[2],\r\n instanceBounds.radius\r\n );\r\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\r\n this.currentInstanceScreenSize = Number(frustum?.GetPixelSizeAccross?.(INSTANCE_SPHERE_SCRATCH) ?? Infinity) || 0;\r\n this.mesh.UseWithScreenSize?.(this.currentInstanceScreenSize, INSTANCE_SPHERE_SCRATCH[3]);\r\n }\r\n else\r\n {\r\n // Carbon uses std::numeric_limits<float>::max(); Infinity keeps the\r\n // instance gate permanently open the same way.\r\n this.currentInstanceScreenSize = Infinity;\r\n this.mesh.UseWithScreenSize?.(this.currentScreenSize, this.#worldBoundingSphere[3]);\r\n }\r\n\r\n this.currentScreenSize *= invLodFactor;\r\n this.currentInstanceScreenSize *= invLodFactor;\r\n\r\n BOX_QUERY_SCRATCH.min = this.#worldBoundsMin;\r\n BOX_QUERY_SCRATCH.max = this.#worldBoundsMax;\r\n const boxVisible = this.#worldBoundsValid &&\r\n (frustum?.IsBoxVisible ? !!frustum.IsBoxVisible(BOX_QUERY_SCRATCH) : true);\r\n\r\n if (boxVisible)\r\n {\r\n this.#isVisible = parentLod >= this.lowestLodVisible && this.currentScreenSize >= this.minScreenSize;\r\n this.#instancesVisible = this.#isVisible &&\r\n this.currentInstanceScreenSize >= EveChildMesh.#instanceScreenSizeThreshold;\r\n }\r\n }\r\n\r\n // Carbon (cpp:427-435): attachments always refresh visibility, fed the bone\r\n // palette so a bone-parented attachment is placed by its bone.\r\n const { bones, boneCount } = this.GetBoneTransforms();\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n attachment.UpdateVisibility(updateContext, this.worldTransform, bones, boneCount);\r\n }\r\n\r\n if (this.#isVisible)\r\n {\r\n for (const decal of this.decals)\r\n {\r\n // Carbon (cpp:441-446) feeds animated bone matrices to the decal first\r\n // - skipped until the JS animation seam exists. Carbon passes\r\n // &m_parentData (cpp:450), refreshed in UpdateSyncronous.\r\n decal?.UpdateVisibility(updateContext, this.#parentData);\r\n }\r\n }\r\n\r\n return this.#isVisible;\r\n }\r\n\r\n /**\r\n * Collects this child (and its decals) as renderables (Carbon\r\n * EveChildMesh::GetRenderables, cpp:571-616): instanced meshes contribute\r\n * only while the per-instance gate passed; decals ride along through their\r\n * duck-typed renderable collectors (mesh cache is not ported yet, passed null\r\n * as in EveSpaceObject2.GetRenderables).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The decal mesh cache is not ported yet (null placeholder); collection structure is ported.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!this.#isVisible)\r\n {\r\n return out;\r\n }\r\n\r\n const instanced = typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\";\r\n\r\n if (instanced)\r\n {\r\n if (this.#instancesVisible)\r\n {\r\n out.push(this);\r\n if (this.decals.length && this.mesh.GetGeometryResource())\r\n {\r\n for (const decal of this.decals)\r\n {\r\n decal?.GetInstancedRenderables?.(out, null, this.mesh, this.currentInstanceScreenSize);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n out.push(this);\r\n const geometryResource = this.mesh?.GetGeometryResource();\r\n if (this.decals.length && geometryResource)\r\n {\r\n for (const decal of this.decals)\r\n {\r\n decal?.GetRenderables(out, null, geometryResource, this.currentScreenSize);\r\n }\r\n }\r\n }\r\n\r\n return out;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetBoundingSphere (cpp:618-627): the realized world\r\n * sphere, valid only after an update produced bounds (radius > 0). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere(out = vec4.create(), _query = 0)\r\n {\r\n if (this.#worldBoundingSphere[3] > 0)\r\n {\r\n vec4.copy(out, this.#worldBoundingSphere);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::HasTransparentBatches (cpp:629-637). */\r\n @carbon.method\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n if (this.display && this.mesh)\r\n {\r\n if ((this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0) return true;\r\n for (const overlay of this.overlayEffects)\r\n {\r\n if (overlay.HasTransparentArea()) return true;\r\n }\r\n for (const overlay of this.#parentOverlayEffects ?? [])\r\n {\r\n if (overlay.HasTransparentArea()) return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::IsVisible (cpp:639-650): sphere-in-frustum plus the\r\n * estimated pixel size against the context visibility threshold. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum and threshold arrive via the duck-typed update context instead of renderer state.\")\r\n IsVisible(updateContext)\r\n {\r\n if (this.#worldBoundingSphere[3] > 0)\r\n {\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n if (frustum?.IsSphereVisible(this.#worldBoundingSphere) !== false)\r\n {\r\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\r\n const size = Number(typeof method === \"function\" ? method.call(frustum, this.#worldBoundingSphere) : 0) || 0;\r\n const threshold = Number(updateContext?.GetVisibilityThreshold?.() ?? updateContext?.visibilityThreshold) || 0;\r\n return size >= threshold;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetBatches (cpp:652-670): the mesh delegates per\r\n * batch type and activated attachments recurse, at\r\n * min(currentInstanceScreenSize, currentScreenSize) and with a reverse-winding\r\n * flag from Determinant(m_worldTransform) < 0 - a negative determinant means\r\n * the transform mirrors, which flips triangle facing. A determinant is\r\n * transpose-invariant, so the row-vector/column-vector difference does not\r\n * apply to this test. Returns whether any batch was committed (JS addition;\r\n * Carbon returns void). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBatches(batches, batchType, perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n {\r\n if (!this.display)\r\n {\r\n return false;\r\n }\r\n\r\n let committed = false;\r\n\r\n if (this.mesh)\r\n {\r\n committed = this.mesh.GetBatches(\r\n batches,\r\n this.mesh.GetAreas(batchType),\r\n perObjectData,\r\n Math.min(this.currentInstanceScreenSize, this.currentScreenSize),\r\n mat4.determinant(this.worldTransform) < 0) === true;\r\n }\r\n\r\n if (this.#activationStrength !== 0)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n if (!attachment) continue;\r\n committed = attachment.GetBatches(batches, batchType, perObjectData, reason) === true || committed;\r\n }\r\n }\r\n\r\n committed = this.GetBatchesFromOverlayVector(batches, perObjectData, batchType) || committed;\r\n\r\n return committed;\r\n }\r\n\r\n /** Emits damage, child-owned, then inherited parent overlays over this mesh. */\r\n @carbon.method\r\n @impl.adapted\r\n GetBatchesFromOverlayVector(batches, perObjectData, batchType)\r\n {\r\n const damageEffect = this.damageOverlay\r\n ? this.damageOverlay.GetArmorDamageShader(batchType)\r\n : null;\r\n const parentOverlays = this.#parentOverlayEffects;\r\n if (!this.mesh || (!damageEffect && !this.overlayEffects.length && !parentOverlays?.length)) return false;\r\n\r\n const geometry = this.mesh.GetGeometryResource();\r\n if (!geometry || geometry.IsGood() === false) return false;\r\n\r\n if (!this.#overlayAreaBlocksBuilt)\r\n {\r\n CollectOverlayAreaBlocks(this.mesh, this.#overlayAreaBlocks);\r\n this.#overlayAreaBlocksBuilt = true;\r\n }\r\n\r\n const meshIndex = this.mesh.GetMeshIndex();\r\n const lod = geometry.GetMeshLod(\r\n meshIndex, Math.min(this.currentInstanceScreenSize, this.currentScreenSize));\r\n let committed = false;\r\n\r\n if (damageEffect)\r\n {\r\n committed = EmitDamageOverlayBatches(\r\n batches, perObjectData, damageEffect, this.#overlayAreaBlocks, geometry, meshIndex, lod) || committed;\r\n }\r\n if (this.overlayEffects.length)\r\n {\r\n committed = EmitOverlayBatches(\r\n batches, perObjectData, batchType, this.overlayEffects,\r\n this.#overlayAreaBlocks, geometry, meshIndex, lod) || committed;\r\n }\r\n if (parentOverlays?.length)\r\n {\r\n committed = EmitOverlayBatches(\r\n batches, perObjectData, batchType, parentOverlays,\r\n this.#overlayAreaBlocks, geometry, meshIndex, lod) || committed;\r\n }\r\n return committed;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetShadowBatches (cpp:672-681): the OPAQUE areas\r\n * only, gated on display/mesh/hasUpdated, at the caller's shadow pixel size\r\n * rather than the child's own screen size. Returns whether any batch was\r\n * committed (JS addition; Carbon returns void). */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowBatches(batches, perObjectData, shadowPixelSize = Infinity)\r\n {\r\n if (this.display && this.mesh && this.#hasUpdated)\r\n {\r\n return this.mesh.GetBatches(\r\n batches,\r\n this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_OPAQUE),\r\n perObjectData,\r\n shadowPixelSize,\r\n mat4.determinant(this.worldTransform) < 0) === true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetSortValue (cpp:787-792): view distance scaled by\r\n * sortValueScale plus sortValueOffset. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition();\r\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\r\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\r\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\r\n return Math.hypot(x, y, z) * this.sortValueScale + this.sortValueOffset;\r\n }\r\n\r\n /** Carbon EveChildMesh::GetShadowPerObjectData (cpp:794-797) forwards the\r\n * shadow pass to the same per-object record. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(accumulator = null)\r\n {\r\n return this.GetPerObjectData(accumulator);\r\n }\r\n\r\n /**\r\n * Carbon EveChildMesh::GetPerObjectData (cpp:799-843): resets the morph\r\n * counters, uploads the bone and morph rings, then hands back a handle over\r\n * this child's two PERSISTENT buffers.\r\n *\r\n * The ring OFFSETS (`boneOffsets[0..1]`, `morphTargetAnimationDataOffset`,\r\n * `morphTargetVertexDataOffset`, `bakedMorphTargetVertexDataOffset`) are GPU\r\n * addresses with no CPU derivation, so they keep their defaults; the counts,\r\n * which are CPU-known, are written.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"GPU ring-buffer offsets have no CPU derivation and keep their defaults; every CPU-known field is filled.\")\r\n GetPerObjectData(_accumulator = null)\r\n {\r\n this.#perObjectData.vs.Set(\"activeMorphTargetsCount\", [ 0 ]);\r\n // Carbon seeds the baked-morph offset with UINT32_MAX, not zero.\r\n this.#perObjectData.vs.Set(\"bakedMorphTargetVertexDataOffset\", [ 0xffffffff ]);\r\n\r\n if (this.animationUpdater && this.animationUpdater.IsInitialized())\r\n {\r\n const boneCount = this.animationUpdater.GetMeshBoneCount();\r\n this.#perObjectData.vs.SetIndex(\"boneOffsets\", 2, [ boneCount ]);\r\n }\r\n\r\n return { vs: this.#perObjectData.vs, ps: this.#perObjectData.ps };\r\n }\r\n\r\n /**\r\n * Carbon's two IsCastingShadow overloads, dispatched on the second argument:\r\n * a position vector (length >= 3) selects the sphere-overlap overload\r\n * (cpp:338-364); anything else is the shadow-frustum overload (cpp:295-336),\r\n * whose Carbon out-param float& sizeInShadow becomes the optional trailing\r\n * length-1 array (out-params last).\r\n * @param {Object} cameraFrustum\r\n * @param {Object|Float32Array} shadowFrustumOrPosition\r\n * @param {Number} renderReasonOrRadius\r\n * @param {Array|Number} sizeInShadowOutOrRenderReason\r\n * @returns {Boolean}\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Overload dispatch by argument shape and a length-1 out array replace C++ overloading and the float& out-param; the shadow math is ported.\")\r\n IsCastingShadow(cameraFrustum, shadowFrustumOrPosition, renderReasonOrRadius, sizeInShadowOutOrRenderReason = null)\r\n {\r\n if (!this.display || !this.castShadow || !this.#hasUpdated)\r\n {\r\n return false;\r\n }\r\n\r\n const positionOverload = typeof shadowFrustumOrPosition?.length === \"number\" &&\r\n shadowFrustumOrPosition.length >= 3;\r\n const renderReason = positionOverload\r\n ? Number(sizeInShadowOutOrRenderReason ?? Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n : Number(renderReasonOrRadius ?? Tr2RenderReason.TR2RENDERREASON_NORMAL);\r\n\r\n if (renderReason === Tr2RenderReason.TR2RENDERREASON_REFLECTION &&\r\n !ShouldReflect(this.reflectionMode))\r\n {\r\n return false;\r\n }\r\n\r\n if (positionOverload)\r\n {\r\n // Carbon (cpp:338-364): squared distance between the world sphere and\r\n // the query sphere against their combined radius.\r\n if (!this.GetBoundingSphere(SHADOW_SPHERE_SCRATCH))\r\n {\r\n return false;\r\n }\r\n const position = shadowFrustumOrPosition;\r\n const radius = Number(renderReasonOrRadius) || 0;\r\n const dx = SHADOW_SPHERE_SCRATCH[0] - position[0];\r\n const dy = SHADOW_SPHERE_SCRATCH[1] - position[1];\r\n const dz = SHADOW_SPHERE_SCRATCH[2] - position[2];\r\n const combined = radius + SHADOW_SPHERE_SCRATCH[3];\r\n return dx * dx + dy * dy + dz * dz - combined * combined < 0;\r\n }\r\n\r\n // Carbon (cpp:295-336): shadow-frustum visibility, then the size in the\r\n // shadow map from the instance sphere nearest the shadow eye (falling back\r\n // to the whole world sphere).\r\n const shadowFrustum = shadowFrustumOrPosition;\r\n const sizeOut = sizeInShadowOutOrRenderReason;\r\n if (sizeOut)\r\n {\r\n sizeOut[0] = 0;\r\n }\r\n\r\n if (this.#worldBoundingSphere[3] <= 0)\r\n {\r\n return false;\r\n }\r\n\r\n let sizeInShadow = 0;\r\n if (shadowFrustum?.IsVisible?.(cameraFrustum, this.#worldBoundingSphere))\r\n {\r\n let sphere = this.#worldBoundingSphere;\r\n if (typeof this.mesh?.GetInstanceBoundsClosestToPoint === \"function\")\r\n {\r\n // Carbon: TransformCoord(shadowFrustum.GetEyePos(), Inverse(\r\n // m_worldTransform)) - single-matrix point transform (no composition).\r\n if (!mat4.invert(INVERSE_WORLD_SCRATCH, this.worldTransform))\r\n {\r\n mat4.identity(INVERSE_WORLD_SCRATCH);\r\n }\r\n const eyePos = shadowFrustum?.GetEyePos?.() ?? ZERO_VEC3;\r\n vec3.transformMat4(LOCAL_VIEW_SCRATCH, eyePos, INVERSE_WORLD_SCRATCH);\r\n const instanceBounds = this.mesh.GetInstanceBoundsClosestToPoint(LOCAL_VIEW_SCRATCH);\r\n if (instanceBounds)\r\n {\r\n // Carbon: instanceBounds.Transform(m_worldTransform) - single-matrix\r\n // sphere transform.\r\n sph3.set(\r\n INSTANCE_SPHERE_SCRATCH,\r\n instanceBounds.center[0],\r\n instanceBounds.center[1],\r\n instanceBounds.center[2],\r\n instanceBounds.radius\r\n );\r\n sph3.transformMat4(INSTANCE_SPHERE_SCRATCH, INSTANCE_SPHERE_SCRATCH, this.worldTransform);\r\n sphere = INSTANCE_SPHERE_SCRATCH;\r\n }\r\n }\r\n sizeInShadow = Number(shadowFrustum?.GetSizeInShadow?.(sphere)) || 0;\r\n }\r\n\r\n if (sizeOut)\r\n {\r\n sizeOut[0] = sizeInShadow;\r\n }\r\n return sizeInShadow > 5;\r\n }\r\n\r\n /** Carbon EveChildMesh::ChangeLOD (cpp:1052-1054) is an intentional no-op. */\r\n @carbon.method\r\n @impl.implemented\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n /** Carbon EveChildMesh::RegisterComponents (cpp:239-269): LightOwner when\r\n * lights are authored; ReflectionRenderable (ShouldReflect) and ShadowCaster\r\n * (castShadow) only when a mesh is present; then forwards the attachments.\r\n * Gate m_display. \"MeshMorph\" stays OUT-OF-BAND: Carbon registers it at\r\n * baked-morph need inside BakeMorphs (cpp:1404-1409), not here - the JS\r\n * BakeMorphs stub is the site that would register it when the GPU morph\r\n * bake is ported. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n if (this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n\r\n if (this.mesh !== null)\r\n {\r\n if (ShouldReflect(this.reflectionMode))\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n if (this.castShadow)\r\n {\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.Register(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildMesh::UnRegisterComponents (cpp:275-290): forwards the\r\n * attachments only (own components were already removed by\r\n * EveEntity::UnRegister, EveEntity.cpp:90); no display re-check.\r\n * UnregisterAudioGeometry (cpp:277) is audio-engine-owned and unported. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.UnRegister(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildMesh::GetLights (cpp:1638-1652): BOTH gates (empty\r\n * lights and display, cpp:1640 - unlike EveSpaceObject2's display-only),\r\n * then per light AddLight(manager, worldTransform, 1, bones, boneCount)\r\n * FOLLOWED by SetBrightnessMultiplier(m_activationStrength) - the\r\n * one-frame-lag order is contract (the submission uses the multiplier\r\n * stamped on the previous pass; the first pass uses the Tr2Light default\r\n * 1). */\r\n @carbon.method\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (!this.lights.length || !this.display)\r\n {\r\n return;\r\n }\r\n\r\n // cpp:1645 - bones so a bone-parented light is placed by its bone.\r\n const { bones, boneCount } = this.GetBoneTransforms();\r\n\r\n for (const light of this.lights)\r\n {\r\n light?.AddLight(lightManager, this.worldTransform, 1, bones, boneCount);\r\n light?.SetBrightnessMultiplier?.(this.#activationStrength);\r\n }\r\n }\r\n\r\n /** Carbon EveChildMesh::GetID returns GetRawRoot(), i.e. this object. */\r\n @carbon.method\r\n @impl.implemented\r\n GetID(_area = 0)\r\n {\r\n return this;\r\n }\r\n\r\n /**\r\n * Carbon OnModified (EveChildMesh.cpp:197-216): three independent tests, not\r\n * a chain - a mesh change satisfies the first two, and the third only runs\r\n * for a child that owns locator sets.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"JS identifies Carbon's changed member address by its exposed property name; the instanced-mesh cast is performed where that interface is used.\")\r\n OnModified(propertyName)\r\n {\r\n if (propertyName === \"reflectionMode\" || propertyName === \"display\"\r\n || propertyName === \"mesh\" || propertyName === \"castShadow\")\r\n {\r\n this.ReRegister();\r\n }\r\n if (propertyName === \"mesh\" || propertyName === \"animationUpdater\")\r\n {\r\n this.InitializeAnimation();\r\n }\r\n if (this.ownedLocatorSets.length && (propertyName === \"scaling\"\r\n || propertyName === \"rotation\" || propertyName === \"translation\"\r\n || propertyName === \"localTransform\"))\r\n {\r\n this.InvalidateOwnerMergedLocators(\"partMoved\");\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Carbon InvalidateOwnerMergedLocators (EveChildMesh.cpp:1330-1336): tell the\r\n * owner its merged locator sets are stale, and why.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n InvalidateOwnerMergedLocators(reason = \"structure\")\r\n {\r\n this.GetOwner()?.InvalidateMergedLocators(reason);\r\n }\r\n\r\n /** Invalidates merged locators on both the old and new owner. */\r\n @carbon.method\r\n @impl.implemented\r\n SetOwner(owner)\r\n {\r\n if (this.GetOwner() === owner) return;\r\n // Carbon cpp:1894-1896: the same helper on both sides of the move.\r\n this.InvalidateOwnerMergedLocators(\"structure\");\r\n super.SetOwner(owner);\r\n this.InvalidateOwnerMergedLocators(\"structure\");\r\n }\r\n\r\n /** Contributes child-owned locator sets with the child-to-object transform. */\r\n @carbon.method\r\n @impl.adapted\r\n CollectOwnedLocatorSets(parentTransform, out)\r\n {\r\n if (!this.ownedLocatorSets.length) return;\r\n const local = this.RebuildLocalTransform();\r\n const childToObject = mat4.create();\r\n mat4.multiply(childToObject, parentTransform, local);\r\n for (const sets of this.ownedLocatorSets)\r\n {\r\n out.push({ childToObject: mat4.clone(childToObject), owner: this, sets });\r\n }\r\n }\r\n\r\n /**\r\n * Contributes this child's geometry to the owner's merged raycast set\r\n * (Carbon EveChildMesh.cpp:2061-2077): one record per mesh, its areas\r\n * appended to the shared pool by batch type.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CollectOwnedGeometry(type, parentTransform, out, areaPool)\r\n {\r\n const geometry = this.mesh ? this.mesh.GetGeometryResource() : null;\r\n if (!geometry) return;\r\n const local = this.RebuildLocalTransform();\r\n const childToObject = mat4.create();\r\n mat4.multiply(childToObject, parentTransform, local);\r\n const areaStart = areaPool.length;\r\n EveCollectAreas(type, this.mesh, areaPool);\r\n out.push({ geometry, childToObject, areaStart, areaCount: areaPool.length - areaStart });\r\n }\r\n\r\n /** Replaces the locator sets owned by this child and invalidates the owner. */\r\n @carbon.method\r\n @impl.adapted\r\n SetOwnedLocatorSets(sets)\r\n {\r\n this.ownedLocatorSets = Array.from(sets ?? []);\r\n const owner = this.GetOwner();\r\n if (owner) owner.InvalidateMergedLocators(\"structure\");\r\n }\r\n\r\n /** Returns this child mesh's armour and hull damage overlay. */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageOverlay()\r\n {\r\n return this.damageOverlay;\r\n }\r\n\r\n /** Creates this child mesh's damage overlay when it does not yet exist. */\r\n @carbon.method\r\n @impl.implemented\r\n EnsureDamageOverlay()\r\n {\r\n this.damageOverlay ??= new EveDamageOverlay();\r\n return this.damageOverlay;\r\n }\r\n\r\n /** Sets the per-part armour damage shader stamped by SOF placement creation. */\r\n @carbon.method\r\n @impl.implemented\r\n SetArmorDamageShaderEffect(effect)\r\n {\r\n this.armorDamageShader = effect ?? null;\r\n }\r\n\r\n /** Returns the per-part armour damage shader, or null when the part has none. */\r\n @carbon.method\r\n @impl.implemented\r\n GetArmorDamageShaderEffect()\r\n {\r\n return this.armorDamageShader;\r\n }\r\n\r\n /**\r\n * Returns the locator list of this child's own damage set, or null when the\r\n * child owns no damage locators (Carbon EveChildMesh.cpp:2117-2127).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetOwnedDamageLocators()\r\n {\r\n for (const set of this.ownedLocatorSets)\r\n {\r\n if (set.HasName(\"damage\")) return set.GetLocators();\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Resolves one damage locator's BIND-pose position in the child's local\r\n * space - no bone transform, the stable overlay seed position (Carbon\r\n * EveChildMesh.cpp:2129-2139).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocatorBindPositionLocal(index, out = vec3.create())\r\n {\r\n const locators = this.GetOwnedDamageLocators();\r\n const locatorIndex = Number(index) | 0;\r\n if (!locators || locatorIndex < 0 || locatorIndex >= locators.length) return false;\r\n vec3.copy(out, locators[locatorIndex].position);\r\n return true;\r\n }\r\n\r\n /**\r\n * Resolves one damage locator's animated position and direction in the\r\n * child's local space, posed by this child's own animation updater (Carbon\r\n * EveChildMesh.cpp:2141-2151).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocatorAnimatedLocal(index, outPosition, outDirection)\r\n {\r\n const locators = this.GetOwnedDamageLocators();\r\n const locatorIndex = Number(index) | 0;\r\n if (!locators || locatorIndex < 0 || locatorIndex >= locators.length) return false;\r\n EveGetLocatorPose(outPosition, outDirection, this.animationUpdater, locators[locatorIndex]);\r\n return true;\r\n }\r\n\r\n /**\r\n * Carbon EveChildMesh::GetPickingBatches (cpp:862-889): collects the geometry\r\n * a pick pass should test, by mask. Unlike the hull's version this one has no\r\n * overlay effects to pull in.\r\n *\r\n * @param {Object} batches - the picking accumulator\r\n * @param {Number} pickTypes - a Tr2PickType mask\r\n * @param {Object} perObjectData - this child's per-object record\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null)\r\n {\r\n if (pickTypes & Tr2PickType.PICK_TYPE_PICKING)\r\n {\r\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_PICKING, perObjectData);\r\n }\r\n\r\n if (pickTypes & Tr2PickType.PICK_TYPE_OPAQUE)\r\n {\r\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_OPAQUE, perObjectData);\r\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_DECAL, perObjectData);\r\n }\r\n\r\n if (pickTypes & Tr2PickType.PICK_TYPE_TRANSPARENT)\r\n {\r\n // A hidden mesh suppresses the transparent pass only; Carbon returns\r\n // early here, after the collections above have already run.\r\n if (!this.mesh || this.mesh.display === false)\r\n {\r\n return true;\r\n }\r\n\r\n for (const batchType of [ TriBatchType.TRIBATCHTYPE_TRANSPARENT, TriBatchType.TRIBATCHTYPE_ADDITIVE ])\r\n {\r\n const areas = this.mesh.GetAreas(batchType);\r\n\r\n if (areas)\r\n {\r\n this.mesh.GetBatches?.(batches, areas, perObjectData);\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Binds the animation updater to this mesh's geometry, so a child with no\r\n * animation resource of its own animates from the mesh's own bone binding.\r\n *\r\n * Carbon `EveChildMesh::InitializeAnimation` (cpp:217-232). Only runs when\r\n * the updater has no authored resPath - one that does keeps its own\r\n * resource. When the mesh has no geometry yet the shared binding is cleared\r\n * rather than left stale, so a later mesh swap rebinds cleanly.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n InitializeAnimation()\r\n {\r\n const updater = this.animationUpdater;\r\n\r\n if (!updater || updater.resPath_)\r\n {\r\n return;\r\n }\r\n\r\n const geometry = this.mesh ? this.mesh.GetGeometryResource() : null;\r\n\r\n if (geometry)\r\n {\r\n updater.SetUseMeshBinding(true);\r\n updater.SetSharedGeometryRes(geometry);\r\n return;\r\n }\r\n\r\n updater.SetSharedGeometryRes(null);\r\n }\r\n\r\n /** Carbon BakeMorphs runs the merge-morphs GPU compute pass; GPU-owned. */\r\n @carbon.method\r\n @impl.notImplemented\r\n BakeMorphs(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.BakeMorphs is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon UnbakeMorphs releases the baked-morph GPU allocation; GPU-owned. */\r\n @carbon.method\r\n @impl.notImplemented\r\n UnbakeMorphs(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.UnbakeMorphs is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon IsMeshBaked reads the baked-morph GPU allocation state; GPU-owned. */\r\n @carbon.method\r\n @impl.notImplemented\r\n IsMeshBaked(..._args)\r\n {\r\n throw new Error(\"EveChildMesh.IsMeshBaked is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n // Carbon s_instanceScreenSizeThreshold (EveChildMesh.cpp:22).\r\n static #instanceScreenSizeThreshold = 1;\r\n\r\n static Origin = Origin;\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2Lod = Tr2Lod;\r\n\r\n}\r\n\r\nfunction ReadNamedMorph(values, name)\r\n{\r\n if (values instanceof Map)\r\n {\r\n return values.has(name) ? values.get(name) : undefined;\r\n }\r\n\r\n if (values && typeof values === \"object\" && Object.hasOwn(values, name))\r\n {\r\n return values[name];\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction ReadMorphWeight(value, name, source)\r\n{\r\n const weight = Number(value && typeof value === \"object\" ? value.weight : value);\r\n\r\n if (!Number.isFinite(weight))\r\n {\r\n throw new TypeError(`EveChildMesh ${source} morph target \"${name}\" weight must be finite`);\r\n }\r\n\r\n return weight;\r\n}\r\n\r\nfunction NormalizeMorphFilter(value)\r\n{\r\n if (typeof value === \"string\")\r\n {\r\n const normalized = value.toLowerCase();\r\n if (normalized === \"runtime\" || normalized === \"runtime_evaluated\") return 0;\r\n if (normalized === \"baked\") return 1;\r\n if (normalized === \"all\") return 2;\r\n }\r\n\r\n const filter = Number(value);\r\n if (filter === 0 || filter === 1 || filter === 2) return filter;\r\n throw new TypeError(`Unsupported EveChildMesh morph target filter \"${value}\"`);\r\n}\r\n"],"names":["INVERSE_WORLD_SCRATCH","mat4","create","LOCAL_VIEW_SCRATCH","vec3","INSTANCE_SPHERE_SCRATCH","vec4","SHADOW_SPHERE_SCRATCH","BOX_CORNER_SCRATCH","BOX_QUERY_SCRATCH","min","max","ZERO_VEC3","NO_BONE_TRANSFORMS","Object","freeze","bones","boneCount","_EveChildMesh","_identity","EveChildMesh","EveChildTransform","e","_init_ownedLocatorSets","_init_extra_ownedLocatorSets","_init_armorDamageShader","_init_extra_armorDamageShader","_init_reflectionMode","_init_extra_reflectionMode","_init_transformModifiers","_init_extra_transformModifiers","_init_worldTransform","_init_extra_worldTransform","_init_display","_init_extra_display","_init_inheritOverlayEffects","_init_extra_inheritOverlayEffects","_init_overlayEffects","_init_extra_overlayEffects","_init_damageOverlay","_init_extra_damageOverlay","_init_castShadow","_init_extra_castShadow","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_localTransform","_init_extra_localTransform","_init_decals","_init_extra_decals","_init_staticTransform","_init_extra_staticTransform","_init_animationUpdater","_init_extra_animationUpdater","_init_attachments","_init_extra_attachments","_init_lights","_init_extra_lights","_init_lowestLodVisible","_init_extra_lowestLodVisible","_init_minScreenSize","_init_extra_minScreenSize","_init_sortValueOffset","_init_extra_sortValueOffset","_init_sortValueScale","_init_extra_sortValueScale","_init_currentScreenSize","_init_extra_currentScreenSize","_init_currentInstanceScreenSize","_init_extra_currentInstanceScreenSize","_init_useSRT","_init_extra_useSRT","_init_updateAnimation","_init_extra_updateAnimation","_init_origin","_init_extra_origin","_init_instanceTransforms","_init_extra_instanceTransforms","_init_sofDna","_init_extra_sofDna","_init_sofParentHullName","_init_extra_sofParentHullName","_init_sofLocatorSetName","_init_extra_sofLocatorSetName","_init_sofLocatorIndex","_init_extra_sofLocatorIndex","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","inherit","ITr2Renderable","IListNotify","edit","persist","list","objectRef","notify","int32","enum","read","boolean","string","quat","float32","array","method","impl","adapted","reason","implemented","contextual","notImplemented","constructor","args","runtimeEvaluatedOffset","runtimeEvaluatedCount","bakedOffset","bakedCount","allCount","createChildPerObjectRecords","IEveSpaceObject2ParentData","ownedLocatorSets","armorDamageShader","_ResetVisibilityState","currentScreenSize","currentInstanceScreenSize","_GetActivationStrength","reflectionMode","transformModifiers","worldTransform","display","inheritOverlayEffects","overlayEffects","damageOverlay","castShadow","mesh","name","rotation","translation","scaling","fromValues","localTransform","decals","staticTransform","animationUpdater","attachments","lights","lowestLodVisible","minScreenSize","sortValueOffset","sortValueScale","useSRT","updateAnimation","origin","instanceTransforms","sofDna","sofParentHullName","sofLocatorSetName","sofLocatorIndex","Initialize","RebuildLocalTransform","InitializeAnimation","index","length","SetPriority","OnListModified","event","key","key2","value","kind","BLUELISTEVENT","BELIST_EVENTMASK","BELIST_INSERTED","BELIST_REMOVED","first","BELIST_SWAPPED","BELIST_MOVED","Math","registry","GetComponentRegistry","BELIST_UNLOADSTART","UnRegisterComponent","EveComponentType","LightOwner","RegisterComponent","BELIST_LOADING","IsInRegistry","entity","CjsSchema","cast","EveEntity","Register","UnRegister","attachment","Setup","scale","undefined","Number","SetInstanceTransforms","instances","next","transform","TypeError","push","clone","GetInstanceTransforms","SetMesh","AddOverlayEffect","effect","RemoveOverlayEffect","indexOf","splice","GetOverlayEffectByName","find","String","SetOrigin","SetScale","copy","SetReflectionMode","mode","SetCastShadow","SetMinScreenSize","GetLocalToWorldTransform","out","GetName","SetName","AddTransformModifier","modifier","AddDecal","decal","AddAttachment","ClearAttachments","AddLight","light","ClearLights","IsAlwaysOn","SetShaderOption","GetMorphTargetNames","SetMorphTargetWeight","weight","GetMorphTargetWeight","UpdateMorphAnimationBuffer","names","Array","isArray","manual","GetMorphAnimations","records","map","ReadMorphWeight","ReadNamedMorph","baked","IsBakedMorph","GetBakedMorphTarget","IsInitialized","animated","record","runtime","inactive","GetMorphTargets","filter","normalized","NormalizeMorphFilter","offset","count","slice","GetSofSourceLocator","UpdateSyncronous","updateContext","_params","time","GetTime","overlay","Update","UpdateAsyncronous","params","parentTransform","localToWorldTransform","UpdateTransform","applyTransformModifiers","parent","spaceObjectParent","inheritParentPerObjectData","GetParentData","vs","Set","ps","clipRadiusSq","clipRadius2Sq","clipFactor","clipFactor2","stampChildTransforms","activationStrength","flicker","GetActivationStrength","shipData","Get","GetDataTextureOffset","UpdateLights","bounds","GetBounds","Infinity","set","transformMat4","sph3","fromBounds","localSphere","cx","cy","cz","hypot","boundingSphere","estimatedPixelDiameter","isInFrustum","getDamageLocatorPositionOS","GetDamageLocatorBindPositionLocal","GetBoneTransforms","updater","GetRestPoseBoneTransforms","HasMeshBinding","getBoneList","geometry","GetGeometryResource","meshIndex","GetMeshIndex","GetMeshData","boneBindings","identity","Float4x3","fromMat4","Float32Array","UpdateVisibility","_parentTransform","parentLod","Tr2Lod","TR2_LOD_HIGH","frustum","GetFrustum","invLodFactor","GetInvLodFactor","GetPixelSizeAccross","instanced","GetInstanceBoundsClosestToPoint","instanceBounds","invert","viewPos","center","radius","UseWithScreenSize","boxVisible","IsBoxVisible","GetRenderables","GetInstancedRenderables","geometryResource","GetBoundingSphere","_query","HasTransparentBatches","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","HasTransparentArea","IsVisible","IsSphereVisible","GetPixelSizeAccrossEst","size","call","threshold","GetVisibilityThreshold","visibilityThreshold","GetBatches","batches","batchType","perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","committed","determinant","GetBatchesFromOverlayVector","damageEffect","GetArmorDamageShader","parentOverlays","IsGood","CollectOverlayAreaBlocks","lod","GetMeshLod","EmitDamageOverlayBatches","EmitOverlayBatches","GetShadowBatches","shadowPixelSize","TRIBATCHTYPE_OPAQUE","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","GetShadowPerObjectData","accumulator","GetPerObjectData","_accumulator","GetMeshBoneCount","SetIndex","IsCastingShadow","cameraFrustum","shadowFrustumOrPosition","renderReasonOrRadius","sizeInShadowOutOrRenderReason","positionOverload","renderReason","TR2RENDERREASON_REFLECTION","ShouldReflect","position","dx","dy","dz","combined","shadowFrustum","sizeOut","sizeInShadow","sphere","eyePos","GetEyePos","GetSizeInShadow","ChangeLOD","_lod","RegisterComponents","ReflectionRenderable","ShadowCaster","UnRegisterComponents","GetLights","lightManager","SetBrightnessMultiplier","GetID","_area","OnModified","propertyName","ReRegister","InvalidateOwnerMergedLocators","GetOwner","InvalidateMergedLocators","SetOwner","owner","CollectOwnedLocatorSets","local","childToObject","multiply","sets","CollectOwnedGeometry","areaPool","areaStart","EveCollectAreas","areaCount","SetOwnedLocatorSets","from","GetDamageOverlay","EnsureDamageOverlay","EveDamageOverlay","SetArmorDamageShaderEffect","GetArmorDamageShaderEffect","GetOwnedDamageLocators","HasName","GetLocators","locators","locatorIndex","GetDamageLocatorAnimatedLocal","outPosition","outDirection","EveGetLocatorPose","GetPickingBatches","pickTypes","TR2_PICK_TYPE_DEFAULT","Tr2PickType","PICK_TYPE_PICKING","TRIBATCHTYPE_PICKING","PICK_TYPE_OPAQUE","TRIBATCHTYPE_DECAL","PICK_TYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","areas","resPath_","SetUseMeshBinding","SetSharedGeometryRes","BakeMorphs","_args","Error","UnbakeMorphs","IsMeshBaked","Origin","ReflectionMode","values","Map","has","get","hasOwn","source","isFinite","toLowerCase"],"mappings":"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"}