@carbonenginejs/runtime 0.1.0-alpha.2 → 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 (1638) 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 +82 -99
  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/document/CjsDocumentHydrator.js +5 -1
  231. package/dist/global/model/document/CjsDocumentHydrator.js.map +1 -1
  232. package/dist/global/model/index.js +1 -1
  233. package/dist/global/schema/CjsSchema.js +275 -69
  234. package/dist/global/schema/CjsSchema.js.map +1 -1
  235. package/dist/global/schema/hydration.js +10 -8
  236. package/dist/global/schema/hydration.js.map +1 -1
  237. package/dist/global/schema/index.js +4 -3
  238. package/dist/global/schema/index.js.map +1 -1
  239. package/dist/global/schema/types/carbonTypes.js +1 -1
  240. package/dist/global/schema/types/carbonTypes.js.map +1 -1
  241. package/dist/global/utils/bytes.js +2 -0
  242. package/dist/global/utils/bytes.js.map +1 -1
  243. package/dist/global/utils/path.js +30 -1
  244. package/dist/global/utils/path.js.map +1 -1
  245. package/dist/index.js +59 -24
  246. package/dist/index.js.map +1 -1
  247. package/dist/resource/CjsResMan.js +206 -43
  248. package/dist/resource/CjsResMan.js.map +1 -1
  249. package/dist/resource/CjsResource.js +4 -1
  250. package/dist/resource/CjsResource.js.map +1 -1
  251. package/dist/resource/format/CjsBlueReader.js +8 -2
  252. package/dist/resource/format/CjsBlueReader.js.map +1 -1
  253. package/dist/resource/format/CjsResourceProbe.js +15 -16
  254. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  255. package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js +132 -75
  256. package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -1
  257. package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js +26 -0
  258. package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  259. package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js +2 -1
  260. package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  261. package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js +4 -0
  262. package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js.map +1 -0
  263. package/dist/resource/formats/black/core/blackDefinitions.js +1 -1
  264. package/dist/resource/formats/black/core/blackDefinitions.js.map +1 -1
  265. package/dist/resource/formats/black/core/blackSchema.js +1 -1
  266. package/dist/resource/formats/dds/CjsDdsFormat.js +50 -1
  267. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  268. package/dist/resource/formats/dds/core/helpers.js +51 -5
  269. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  270. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js +94 -0
  271. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js.map +1 -0
  272. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js +189 -0
  273. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js.map +1 -0
  274. package/dist/resource/formats/fsd/64/readers/index.js +2 -0
  275. package/dist/resource/formats/fsd/64/readers/index.js.map +1 -1
  276. package/dist/resource/formats/hlsl/core/detailMapFamily.js +18 -92
  277. package/dist/resource/formats/hlsl/core/detailMapFamily.js.map +1 -1
  278. package/dist/resource/formats/hlsl/core/textureArrayFamilies.js +285 -0
  279. package/dist/resource/formats/hlsl/core/textureArrayFamilies.js.map +1 -0
  280. package/dist/resource/formats/pickle/CjsPickleFormat.js +34 -14
  281. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  282. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +60 -451
  283. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  284. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +407 -0
  285. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -0
  286. package/dist/resource/formats/pickle/core/pickleCommon.js +671 -0
  287. package/dist/resource/formats/pickle/core/pickleCommon.js.map +1 -0
  288. package/dist/resource/formats/red/core/blackDefinitions.js +1 -1
  289. package/dist/resource/formats/webgl/core/effectPackage.js +85 -7
  290. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  291. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +666 -565
  292. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  293. package/dist/resource/formats/webgl/core/glslBackendBodySet.js +4 -4
  294. package/dist/resource/formats/webgl/core/glslBackendBodySet.js.map +1 -1
  295. package/dist/resource/formats/webgl/core/helpers.js +2 -2
  296. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  297. package/dist/resource/geometry/TriGeometryRes.js +61 -7
  298. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  299. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +11 -11
  300. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  301. package/dist/resource/index.js +11 -0
  302. package/dist/resource/index.js.map +1 -1
  303. package/dist/resource/shader/Tr2EffectRes.js +2 -3
  304. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  305. package/dist/resource/shader/Tr2MaterialArea.js +3 -3
  306. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  307. package/dist/resource/shader/Tr2MaterialMesh.js +2 -2
  308. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  309. package/dist/resource/shader/Tr2MaterialRes.js +3 -3
  310. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  311. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +2 -2
  312. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  313. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +2 -2
  314. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  315. package/dist/resource/shader/reflection/Tr2Pass.js +4 -4
  316. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  317. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  318. package/dist/resource/texture/SolidColorTextureConstructor.js +46 -0
  319. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -0
  320. package/dist/resource/texture/Tr2ImageRes.js +3 -4
  321. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +0 -1
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePackChannel.js +4 -4
  325. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipeline.js +3 -4
  327. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +5 -5
  329. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +3 -3
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +2 -2
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +6 -6
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/texture/TriTextureRes.js +65 -21
  337. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  338. package/dist/resource/texture/index.js +2 -0
  339. package/dist/resource/texture/index.js.map +1 -1
  340. package/dist/resource/texture/solidColorTexture.js +111 -0
  341. package/dist/resource/texture/solidColorTexture.js.map +1 -0
  342. package/dist/resource/video/AudioMetadata.js +41 -0
  343. package/dist/resource/video/AudioMetadata.js.map +1 -0
  344. package/dist/resource/video/IAudioSink.js +51 -0
  345. package/dist/resource/video/IAudioSink.js.map +1 -0
  346. package/dist/resource/video/IEncodedFrame.js +52 -0
  347. package/dist/resource/video/IEncodedFrame.js.map +1 -0
  348. package/dist/resource/video/IVideoContainerParser.js +70 -0
  349. package/dist/resource/video/IVideoContainerParser.js.map +1 -0
  350. package/dist/resource/video/IVideoDecoder.js +36 -0
  351. package/dist/resource/video/IVideoDecoder.js.map +1 -0
  352. package/dist/resource/video/PcmFrame.js +33 -0
  353. package/dist/resource/video/PcmFrame.js.map +1 -0
  354. package/dist/resource/video/VideoFrame.js +45 -0
  355. package/dist/resource/video/VideoFrame.js.map +1 -0
  356. package/dist/resource/video/VideoMetadata.js +34 -0
  357. package/dist/resource/video/VideoMetadata.js.map +1 -0
  358. package/dist/resource/video/enums.js +30 -0
  359. package/dist/resource/video/enums.js.map +1 -0
  360. package/dist/sof/EveSOF.js +176 -176
  361. package/dist/sof/EveSOF.js.map +1 -1
  362. package/dist/sof/EveSOFDNA.js +5 -1
  363. package/dist/sof/EveSOFDNA.js.map +1 -1
  364. package/dist/sof/EveSOFData.js +2 -2
  365. package/dist/sof/EveSOFData.js.map +1 -1
  366. package/dist/sof/faction/EveSOFDataFaction.js +2 -2
  367. package/dist/sof/faction/EveSOFDataFaction.js.map +1 -1
  368. package/dist/sof/faction/EveSOFDataFactionChild.js +2 -2
  369. package/dist/sof/faction/EveSOFDataFactionChild.js.map +1 -1
  370. package/dist/sof/faction/EveSOFDataFactionColorSet.js +189 -3
  371. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  372. package/dist/sof/faction/EveSOFDataFactionHullArea.js +2 -2
  373. package/dist/sof/faction/EveSOFDataFactionHullArea.js.map +1 -1
  374. package/dist/sof/faction/EveSOFDataFactionPlaneSet.js +2 -2
  375. package/dist/sof/faction/EveSOFDataFactionPlaneSet.js.map +1 -1
  376. package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js +2 -2
  377. package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js.map +1 -1
  378. package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js +2 -2
  379. package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js.map +1 -1
  380. package/dist/sof/generic/EveSOFDataGeneric.js +234 -230
  381. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  382. package/dist/sof/generic/EveSOFDataGenericDamage.js +2 -2
  383. package/dist/sof/generic/EveSOFDataGenericDamage.js.map +1 -1
  384. package/dist/sof/generic/EveSOFDataGenericDecalShader.js +2 -2
  385. package/dist/sof/generic/EveSOFDataGenericDecalShader.js.map +1 -1
  386. package/dist/sof/generic/EveSOFDataGenericHullCategory.js +27 -23
  387. package/dist/sof/generic/EveSOFDataGenericHullCategory.js.map +1 -1
  388. package/dist/sof/generic/EveSOFDataGenericHullDamage.js +2 -2
  389. package/dist/sof/generic/EveSOFDataGenericHullDamage.js.map +1 -1
  390. package/dist/sof/generic/EveSOFDataGenericShader.js +2 -2
  391. package/dist/sof/generic/EveSOFDataGenericShader.js.map +1 -1
  392. package/dist/sof/generic/EveSOFDataGenericString.js +2 -2
  393. package/dist/sof/generic/EveSOFDataGenericString.js.map +1 -1
  394. package/dist/sof/generic/EveSOFDataGenericSwarm.js +2 -2
  395. package/dist/sof/generic/EveSOFDataGenericSwarm.js.map +1 -1
  396. package/dist/sof/generic/EveSOFDataGenericVariant.js +2 -2
  397. package/dist/sof/generic/EveSOFDataGenericVariant.js.map +1 -1
  398. package/dist/sof/generic/EveSOFDataVisibilityGroup.js +2 -2
  399. package/dist/sof/generic/EveSOFDataVisibilityGroup.js.map +1 -1
  400. package/dist/sof/hull/EveSOFDataHull.js +56 -3
  401. package/dist/sof/hull/EveSOFDataHull.js.map +1 -1
  402. package/dist/sof/hull/EveSOFDataHullAnimation.js +2 -2
  403. package/dist/sof/hull/EveSOFDataHullAnimation.js.map +1 -1
  404. package/dist/sof/hull/EveSOFDataHullArea.js +58 -54
  405. package/dist/sof/hull/EveSOFDataHullArea.js.map +1 -1
  406. package/dist/sof/hull/EveSOFDataHullBanner.js +109 -3
  407. package/dist/sof/hull/EveSOFDataHullBanner.js.map +1 -1
  408. package/dist/sof/hull/EveSOFDataHullBannerLight.js +2 -2
  409. package/dist/sof/hull/EveSOFDataHullBannerLight.js.map +1 -1
  410. package/dist/sof/hull/EveSOFDataHullBannerSet.js +2 -2
  411. package/dist/sof/hull/EveSOFDataHullBannerSet.js.map +1 -1
  412. package/dist/sof/hull/EveSOFDataHullBannerSetItem.js +109 -3
  413. package/dist/sof/hull/EveSOFDataHullBannerSetItem.js.map +1 -1
  414. package/dist/sof/hull/EveSOFDataHullBooster.js +2 -2
  415. package/dist/sof/hull/EveSOFDataHullBooster.js.map +1 -1
  416. package/dist/sof/hull/EveSOFDataHullBoosterItem.js +2 -2
  417. package/dist/sof/hull/EveSOFDataHullBoosterItem.js.map +1 -1
  418. package/dist/sof/hull/EveSOFDataHullChild.js +55 -50
  419. package/dist/sof/hull/EveSOFDataHullChild.js.map +1 -1
  420. package/dist/sof/hull/EveSOFDataHullChildSet.js +2 -2
  421. package/dist/sof/hull/EveSOFDataHullChildSet.js.map +1 -1
  422. package/dist/sof/hull/EveSOFDataHullChildSetItem.js +51 -46
  423. package/dist/sof/hull/EveSOFDataHullChildSetItem.js.map +1 -1
  424. package/dist/sof/hull/EveSOFDataHullController.js +2 -2
  425. package/dist/sof/hull/EveSOFDataHullController.js.map +1 -1
  426. package/dist/sof/hull/EveSOFDataHullDecalSet.js +2 -2
  427. package/dist/sof/hull/EveSOFDataHullDecalSet.js.map +1 -1
  428. package/dist/sof/hull/EveSOFDataHullDecalSetItem.js +45 -3
  429. package/dist/sof/hull/EveSOFDataHullDecalSetItem.js.map +1 -1
  430. package/dist/sof/hull/EveSOFDataHullHazeSet.js +21 -3
  431. package/dist/sof/hull/EveSOFDataHullHazeSet.js.map +1 -1
  432. package/dist/sof/hull/EveSOFDataHullHazeSetItem.js +47 -43
  433. package/dist/sof/hull/EveSOFDataHullHazeSetItem.js.map +1 -1
  434. package/dist/sof/hull/EveSOFDataHullLightSet.js +2 -2
  435. package/dist/sof/hull/EveSOFDataHullLightSet.js.map +1 -1
  436. package/dist/sof/hull/EveSOFDataHullLightSetItem.js +4 -2
  437. package/dist/sof/hull/EveSOFDataHullLightSetItem.js.map +1 -1
  438. package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js +2 -2
  439. package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js.map +1 -1
  440. package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js +2 -2
  441. package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js.map +1 -1
  442. package/dist/sof/hull/EveSOFDataHullLocator.js +2 -2
  443. package/dist/sof/hull/EveSOFDataHullLocator.js.map +1 -1
  444. package/dist/sof/hull/EveSOFDataHullLocatorSet.js +2 -2
  445. package/dist/sof/hull/EveSOFDataHullLocatorSet.js.map +1 -1
  446. package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js +2 -2
  447. package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js.map +1 -1
  448. package/dist/sof/hull/EveSOFDataHullPlaneSet.js +29 -3
  449. package/dist/sof/hull/EveSOFDataHullPlaneSet.js.map +1 -1
  450. package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js +81 -75
  451. package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js.map +1 -1
  452. package/dist/sof/hull/EveSOFDataHullSoundEmitter.js +2 -2
  453. package/dist/sof/hull/EveSOFDataHullSoundEmitter.js.map +1 -1
  454. package/dist/sof/hull/EveSOFDataHullSpotlightSet.js +2 -2
  455. package/dist/sof/hull/EveSOFDataHullSpotlightSet.js.map +1 -1
  456. package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js +45 -41
  457. package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js.map +1 -1
  458. package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js +2 -2
  459. package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js.map +1 -1
  460. package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js +70 -66
  461. package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js.map +1 -1
  462. package/dist/sof/hull/EveSOFDataHullSpriteSet.js +2 -2
  463. package/dist/sof/hull/EveSOFDataHullSpriteSet.js.map +1 -1
  464. package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js +45 -41
  465. package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js.map +1 -1
  466. package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js +2 -2
  467. package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js.map +1 -1
  468. package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js +2 -2
  469. package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js.map +1 -1
  470. package/dist/sof/layout/EveSOFDataHullExtensionBucket.js +2 -2
  471. package/dist/sof/layout/EveSOFDataHullExtensionBucket.js.map +1 -1
  472. package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js +2 -2
  473. package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js.map +1 -1
  474. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js +2 -2
  475. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js.map +1 -1
  476. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js +35 -3
  477. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js.map +1 -1
  478. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js +2 -2
  479. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js.map +1 -1
  480. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js +2 -2
  481. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js.map +1 -1
  482. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js +2 -2
  483. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js.map +1 -1
  484. package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js +2 -2
  485. package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js.map +1 -1
  486. package/dist/sof/layout/EveSOFDataLayout.js +2 -2
  487. package/dist/sof/layout/EveSOFDataLayout.js.map +1 -1
  488. package/dist/sof/pattern/EveSOFDataPattern.js +2 -2
  489. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  490. package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js +2 -2
  491. package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js.map +1 -1
  492. package/dist/sof/pattern/EveSOFDataPatternLayer.js +60 -3
  493. package/dist/sof/pattern/EveSOFDataPatternLayer.js.map +1 -1
  494. package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js +23 -3
  495. package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js.map +1 -1
  496. package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js +2 -2
  497. package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js.map +1 -1
  498. package/dist/sof/pattern/EveSOFDataPatternPerHull.js +2 -2
  499. package/dist/sof/pattern/EveSOFDataPatternPerHull.js.map +1 -1
  500. package/dist/sof/pattern/EveSOFDataPatternTransform.js +2 -2
  501. package/dist/sof/pattern/EveSOFDataPatternTransform.js.map +1 -1
  502. package/dist/sof/race/EveSOFDataRace.js +46 -42
  503. package/dist/sof/race/EveSOFDataRace.js.map +1 -1
  504. package/dist/sof/race/EveSOFDataRaceDamage.js +2 -2
  505. package/dist/sof/race/EveSOFDataRaceDamage.js.map +1 -1
  506. package/dist/sof/shared/CjsExternalRef.js +2 -2
  507. package/dist/sof/shared/CjsExternalRef.js.map +1 -1
  508. package/dist/sof/shared/EveSOFDNADescriptor.js +2 -2
  509. package/dist/sof/shared/EveSOFDNADescriptor.js.map +1 -1
  510. package/dist/sof/shared/EveSOFDataArea.js +61 -3
  511. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  512. package/dist/sof/shared/EveSOFDataAreaMaterial.js +4 -2
  513. package/dist/sof/shared/EveSOFDataAreaMaterial.js.map +1 -1
  514. package/dist/sof/shared/EveSOFDataBlinkType.js +48 -8
  515. package/dist/sof/shared/EveSOFDataBlinkType.js.map +1 -1
  516. package/dist/sof/shared/EveSOFDataBooster.js +2 -2
  517. package/dist/sof/shared/EveSOFDataBooster.js.map +1 -1
  518. package/dist/sof/shared/EveSOFDataBoosterShape.js +2 -2
  519. package/dist/sof/shared/EveSOFDataBoosterShape.js.map +1 -1
  520. package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js +2 -2
  521. package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js.map +1 -1
  522. package/dist/sof/shared/EveSOFDataInstancedMesh.js +40 -3
  523. package/dist/sof/shared/EveSOFDataInstancedMesh.js.map +1 -1
  524. package/dist/sof/shared/EveSOFDataLogo.js +2 -2
  525. package/dist/sof/shared/EveSOFDataLogo.js.map +1 -1
  526. package/dist/sof/shared/EveSOFDataLogoSet.js +33 -3
  527. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  528. package/dist/sof/shared/EveSOFDataMaterial.js +2 -2
  529. package/dist/sof/shared/EveSOFDataMaterial.js.map +1 -1
  530. package/dist/sof/shared/EveSOFDataParameter.js +2 -2
  531. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  532. package/dist/sof/shared/EveSOFDataParameterBool.js +2 -2
  533. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -1
  534. package/dist/sof/shared/EveSOFDataParameterColor.js +2 -2
  535. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -1
  536. package/dist/sof/shared/EveSOFDataParameterFloat.js +2 -2
  537. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -1
  538. package/dist/sof/shared/EveSOFDataParameterInt.js +2 -2
  539. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -1
  540. package/dist/sof/shared/EveSOFDataParameterVector2.js +2 -2
  541. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -1
  542. package/dist/sof/shared/EveSOFDataParameterVector3.js +2 -2
  543. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -1
  544. package/dist/sof/shared/EveSOFDataPointLightAttachment.js +2 -2
  545. package/dist/sof/shared/EveSOFDataPointLightAttachment.js.map +1 -1
  546. package/dist/sof/shared/EveSOFDataSpotLightAttachment.js +2 -2
  547. package/dist/sof/shared/EveSOFDataSpotLightAttachment.js.map +1 -1
  548. package/dist/sof/shared/EveSOFDataTexture.js +2 -2
  549. package/dist/sof/shared/EveSOFDataTexture.js.map +1 -1
  550. package/dist/sof/shared/EveSOFDataTransform.js +2 -2
  551. package/dist/sof/shared/EveSOFDataTransform.js.map +1 -1
  552. package/dist/sof/shared/EveSofDataMeshInstance.js +2 -2
  553. package/dist/sof/shared/EveSofDataMeshInstance.js.map +1 -1
  554. package/dist/sof/sofDocumentValues.js +9 -0
  555. package/dist/sof/sofDocumentValues.js.map +1 -1
  556. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +2 -25
  557. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -1
  558. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js +2 -72
  559. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -1
  560. package/dist/trinity/controllers/ITr2ControllerOwner.js +1 -36
  561. package/dist/trinity/controllers/ITr2ControllerOwner.js.map +1 -1
  562. package/dist/trinity/controllers/Tr2Controller.js +4 -5
  563. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  564. package/dist/trinity/controllers/Tr2ControllerEventHandler.js +2 -2
  565. package/dist/trinity/controllers/Tr2ControllerEventHandler.js.map +1 -1
  566. package/dist/trinity/controllers/Tr2ControllerReference.js +9 -17
  567. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  568. package/dist/trinity/controllers/Tr2SyncToAnimation.js +4 -5
  569. package/dist/trinity/controllers/Tr2SyncToAnimation.js.map +1 -1
  570. package/dist/trinity/controllers/action/ITr2ControllerAction.js +1 -28
  571. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  572. package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js +9 -7
  573. package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js.map +1 -1
  574. package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js +11 -9
  575. package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js.map +1 -1
  576. package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js +9 -7
  577. package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js.map +1 -1
  578. package/dist/trinity/controllers/action/Tr2ActionCallback.js +4 -5
  579. package/dist/trinity/controllers/action/Tr2ActionCallback.js.map +1 -1
  580. package/dist/trinity/controllers/action/Tr2ActionChildEffect.js +4 -5
  581. package/dist/trinity/controllers/action/Tr2ActionChildEffect.js.map +1 -1
  582. package/dist/trinity/controllers/action/Tr2ActionOverlay.js +4 -5
  583. package/dist/trinity/controllers/action/Tr2ActionOverlay.js.map +1 -1
  584. package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js +4 -5
  585. package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js.map +1 -1
  586. package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js +13 -9
  587. package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js.map +1 -1
  588. package/dist/trinity/controllers/action/Tr2ActionPlaySound.js +4 -5
  589. package/dist/trinity/controllers/action/Tr2ActionPlaySound.js.map +1 -1
  590. package/dist/trinity/controllers/action/Tr2ActionPython.js +6 -6
  591. package/dist/trinity/controllers/action/Tr2ActionPython.js.map +1 -1
  592. package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js +4 -5
  593. package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js.map +1 -1
  594. package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js +4 -5
  595. package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js.map +1 -1
  596. package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js +4 -5
  597. package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  598. package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js +4 -5
  599. package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js.map +1 -1
  600. package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js +8 -17
  601. package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  602. package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js +4 -5
  603. package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js.map +1 -1
  604. package/dist/trinity/controllers/action/Tr2ActionSetValue.js +11 -9
  605. package/dist/trinity/controllers/action/Tr2ActionSetValue.js.map +1 -1
  606. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +4 -5
  607. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  608. package/dist/trinity/controllers/contracts.js +27 -19
  609. package/dist/trinity/controllers/contracts.js.map +1 -1
  610. package/dist/trinity/controllers/expression/Tr2BindingPoint.js +6 -15
  611. package/dist/trinity/controllers/expression/Tr2BindingPoint.js.map +1 -1
  612. package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js +2 -2
  613. package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js.map +1 -1
  614. package/dist/trinity/controllers/expression/expressionRuntime.js +136 -0
  615. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -1
  616. package/dist/trinity/controllers/index.js +6 -6
  617. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +1 -24
  618. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  619. package/dist/trinity/controllers/state/Tr2StateMachine.js +4 -6
  620. package/dist/trinity/controllers/state/Tr2StateMachine.js.map +1 -1
  621. package/dist/trinity/controllers/state/Tr2StateMachineState.js +6 -6
  622. package/dist/trinity/controllers/state/Tr2StateMachineState.js.map +1 -1
  623. package/dist/trinity/controllers/state/Tr2StateMachineTransition.js +12 -9
  624. package/dist/trinity/controllers/state/Tr2StateMachineTransition.js.map +1 -1
  625. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +5 -6
  626. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  627. package/dist/trinity/core/ITr2Renderable.js +1 -49
  628. package/dist/trinity/core/ITr2Renderable.js.map +1 -1
  629. package/dist/trinity/core/ITr2Updateable.js +1 -22
  630. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  631. package/dist/trinity/core/ITriReroutable.js +56 -0
  632. package/dist/trinity/core/ITriReroutable.js.map +1 -0
  633. package/dist/trinity/core/Tr2Denoiser.js +2 -2
  634. package/dist/trinity/core/Tr2Denoiser.js.map +1 -1
  635. package/dist/trinity/core/Tr2MaterialParameterStore.js +2 -2
  636. package/dist/trinity/core/Tr2MaterialParameterStore.js.map +1 -1
  637. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js +2 -2
  638. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -1
  639. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +1 -1
  640. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -1
  641. package/dist/trinity/core/Tr2Renderer.js +161 -4
  642. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  643. package/dist/trinity/core/Tr2ShadowMap.js +3 -3
  644. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  645. package/dist/trinity/core/Tr2StreamingBitmapSaver.js +2 -2
  646. package/dist/trinity/core/Tr2StreamingBitmapSaver.js.map +1 -1
  647. package/dist/trinity/core/Tr2Transform.js +4 -5
  648. package/dist/trinity/core/Tr2Transform.js.map +1 -1
  649. package/dist/trinity/core/animation/Tr2GrannyAnimation.js +2 -2
  650. package/dist/trinity/core/animation/Tr2GrannyAnimation.js.map +1 -1
  651. package/dist/trinity/core/animation/Tr2TextureAnimation.js +2 -2
  652. package/dist/trinity/core/animation/Tr2TextureAnimation.js.map +1 -1
  653. package/dist/trinity/core/animation/TriRigidOrientation.js +2 -2
  654. package/dist/trinity/core/animation/TriRigidOrientation.js.map +1 -1
  655. package/dist/trinity/core/animation/TriTorque.js +2 -2
  656. package/dist/trinity/core/animation/TriTorque.js.map +1 -1
  657. package/dist/trinity/core/batch/CjsBatchManager.js +15 -50
  658. package/dist/trinity/core/batch/CjsBatchManager.js.map +1 -1
  659. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -1
  660. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js +12 -14
  661. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -1
  662. package/dist/trinity/core/binding/Tr2BindingVector3.js +2 -2
  663. package/dist/trinity/core/binding/Tr2BindingVector3.js.map +1 -1
  664. package/dist/trinity/core/binding/Tr2DynamicBinding.js +6 -20
  665. package/dist/trinity/core/binding/Tr2DynamicBinding.js.map +1 -1
  666. package/dist/trinity/core/binding/Tr2ExternalParameter.js +3 -6
  667. package/dist/trinity/core/binding/Tr2ExternalParameter.js.map +1 -1
  668. package/dist/trinity/core/binding/Tr2PyValueBinding.js +2 -2
  669. package/dist/trinity/core/binding/Tr2PyValueBinding.js.map +1 -1
  670. package/dist/trinity/core/binding/TriValueBinding.js +50 -24
  671. package/dist/trinity/core/binding/TriValueBinding.js.map +1 -1
  672. package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js +0 -6
  673. package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js.map +1 -1
  674. package/dist/trinity/core/context/CjsTrinityStepExecutor.js +7 -10
  675. package/dist/trinity/core/context/CjsTrinityStepExecutor.js.map +1 -1
  676. package/dist/trinity/core/context/Tr2RenderContext.js +74 -116
  677. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  678. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  679. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  680. package/dist/trinity/core/device/Tr2GpuBuffer.js +2 -2
  681. package/dist/trinity/core/device/Tr2GpuBuffer.js.map +1 -1
  682. package/dist/trinity/core/device/Tr2RenderTarget.js +2 -2
  683. package/dist/trinity/core/device/Tr2RenderTarget.js.map +1 -1
  684. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +2 -2
  685. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -1
  686. package/dist/trinity/core/device/Tr2SwapChain.js +2 -2
  687. package/dist/trinity/core/device/Tr2SwapChain.js.map +1 -1
  688. package/dist/trinity/core/device/TriDevice.js +576 -37
  689. package/dist/trinity/core/device/TriDevice.js.map +1 -1
  690. package/dist/trinity/core/device/gTriDev.js +49 -0
  691. package/dist/trinity/core/device/gTriDev.js.map +1 -0
  692. package/dist/trinity/core/index.js +9 -5
  693. package/dist/trinity/core/index.js.map +1 -1
  694. package/dist/trinity/core/lighting/Tr2KelvinColor.js +2 -2
  695. package/dist/trinity/core/lighting/Tr2KelvinColor.js.map +1 -1
  696. package/dist/trinity/core/lighting/Tr2LightManager.js +7 -17
  697. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  698. package/dist/trinity/core/lighting/Tr2ShLightingManager.js +2 -2
  699. package/dist/trinity/core/lighting/Tr2ShLightingManager.js.map +1 -1
  700. package/dist/trinity/core/line/Tr2BoundingLineSet.js +2 -2
  701. package/dist/trinity/core/line/Tr2BoundingLineSet.js.map +1 -1
  702. package/dist/trinity/core/line/Tr2CurveLineSet.js +10 -7
  703. package/dist/trinity/core/line/Tr2CurveLineSet.js.map +1 -1
  704. package/dist/trinity/core/line/Tr2LineGraph.js +2 -2
  705. package/dist/trinity/core/line/Tr2LineGraph.js.map +1 -1
  706. package/dist/trinity/core/line/Tr2PrimitiveSet.js +4 -5
  707. package/dist/trinity/core/line/Tr2PrimitiveSet.js.map +1 -1
  708. package/dist/trinity/core/line/TriLineSet.js +2 -2
  709. package/dist/trinity/core/line/TriLineSet.js.map +1 -1
  710. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js +1 -37
  711. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -1
  712. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js +1 -34
  713. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -1
  714. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +5 -6
  715. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  716. package/dist/trinity/core/mesh/Tr2InstancedMesh.js +2 -2
  717. package/dist/trinity/core/mesh/Tr2InstancedMesh.js.map +1 -1
  718. package/dist/trinity/core/mesh/Tr2Mesh.js +288 -183
  719. package/dist/trinity/core/mesh/Tr2Mesh.js.map +1 -1
  720. package/dist/trinity/core/mesh/Tr2MeshArea.js +32 -3
  721. package/dist/trinity/core/mesh/Tr2MeshArea.js.map +1 -1
  722. package/dist/trinity/core/mesh/Tr2MeshBase.js +58 -8
  723. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  724. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +141 -142
  725. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  726. package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js +2 -2
  727. package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js.map +1 -1
  728. package/dist/trinity/core/procedural/GradientTextureConstructor.js +62 -0
  729. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -0
  730. package/dist/trinity/core/procedural/gradientTexture.js +196 -0
  731. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -0
  732. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -1
  733. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +5 -0
  734. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -1
  735. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +2 -0
  736. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -1
  737. package/dist/trinity/core/tool/Tr2ManipulationTool.js +2 -2
  738. package/dist/trinity/core/tool/Tr2ManipulationTool.js.map +1 -1
  739. package/dist/trinity/core/tool/Tr2RotationTool.js +2 -2
  740. package/dist/trinity/core/tool/Tr2RotationTool.js.map +1 -1
  741. package/dist/trinity/core/tool/Tr2ScalingTool.js +2 -2
  742. package/dist/trinity/core/tool/Tr2ScalingTool.js.map +1 -1
  743. package/dist/trinity/core/tool/Tr2TranslationTool.js +2 -2
  744. package/dist/trinity/core/tool/Tr2TranslationTool.js.map +1 -1
  745. package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js +2 -2
  746. package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js.map +1 -1
  747. package/dist/trinity/core/variable/TriFloat.js +2 -2
  748. package/dist/trinity/core/variable/TriFloat.js.map +1 -1
  749. package/dist/trinity/core/variable/TriObserverLocal.js +2 -2
  750. package/dist/trinity/core/variable/TriObserverLocal.js.map +1 -1
  751. package/dist/trinity/core/variable/TriVariable.js +2 -2
  752. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  753. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js +2 -0
  754. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -1
  755. package/dist/trinity/core/view/TriProjection.js +2 -2
  756. package/dist/trinity/core/view/TriProjection.js.map +1 -1
  757. package/dist/trinity/core/view/TriRect.js +2 -2
  758. package/dist/trinity/core/view/TriRect.js.map +1 -1
  759. package/dist/trinity/core/view/TriView.js +2 -2
  760. package/dist/trinity/core/view/TriView.js.map +1 -1
  761. package/dist/trinity/core/view/TriViewport.js +2 -2
  762. package/dist/trinity/core/view/TriViewport.js.map +1 -1
  763. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +3 -3
  764. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  765. package/dist/trinity/curves/Tr2CurveSetRange.js +2 -2
  766. package/dist/trinity/curves/Tr2CurveSetRange.js.map +1 -1
  767. package/dist/trinity/curves/TriCurveSet.js +2 -2
  768. package/dist/trinity/curves/TriCurveSet.js.map +1 -1
  769. package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js +2 -2
  770. package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js.map +1 -1
  771. package/dist/trinity/curves/curve/Tr2CurveColor.js +2 -2
  772. package/dist/trinity/curves/curve/Tr2CurveColor.js.map +1 -1
  773. package/dist/trinity/curves/curve/Tr2CurveColorMixer.js +2 -2
  774. package/dist/trinity/curves/curve/Tr2CurveColorMixer.js.map +1 -1
  775. package/dist/trinity/curves/curve/Tr2CurveCombiner.js +3 -3
  776. package/dist/trinity/curves/curve/Tr2CurveCombiner.js.map +1 -1
  777. package/dist/trinity/curves/curve/Tr2CurveConstant.js +2 -2
  778. package/dist/trinity/curves/curve/Tr2CurveConstant.js.map +1 -1
  779. package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js +2 -2
  780. package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js.map +1 -1
  781. package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js +2 -2
  782. package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js.map +1 -1
  783. package/dist/trinity/curves/curve/Tr2CurveQuaternion.js +3 -3
  784. package/dist/trinity/curves/curve/Tr2CurveQuaternion.js.map +1 -1
  785. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +2 -2
  786. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  787. package/dist/trinity/curves/curve/Tr2CurveScalar.js +3 -3
  788. package/dist/trinity/curves/curve/Tr2CurveScalar.js.map +1 -1
  789. package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js +2 -2
  790. package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js.map +1 -1
  791. package/dist/trinity/curves/curve/Tr2CurveVector2.js +2 -2
  792. package/dist/trinity/curves/curve/Tr2CurveVector2.js.map +1 -1
  793. package/dist/trinity/curves/curve/Tr2CurveVector3.js +2 -2
  794. package/dist/trinity/curves/curve/Tr2CurveVector3.js.map +1 -1
  795. package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js +2 -2
  796. package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js.map +1 -1
  797. package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js +2 -2
  798. package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js.map +1 -1
  799. package/dist/trinity/curves/curve/Tr2DistanceTracker.js +5 -5
  800. package/dist/trinity/curves/curve/Tr2DistanceTracker.js.map +1 -1
  801. package/dist/trinity/curves/curve/Tr2FollowCurve.js +2 -2
  802. package/dist/trinity/curves/curve/Tr2FollowCurve.js.map +1 -1
  803. package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js +2 -2
  804. package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js.map +1 -1
  805. package/dist/trinity/curves/curve/Tr2RotationAdapter.js +2 -2
  806. package/dist/trinity/curves/curve/Tr2RotationAdapter.js.map +1 -1
  807. package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js +2 -2
  808. package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js.map +1 -1
  809. package/dist/trinity/curves/curve/Tr2ScalarFader.js +2 -2
  810. package/dist/trinity/curves/curve/Tr2ScalarFader.js.map +1 -1
  811. package/dist/trinity/curves/curve/Tr2TranslationAdapter.js +2 -2
  812. package/dist/trinity/curves/curve/Tr2TranslationAdapter.js.map +1 -1
  813. package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js +2 -2
  814. package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js.map +1 -1
  815. package/dist/trinity/curves/curve/TriColorSequencer.js +18 -18
  816. package/dist/trinity/curves/curve/TriColorSequencer.js.map +1 -1
  817. package/dist/trinity/curves/curve/TriEventCurve.js +51 -51
  818. package/dist/trinity/curves/curve/TriEventCurve.js.map +1 -1
  819. package/dist/trinity/curves/curve/TriPerlinCurve.js +2 -2
  820. package/dist/trinity/curves/curve/TriPerlinCurve.js.map +1 -1
  821. package/dist/trinity/curves/curve/TriVectorSequencer.js +36 -36
  822. package/dist/trinity/curves/curve/TriVectorSequencer.js.map +1 -1
  823. package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js +2 -2
  824. package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js.map +1 -1
  825. package/dist/trinity/curves/key/Tr2MatrixKey.js +2 -2
  826. package/dist/trinity/curves/key/Tr2MatrixKey.js.map +1 -1
  827. package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js +2 -2
  828. package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js.map +1 -1
  829. package/dist/trinity/curves/key/Tr2ScalarExprKey.js +28 -24
  830. package/dist/trinity/curves/key/Tr2ScalarExprKey.js.map +1 -1
  831. package/dist/trinity/curves/key/TriEventKey.js +2 -2
  832. package/dist/trinity/curves/key/TriEventKey.js.map +1 -1
  833. package/dist/trinity/curves/track/Tr2GrannyEventTrack.js +2 -2
  834. package/dist/trinity/curves/track/Tr2GrannyEventTrack.js.map +1 -1
  835. package/dist/trinity/curves/track/Tr2GrannyTrack.js +9 -4
  836. package/dist/trinity/curves/track/Tr2GrannyTrack.js.map +1 -1
  837. package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js +2 -2
  838. package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js.map +1 -1
  839. package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js +2 -2
  840. package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js.map +1 -1
  841. package/dist/trinity/eve/AudioGameObject.js +6 -8
  842. package/dist/trinity/eve/AudioGameObject.js.map +1 -1
  843. package/dist/trinity/eve/EveCustomMask.js +2 -2
  844. package/dist/trinity/eve/EveCustomMask.js.map +1 -1
  845. package/dist/trinity/eve/EveDistanceField.js +6 -4
  846. package/dist/trinity/eve/EveDistanceField.js.map +1 -1
  847. package/dist/trinity/eve/EveImpactOverlay.js +2 -2
  848. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  849. package/dist/trinity/eve/EveThrottleable.js +2 -2
  850. package/dist/trinity/eve/EveThrottleable.js.map +1 -1
  851. package/dist/trinity/eve/EveTriggerVolume.js +4 -5
  852. package/dist/trinity/eve/EveTriggerVolume.js.map +1 -1
  853. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +1 -23
  854. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  855. package/dist/trinity/eve/IEveSpaceObject2.js +1 -24
  856. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  857. package/dist/trinity/eve/IEveTransform.js +1 -22
  858. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  859. package/dist/trinity/eve/attachment/banner/EveBannerItem.js +2 -2
  860. package/dist/trinity/eve/attachment/banner/EveBannerItem.js.map +1 -1
  861. package/dist/trinity/eve/attachment/banner/EveBannerLight.js +2 -2
  862. package/dist/trinity/eve/attachment/banner/EveBannerLight.js.map +1 -1
  863. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +20 -3
  864. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  865. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +127 -122
  866. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  867. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +5 -5
  868. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -1
  869. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +4 -5
  870. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  871. package/dist/trinity/eve/attachment/booster/EveTrailsSet.js +4 -2
  872. package/dist/trinity/eve/attachment/booster/EveTrailsSet.js.map +1 -1
  873. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +169 -155
  874. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  875. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +3 -3
  876. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  877. package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js +2 -2
  878. package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js.map +1 -1
  879. package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js +2 -2
  880. package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js.map +1 -1
  881. package/dist/trinity/eve/attachment/plane/EvePlaneLight.js +2 -2
  882. package/dist/trinity/eve/attachment/plane/EvePlaneLight.js.map +1 -1
  883. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +10 -4
  884. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  885. package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js +3 -2
  886. package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js.map +1 -1
  887. package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js +2 -2
  888. package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -1
  889. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +3 -3
  890. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  891. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js +2 -2
  892. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -1
  893. package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js +2 -2
  894. package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js.map +1 -1
  895. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +4 -4
  896. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  897. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js +2 -2
  898. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -1
  899. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +5 -5
  900. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  901. package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js +2 -2
  902. package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -1
  903. package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js +7 -4
  904. package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  905. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +177 -144
  906. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  907. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +2 -2
  908. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  909. package/dist/trinity/eve/camera/EveCamera.js +5 -11
  910. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  911. package/dist/trinity/eve/child/EveChildAudio.js +4 -5
  912. package/dist/trinity/eve/child/EveChildAudio.js.map +1 -1
  913. package/dist/trinity/eve/child/EveChildBehaviorSystem.js +5 -6
  914. package/dist/trinity/eve/child/EveChildBehaviorSystem.js.map +1 -1
  915. package/dist/trinity/eve/child/EveChildBoosterSet.js +6 -6
  916. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  917. package/dist/trinity/eve/child/EveChildBulletStorm.js +4 -5
  918. package/dist/trinity/eve/child/EveChildBulletStorm.js.map +1 -1
  919. package/dist/trinity/eve/child/EveChildCloud.js +5 -6
  920. package/dist/trinity/eve/child/EveChildCloud.js.map +1 -1
  921. package/dist/trinity/eve/child/EveChildCloud2.js +166 -166
  922. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  923. package/dist/trinity/eve/child/EveChildContainer.js +235 -169
  924. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  925. package/dist/trinity/eve/child/EveChildEffectPropagator.js +9 -9
  926. package/dist/trinity/eve/child/EveChildEffectPropagator.js.map +1 -1
  927. package/dist/trinity/eve/child/EveChildExplosion.js +11 -7
  928. package/dist/trinity/eve/child/EveChildExplosion.js.map +1 -1
  929. package/dist/trinity/eve/child/EveChildFogVolume.js +2 -2
  930. package/dist/trinity/eve/child/EveChildFogVolume.js.map +1 -1
  931. package/dist/trinity/eve/child/EveChildInheritProperties.js +2 -2
  932. package/dist/trinity/eve/child/EveChildInheritProperties.js.map +1 -1
  933. package/dist/trinity/eve/child/EveChildInstanceContainer.js +2 -2
  934. package/dist/trinity/eve/child/EveChildInstanceContainer.js.map +1 -1
  935. package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js +11 -7
  936. package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
  937. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +2 -2
  938. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  939. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +2 -2
  940. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -1
  941. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +2 -2
  942. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -1
  943. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +4 -5
  944. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  945. package/dist/trinity/eve/child/EveChildLightingOverride.js +4 -5
  946. package/dist/trinity/eve/child/EveChildLightingOverride.js.map +1 -1
  947. package/dist/trinity/eve/child/EveChildLineSet.js +4 -5
  948. package/dist/trinity/eve/child/EveChildLineSet.js.map +1 -1
  949. package/dist/trinity/eve/child/EveChildLink.js +2 -2
  950. package/dist/trinity/eve/child/EveChildLink.js.map +1 -1
  951. package/dist/trinity/eve/child/EveChildMesh.js +315 -229
  952. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  953. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +2 -2
  954. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -1
  955. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js +2 -2
  956. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -1
  957. package/dist/trinity/eve/child/EveChildParticleSphere.js +4 -5
  958. package/dist/trinity/eve/child/EveChildParticleSphere.js.map +1 -1
  959. package/dist/trinity/eve/child/EveChildParticleSystem.js +36 -36
  960. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  961. package/dist/trinity/eve/child/EveChildPlug.js +60 -14
  962. package/dist/trinity/eve/child/EveChildPlug.js.map +1 -1
  963. package/dist/trinity/eve/child/EveChildPostProcessVolume.js +2 -2
  964. package/dist/trinity/eve/child/EveChildPostProcessVolume.js.map +1 -1
  965. package/dist/trinity/eve/child/EveChildQuad.js +4 -5
  966. package/dist/trinity/eve/child/EveChildQuad.js.map +1 -1
  967. package/dist/trinity/eve/child/EveChildRef.js +2 -2
  968. package/dist/trinity/eve/child/EveChildRef.js.map +1 -1
  969. package/dist/trinity/eve/child/EveChildSocket.js +2 -2
  970. package/dist/trinity/eve/child/EveChildSocket.js.map +1 -1
  971. package/dist/trinity/eve/child/EveChildSpherePin.js +4 -4
  972. package/dist/trinity/eve/child/EveChildSpherePin.js.map +1 -1
  973. package/dist/trinity/eve/child/EveChildTurret.js +4 -4
  974. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  975. package/dist/trinity/eve/child/EveCloudVolumeBall.js +2 -2
  976. package/dist/trinity/eve/child/EveCloudVolumeBall.js.map +1 -1
  977. package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js +6 -6
  978. package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
  979. package/dist/trinity/eve/child/EveSpaceObjectChild.js +2 -2
  980. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  981. package/dist/trinity/eve/child/IEveLightingOverride.js +1 -23
  982. package/dist/trinity/eve/child/IEveLightingOverride.js.map +1 -1
  983. package/dist/trinity/eve/child/behaviors/Allign.js +2 -2
  984. package/dist/trinity/eve/child/behaviors/Allign.js.map +1 -1
  985. package/dist/trinity/eve/child/behaviors/ApproachGroup.js +2 -2
  986. package/dist/trinity/eve/child/behaviors/ApproachGroup.js.map +1 -1
  987. package/dist/trinity/eve/child/behaviors/BackAndForth.js +2 -2
  988. package/dist/trinity/eve/child/behaviors/BackAndForth.js.map +1 -1
  989. package/dist/trinity/eve/child/behaviors/BehaviorGroup.js +4 -4
  990. package/dist/trinity/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  991. package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js +2 -2
  992. package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
  993. package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js +2 -2
  994. package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js.map +1 -1
  995. package/dist/trinity/eve/child/behaviors/DroneAvoidance.js +2 -2
  996. package/dist/trinity/eve/child/behaviors/DroneAvoidance.js.map +1 -1
  997. package/dist/trinity/eve/child/behaviors/FollowASpline.js +2 -2
  998. package/dist/trinity/eve/child/behaviors/FollowASpline.js.map +1 -1
  999. package/dist/trinity/eve/child/behaviors/Formation.js +2 -2
  1000. package/dist/trinity/eve/child/behaviors/Formation.js.map +1 -1
  1001. package/dist/trinity/eve/child/behaviors/InclusionVolume.js +2 -2
  1002. package/dist/trinity/eve/child/behaviors/InclusionVolume.js.map +1 -1
  1003. package/dist/trinity/eve/child/behaviors/Inertia.js +2 -2
  1004. package/dist/trinity/eve/child/behaviors/Inertia.js.map +1 -1
  1005. package/dist/trinity/eve/child/behaviors/PlayFX.js +2 -2
  1006. package/dist/trinity/eve/child/behaviors/PlayFX.js.map +1 -1
  1007. package/dist/trinity/eve/child/behaviors/SeekTarget.js +2 -2
  1008. package/dist/trinity/eve/child/behaviors/SeekTarget.js.map +1 -1
  1009. package/dist/trinity/eve/child/behaviors/SpawnDrones.js +2 -2
  1010. package/dist/trinity/eve/child/behaviors/SpawnDrones.js.map +1 -1
  1011. package/dist/trinity/eve/child/behaviors/Wander.js +2 -2
  1012. package/dist/trinity/eve/child/behaviors/Wander.js.map +1 -1
  1013. package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js +2 -2
  1014. package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -1
  1015. package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js +2 -2
  1016. package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -1
  1017. package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js +8 -8
  1018. package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  1019. package/dist/trinity/eve/child/lineSetPaths/EveCircle.js +8 -8
  1020. package/dist/trinity/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  1021. package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js +2 -2
  1022. package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
  1023. package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js +2 -2
  1024. package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -1
  1025. package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js +2 -2
  1026. package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -1
  1027. package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js +2 -2
  1028. package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  1029. package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js +2 -2
  1030. package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js.map +1 -1
  1031. package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js +2 -2
  1032. package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -1
  1033. package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js +5 -6
  1034. package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
  1035. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js +3 -3
  1036. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -1
  1037. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +3 -3
  1038. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -1
  1039. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js +2 -2
  1040. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -1
  1041. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js +3 -3
  1042. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -1
  1043. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js +4 -4
  1044. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -1
  1045. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js +4 -4
  1046. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -1
  1047. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js +4 -4
  1048. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -1
  1049. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js +4 -4
  1050. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -1
  1051. package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js +2 -2
  1052. package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js.map +1 -1
  1053. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +2 -2
  1054. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -1
  1055. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +2 -2
  1056. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -1
  1057. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +2 -2
  1058. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -1
  1059. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js +2 -2
  1060. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -1
  1061. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +4 -4
  1062. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -1
  1063. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js +2 -2
  1064. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -1
  1065. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +2 -2
  1066. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -1
  1067. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +2 -2
  1068. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -1
  1069. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +2 -2
  1070. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -1
  1071. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +2 -2
  1072. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -1
  1073. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js +2 -2
  1074. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -1
  1075. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +2 -2
  1076. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -1
  1077. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js +2 -2
  1078. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -1
  1079. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +2 -2
  1080. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -1
  1081. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +2 -2
  1082. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -1
  1083. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +2 -2
  1084. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -1
  1085. package/dist/trinity/eve/effect/lensflare/EveLensflare.js +4 -5
  1086. package/dist/trinity/eve/effect/lensflare/EveLensflare.js.map +1 -1
  1087. package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js +4 -5
  1088. package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js.map +1 -1
  1089. package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js +4 -4
  1090. package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -1
  1091. package/dist/trinity/eve/index.js +4 -4
  1092. package/dist/trinity/eve/lights/Tr2FactionLight.js +5 -6
  1093. package/dist/trinity/eve/lights/Tr2FactionLight.js.map +1 -1
  1094. package/dist/trinity/eve/lights/Tr2Light.js +37 -9
  1095. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  1096. package/dist/trinity/eve/lights/Tr2PointLight.js +2 -2
  1097. package/dist/trinity/eve/lights/Tr2PointLight.js.map +1 -1
  1098. package/dist/trinity/eve/lights/Tr2SpotLight.js +2 -2
  1099. package/dist/trinity/eve/lights/Tr2SpotLight.js.map +1 -1
  1100. package/dist/trinity/eve/lights/Tr2TexturedPointLight.js +29 -31
  1101. package/dist/trinity/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  1102. package/dist/trinity/eve/locator/EveLocator2.js +2 -2
  1103. package/dist/trinity/eve/locator/EveLocator2.js.map +1 -1
  1104. package/dist/trinity/eve/locator/EveLocatorSets.js +13 -4
  1105. package/dist/trinity/eve/locator/EveLocatorSets.js.map +1 -1
  1106. package/dist/trinity/eve/locator/Locator.js +2 -2
  1107. package/dist/trinity/eve/locator/Locator.js.map +1 -1
  1108. package/dist/trinity/eve/overlays/EveDamageOverlay.js +2 -2
  1109. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  1110. package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js +2 -2
  1111. package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js.map +1 -1
  1112. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +5 -6
  1113. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  1114. package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js +4 -5
  1115. package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  1116. package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js +2 -2
  1117. package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  1118. package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js +2 -2
  1119. package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  1120. package/dist/trinity/eve/renderable/stretch/EveStretch.js +6 -6
  1121. package/dist/trinity/eve/renderable/stretch/EveStretch.js.map +1 -1
  1122. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +10 -8
  1123. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  1124. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +4 -5
  1125. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  1126. package/dist/trinity/eve/scene/EveSpaceScene.js +2 -2
  1127. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  1128. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -2
  1129. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  1130. package/dist/trinity/eve/scene/components/EveComponentRegistry.js +3 -3
  1131. package/dist/trinity/eve/scene/components/EveComponentRegistry.js.map +1 -1
  1132. package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js +6 -7
  1133. package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  1134. package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js +2 -2
  1135. package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
  1136. package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js +4 -8
  1137. package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  1138. package/dist/trinity/eve/smartLights/EveSmartLightMesh.js +7 -4
  1139. package/dist/trinity/eve/smartLights/EveSmartLightMesh.js.map +1 -1
  1140. package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js +25 -15
  1141. package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  1142. package/dist/trinity/eve/smartLights/EveSmartLightQuad.js +4 -9
  1143. package/dist/trinity/eve/smartLights/EveSmartLightQuad.js.map +1 -1
  1144. package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js +2 -2
  1145. package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
  1146. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +2 -3
  1147. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -1
  1148. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +2 -2
  1149. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -1
  1150. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +2 -2
  1151. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -1
  1152. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +10 -18
  1153. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -1
  1154. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +2 -2
  1155. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -1
  1156. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +2 -2
  1157. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -1
  1158. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +4 -9
  1159. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -1
  1160. package/dist/trinity/eve/socket/EveSocketParameterBool.js +2 -2
  1161. package/dist/trinity/eve/socket/EveSocketParameterBool.js.map +1 -1
  1162. package/dist/trinity/eve/socket/EveSocketParameterColor.js +2 -2
  1163. package/dist/trinity/eve/socket/EveSocketParameterColor.js.map +1 -1
  1164. package/dist/trinity/eve/socket/EveSocketParameterFloat.js +2 -2
  1165. package/dist/trinity/eve/socket/EveSocketParameterFloat.js.map +1 -1
  1166. package/dist/trinity/eve/socket/EveSocketParameterInt.js +2 -2
  1167. package/dist/trinity/eve/socket/EveSocketParameterInt.js.map +1 -1
  1168. package/dist/trinity/eve/socket/EveSocketParameterString.js +2 -2
  1169. package/dist/trinity/eve/socket/EveSocketParameterString.js.map +1 -1
  1170. package/dist/trinity/eve/socket/EveSocketParameterVector2.js +2 -2
  1171. package/dist/trinity/eve/socket/EveSocketParameterVector2.js.map +1 -1
  1172. package/dist/trinity/eve/socket/EveSocketParameterVector3.js +2 -2
  1173. package/dist/trinity/eve/socket/EveSocketParameterVector3.js.map +1 -1
  1174. package/dist/trinity/eve/socket/EveSocketParameterVector4.js +2 -2
  1175. package/dist/trinity/eve/socket/EveSocketParameterVector4.js.map +1 -1
  1176. package/dist/trinity/eve/spaceObject/EveEffectRoot2.js +20 -17
  1177. package/dist/trinity/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  1178. package/dist/trinity/eve/spaceObject/EveMissile.js +2 -2
  1179. package/dist/trinity/eve/spaceObject/EveMissile.js.map +1 -1
  1180. package/dist/trinity/eve/spaceObject/EveMissileWarhead.js +2 -2
  1181. package/dist/trinity/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  1182. package/dist/trinity/eve/spaceObject/EveMobile.js +2 -2
  1183. package/dist/trinity/eve/spaceObject/EveMobile.js.map +1 -1
  1184. package/dist/trinity/eve/spaceObject/EveRootTransform.js +2 -2
  1185. package/dist/trinity/eve/spaceObject/EveRootTransform.js.map +1 -1
  1186. package/dist/trinity/eve/spaceObject/EveShip2.js +2 -2
  1187. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  1188. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +539 -432
  1189. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  1190. package/dist/trinity/eve/spaceObject/EveTransform.js +7 -7
  1191. package/dist/trinity/eve/spaceObject/EveTransform.js.map +1 -1
  1192. package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js +44 -52
  1193. package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -1
  1194. package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +2 -2
  1195. package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -1
  1196. package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +2 -2
  1197. package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -1
  1198. package/dist/trinity/eve/spaceObject/planet/EvePlanet.js +2 -2
  1199. package/dist/trinity/eve/spaceObject/planet/EvePlanet.js.map +1 -1
  1200. package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js +2 -2
  1201. package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  1202. package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js +7 -8
  1203. package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
  1204. package/dist/trinity/eve/ui/EveConnector.js +2 -2
  1205. package/dist/trinity/eve/ui/EveConnector.js.map +1 -1
  1206. package/dist/trinity/eve/ui/EveEllipseDefinition.js +2 -2
  1207. package/dist/trinity/eve/ui/EveEllipseDefinition.js.map +1 -1
  1208. package/dist/trinity/eve/ui/EveEllipseSet.js +36 -6
  1209. package/dist/trinity/eve/ui/EveEllipseSet.js.map +1 -1
  1210. package/dist/trinity/eve/ui/EveLineContainer.js +4 -5
  1211. package/dist/trinity/eve/ui/EveLineContainer.js.map +1 -1
  1212. package/dist/trinity/eve/ui/EveProjectBracket.js +11 -3
  1213. package/dist/trinity/eve/ui/EveProjectBracket.js.map +1 -1
  1214. package/dist/trinity/eve/ui/EveSpherePin.js +6 -7
  1215. package/dist/trinity/eve/ui/EveSpherePin.js.map +1 -1
  1216. package/dist/trinity/eve/ui/EveSprite2dBracket.js +2 -2
  1217. package/dist/trinity/eve/ui/EveSprite2dBracket.js.map +1 -1
  1218. package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js +2 -2
  1219. package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
  1220. package/dist/trinity/eve/ui/EveTacticalOverlay.js +6 -24
  1221. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  1222. package/dist/trinity/eve/ui/EveUiObject.js +2 -2
  1223. package/dist/trinity/eve/ui/EveUiObject.js.map +1 -1
  1224. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +4 -5
  1225. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  1226. package/dist/trinity/eve/ui/lines/EveLineSet.js +6 -7
  1227. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  1228. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +2 -2
  1229. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -1
  1230. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +8 -9
  1231. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  1232. package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js +2 -2
  1233. package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  1234. package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js +2 -2
  1235. package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  1236. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +2 -2
  1237. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  1238. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +4 -4
  1239. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  1240. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +2 -2
  1241. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  1242. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +2 -2
  1243. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  1244. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +2 -2
  1245. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  1246. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +4 -4
  1247. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  1248. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +2 -2
  1249. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  1250. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +2 -2
  1251. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  1252. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +2 -2
  1253. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  1254. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +2 -2
  1255. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  1256. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +2 -2
  1257. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  1258. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +2 -2
  1259. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  1260. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +2 -2
  1261. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  1262. package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +2 -2
  1263. package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  1264. package/dist/trinity/eve/volume/EveBoxVolume.js +44 -44
  1265. package/dist/trinity/eve/volume/EveBoxVolume.js.map +1 -1
  1266. package/dist/trinity/eve/volume/EveEllipsoidVolume.js +2 -2
  1267. package/dist/trinity/eve/volume/EveEllipsoidVolume.js.map +1 -1
  1268. package/dist/trinity/eve/volume/EveSphereVolume.js +5 -6
  1269. package/dist/trinity/eve/volume/EveSphereVolume.js.map +1 -1
  1270. package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js +2 -2
  1271. package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
  1272. package/dist/trinity/generated/eve/effect/EveOccluder.js +2 -2
  1273. package/dist/trinity/generated/eve/effect/EveOccluder.js.map +1 -1
  1274. package/dist/trinity/generated/eve/effect/EveStarfield.js +2 -2
  1275. package/dist/trinity/generated/eve/effect/EveStarfield.js.map +1 -1
  1276. package/dist/trinity/generated/font/Tr2FontManager.js +2 -2
  1277. package/dist/trinity/generated/font/Tr2FontManager.js.map +1 -1
  1278. package/dist/trinity/generated/font/Tr2FontMeasurer.js +2 -2
  1279. package/dist/trinity/generated/font/Tr2FontMeasurer.js.map +1 -1
  1280. package/dist/trinity/generated/font/Tr2SBitWrapper.js +2 -2
  1281. package/dist/trinity/generated/font/Tr2SBitWrapper.js.map +1 -1
  1282. package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js +2 -2
  1283. package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
  1284. package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js +2 -2
  1285. package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
  1286. package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js +2 -2
  1287. package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
  1288. package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
  1289. package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
  1290. package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js +2 -2
  1291. package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
  1292. package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js +2 -2
  1293. package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
  1294. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
  1295. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
  1296. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js +2 -2
  1297. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
  1298. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js +2 -2
  1299. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
  1300. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js +2 -2
  1301. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
  1302. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js +2 -2
  1303. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
  1304. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js +2 -2
  1305. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
  1306. package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js +2 -2
  1307. package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
  1308. package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js +2 -2
  1309. package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
  1310. package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
  1311. package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
  1312. package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js +2 -2
  1313. package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
  1314. package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js +2 -2
  1315. package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
  1316. package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js +2 -2
  1317. package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
  1318. package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
  1319. package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
  1320. package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js +2 -2
  1321. package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
  1322. package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js +2 -2
  1323. package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
  1324. package/dist/trinity/generated/trinityCore/Tr2SSSSS.js +2 -2
  1325. package/dist/trinity/generated/trinityCore/Tr2SSSSS.js.map +1 -1
  1326. package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js +2 -2
  1327. package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
  1328. package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
  1329. package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
  1330. package/dist/trinity/index.js +23 -16
  1331. package/dist/trinity/index.js.map +1 -1
  1332. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js +1 -31
  1333. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -1
  1334. package/dist/trinity/particle/Tr2ParticleSystem.js +51 -52
  1335. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  1336. package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js +2 -2
  1337. package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
  1338. package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js +2 -2
  1339. package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
  1340. package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js +2 -2
  1341. package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
  1342. package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js +2 -2
  1343. package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
  1344. package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js +2 -2
  1345. package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js.map +1 -1
  1346. package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js +2 -2
  1347. package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js.map +1 -1
  1348. package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js +2 -2
  1349. package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js.map +1 -1
  1350. package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js +13 -3
  1351. package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js.map +1 -1
  1352. package/dist/trinity/particle/constraint/Tr2SphereConstraint.js +2 -2
  1353. package/dist/trinity/particle/constraint/Tr2SphereConstraint.js.map +1 -1
  1354. package/dist/trinity/particle/element/Tr2ParticleElementData.js +22 -8
  1355. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  1356. package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js +13 -25
  1357. package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js.map +1 -1
  1358. package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js +38 -3
  1359. package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js.map +1 -1
  1360. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +26 -27
  1361. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  1362. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +4 -5
  1363. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  1364. package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js +2 -2
  1365. package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js.map +1 -1
  1366. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +17 -18
  1367. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  1368. package/dist/trinity/particle/force/Tr2ForceSphereVolume.js +2 -2
  1369. package/dist/trinity/particle/force/Tr2ForceSphereVolume.js.map +1 -1
  1370. package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js +2 -2
  1371. package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js.map +1 -1
  1372. package/dist/trinity/particle/force/Tr2ParticleDirectForce.js +2 -2
  1373. package/dist/trinity/particle/force/Tr2ParticleDirectForce.js.map +1 -1
  1374. package/dist/trinity/particle/force/Tr2ParticleDragForce.js +2 -2
  1375. package/dist/trinity/particle/force/Tr2ParticleDragForce.js.map +1 -1
  1376. package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js +2 -2
  1377. package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js.map +1 -1
  1378. package/dist/trinity/particle/force/Tr2ParticleSpring.js +2 -2
  1379. package/dist/trinity/particle/force/Tr2ParticleSpring.js.map +1 -1
  1380. package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js +2 -2
  1381. package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js.map +1 -1
  1382. package/dist/trinity/particle/force/Tr2ParticleVortexForce.js +2 -2
  1383. package/dist/trinity/particle/force/Tr2ParticleVortexForce.js.map +1 -1
  1384. package/dist/trinity/particle/index.js +1 -1
  1385. package/dist/trinity/postProcess/Tr2PostProcess.js +2 -2
  1386. package/dist/trinity/postProcess/Tr2PostProcess.js.map +1 -1
  1387. package/dist/trinity/postProcess/Tr2PostProcess2.js +2 -2
  1388. package/dist/trinity/postProcess/Tr2PostProcess2.js.map +1 -1
  1389. package/dist/trinity/postProcess/Tr2PostProcessAttributes.js +2 -2
  1390. package/dist/trinity/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  1391. package/dist/trinity/postProcess/Tr2PostProcessRenderer.js +4 -4
  1392. package/dist/trinity/postProcess/Tr2PostProcessRenderer.js.map +1 -1
  1393. package/dist/trinity/postProcess/Tr2SSAO.js +4 -4
  1394. package/dist/trinity/postProcess/Tr2SSAO.js.map +1 -1
  1395. package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js +2 -2
  1396. package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js.map +1 -1
  1397. package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js +2 -2
  1398. package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js.map +1 -1
  1399. package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js +2 -2
  1400. package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js.map +1 -1
  1401. package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js +2 -2
  1402. package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js.map +1 -1
  1403. package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js +2 -2
  1404. package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js.map +1 -1
  1405. package/dist/trinity/postProcess/effect/Tr2PPEffect.js +2 -2
  1406. package/dist/trinity/postProcess/effect/Tr2PPEffect.js.map +1 -1
  1407. package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js +2 -2
  1408. package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js.map +1 -1
  1409. package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js +2 -2
  1410. package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js.map +1 -1
  1411. package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js +2 -2
  1412. package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js.map +1 -1
  1413. package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js +2 -2
  1414. package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js.map +1 -1
  1415. package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js +2 -2
  1416. package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js.map +1 -1
  1417. package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js +2 -2
  1418. package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js.map +1 -1
  1419. package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js +2 -2
  1420. package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js.map +1 -1
  1421. package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js +2 -2
  1422. package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js.map +1 -1
  1423. package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js +2 -2
  1424. package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js.map +1 -1
  1425. package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js +2 -2
  1426. package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js.map +1 -1
  1427. package/dist/trinity/renderJob/Tr2RenderJobs.js +5 -5
  1428. package/dist/trinity/renderJob/Tr2RenderJobs.js.map +1 -1
  1429. package/dist/trinity/renderJob/TriRenderJob.js +4 -4
  1430. package/dist/trinity/renderJob/TriRenderJob.js.map +1 -1
  1431. package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js +4 -5
  1432. package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js.map +1 -1
  1433. package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js +4 -5
  1434. package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js.map +1 -1
  1435. package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js +2 -2
  1436. package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js.map +1 -1
  1437. package/dist/trinity/renderJob/step/TriRenderStep.js +2 -2
  1438. package/dist/trinity/renderJob/step/TriRenderStep.js.map +1 -1
  1439. package/dist/trinity/renderJob/step/TriStepClear.js +2 -2
  1440. package/dist/trinity/renderJob/step/TriStepClear.js.map +1 -1
  1441. package/dist/trinity/renderJob/step/TriStepClearUav.js +2 -2
  1442. package/dist/trinity/renderJob/step/TriStepClearUav.js.map +1 -1
  1443. package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js +2 -2
  1444. package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js.map +1 -1
  1445. package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js +2 -2
  1446. package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js.map +1 -1
  1447. package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js +2 -2
  1448. package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js.map +1 -1
  1449. package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js +2 -2
  1450. package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js.map +1 -1
  1451. package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js +2 -2
  1452. package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js.map +1 -1
  1453. package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js +2 -2
  1454. package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js.map +1 -1
  1455. package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js +2 -2
  1456. package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js.map +1 -1
  1457. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +2 -2
  1458. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  1459. package/dist/trinity/renderJob/step/TriStepRenderAtlas.js +2 -2
  1460. package/dist/trinity/renderJob/step/TriStepRenderAtlas.js.map +1 -1
  1461. package/dist/trinity/renderJob/step/TriStepRenderDebug.js +2 -2
  1462. package/dist/trinity/renderJob/step/TriStepRenderDebug.js.map +1 -1
  1463. package/dist/trinity/renderJob/step/TriStepRenderEffect.js +2 -2
  1464. package/dist/trinity/renderJob/step/TriStepRenderEffect.js.map +1 -1
  1465. package/dist/trinity/renderJob/step/TriStepRenderFps.js +2 -2
  1466. package/dist/trinity/renderJob/step/TriStepRenderFps.js.map +1 -1
  1467. package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js +2 -2
  1468. package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js.map +1 -1
  1469. package/dist/trinity/renderJob/step/TriStepRenderObject.js +2 -2
  1470. package/dist/trinity/renderJob/step/TriStepRenderObject.js.map +1 -1
  1471. package/dist/trinity/renderJob/step/TriStepRenderPass.js +2 -2
  1472. package/dist/trinity/renderJob/step/TriStepRenderPass.js.map +1 -1
  1473. package/dist/trinity/renderJob/step/TriStepRenderScene.js +2 -2
  1474. package/dist/trinity/renderJob/step/TriStepRenderScene.js.map +1 -1
  1475. package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js +2 -2
  1476. package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js.map +1 -1
  1477. package/dist/trinity/renderJob/step/TriStepRenderTexture.js +2 -2
  1478. package/dist/trinity/renderJob/step/TriStepRenderTexture.js.map +1 -1
  1479. package/dist/trinity/renderJob/step/TriStepResolve.js +2 -2
  1480. package/dist/trinity/renderJob/step/TriStepResolve.js.map +1 -1
  1481. package/dist/trinity/renderJob/step/TriStepRunComputeShader.js +2 -2
  1482. package/dist/trinity/renderJob/step/TriStepRunComputeShader.js.map +1 -1
  1483. package/dist/trinity/renderJob/step/TriStepRunJob.js +2 -2
  1484. package/dist/trinity/renderJob/step/TriStepRunJob.js.map +1 -1
  1485. package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js +2 -2
  1486. package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js.map +1 -1
  1487. package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js +2 -2
  1488. package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js.map +1 -1
  1489. package/dist/trinity/renderJob/step/TriStepSetProjection.js +2 -2
  1490. package/dist/trinity/renderJob/step/TriStepSetProjection.js.map +1 -1
  1491. package/dist/trinity/renderJob/step/TriStepSetRenderState.js +2 -2
  1492. package/dist/trinity/renderJob/step/TriStepSetRenderState.js.map +1 -1
  1493. package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js +2 -2
  1494. package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js.map +1 -1
  1495. package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js +2 -2
  1496. package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js.map +1 -1
  1497. package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js +2 -2
  1498. package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js.map +1 -1
  1499. package/dist/trinity/renderJob/step/TriStepSetVariableStore.js +2 -2
  1500. package/dist/trinity/renderJob/step/TriStepSetVariableStore.js.map +1 -1
  1501. package/dist/trinity/renderJob/step/TriStepSetView.js +2 -2
  1502. package/dist/trinity/renderJob/step/TriStepSetView.js.map +1 -1
  1503. package/dist/trinity/renderJob/step/TriStepSetViewport.js +2 -2
  1504. package/dist/trinity/renderJob/step/TriStepSetViewport.js.map +1 -1
  1505. package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js +2 -2
  1506. package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js.map +1 -1
  1507. package/dist/trinity/renderJob/step/TriStepTestBlocking.js +2 -2
  1508. package/dist/trinity/renderJob/step/TriStepTestBlocking.js.map +1 -1
  1509. package/dist/trinity/renderJob/step/TriStepToggleCubemap.js +2 -2
  1510. package/dist/trinity/renderJob/step/TriStepToggleCubemap.js.map +1 -1
  1511. package/dist/trinity/renderJob/step/TriStepUpdate.js +2 -2
  1512. package/dist/trinity/renderJob/step/TriStepUpdate.js.map +1 -1
  1513. package/dist/trinity/shader/Tr2DataTextureManager.js +9 -9
  1514. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  1515. package/dist/trinity/shader/Tr2Effect.js +370 -347
  1516. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  1517. package/dist/trinity/shader/Tr2Material.js +5 -5
  1518. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  1519. package/dist/trinity/shader/Tr2ShaderBuffer.js +3 -4
  1520. package/dist/trinity/shader/Tr2ShaderBuffer.js.map +1 -1
  1521. package/dist/trinity/shader/index.js +3 -0
  1522. package/dist/trinity/shader/index.js.map +1 -1
  1523. package/dist/trinity/shader/parameter/CjsParameter.js +202 -185
  1524. package/dist/trinity/shader/parameter/CjsParameter.js.map +1 -1
  1525. package/dist/trinity/shader/parameter/CjsVectorParameter.js +2 -2
  1526. package/dist/trinity/shader/parameter/CjsVectorParameter.js.map +1 -1
  1527. package/dist/trinity/shader/parameter/ITriEffectParameter.js +56 -0
  1528. package/dist/trinity/shader/parameter/ITriEffectParameter.js.map +1 -0
  1529. package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js +31 -0
  1530. package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js.map +1 -0
  1531. package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js +43 -0
  1532. package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js.map +1 -0
  1533. package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js +17 -5
  1534. package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
  1535. package/dist/trinity/shader/parameter/Tr2FloatParameter.js +46 -45
  1536. package/dist/trinity/shader/parameter/Tr2FloatParameter.js.map +1 -1
  1537. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +14 -12
  1538. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  1539. package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js +33 -32
  1540. package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  1541. package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js +11 -10
  1542. package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  1543. package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js +55 -53
  1544. package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  1545. package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js +49 -48
  1546. package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  1547. package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js +52 -51
  1548. package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  1549. package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js +56 -55
  1550. package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  1551. package/dist/trinity/shader/parameter/TriFloatArrayParameter.js +8 -8
  1552. package/dist/trinity/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  1553. package/dist/trinity/shader/parameter/TriTextureParameter.js +27 -22
  1554. package/dist/trinity/shader/parameter/TriTextureParameter.js.map +1 -1
  1555. package/dist/trinity/shader/parameter/TriTransformParameter.js +27 -27
  1556. package/dist/trinity/shader/parameter/TriTransformParameter.js.map +1 -1
  1557. package/dist/trinity/shader/parameter/TriVariableParameter.js +53 -54
  1558. package/dist/trinity/shader/parameter/TriVariableParameter.js.map +1 -1
  1559. package/dist/trinity/shader/parameter/TriVector4.js +2 -2
  1560. package/dist/trinity/shader/parameter/TriVector4.js.map +1 -1
  1561. package/dist/trinity/shader/reflection/Tr2ShaderOption.js +4 -2
  1562. package/dist/trinity/shader/reflection/Tr2ShaderOption.js.map +1 -1
  1563. package/dist/trinity/shader/sampler/Tr2SamplerOverride.js +11 -2
  1564. package/dist/trinity/shader/sampler/Tr2SamplerOverride.js.map +1 -1
  1565. package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js +2 -2
  1566. package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
  1567. package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js +2 -2
  1568. package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
  1569. package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js +2 -2
  1570. package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
  1571. package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js +8 -9
  1572. package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
  1573. package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js +2 -2
  1574. package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
  1575. package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js +2 -2
  1576. package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
  1577. package/dist/trinity/sprite2d/Tr2Sprite2dScene.js +4 -4
  1578. package/dist/trinity/sprite2d/Tr2Sprite2dScene.js.map +1 -1
  1579. package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js +2 -2
  1580. package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
  1581. package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js +2 -2
  1582. package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
  1583. package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js +2 -2
  1584. package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
  1585. package/dist/trinity/ui/Tr2PresentParameters.js +2 -2
  1586. package/dist/trinity/ui/Tr2PresentParameters.js.map +1 -1
  1587. package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js +3 -3
  1588. package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js.map +1 -1
  1589. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -1
  1590. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  1591. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  1592. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  1593. package/docs/core/README.md +38 -38
  1594. package/docs/core/architecture.md +6 -5
  1595. package/docs/core/reference/api.md +0 -10
  1596. package/docs/core/reference/classes/README.md +57 -67
  1597. package/docs/global/architecture.md +1 -3
  1598. package/docs/global/blue-enums.md +115 -0
  1599. package/docs/global/concepts/model-lifecycle.md +177 -182
  1600. package/docs/global/core-types/README.md +394 -317
  1601. package/docs/global/reference/api.md +2 -2
  1602. package/docs/global/reference/classes/README.md +355 -205
  1603. package/docs/global/reference/classes/dropped.md +40 -0
  1604. package/docs/resource/architecture.md +152 -112
  1605. package/docs/resource/concepts/resource-lifecycle.md +21 -15
  1606. package/docs/resource/formats/geometry-interchange.md +50 -0
  1607. package/docs/resource/formats/pickle.md +126 -100
  1608. package/docs/resource/formats/provenance.md +15 -9
  1609. package/docs/resource/formats/webgl/carbon-constant-layouts.md +98 -232
  1610. package/docs/resource/formats/webgl/decl-io.md +241 -397
  1611. package/docs/resource/formats/webgl/memory-structured.md +91 -128
  1612. package/docs/resource/formats/webgl/texture-sample.md +306 -469
  1613. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +278 -530
  1614. package/docs/resource/reference/classes/README.md +3 -1
  1615. package/docs/resource/reference/classes/dropped.md +21 -1
  1616. package/docs/resource/reference/classes/formats.md +33 -0
  1617. package/docs/resource/reference/classes/texture.md +11 -1
  1618. package/docs/resource/reference/classes/video.md +92 -0
  1619. package/docs/resource/reference/events.md +10 -9
  1620. package/docs/resource/reference/motherlode-cache.md +24 -11
  1621. package/docs/resource/reference/queues.md +30 -1
  1622. package/docs/trinity/README.md +5 -5
  1623. package/docs/trinity/architecture.md +355 -344
  1624. package/docs/trinity/concepts/eve-runtime-behavior.md +1 -1
  1625. package/docs/trinity/reference/api.md +19 -7
  1626. package/docs/trinity/reference/classes/dropped.md +2 -11
  1627. package/docs/trinity/reference/classes/eve-runtime.md +1 -1
  1628. package/docs/trinity/reference/classes/trinity-core.md +1672 -1622
  1629. package/docs/trinity/reference/implementation-status.md +92 -92
  1630. package/package.json +2 -1
  1631. package/dist/core/CjsFrameDriver.js +0 -109
  1632. package/dist/core/CjsFrameDriver.js.map +0 -1
  1633. package/dist/global/contracts/CjsFrameLifecycle.js +0 -49
  1634. package/dist/global/contracts/CjsFrameLifecycle.js.map +0 -1
  1635. package/dist/global/contracts/CjsInstancedMeshManager.js +0 -58
  1636. package/dist/global/contracts/CjsInstancedMeshManager.js.map +0 -1
  1637. package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js +0 -4
  1638. package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EveChildCloud2.js","sources":["../../../../../src/trinity/eve/child/EveChildCloud2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildCloud2.h\n// Hand-maintained from Carbon source, promoted out of generated intake.\nimport { carbon, impl, io, type } from \"#schema\";\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\nimport { mat4 } from \"#math/mat4\";\nimport { quat } from \"#math/quat\";\nimport { vec3 } from \"#math/vec3\";\nimport { ReflectionMode, RenderingMode, TriBatchType } from \"#consts/graphics\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { Tr2PerObjectData } from \"../../core/rawData/perObjectData/Tr2PerObjectData.js\";\nimport { Tr2RenderBatch } from \"../../core/batch/TriRenderBatch/index.js\";\nimport { TriFrustumOrtho } from \"../../core/view/TriFrustumOrtho.js\";\nimport { Tr2RenderReason, Tr2VolumerticQuality } from \"../../generated/trinityCore/enums.js\";\nimport { withITr2Renderable } from \"../../core/ITr2Renderable.js\";\n\n// Carbon std::numeric_limits<float>::max() (cpp:916). The renderable-side sort\n// value is a finite float32, NOT Infinity - downstream distance sums must stay\n// finite.\nconst FLOAT32_MAX = 3.4028234663852886e38;\n\nconst IDENTITY = mat4.create();\n\n// Module scratch (per-frame paths - never allocate in the hot loop).\nconst INV_SCRATCH = mat4.create();\nconst WV_SCRATCH = mat4.create();\nconst BASIS_SCRATCH = mat4.create();\nconst LIGHT_VIEW_SCRATCH = mat4.create();\nconst WORLD_LIGHT_SCRATCH = mat4.create();\nconst ORTHO_SCRATCH = mat4.create();\nconst CORNER_MIN_SCRATCH = vec3.create();\nconst CORNER_MAX_SCRATCH = vec3.create();\nconst CORNER_SCRATCH = vec3.create();\nconst SHIFT_SCRATCH = vec3.create();\nconst SUN_SCRATCH = vec3.create();\nconst SCALE_SCRATCH = vec3.create();\nconst BOUNDS_MIN_SCRATCH = vec3.create();\nconst BOUNDS_MAX_SCRATCH = vec3.create();\nconst LIGHT_SCRATCH = { position: vec3.create(), radius: 0, color: vec3.create() };\n\n/** Carbon OrthoNormalBasisZ (math Matrix_inline.h:531-546): identity; row Z =\n * Normalize(z); X seeded (0,1,0) when |Z.x| > 0.99 else (1,0,0); Y =\n * Normalize(Cross(X, Z)); X = Cross(Y, Z). Carbon's basis rows land at gl flat\n * [0..2]/[4..6]/[8..10] on the shared byte layout - single-matrix build, no\n * composition, no operand swap. A zero-length z NaNs exactly as Carbon's\n * Normalize does. */\nfunction OrthoNormalBasisZ(out, z)\n{\n mat4.identity(out);\n const zl = Math.hypot(z[0], z[1], z[2]);\n const zx = z[0] / zl;\n const zy = z[1] / zl;\n const zz = z[2] / zl;\n out[8] = zx;\n out[9] = zy;\n out[10] = zz;\n const xx = Math.abs(zx) > 0.99 ? 0 : 1;\n const xy = Math.abs(zx) > 0.99 ? 1 : 0;\n // Y = Normalize(Cross(X, Z)) with xz = 0 on either seed.\n let yx = xy * zz;\n let yy = -xx * zz;\n let yz = xx * zy - xy * zx;\n const yl = Math.hypot(yx, yy, yz);\n yx /= yl;\n yy /= yl;\n yz /= yl;\n out[4] = yx;\n out[5] = yy;\n out[6] = yz;\n // X = Cross(Y, Z).\n out[0] = yy * zz - yz * zy;\n out[1] = yz * zx - yx * zz;\n out[2] = yx * zy - yy * zx;\n return out;\n}\n\n/** Carbon OrthoOffCenterMatrix (math Matrix_inline.h:749-765): D3D-style\n * z-in-[0,1] off-center orthographic projection. Deliberately NOT gl-matrix's\n * mat4.ortho (GL z-in-[-1,1], different off-center terms). Carbon m[i][j]\n * lands at gl flat [i*4+j] on the shared byte layout. */\nfunction OrthoOffCenterMatrix(out, l, r, b, t, zn, zf)\n{\n mat4.identity(out);\n out[0] = 2 / (r - l);\n out[5] = 2 / (t - b);\n out[10] = 1 / (zn - zf);\n out[12] = -1 - 2 * l / (r - l);\n out[13] = 1 + 2 * t / (b - t);\n out[14] = zn / (zn - zf);\n return out;\n}\n\n/** Carbon TransformNormal(v, M) - row-vector basis-only transform (no\n * translation): out_j = sum_i v_i * M[i][j], rows at gl flat [0..2]/[4..6]/\n * [8..10]. vec3.transformMat4 would add the translation - do not use it. */\nfunction TransformNormal(out, v, m)\n{\n const x = v[0];\n const y = v[1];\n const z = v[2];\n out[0] = x * m[0] + y * m[4] + z * m[8];\n out[1] = x * m[1] + y * m[5] + z * m[9];\n out[2] = x * m[2] + y * m[6] + z * m[10];\n return out;\n}\n\n/** A volumetric cloud entity that renders as a raymarched unit-cube volume with its own lightmap, shadow map and lighting, and can also contribute reflection batches. */\n@type.define({ className: \"EveChildCloud2\", family: \"eve/child\" })\nexport class EveChildCloud2 extends withITr2Renderable(EveSpaceObjectChild)\n{\n\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\n @io.notify\n @io.persist\n @type.int32\n @type.enum(\"ReflectionMode\")\n reflectionMode = 0;\n\n /** m_minVisibleQuality (Tr2VolumerticQuality - enum Tr2VolumerticQuality) [READWRITE, PERSIST, ENUM] */\n @io.persist\n @type.int32\n @type.enum(\"Tr2VolumerticQuality\")\n minVisibleQuality = 0;\n\n /** m_sortingModifier (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n sortingModifier = 0;\n\n /** m_animation (Tr2TextureAnimationPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2TextureAnimation\")\n animation = null;\n\n /** m_shadowMapDS (Tr2DepthStencilPtr) [READWRITE, NOTIFY] */\n @io.notify\n @io.readwrite\n @type.objectRef(\"Tr2DepthStencil\")\n shadowMapDS = null;\n\n /** m_lightMap (Tr2TextureReferencePtr) [READ] */\n @io.read\n @type.objectRef(\"Tr2TextureReference\")\n lightmap = null;\n\n /** m_lightmapSizeScale (float) [READ] */\n @io.read\n @type.float32\n lightmapSizeScale = 0;\n\n /** m_lights (PTr2LightVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"Tr2Light\")\n lights = [];\n\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n minScreenSize = 0;\n\n /** m_rotation (Quaternion) [READWRITE, PERSIST] */\n @io.persist\n @type.quat\n rotation = quat.create();\n\n /** m_translation (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n translation = vec3.create();\n\n /** m_scaling (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n scaling = vec3.create();\n\n /** m_reflectionEffect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.model(\"Tr2Effect\")\n reflectionEffect = null;\n\n /** m_effect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.model(\"Tr2Effect\")\n effect = null;\n\n /** m_noiseTextureSize (uint32_t) [READWRITE, PERSIST] */\n @io.persist\n @type.uint32\n noiseTextureSize = 0;\n\n /** m_mapOffsets[0] (Vector3) [READ] */\n @io.read\n @type.vec3\n mapOffset0 = vec3.create();\n\n /** m_mapOffsets[1] (Vector3) [READ] */\n @io.read\n @type.vec3\n mapOffset1 = vec3.create();\n\n /** m_mapOffsets[2] (Vector3) [READ] */\n @io.read\n @type.vec3\n mapOffset2 = vec3.create();\n\n /** m_castShadows (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n castShadows = false;\n\n /** m_receiveShadows (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n receiveShadows = false;\n\n /** m_name (std::string) [READWRITE, PERSIST] */\n @io.persist\n @type.string\n name = \"\";\n\n /** m_mapTiling[1] (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n detailTiling1 = vec3.create();\n\n /** m_mapTiling[2] (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n detailTiling2 = vec3.create();\n\n /** m_mapTiling[0] (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n textureTiling = vec3.create();\n\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.boolean\n display = false;\n\n // --- Runtime state (Carbon ctor cpp:72-118; not persisted). NOTE: the\n // generated persisted defaults above are schema zero-values and DIVERGE from\n // Carbon's ctor defaults (display/castShadows/receiveShadows true,\n // sortingModifier 1, noiseTextureSize 32, lightmapSizeScale 0.5,\n // reflectionMode REFLECT_NEVER, scaling (1,1,1), mapTiling all (1,1,1)).\n // Hydrated documents overwrite them; the divergence for default-constructed\n // objects is deliberate schema policy, recorded here rather than \"fixed\". ---\n\n /** m_localTransform - stamped by UpdateAsyncronous (cpp:689). */\n localTransform = mat4.create();\n\n /** m_worldTransform - stamped by UpdateAsyncronous (cpp:693). */\n worldTransform = mat4.create();\n\n /** m_boundingSphere (CcpMath::Sphere) - the TriFrustum sphere-duck shape. */\n boundingSphere = { center: vec3.create(), radius: 0 };\n\n /** m_hasUpdated (false until the first UpdateAsyncronous). */\n hasUpdated = false;\n\n /** m_adjustedMinScreenSize = minScreenSize * lodFactor (cpp:706). */\n adjustedMinScreenSize = 0;\n\n /** m_currentQuality (cpp:85) - Tr2VolumerticQuality.High. */\n currentQuality = 2;\n\n /** m_lightmapDirty (cpp:89). */\n lightmapDirty = true;\n\n /** m_renderedLastFrame (cpp:90). */\n renderedLastFrame = true;\n\n /** m_effectHash - effect identity tracked by UpdateSyncronous (cpp:625-633). */\n effectHash = 0;\n\n /** Unscaled lightmap dimensions - Carbon discovers them from the effect's\n * DensityMap resource (cpp:634-665, engine-owned in JS; 0 fail-closes\n * UpdateVolumetricLightmap). */\n lightmapWidth = 0;\n\n /** m_lightmapHeight - see lightmapWidth. */\n lightmapHeight = 0;\n\n /** m_lightmapDepth - see lightmapWidth. */\n lightmapDepth = 0;\n\n /** m_lightmapDirtyOffset - the incremental lightmap update cursor. */\n lightmapDirtyOffset = 0;\n\n /** m_prevSunDirection (SetSceneInformation's re-dirty threshold state). */\n prevSunDirection = vec3.create();\n\n /** m_localSunDirection (SetSceneInformation cpp:407). */\n localSunDirection = vec3.create();\n\n /** m_depthSlices - SceneInformation::depthSliceCount = 4\n * (ITr2VolumetricRenderable.h:26). */\n depthSlices = new Float32Array(4);\n\n /** m_targetWidth - Carbon leaves it uninitialized until SetSceneInformation;\n * JS zeroes (targetInvSize then divides by zero to Infinity, matching\n * Carbon's float semantics on garbage-free zero). */\n targetWidth = 0;\n\n /** m_targetHeight - see targetWidth. */\n targetHeight = 0;\n\n /** m_lightViewProj - Carbon: uninitialized memory until SetupShadowFrustum;\n * JS: identity. */\n lightViewProj = mat4.create();\n\n /** m_shadowMapSize (cpp:101). */\n shadowMapSize = 512;\n\n /** The global \"DepthShadowMap\" variable handle Carbon registers in the ctor\n * (cpp:115) - the variable store is engine-owned in JS, so the handle is an\n * engine-injected duck. */\n depthShadowMapHandle = null;\n\n /** Carbon EveChildCloud2::RegisterComponents (EveChildCloud2.cpp:148-163):\n * LightOwner when lights are authored; VolumetricRenderable UNCONDITIONAL;\n * ReflectionRenderable only when ShouldReflect && display &&\n * reflectionEffect. Note: no whole-block display gate in Carbon. No\n * UnRegisterComponents override (base no-op; EveEntity::UnRegister already\n * removes the components, EveEntity.cpp:90). */\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry)\n {\n if (this.lights.length)\n {\n registry.RegisterComponent(EveComponentType.LightOwner, this);\n }\n registry.RegisterComponent(EveComponentType.VolumetricRenderable, this);\n if (ShouldReflect(this.reflectionMode) && this.display && this.reflectionEffect)\n {\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\n }\n }\n }\n\n /** Carbon EveChildCloud2::UpdateSyncronous (cpp:621-685): an effect-hash\n * change invalidates the lightmap and zeroes its dimensions (cpp:625-633);\n * the DensityMap-driven dimension discovery and the empty-lightmap fallback\n * (cpp:634-674) are GPU/resource work; the texture animation advances gated\n * on UpdateOnlyWhenRendered/renderedLastFrame (cpp:677-683) and\n * renderedLastFrame is cleared every pass (cpp:684) - the flag is only\n * re-stamped by the volumetric batch path (GetVolumetricBatches cpp:283),\n * deliberately NOT by the reflection path. */\n @impl.adapted\n @impl.reason(\"DensityMap texture discovery and empty-lightmap creation (cpp:634-674) are engine-owned resource work - lightmapWidth stays 0 until the engine stamps it, which fail-closes UpdateVolumetricLightmap; the hash invalidation, animation gate and renderedLastFrame contract are ported.\")\n UpdateSyncronous(updateContext, _params)\n {\n if (this.effect)\n {\n const hash = this.effect.GetHashValue?.() ?? this.effect;\n if (this.effectHash !== hash)\n {\n this.effectHash = hash;\n this.lightmapDirty = true;\n this.lightmapWidth = 0;\n this.lightmapHeight = 0;\n this.lightmapDepth = 0;\n }\n }\n\n if (this.animation)\n {\n if (!this.animation.UpdateOnlyWhenRendered?.() || this.renderedLastFrame)\n {\n this.animation.AdvanceTime?.(updateContext?.GetDeltaT() ?? 0);\n }\n }\n this.renderedLastFrame = false;\n }\n\n /** Carbon EveChildCloud2::UpdateAsyncronous (cpp:687-708): local SRT\n * transform (cpp:689); world = localTransform * parent - Carbon row-vector,\n * local applies first, so the gl-matrix operands swap (cpp:693); bounding\n * sphere = CcpMath::Sphere(unit cube, world) which transforms ONLY the min\n * and max corners (math Sphere.cpp:10-17 - the cheap two-corner form, not an\n * 8-corner bound; preserved); map-offset scroll from the origin-shift-\n * corrected world movement rotated into local space (cpp:697-704 - QUIRK\n * kept verbatim: the .z offset scrolls by mapTiling.y, cpp:703); adjusted\n * min screen size (cpp:706); hasUpdated stamp (cpp:707). */\n @impl.implemented\n UpdateAsyncronous(updateContext, params = {})\n {\n // Carbon TransformationMatrix(m_scaling, m_rotation, m_translation)\n // (cpp:689) - argument order differs, matrix identical.\n mat4.fromRotationTranslationScale(this.localTransform, this.rotation, this.translation, this.scaling);\n\n const parent = params?.localToWorldTransform ?? IDENTITY;\n const w = this.worldTransform;\n const prevX = w[12];\n const prevY = w[13];\n const prevZ = w[14];\n // Carbon (row-vector): m_localTransform * parent - local first.\n mat4.multiply(w, parent, this.localTransform);\n\n // CcpMath::Sphere(AxisAlignedBox(-0.5..0.5), world) (cpp:695).\n vec3.set(CORNER_MIN_SCRATCH, -0.5, -0.5, -0.5);\n vec3.transformMat4(CORNER_MIN_SCRATCH, CORNER_MIN_SCRATCH, w);\n vec3.set(CORNER_MAX_SCRATCH, 0.5, 0.5, 0.5);\n vec3.transformMat4(CORNER_MAX_SCRATCH, CORNER_MAX_SCRATCH, w);\n const center = this.boundingSphere.center;\n center[0] = (CORNER_MIN_SCRATCH[0] + CORNER_MAX_SCRATCH[0]) * 0.5;\n center[1] = (CORNER_MIN_SCRATCH[1] + CORNER_MAX_SCRATCH[1]) * 0.5;\n center[2] = (CORNER_MIN_SCRATCH[2] + CORNER_MAX_SCRATCH[2]) * 0.5;\n this.boundingSphere.radius = vec3.distance(CORNER_MIN_SCRATCH, CORNER_MAX_SCRATCH) * 0.5;\n\n // shift = -originShift + (new - previous world translation), then rotated\n // into local space with TransformNormal(shift, Inverse(world)) (cpp:697-698).\n const originShift = updateContext?.GetOriginShift();\n SHIFT_SCRATCH[0] = (originShift ? -originShift[0] : 0) + w[12] - prevX;\n SHIFT_SCRATCH[1] = (originShift ? -originShift[1] : 0) + w[13] - prevY;\n SHIFT_SCRATCH[2] = (originShift ? -originShift[2] : 0) + w[14] - prevZ;\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\n // matrix (math Matrix.cpp:12-16) and the scroll still runs - mirrored.\n const inverse = mat4.invert(INV_SCRATCH, w) ?? w;\n TransformNormal(SHIFT_SCRATCH, SHIFT_SCRATCH, inverse);\n const offsets = [this.mapOffset0, this.mapOffset1, this.mapOffset2];\n const tilings = [this.textureTiling, this.detailTiling1, this.detailTiling2];\n for (let i = 0; i < 3; ++i)\n {\n const offset = offsets[i];\n const tiling = tilings[i];\n offset[0] = (offset[0] + SHIFT_SCRATCH[0] * tiling[0]) % 1;\n offset[1] = (offset[1] + SHIFT_SCRATCH[1] * tiling[1]) % 1;\n // Carbon bug preserved verbatim: .z scrolls by mapTiling.y (cpp:703).\n offset[2] = (offset[2] + SHIFT_SCRATCH[2] * tiling[1]) % 1;\n }\n\n this.adjustedMinScreenSize = this.minScreenSize * (updateContext?.GetLodFactor() ?? 1);\n this.hasUpdated = true;\n }\n\n /** Carbon EveChildCloud2::GetBoundingSphere (cpp:226-230): the packed\n * (center, radius) cloud sphere, unconditionally true. IEveSpaceObjectChild\n * override - parent bounds unions consume it optional-chained. */\n @impl.implemented\n GetBoundingSphere(out = new Float32Array(4), _query = 0)\n {\n out[0] = this.boundingSphere.center[0];\n out[1] = this.boundingSphere.center[1];\n out[2] = this.boundingSphere.center[2];\n out[3] = this.boundingSphere.radius;\n return true;\n }\n\n /** Carbon EveChildCloud2::GetLocalToWorldTransform (cpp:232-235); the\n * optional out follows the EveChildContainer copy-out shape. */\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 /** Carbon EveChildCloud2::IsVisible (cpp:837-852): display + one-arg\n * IsSphereVisible (the back-plane-ignored TriFrustum quirk applies), then\n * the Sphere-duck GetPixelSizeAccross (Est path) against minScreenSize *\n * the LIVE lodFactor (not the adjusted stamp). Carbon's override of the\n * defaulted ITr2Renderable::IsVisible (h:47-50 returns true) - without it\n * the reflection gather would treat the cloud as always visible. */\n @impl.implemented\n IsVisible(updateContext)\n {\n const frustum = updateContext?.GetFrustum();\n if (!frustum)\n {\n return false;\n }\n const sphere = this.boundingSphere;\n if (!this.display || !frustum.IsSphereVisible(sphere.center, sphere.radius))\n {\n return false;\n }\n const screenSize = frustum.GetPixelSizeAccross(sphere);\n if (screenSize < this.minScreenSize * (updateContext?.GetLodFactor() ?? 1))\n {\n return false;\n }\n return true;\n }\n\n /** Carbon EveChildCloud2::HasValidTransform (cpp:309-317): determinant is\n * nonzero and finite. */\n @impl.implemented\n HasValidTransform()\n {\n const det = mat4.determinant(this.worldTransform);\n return det !== 0 && Number.isFinite(det);\n }\n\n /** Carbon EveChildCloud2::IsLightmapDirty (cpp:748-751). */\n @impl.implemented\n IsLightmapDirty()\n {\n return this.lightmapDirty;\n }\n\n /** Carbon EveChildCloud2::MarkLightmapDirty (cpp:753-757): also zeroes the\n * dirty offset (contrast SetSceneInformation's scale-change path, which\n * sets the flag WITHOUT resetting the offset - cpp:398-402). */\n @impl.implemented\n MarkLightmapDirty(dirty)\n {\n this.lightmapDirty = !!dirty;\n this.lightmapDirtyOffset = 0;\n }\n\n /** Carbon EveChildCloud2::GetLights (cpp:732-746): display gate only (no\n * hasUpdated gate, unlike EveChildContainer), average world-basis-row-length\n * scaling (Carbon LengthEst; exact hypot is the accepted divergence - single\n * matrix reads, no composition), each light submitted with the world\n * transform through the duck-typed manager. Inside Tr2Light::AddLight\n * Carbon composes boneTransform * transform (Tr2Light.cpp:132) - that swap\n * belongs to the Tr2Light port, not here. */\n @impl.implemented\n GetLights(lightManager)\n {\n if (!this.display)\n {\n return;\n }\n const m = this.worldTransform;\n const scaling = (\n Math.hypot(m[0], m[1], m[2]) +\n Math.hypot(m[4], m[5], m[6]) +\n Math.hypot(m[8], m[9], m[10])\n ) / 3;\n for (const light of this.lights)\n {\n light?.AddLight(lightManager, m, scaling);\n }\n }\n\n /** Carbon's two GetSortValue overloads, dispatched on argument presence:\n * the ITr2VolumetricRenderable frustum form (cpp:237-242) - view distance\n * minus |authored local scaling| * sortingModifier, consumed by the\n * volumetric renderer's DESCENDING stable sort (farthest first,\n * Tr2VolumetricsRenderer.cpp:276-287) - and the ITr2Renderable zero-arg\n * form (cpp:914-917) - float32 max (finite, NOT Infinity), so the\n * transparent reflection pass sorts the cloud to draw first. */\n @impl.implemented\n GetSortValue(frustum = null)\n {\n if (!frustum)\n {\n return FLOAT32_MAX;\n }\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\n const w = this.worldTransform;\n const dx = viewPos[0] - w[12];\n const dy = viewPos[1] - w[13];\n const dz = viewPos[2] - w[14];\n return Math.hypot(dx, dy, dz) - vec3.length(this.scaling) * this.sortingModifier;\n }\n\n /** Carbon EveChildCloud2::GetVolumetricBatches (cpp:244-284), exact gate\n * order: quality (cpp:246), display+hasUpdated+frustum sphere (cpp:250),\n * Sphere-duck pixel size vs the adjusted min screen size (cpp:256-260),\n * HasValidTransform (cpp:262), unit-cube buffers + effect shader\n * (cpp:267-274), then ONE transparent volumetric batch with the real\n * screenSize per-object data and Carbon's 36-index draw (cpp:276-281).\n * Stamps renderedLastFrame (cpp:283) - the texture-animation keep-alive.\n * Returns whether a batch was committed (JS addition; Carbon returns void). */\n @impl.adapted\n @impl.reason(\"The procedural unit-cube vertex/index buffers and declaration (OnPrepareResources cpp:453-532) are engine-realized, so the buffer-validity gate (cpp:267-270) and shader-state gate (cpp:271-274) reduce to the effect presence check; the batch records the effect, per-object data and draw arguments for the engine to bind the cube.\")\n GetVolumetricBatches(frustum, batches)\n {\n if (this.currentQuality < this.minVisibleQuality)\n {\n return false;\n }\n const sphere = this.boundingSphere;\n const isVisible = this.display && this.hasUpdated &&\n frustum?.IsSphereVisible(sphere.center, sphere.radius) === true;\n if (!isVisible)\n {\n return false;\n }\n\n // Sphere duck routes to the Est estimator, matching Carbon's Sphere\n // overload (cpp:256; TriFrustum cpp:295-298).\n const screenSize = frustum.GetPixelSizeAccross(sphere);\n if (screenSize < this.adjustedMinScreenSize)\n {\n return false;\n }\n if (!this.HasValidTransform())\n {\n return false;\n }\n if (!this.effect)\n {\n return false;\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.effect);\n batch.SetPerObjectData(this.GetPerObjectData(batches, screenSize));\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\n const committed = batches?.Commit?.(batch) === true;\n\n this.renderedLastFrame = true;\n return committed;\n }\n\n /** Carbon EveChildCloud2::UpdateVolumetricLightmap (cpp:319-382): the\n * scene-facing contract is the gates and the bool return - true means \"this\n * cloud consumed the frame's single scene-wide lightmap budget\"\n * (Tr2VolumetricsRenderer::ProcessComponentsUntil stops at the FIRST true,\n * cpp:219-221). Slice budget: VOXELS_PER_UPDATE = 6400000 * scale^3;\n * slices = max(VOXELS / (scaledHeight * scaledDepth), 1) (cpp:354-355).\n * QUIRK verbatim: the dispatch group Y/Z counts use the UNSCALED dims while\n * the slice count uses the scaled ones (cpp:359-361). Success advances\n * lightmapDirtyOffset by slices; reaching scaledWidth completes the map\n * (dirty false, offset 0); failure resets the offset and returns false. */\n @impl.adapted\n @impl.reason(\"The 3D lightmap texture lifecycle, per-object upload and LightMap variable swaps (cpp:327-352, 363-372) are engine-owned; the GenerateLightmap dispatch is delegated to a renderContext.RunComputeShader duck and fail-closes to false when absent.\")\n UpdateVolumetricLightmap(renderContext)\n {\n if (this.currentQuality < this.minVisibleQuality || !this.hasUpdated)\n {\n return false;\n }\n if (this.lightmapDirty && this.effect && this.lightmapWidth > 0 && this.HasValidTransform())\n {\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\n\n const VOXELS_PER_UPDATE = Math.floor(6400000 * this.lightmapSizeScale ** 3);\n const slices = Math.max(Math.floor(VOXELS_PER_UPDATE / (scaledHeight * scaledDepth)), 1);\n const success = renderContext?.RunComputeShader?.(\n this.effect,\n \"GenerateLightmap\",\n slices,\n Math.floor((this.lightmapHeight + 7) / 8),\n Math.floor((this.lightmapDepth + 7) / 8)\n ) === true;\n if (success)\n {\n this.lightmapDirtyOffset += slices;\n if (this.lightmapDirtyOffset >= scaledWidth)\n {\n this.lightmapDirty = false;\n this.lightmapDirtyOffset = 0;\n }\n return true;\n }\n this.lightmapDirtyOffset = 0;\n }\n return false;\n }\n\n /** Carbon EveChildCloud2::SetSceneInformation (cpp:384-424): quality maps to\n * lightmapSizeScale (Low 0.1 / Medium 0.15 / default 0.25, cpp:386-397); a\n * scale change sets lightmapDirty WITHOUT resetting the dirty offset\n * (cpp:398-402 - asymmetric vs MarkLightmapDirty, preserved); copies the 4\n * depth slices; localSunDirection = Normalize(TransformNormal(sunDir,\n * Inverse(world))) (cpp:407 - single-matrix inverse + basis transform, no\n * composition); re-dirties the lightmap when the sun moved past\n * cos(5/180) - QUIRK verbatim: Carbon omits the degree conversion, so the\n * threshold is ~1.59 degrees, not 5 (cpp:408); stamps target dims; flips\n * the two cloud-shadow effect options (cpp:417-423). */\n @impl.adapted\n @impl.reason(\"Carbon dereferences m_effect with no null guard (cpp:417); the JS option writes are optional-chained. Everything else is verbatim, including the missing degree conversion in the sun-motion threshold.\")\n SetSceneInformation(sceneInformation)\n {\n let lightmapSizeScale;\n switch (sceneInformation.quality)\n {\n case EveChildCloud2.Tr2VolumerticQuality.Low:\n lightmapSizeScale = 0.1;\n break;\n case EveChildCloud2.Tr2VolumerticQuality.Medium:\n lightmapSizeScale = 0.15;\n break;\n default:\n lightmapSizeScale = 0.25;\n }\n if (lightmapSizeScale !== this.lightmapSizeScale)\n {\n this.lightmapSizeScale = lightmapSizeScale;\n this.lightmapDirty = true;\n }\n this.currentQuality = sceneInformation.quality;\n\n for (let i = 0; i < 4; ++i)\n {\n this.depthSlices[i] = sceneInformation.depthSlices?.[i] ?? 0;\n }\n\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\n // matrix (math Matrix.cpp:12-16) and the recompute still runs - mirrored.\n const inverse = mat4.invert(INV_SCRATCH, this.worldTransform) ?? this.worldTransform;\n TransformNormal(SUN_SCRATCH, sceneInformation.sunDirection, inverse);\n vec3.normalize(this.localSunDirection, SUN_SCRATCH);\n if (vec3.dot(this.prevSunDirection, this.localSunDirection) < Math.cos(5.0 / 180.0))\n {\n vec3.copy(this.prevSunDirection, this.localSunDirection);\n this.MarkLightmapDirty(true);\n }\n\n this.targetWidth = sceneInformation.targetWidth;\n this.targetHeight = sceneInformation.targetHeight;\n\n const receive = !!sceneInformation.receiveShadows && !!this.receiveShadows;\n this.effect?.SetOption?.(\n \"CLOUD_SHADOWS\",\n receive ? \"CLOUD_SHADOWS_RECEIVE\" : \"CLOUD_SHADOWS_NONE\"\n );\n this.effect?.SetOption?.(\n \"CLOUD_SHADOW_ALGORITHM\",\n receive && sceneInformation.raytracedShadows ? \"CLOUD_SHADOWS_RAYTRACED\" : \"CLOUD_SHADOWS_CASCADED\"\n );\n }\n\n /** Carbon EveChildCloud2::GetVolumetricShadowBatches (cpp:759-785): gated on\n * display + effect + castShadows, then the \"Shadow\" technique presence\n * (cpp:766-776); emits ONE alpha, declaration-less (NULL_DECLARATION,\n * cpp:782), non-indexed single-triangle batch with screenSize-1 per-object\n * data (cpp:778-784). Does NOT stamp renderedLastFrame. Returns whether the\n * batch was committed (JS addition). */\n @impl.adapted\n @impl.reason(\"The 'Shadow' technique gate applies only when a shader-state interface is realized - in GPU-free collection the engine drops the batch at realization otherwise; NULL_DECLARATION maps to declaration 0.\")\n GetVolumetricShadowBatches(batches)\n {\n if (!this.display || !this.effect || !this.castShadows)\n {\n return false;\n }\n // cpp:766-776 - the \"Shadow\" technique must exist. The JS shader duck\n // (Tr2Shader.GetTechniqueIndex) returns an INDEX: -1 for missing, 0..n\n // for found - 0 is a valid technique (compare < 0, never truthiness).\n const shader = this.effect.GetShaderStateInterface?.();\n if (shader?.GetTechniqueIndex)\n {\n const technique = shader.GetTechniqueIndex(\"Shadow\");\n if (technique === null || technique === undefined || technique < 0)\n {\n return false;\n }\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.effect);\n batch.SetPerObjectData(this.GetPerObjectData(batches, 1));\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\n batch.SetVertexDeclaration(0);\n batch.SetDrawInstanced(3, 1, 0, 0);\n return batches?.Commit?.(batch) === true;\n }\n\n /** Carbon EveChildCloud2::GetVolumetricShadowInfo (cpp:787-790): pure\n * delegation to SetupShadowFrustum. The scene calls this to build the\n * shadow-camera package before rendering casters into the cloud shadow map\n * (EveSpaceScene.cpp:2355-2371). */\n @impl.implemented\n GetVolumetricShadowInfo(shadowInfo, sunDir)\n {\n return this.SetupShadowFrustum(shadowInfo, sunDir);\n }\n\n /** Carbon EveChildCloud2::SetupShadowFrustum (cpp:886-907):\n * lightView = Inverse(OrthoNormalBasisZ(-sunDir)) (cpp:889 - single-matrix\n * build + invert); the unit-cube AABB transformed by worldTransform *\n * lightView - COMPOSITION, world applies first, so the gl-matrix operands\n * swap (cpp:893; all 8 corners, math AxisAlignedBox.cpp:9-33); max.z\n * extended by the 2,500,000 sun-ray magic constant (cpp:895); lightViewProj\n * = lightView * OrthoOffCenterMatrix(...) - COMPOSITION, lightView first,\n * operands swap (cpp:897), with Carbon's deliberately mirrored argument\n * order (max.x, min.x, max.y, min.y, -max.z, -min.z) and D3D z-in-[0,1]\n * formula both preserved; DeriveFrustum(lightView, aabb.min, aabb.max)\n * (cpp:900-901); outputs aabbMax / lightViewProj copy / shadowFrustum /\n * shadowMapSize (cpp:903-906). */\n @impl.implemented\n SetupShadowFrustum(shadowInfo, sunDir)\n {\n vec3.set(SUN_SCRATCH, -sunDir[0], -sunDir[1], -sunDir[2]);\n OrthoNormalBasisZ(BASIS_SCRATCH, SUN_SCRATCH);\n if (!mat4.invert(LIGHT_VIEW_SCRATCH, BASIS_SCRATCH))\n {\n mat4.identity(LIGHT_VIEW_SCRATCH);\n }\n\n // Carbon (row-vector): m_worldTransform * lightView - world first.\n mat4.multiply(WORLD_LIGHT_SCRATCH, LIGHT_VIEW_SCRATCH, this.worldTransform);\n let minX = Infinity, minY = Infinity, minZ = Infinity;\n let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;\n for (let corner = 0; corner < 8; ++corner)\n {\n CORNER_SCRATCH[0] = (corner & 1) ? 0.5 : -0.5;\n CORNER_SCRATCH[1] = (corner & 2) ? 0.5 : -0.5;\n CORNER_SCRATCH[2] = (corner & 4) ? 0.5 : -0.5;\n vec3.transformMat4(CORNER_SCRATCH, CORNER_SCRATCH, WORLD_LIGHT_SCRATCH);\n minX = Math.min(minX, CORNER_SCRATCH[0]);\n minY = Math.min(minY, CORNER_SCRATCH[1]);\n minZ = Math.min(minZ, CORNER_SCRATCH[2]);\n maxX = Math.max(maxX, CORNER_SCRATCH[0]);\n maxY = Math.max(maxY, CORNER_SCRATCH[1]);\n maxZ = Math.max(maxZ, CORNER_SCRATCH[2]);\n }\n maxZ += 2500000;\n\n OrthoOffCenterMatrix(ORTHO_SCRATCH, maxX, minX, maxY, minY, -maxZ, -minZ);\n // Carbon (row-vector): lightView * ortho - lightView first.\n mat4.multiply(this.lightViewProj, ORTHO_SCRATCH, LIGHT_VIEW_SCRATCH);\n\n const shadowFrustum = new TriFrustumOrtho();\n vec3.set(BOUNDS_MIN_SCRATCH, minX, minY, minZ);\n vec3.set(BOUNDS_MAX_SCRATCH, maxX, maxY, maxZ);\n shadowFrustum.DeriveFrustum(LIGHT_VIEW_SCRATCH, BOUNDS_MIN_SCRATCH, BOUNDS_MAX_SCRATCH);\n\n shadowInfo.aabbMax = vec3.fromValues(maxX, maxY, maxZ);\n shadowInfo.lightViewProj = mat4.clone(this.lightViewProj);\n shadowInfo.shadowFrustum = shadowFrustum;\n shadowInfo.shadowMapSize = this.shadowMapSize;\n return shadowInfo;\n }\n\n /**\n * Makes this cloud's depth-stencil the render target for its shadow pass.\n *\n * THE GATE IS PORTED AND THE WORK IS NOT, which is why this returns false in\n * one case and throws in the other. Carbon's contract\n * (`EveChildCloud2.cpp:774-808`) is that `receiveShadows` decides whether\n * there is a shadow map at all, and the scene calls `SetCloudShadowMapHandle`\n * ONLY after a true return (`EveSpaceScene.cpp:2365-2368`) - which is what\n * makes Carbon's unguarded `m_shadowMapDS` dereference there safe.\n *\n * A cloud that does not receive shadows is therefore fully correct here.\n *\n * WHAT IS MISSING. Carbon creates the depth-stencil, pushes it as the target,\n * clears depth and sets the viewport. Every push, the clear and\n * `SetReadOnlyDepth` exist here; `Tr2DepthStencil` does not. Ours is a\n * generated shell whose `Create` throws and which declares none of\n * `GetTexture`, `IsValid`, `GetWidth` or `GetHeight` - the four Carbon uses\n * (`Tr2DepthStencil.h:29,40,48,54-55`).\n *\n * THIS USED TO RETURN TRUE HAVING DONE NOTHING. The body was\n * `renderContext?.PrepareCloudShadowMap?.(this)` against a method no render\n * context defines - optional-chained, so it no-opped, and the scene then\n * published a shadow-map handle for a shadow map that was never rendered.\n * Failing here is the point: the gap is in `Tr2DepthStencil`, and it should\n * be visible from the one place that needs it.\n *\n * @returns {boolean} False when this cloud receives no shadows; otherwise\n * never returns.\n */\n @carbon.method\n @impl.notImplemented\n @impl.reason(\"Needs Tr2DepthStencil, which is a generated shell: Create throws and GetTexture/IsValid/GetWidth/GetHeight are absent. The receiveShadows gate and the false return are ported.\")\n PrepareCloudShadowMap()\n {\n if (!this.receiveShadows)\n {\n return false;\n }\n\n throw new Error(\n \"EveChildCloud2.PrepareCloudShadowMap: needs Tr2DepthStencil.Create and its \"\n + \"GetTexture/IsValid/GetWidth/GetHeight accessors, which are unported.\"\n );\n }\n\n /** Carbon EveChildCloud2::SetCloudShadowMapHandle (cpp:829-835): publish the\n * shadow depth-stencil into the global \"DepthShadowMap\" variable handle\n * (registered in the Carbon ctor, cpp:115). QUIRK: Carbon dereferences\n * m_shadowMapDS with no null guard - safe only via the\n * PrepareCloudShadowMap-first call order (see above). */\n @impl.adapted\n @impl.reason(\"The variable store is engine-owned (depthShadowMapHandle is an injected duck); Carbon's unguarded m_shadowMapDS dereference is optional-chained.\")\n SetCloudShadowMapHandle()\n {\n if (this.shadowMapDS?.IsValid?.())\n {\n this.depthShadowMapHandle?.SetValue?.(this.shadowMapDS);\n }\n }\n\n /** Carbon EveChildCloud2::GetBatches (cpp:854-884): quality gate, then ONLY\n * the (REFLECTION, TRANSPARENT) type/reason pair produces anything\n * (cpp:860) - every other combination is a silent no-op; HasValidTransform\n * + unit-cube buffers + reflectionEffect gates (cpp:862-874); one alpha\n * batch with the hardcoded 10000 screen size forcing max lodFactor\n * (cpp:878). QUIRK: unlike GetVolumetricBatches this does NOT stamp\n * renderedLastFrame - reflection-only rendering does not keep texture\n * animations alive. Returns whether a batch was committed (JS addition). */\n @impl.adapted\n @impl.reason(\"Unit-cube buffers/declaration are engine-realized (as GetVolumetricBatches); the perObjectData parameter is unused because Carbon allocates the cloud's own with screenSize 10000 (cpp:878).\")\n GetBatches(batches, batchType, _perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (this.currentQuality < this.minVisibleQuality)\n {\n return false;\n }\n if (reason !== Tr2RenderReason.TR2RENDERREASON_REFLECTION || batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\n {\n return false;\n }\n if (!this.HasValidTransform())\n {\n return false;\n }\n if (!this.reflectionEffect)\n {\n return false;\n }\n\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(this.reflectionEffect);\n batch.SetPerObjectData(this.GetPerObjectData(batches, 10000));\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\n return batches?.Commit?.(batch) === true;\n }\n\n /** Carbon EveChildCloud2::HasTransparentBatches (cpp:909-912):\n * unconditionally true - the reflection gather always routes the cloud\n * through the transparent leg that feeds GetBatches' type/reason filter. */\n @impl.implemented\n HasTransparentBatches()\n {\n return true;\n }\n\n /** Carbon's two GetPerObjectData overloads (public, screenSize 1:\n * cpp:919-927; private, caller screenSize: cpp:534-542): allocate from the\n * accumulator and populate. The GPU-free record carries the live object\n * reference plus the CPU-populated field block (cloudData); view-dependent\n * members are refreshed by the engine calling PopulatePerObjectData again\n * with its render context at realization (screenSize is stamped for that). */\n @impl.adapted\n @impl.reason(\"EveChildCloudPerObjectData's device constant buffers are engine-owned; the record carries the object reference, the collection-time screenSize and the CPU field block.\")\n GetPerObjectData(accumulator = null, screenSize = 1)\n {\n const data = typeof accumulator?.Allocate === \"function\"\n ? accumulator.Allocate(Tr2PerObjectData)\n : new Tr2PerObjectData();\n if (!data)\n {\n return null;\n }\n data.object = this;\n data.screenSize = screenSize;\n data.cloudData = this.PopulatePerObjectData({}, screenSize);\n return data;\n }\n\n /** Carbon EveChildCloud2::PopulatePerObjectData (cpp:544-619) against the\n * PerObjectData block (EveChildCloud2.h:125-145). Compositions (Carbon\n * row-vector -> gl-matrix operands swap):\n * - cpp:548/567 worldTransform * viewTransform (world first) ->\n * mat4.multiply(WV, view, world); the cpp:567 transpose is folded into\n * explicit element reads: viewDirection = TransformNormal((0,0,-1),\n * worldViewT) = (-WV[2], -WV[6], -WV[10]); depthSliceN =\n * -WV[14] - slice * WV[15].\n * Single-matrix sites (NO swap): the cpp:546/547/551 HLSL packing\n * transposes, cpp:550 TransformCoord with the inverted world, cpp:578\n * Decompose (mat4.getScaling). */\n @impl.adapted\n @impl.reason(\"Tr2Renderer's view/projection globals relocate onto the optional renderContext duck (identity/zero fallbacks when absent - the engine repopulates at realization); rand() maps to Math.random with a zero-size guard Carbon's UB-free ctor default (32) never needed; the Tr2Light Perlin flicker inside GetLight awaits the frame-clock seam.\")\n PopulatePerObjectData(data, screenSize = 1, renderContext = null)\n {\n const w = this.worldTransform;\n // cpp:546 - packing transpose of a single matrix.\n data.world = mat4.transpose(mat4.create(), w);\n\n // cpp:547 - Transpose(Inverse(reversed-depth projection)); renderer\n // global (identity when the context duck is absent; a singular input\n // mirrors Carbon's Inverse-returns-input).\n data.projectionInv = mat4.create();\n const projection = renderContext?.GetReversedDepthProjectionTransform?.();\n if (projection)\n {\n if (!mat4.invert(data.projectionInv, projection))\n {\n mat4.copy(data.projectionInv, projection);\n }\n mat4.transpose(data.projectionInv, data.projectionInv);\n }\n\n // cpp:548-549 - Inverse(world * view), COMPOSITION: operands swap.\n // Singular product: Carbon's Inverse returns the input unchanged\n // (math Matrix.cpp:12-16) - mirrored.\n const view = renderContext?.GetViewTransform?.() ?? IDENTITY;\n mat4.multiply(WV_SCRATCH, view, w);\n data.worldViewInv = mat4.create();\n if (!mat4.invert(data.worldViewInv, WV_SCRATCH))\n {\n mat4.copy(data.worldViewInv, WV_SCRATCH);\n }\n mat4.transpose(data.worldViewInv, data.worldViewInv);\n\n // cpp:550 - TransformCoord(viewPosition, Inverse(world)) - single matrix;\n // same singular-input mirror.\n data.viewPosition = vec3.create();\n const viewPosition = renderContext?.GetViewPosition();\n if (viewPosition)\n {\n const inverseWorld = mat4.invert(INV_SCRATCH, w) ?? w;\n vec3.transformMat4(data.viewPosition, viewPosition, inverseWorld);\n }\n\n // cpp:551 - packing transpose (stamped by SetupShadowFrustum).\n data.lightViewProj = mat4.transpose(mat4.create(), this.lightViewProj);\n\n // cpp:553-560 - scaled lightmap dims + dirty offset.\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\n data.lightmapDimensions = [scaledWidth, scaledHeight, scaledDepth, this.lightmapDirtyOffset];\n\n // cpp:562-565 - rand() % noiseTextureSize; nondeterministic by design.\n // The generated schema default 0 would be modulo-by-zero UB in Carbon\n // (its ctor default is 32) - guarded here.\n const noiseSize = this.noiseTextureSize >>> 0;\n data.noiseConfig = [\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\n noiseSize,\n noiseSize,\n ];\n\n // cpp:567-571 - Transpose(world * view) consumed by row-vector transforms;\n // ported as explicit element reads of the (already swapped) WV product.\n const wv = WV_SCRATCH;\n data.viewDirection = vec3.fromValues(-wv[2], -wv[6], -wv[10]);\n data.depthSlice0 = -wv[14] - this.depthSlices[0] * wv[15];\n data.depthSlice1 = -wv[14] - this.depthSlices[1] * wv[15];\n data.depthSlice2 = -wv[14] - this.depthSlices[2] * wv[15];\n\n // cpp:573.\n data.sunDirection = vec3.fromValues(\n -this.localSunDirection[0],\n -this.localSunDirection[1],\n -this.localSunDirection[2]\n );\n\n // cpp:575-580 - Decompose scale, normalized by the largest component\n // (pure decomposition - no composition, no swap).\n mat4.getScaling(SCALE_SCRATCH, w);\n const maxScale = Math.max(SCALE_SCRATCH[0], SCALE_SCRATCH[1], SCALE_SCRATCH[2]);\n data.relativeScaling = vec3.fromValues(\n SCALE_SCRATCH[0] / maxScale,\n SCALE_SCRATCH[1] / maxScale,\n SCALE_SCRATCH[2] / maxScale\n );\n\n // cpp:581.\n data.lodFactor = Math.max(0, screenSize / Math.max(1, this.minScreenSize) - 1);\n\n // cpp:583 - Infinity when target dims are unset, matching Carbon's float\n // division semantics.\n data.targetInvSize = [2 / this.targetWidth, 2 / this.targetHeight];\n\n // cpp:585-614 - up to 4 lights via Tr2Light::GetLight; radius > 0 scales\n // the color by brightnessMultiplier * (innerRadius*2 + 1)^3; remaining\n // slots zero-filled (cpp:611-614).\n data.lights = [];\n for (const light of this.lights)\n {\n if (data.lights.length >= 4)\n {\n break;\n }\n const record = { position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 };\n if (light?.GetLight?.(LIGHT_SCRATCH))\n {\n vec3.copy(record.position, LIGHT_SCRATCH.position);\n record.radius = LIGHT_SCRATCH.radius;\n if (record.radius > 0)\n {\n const lightData = light.GetLightData?.();\n record.innerRadius = Math.max(Math.min((lightData?.innerRadius ?? 0) / record.radius, 1), 0);\n const multiplier = light.GetBrightnessMultiplier?.() ?? 1;\n const boost = (record.innerRadius * 2 + 1) ** 3;\n record.color[0] = LIGHT_SCRATCH.color[0] * multiplier * boost;\n record.color[1] = LIGHT_SCRATCH.color[1] * multiplier * boost;\n record.color[2] = LIGHT_SCRATCH.color[2] * multiplier * boost;\n }\n }\n data.lights.push(record);\n }\n while (data.lights.length < 4)\n {\n data.lights.push({ position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 });\n }\n\n // cpp:616-618.\n data.mapOffsets = [\n [this.mapOffset0[0], this.mapOffset0[1], this.mapOffset0[2], 0],\n [this.mapOffset1[0], this.mapOffset1[1], this.mapOffset1[2], 0],\n [this.mapOffset2[0], this.mapOffset2[1], this.mapOffset2[2], 0],\n ];\n return data;\n }\n\n static ReflectionMode = ReflectionMode;\n\n static Tr2VolumerticQuality = Tr2VolumerticQuality;\n\n}\n"],"names":["FLOAT32_MAX","IDENTITY","mat4","create","INV_SCRATCH","WV_SCRATCH","BASIS_SCRATCH","LIGHT_VIEW_SCRATCH","WORLD_LIGHT_SCRATCH","ORTHO_SCRATCH","CORNER_MIN_SCRATCH","vec3","CORNER_MAX_SCRATCH","CORNER_SCRATCH","SHIFT_SCRATCH","SUN_SCRATCH","SCALE_SCRATCH","BOUNDS_MIN_SCRATCH","BOUNDS_MAX_SCRATCH","LIGHT_SCRATCH","position","radius","color","OrthoNormalBasisZ","out","z","identity","zl","Math","hypot","zx","zy","zz","xx","abs","xy","yx","yy","yz","yl","OrthoOffCenterMatrix","l","r","b","t","zn","zf","TransformNormal","v","m","x","y","_EveChildCloud","_identity","EveChildCloud2","_withITr2Renderable","withITr2Renderable","EveSpaceObjectChild","e","_init_reflectionMode","_init_extra_reflectionMode","_init_minVisibleQuality","_init_extra_minVisibleQuality","_init_sortingModifier","_init_extra_sortingModifier","_init_animation","_init_extra_animation","_init_shadowMapDS","_init_extra_shadowMapDS","_init_lightmap","_init_extra_lightmap","_init_lightmapSizeScale","_init_extra_lightmapSizeScale","_init_lights","_init_extra_lights","_init_minScreenSize","_init_extra_minScreenSize","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_reflectionEffect","_init_extra_reflectionEffect","_init_effect","_init_extra_effect","_init_noiseTextureSize","_init_extra_noiseTextureSize","_init_mapOffset","_init_extra_mapOffset","_init_mapOffset2","_init_extra_mapOffset2","_init_mapOffset3","_init_extra_mapOffset3","_init_castShadows","_init_extra_castShadows","_init_receiveShadows","_init_extra_receiveShadows","_init_name","_init_extra_name","_init_detailTiling","_init_extra_detailTiling","_init_detailTiling2","_init_extra_detailTiling2","_init_textureTiling","_init_extra_textureTiling","_init_display","_init_extra_display","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","float32","model","readwrite","objectRef","read","list","quat","uint32","boolean","string","impl","implemented","adapted","reason","carbon","method","notImplemented","reflectionMode","minVisibleQuality","sortingModifier","animation","shadowMapDS","lightmap","lightmapSizeScale","lights","minScreenSize","rotation","translation","scaling","reflectionEffect","effect","noiseTextureSize","mapOffset0","mapOffset1","mapOffset2","castShadows","receiveShadows","name","detailTiling1","detailTiling2","textureTiling","display","localTransform","worldTransform","boundingSphere","center","hasUpdated","adjustedMinScreenSize","currentQuality","lightmapDirty","renderedLastFrame","effectHash","lightmapWidth","lightmapHeight","lightmapDepth","lightmapDirtyOffset","prevSunDirection","localSunDirection","depthSlices","Float32Array","targetWidth","targetHeight","lightViewProj","shadowMapSize","depthShadowMapHandle","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","VolumetricRenderable","ShouldReflect","ReflectionRenderable","UpdateSyncronous","updateContext","_params","hash","GetHashValue","UpdateOnlyWhenRendered","AdvanceTime","GetDeltaT","UpdateAsyncronous","params","fromRotationTranslationScale","parent","localToWorldTransform","w","prevX","prevY","prevZ","multiply","set","transformMat4","distance","originShift","GetOriginShift","inverse","invert","offsets","tilings","i","offset","tiling","GetLodFactor","GetBoundingSphere","_query","GetLocalToWorldTransform","copy","IsVisible","frustum","GetFrustum","sphere","IsSphereVisible","screenSize","GetPixelSizeAccross","HasValidTransform","det","determinant","Number","isFinite","IsLightmapDirty","MarkLightmapDirty","dirty","GetLights","lightManager","light","AddLight","GetSortValue","viewPos","m_viewPos","dx","dy","dz","GetVolumetricBatches","batches","isVisible","batch","Tr2RenderBatch","SetMaterial","SetPerObjectData","GetPerObjectData","SetDrawIndexedInstanced","committed","Commit","UpdateVolumetricLightmap","renderContext","scaledWidth","max","floor","scaledHeight","scaledDepth","VOXELS_PER_UPDATE","slices","success","RunComputeShader","SetSceneInformation","sceneInformation","quality","Tr2VolumerticQuality","Low","Medium","sunDirection","normalize","dot","cos","receive","SetOption","raytracedShadows","GetVolumetricShadowBatches","shader","GetShaderStateInterface","GetTechniqueIndex","technique","undefined","SetRenderingMode","RenderingMode","RM_ALPHA","SetVertexDeclaration","SetDrawInstanced","GetVolumetricShadowInfo","shadowInfo","sunDir","SetupShadowFrustum","minX","Infinity","minY","minZ","maxX","maxY","maxZ","corner","min","shadowFrustum","TriFrustumOrtho","DeriveFrustum","aabbMax","fromValues","clone","PrepareCloudShadowMap","Error","SetCloudShadowMapHandle","IsValid","SetValue","GetBatches","batchType","_perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","TR2RENDERREASON_REFLECTION","TriBatchType","TRIBATCHTYPE_TRANSPARENT","HasTransparentBatches","accumulator","data","Allocate","Tr2PerObjectData","object","cloudData","PopulatePerObjectData","world","transpose","projectionInv","projection","GetReversedDepthProjectionTransform","view","GetViewTransform","worldViewInv","viewPosition","GetViewPosition","inverseWorld","lightmapDimensions","noiseSize","noiseConfig","random","wv","viewDirection","depthSlice0","depthSlice1","depthSlice2","getScaling","maxScale","relativeScaling","lodFactor","targetInvSize","record","innerRadius","GetLight","lightData","GetLightData","multiplier","GetBrightnessMultiplier","boost","push","mapOffsets","ReflectionMode","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveChildCloud2.js","sources":["../../../../../src/trinity/eve/child/EveChildCloud2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildCloud2.h\r\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\nimport \"../../../global/blue/registerTrinityEnums.js\";\r\nimport { carbon, impl, edit, type } from \"#schema\";\r\nimport { EveSpaceObjectChild } from \"./EveSpaceObjectChild.js\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { quat } from \"#math/quat\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { ReflectionMode, RenderingMode, TriBatchType } from \"#consts/graphics\";\r\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\r\nimport { Tr2PerObjectData } from \"../../core/rawData/perObjectData/Tr2PerObjectData.js\";\r\nimport { Tr2RenderBatch } from \"../../core/batch/TriRenderBatch/index.js\";\r\nimport { TriFrustumOrtho } from \"../../core/view/TriFrustumOrtho.js\";\r\nimport { Tr2RenderReason, Tr2VolumerticQuality } from \"../../generated/trinityCore/enums.js\";\r\nimport { ITr2Renderable } from \"../../core/ITr2Renderable.js\";\r\n\r\n// Carbon std::numeric_limits<float>::max() (cpp:916). The renderable-side sort\r\n// value is a finite float32, NOT Infinity - downstream distance sums must stay\r\n// finite.\r\nconst FLOAT32_MAX = 3.4028234663852886e38;\r\n\r\nconst IDENTITY = mat4.create();\r\n\r\n// Module scratch (per-frame paths - never allocate in the hot loop).\r\nconst INV_SCRATCH = mat4.create();\r\nconst WV_SCRATCH = mat4.create();\r\nconst BASIS_SCRATCH = mat4.create();\r\nconst LIGHT_VIEW_SCRATCH = mat4.create();\r\nconst WORLD_LIGHT_SCRATCH = mat4.create();\r\nconst ORTHO_SCRATCH = mat4.create();\r\nconst CORNER_MIN_SCRATCH = vec3.create();\r\nconst CORNER_MAX_SCRATCH = vec3.create();\r\nconst CORNER_SCRATCH = vec3.create();\r\nconst SHIFT_SCRATCH = vec3.create();\r\nconst SUN_SCRATCH = vec3.create();\r\nconst SCALE_SCRATCH = vec3.create();\r\nconst BOUNDS_MIN_SCRATCH = vec3.create();\r\nconst BOUNDS_MAX_SCRATCH = vec3.create();\r\nconst LIGHT_SCRATCH = { position: vec3.create(), radius: 0, color: vec3.create() };\r\n\r\n/** Carbon OrthoNormalBasisZ (math Matrix_inline.h:531-546): identity; row Z =\r\n * Normalize(z); X seeded (0,1,0) when |Z.x| > 0.99 else (1,0,0); Y =\r\n * Normalize(Cross(X, Z)); X = Cross(Y, Z). Carbon's basis rows land at gl flat\r\n * [0..2]/[4..6]/[8..10] on the shared byte layout - single-matrix build, no\r\n * composition, no operand swap. A zero-length z NaNs exactly as Carbon's\r\n * Normalize does. */\r\nfunction OrthoNormalBasisZ(out, z)\r\n{\r\n mat4.identity(out);\r\n const zl = Math.hypot(z[0], z[1], z[2]);\r\n const zx = z[0] / zl;\r\n const zy = z[1] / zl;\r\n const zz = z[2] / zl;\r\n out[8] = zx;\r\n out[9] = zy;\r\n out[10] = zz;\r\n const xx = Math.abs(zx) > 0.99 ? 0 : 1;\r\n const xy = Math.abs(zx) > 0.99 ? 1 : 0;\r\n // Y = Normalize(Cross(X, Z)) with xz = 0 on either seed.\r\n let yx = xy * zz;\r\n let yy = -xx * zz;\r\n let yz = xx * zy - xy * zx;\r\n const yl = Math.hypot(yx, yy, yz);\r\n yx /= yl;\r\n yy /= yl;\r\n yz /= yl;\r\n out[4] = yx;\r\n out[5] = yy;\r\n out[6] = yz;\r\n // X = Cross(Y, Z).\r\n out[0] = yy * zz - yz * zy;\r\n out[1] = yz * zx - yx * zz;\r\n out[2] = yx * zy - yy * zx;\r\n return out;\r\n}\r\n\r\n/** Carbon OrthoOffCenterMatrix (math Matrix_inline.h:749-765): D3D-style\r\n * z-in-[0,1] off-center orthographic projection. Deliberately NOT gl-matrix's\r\n * mat4.ortho (GL z-in-[-1,1], different off-center terms). Carbon m[i][j]\r\n * lands at gl flat [i*4+j] on the shared byte layout. */\r\nfunction OrthoOffCenterMatrix(out, l, r, b, t, zn, zf)\r\n{\r\n mat4.identity(out);\r\n out[0] = 2 / (r - l);\r\n out[5] = 2 / (t - b);\r\n out[10] = 1 / (zn - zf);\r\n out[12] = -1 - 2 * l / (r - l);\r\n out[13] = 1 + 2 * t / (b - t);\r\n out[14] = zn / (zn - zf);\r\n return out;\r\n}\r\n\r\n/** Carbon TransformNormal(v, M) - row-vector basis-only transform (no\r\n * translation): out_j = sum_i v_i * M[i][j], rows at gl flat [0..2]/[4..6]/\r\n * [8..10]. vec3.transformMat4 would add the translation - do not use it. */\r\nfunction TransformNormal(out, v, m)\r\n{\r\n const x = v[0];\r\n const y = v[1];\r\n const z = v[2];\r\n out[0] = x * m[0] + y * m[4] + z * m[8];\r\n out[1] = x * m[1] + y * m[5] + z * m[9];\r\n out[2] = x * m[2] + y * m[6] + z * m[10];\r\n return out;\r\n}\r\n\r\n/** A volumetric cloud entity that renders as a raymarched unit-cube volume with its own lightmap, shadow map and lighting, and can also contribute reflection batches. */\r\n@type.define({ className: \"EveChildCloud2\", family: \"eve/child\" })\r\n@carbon.inherit(ITr2Renderable)\r\nexport class EveChildCloud2 extends EveSpaceObjectChild\r\n{\r\n\r\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @edit.notify\r\n @edit.persist\r\n @type.int32\r\n @type.enum(\"trinity.EntityComponents.ReflectionMode\")\r\n reflectionMode = 0;\r\n\r\n /** m_minVisibleQuality (Tr2VolumerticQuality - enum Tr2VolumerticQuality) [READWRITE, PERSIST, ENUM] */\r\n @edit.persist\r\n @type.int32\r\n @type.enum(\"Tr2VolumerticQuality\")\r\n minVisibleQuality = 0;\r\n\r\n /** m_sortingModifier (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n sortingModifier = 0;\r\n\r\n /** m_animation (Tr2TextureAnimationPtr) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.model(\"Tr2TextureAnimation\")\r\n animation = null;\r\n\r\n /** m_shadowMapDS (Tr2DepthStencilPtr) [READWRITE, NOTIFY] */\r\n @edit.notify\r\n @edit.readwrite\r\n @type.objectRef(\"Tr2DepthStencil\")\r\n shadowMapDS = null;\r\n\r\n /** m_lightMap (Tr2TextureReferencePtr) [READ] */\r\n @edit.read\r\n @type.objectRef(\"Tr2TextureReference\")\r\n lightmap = null;\r\n\r\n /** m_lightmapSizeScale (float) [READ] */\r\n @edit.read\r\n @type.float32\r\n lightmapSizeScale = 0;\r\n\r\n /** m_lights (PTr2LightVector) [READ, PERSIST] */\r\n @edit.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n /** m_minScreenSize (float) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.float32\r\n minScreenSize = 0;\r\n\r\n /** m_rotation (Quaternion) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.quat\r\n rotation = quat.create();\r\n\r\n /** m_translation (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n translation = vec3.create();\r\n\r\n /** m_scaling (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n scaling = vec3.create();\r\n\r\n /** m_reflectionEffect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @edit.notify\r\n @edit.persist\r\n @type.model(\"Tr2Effect\")\r\n reflectionEffect = null;\r\n\r\n /** m_effect (Tr2EffectPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @edit.notify\r\n @edit.persist\r\n @type.model(\"Tr2Effect\")\r\n effect = null;\r\n\r\n /** m_noiseTextureSize (uint32_t) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.uint32\r\n noiseTextureSize = 0;\r\n\r\n /** m_mapOffsets[0] (Vector3) [READ] */\r\n @edit.read\r\n @type.vec3\r\n mapOffset0 = vec3.create();\r\n\r\n /** m_mapOffsets[1] (Vector3) [READ] */\r\n @edit.read\r\n @type.vec3\r\n mapOffset1 = vec3.create();\r\n\r\n /** m_mapOffsets[2] (Vector3) [READ] */\r\n @edit.read\r\n @type.vec3\r\n mapOffset2 = vec3.create();\r\n\r\n /** m_castShadows (bool) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.boolean\r\n castShadows = false;\r\n\r\n /** m_receiveShadows (bool) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.boolean\r\n receiveShadows = false;\r\n\r\n /** m_name (std::string) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_mapTiling[1] (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n detailTiling1 = vec3.create();\r\n\r\n /** m_mapTiling[2] (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n detailTiling2 = vec3.create();\r\n\r\n /** m_mapTiling[0] (Vector3) [READWRITE, PERSIST] */\r\n @edit.persist\r\n @type.vec3\r\n textureTiling = vec3.create();\r\n\r\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @edit.notify\r\n @edit.persist\r\n @type.boolean\r\n display = false;\r\n\r\n // --- Runtime state (Carbon ctor cpp:72-118; not persisted). NOTE: the\r\n // generated persisted defaults above are schema zero-values and DIVERGE from\r\n // Carbon's ctor defaults (display/castShadows/receiveShadows true,\r\n // sortingModifier 1, noiseTextureSize 32, lightmapSizeScale 0.5,\r\n // reflectionMode REFLECT_NEVER, scaling (1,1,1), mapTiling all (1,1,1)).\r\n // Hydrated documents overwrite them; the divergence for default-constructed\r\n // objects is deliberate schema policy, recorded here rather than \"fixed\". ---\r\n\r\n /** m_localTransform - stamped by UpdateAsyncronous (cpp:689). */\r\n localTransform = mat4.create();\r\n\r\n /** m_worldTransform - stamped by UpdateAsyncronous (cpp:693). */\r\n worldTransform = mat4.create();\r\n\r\n /** m_boundingSphere (CcpMath::Sphere) - the TriFrustum sphere-duck shape. */\r\n boundingSphere = { center: vec3.create(), radius: 0 };\r\n\r\n /** m_hasUpdated (false until the first UpdateAsyncronous). */\r\n hasUpdated = false;\r\n\r\n /** m_adjustedMinScreenSize = minScreenSize * lodFactor (cpp:706). */\r\n adjustedMinScreenSize = 0;\r\n\r\n /** m_currentQuality (cpp:85) - Tr2VolumerticQuality.High. */\r\n currentQuality = 2;\r\n\r\n /** m_lightmapDirty (cpp:89). */\r\n lightmapDirty = true;\r\n\r\n /** m_renderedLastFrame (cpp:90). */\r\n renderedLastFrame = true;\r\n\r\n /** m_effectHash - effect identity tracked by UpdateSyncronous (cpp:625-633). */\r\n effectHash = 0;\r\n\r\n /** Unscaled lightmap dimensions - Carbon discovers them from the effect's\r\n * DensityMap resource (cpp:634-665, engine-owned in JS; 0 fail-closes\r\n * UpdateVolumetricLightmap). */\r\n lightmapWidth = 0;\r\n\r\n /** m_lightmapHeight - see lightmapWidth. */\r\n lightmapHeight = 0;\r\n\r\n /** m_lightmapDepth - see lightmapWidth. */\r\n lightmapDepth = 0;\r\n\r\n /** m_lightmapDirtyOffset - the incremental lightmap update cursor. */\r\n lightmapDirtyOffset = 0;\r\n\r\n /** m_prevSunDirection (SetSceneInformation's re-dirty threshold state). */\r\n prevSunDirection = vec3.create();\r\n\r\n /** m_localSunDirection (SetSceneInformation cpp:407). */\r\n localSunDirection = vec3.create();\r\n\r\n /** m_depthSlices - SceneInformation::depthSliceCount = 4\r\n * (ITr2VolumetricRenderable.h:26). */\r\n depthSlices = new Float32Array(4);\r\n\r\n /** m_targetWidth - Carbon leaves it uninitialized until SetSceneInformation;\r\n * JS zeroes (targetInvSize then divides by zero to Infinity, matching\r\n * Carbon's float semantics on garbage-free zero). */\r\n targetWidth = 0;\r\n\r\n /** m_targetHeight - see targetWidth. */\r\n targetHeight = 0;\r\n\r\n /** m_lightViewProj - Carbon: uninitialized memory until SetupShadowFrustum;\r\n * JS: identity. */\r\n lightViewProj = mat4.create();\r\n\r\n /** m_shadowMapSize (cpp:101). */\r\n shadowMapSize = 512;\r\n\r\n /** The global \"DepthShadowMap\" variable handle Carbon registers in the ctor\r\n * (cpp:115) - the variable store is not ported yet in JS, so the handle is an\r\n * engine-injected duck. */\r\n depthShadowMapHandle = null;\r\n\r\n /** Carbon EveChildCloud2::RegisterComponents (EveChildCloud2.cpp:148-163):\r\n * LightOwner when lights are authored; VolumetricRenderable UNCONDITIONAL;\r\n * ReflectionRenderable only when ShouldReflect && display &&\r\n * reflectionEffect. Note: no whole-block display gate in Carbon. No\r\n * UnRegisterComponents override (base no-op; EveEntity::UnRegister already\r\n * removes the components, EveEntity.cpp:90). */\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n if (this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n registry.RegisterComponent(EveComponentType.VolumetricRenderable, this);\r\n if (ShouldReflect(this.reflectionMode) && this.display && this.reflectionEffect)\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildCloud2::UpdateSyncronous (cpp:621-685): an effect-hash\r\n * change invalidates the lightmap and zeroes its dimensions (cpp:625-633);\r\n * the DensityMap-driven dimension discovery and the empty-lightmap fallback\r\n * (cpp:634-674) are GPU/resource work; the texture animation advances gated\r\n * on UpdateOnlyWhenRendered/renderedLastFrame (cpp:677-683) and\r\n * renderedLastFrame is cleared every pass (cpp:684) - the flag is only\r\n * re-stamped by the volumetric batch path (GetVolumetricBatches cpp:283),\r\n * deliberately NOT by the reflection path. */\r\n @impl.adapted\r\n @impl.reason(\"DensityMap texture discovery and empty-lightmap creation (cpp:634-674) are not ported yet resource work - lightmapWidth stays 0 until the engine stamps it, which fail-closes UpdateVolumetricLightmap; the hash invalidation, animation gate and renderedLastFrame contract are ported.\")\r\n UpdateSyncronous(updateContext, _params)\r\n {\r\n if (this.effect)\r\n {\r\n const hash = this.effect.GetHashValue?.() ?? this.effect;\r\n if (this.effectHash !== hash)\r\n {\r\n this.effectHash = hash;\r\n this.lightmapDirty = true;\r\n this.lightmapWidth = 0;\r\n this.lightmapHeight = 0;\r\n this.lightmapDepth = 0;\r\n }\r\n }\r\n\r\n if (this.animation)\r\n {\r\n if (!this.animation.UpdateOnlyWhenRendered?.() || this.renderedLastFrame)\r\n {\r\n this.animation.AdvanceTime?.(updateContext?.GetDeltaT() ?? 0);\r\n }\r\n }\r\n this.renderedLastFrame = false;\r\n }\r\n\r\n /** Carbon EveChildCloud2::UpdateAsyncronous (cpp:687-708): local SRT\r\n * transform (cpp:689); world = localTransform * parent - Carbon row-vector,\r\n * local applies first, so the gl-matrix operands swap (cpp:693); bounding\r\n * sphere = CcpMath::Sphere(unit cube, world) which transforms ONLY the min\r\n * and max corners (math Sphere.cpp:10-17 - the cheap two-corner form, not an\r\n * 8-corner bound; preserved); map-offset scroll from the origin-shift-\r\n * corrected world movement rotated into local space (cpp:697-704 - QUIRK\r\n * kept verbatim: the .z offset scrolls by mapTiling.y, cpp:703); adjusted\r\n * min screen size (cpp:706); hasUpdated stamp (cpp:707). */\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext, params = {})\r\n {\r\n // Carbon TransformationMatrix(m_scaling, m_rotation, m_translation)\r\n // (cpp:689) - argument order differs, matrix identical.\r\n mat4.fromRotationTranslationScale(this.localTransform, this.rotation, this.translation, this.scaling);\r\n\r\n const parent = params?.localToWorldTransform ?? IDENTITY;\r\n const w = this.worldTransform;\r\n const prevX = w[12];\r\n const prevY = w[13];\r\n const prevZ = w[14];\r\n // Carbon (row-vector): m_localTransform * parent - local first.\r\n mat4.multiply(w, parent, this.localTransform);\r\n\r\n // CcpMath::Sphere(AxisAlignedBox(-0.5..0.5), world) (cpp:695).\r\n vec3.set(CORNER_MIN_SCRATCH, -0.5, -0.5, -0.5);\r\n vec3.transformMat4(CORNER_MIN_SCRATCH, CORNER_MIN_SCRATCH, w);\r\n vec3.set(CORNER_MAX_SCRATCH, 0.5, 0.5, 0.5);\r\n vec3.transformMat4(CORNER_MAX_SCRATCH, CORNER_MAX_SCRATCH, w);\r\n const center = this.boundingSphere.center;\r\n center[0] = (CORNER_MIN_SCRATCH[0] + CORNER_MAX_SCRATCH[0]) * 0.5;\r\n center[1] = (CORNER_MIN_SCRATCH[1] + CORNER_MAX_SCRATCH[1]) * 0.5;\r\n center[2] = (CORNER_MIN_SCRATCH[2] + CORNER_MAX_SCRATCH[2]) * 0.5;\r\n this.boundingSphere.radius = vec3.distance(CORNER_MIN_SCRATCH, CORNER_MAX_SCRATCH) * 0.5;\r\n\r\n // shift = -originShift + (new - previous world translation), then rotated\r\n // into local space with TransformNormal(shift, Inverse(world)) (cpp:697-698).\r\n const originShift = updateContext?.GetOriginShift();\r\n SHIFT_SCRATCH[0] = (originShift ? -originShift[0] : 0) + w[12] - prevX;\r\n SHIFT_SCRATCH[1] = (originShift ? -originShift[1] : 0) + w[13] - prevY;\r\n SHIFT_SCRATCH[2] = (originShift ? -originShift[2] : 0) + w[14] - prevZ;\r\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\r\n // matrix (math Matrix.cpp:12-16) and the scroll still runs - mirrored.\r\n const inverse = mat4.invert(INV_SCRATCH, w) ?? w;\r\n TransformNormal(SHIFT_SCRATCH, SHIFT_SCRATCH, inverse);\r\n const offsets = [this.mapOffset0, this.mapOffset1, this.mapOffset2];\r\n const tilings = [this.textureTiling, this.detailTiling1, this.detailTiling2];\r\n for (let i = 0; i < 3; ++i)\r\n {\r\n const offset = offsets[i];\r\n const tiling = tilings[i];\r\n offset[0] = (offset[0] + SHIFT_SCRATCH[0] * tiling[0]) % 1;\r\n offset[1] = (offset[1] + SHIFT_SCRATCH[1] * tiling[1]) % 1;\r\n // Carbon bug preserved verbatim: .z scrolls by mapTiling.y (cpp:703).\r\n offset[2] = (offset[2] + SHIFT_SCRATCH[2] * tiling[1]) % 1;\r\n }\r\n\r\n this.adjustedMinScreenSize = this.minScreenSize * (updateContext?.GetLodFactor() ?? 1);\r\n this.hasUpdated = true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetBoundingSphere (cpp:226-230): the packed\r\n * (center, radius) cloud sphere, unconditionally true. IEveSpaceObjectChild\r\n * override - parent bounds unions consume it optional-chained. */\r\n @impl.implemented\r\n GetBoundingSphere(out = new Float32Array(4), _query = 0)\r\n {\r\n out[0] = this.boundingSphere.center[0];\r\n out[1] = this.boundingSphere.center[1];\r\n out[2] = this.boundingSphere.center[2];\r\n out[3] = this.boundingSphere.radius;\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetLocalToWorldTransform (cpp:232-235); the\r\n * optional out follows the EveChildContainer copy-out shape. */\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 /** Carbon EveChildCloud2::IsVisible (cpp:837-852): display + one-arg\r\n * IsSphereVisible (the back-plane-ignored TriFrustum quirk applies), then\r\n * the Sphere-duck GetPixelSizeAccross (Est path) against minScreenSize *\r\n * the LIVE lodFactor (not the adjusted stamp). Carbon's override of the\r\n * defaulted ITr2Renderable::IsVisible (h:47-50 returns true) - without it\r\n * the reflection gather would treat the cloud as always visible. */\r\n @impl.implemented\r\n IsVisible(updateContext)\r\n {\r\n const frustum = updateContext?.GetFrustum();\r\n if (!frustum)\r\n {\r\n return false;\r\n }\r\n const sphere = this.boundingSphere;\r\n if (!this.display || !frustum.IsSphereVisible(sphere.center, sphere.radius))\r\n {\r\n return false;\r\n }\r\n const screenSize = frustum.GetPixelSizeAccross(sphere);\r\n if (screenSize < this.minScreenSize * (updateContext?.GetLodFactor() ?? 1))\r\n {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::HasValidTransform (cpp:309-317): determinant is\r\n * nonzero and finite. */\r\n @impl.implemented\r\n HasValidTransform()\r\n {\r\n const det = mat4.determinant(this.worldTransform);\r\n return det !== 0 && Number.isFinite(det);\r\n }\r\n\r\n /** Carbon EveChildCloud2::IsLightmapDirty (cpp:748-751). */\r\n @impl.implemented\r\n IsLightmapDirty()\r\n {\r\n return this.lightmapDirty;\r\n }\r\n\r\n /** Carbon EveChildCloud2::MarkLightmapDirty (cpp:753-757): also zeroes the\r\n * dirty offset (contrast SetSceneInformation's scale-change path, which\r\n * sets the flag WITHOUT resetting the offset - cpp:398-402). */\r\n @impl.implemented\r\n MarkLightmapDirty(dirty)\r\n {\r\n this.lightmapDirty = !!dirty;\r\n this.lightmapDirtyOffset = 0;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetLights (cpp:732-746): display gate only (no\r\n * hasUpdated gate, unlike EveChildContainer), average world-basis-row-length\r\n * scaling (Carbon LengthEst; exact hypot is the accepted divergence - single\r\n * matrix reads, no composition), each light submitted with the world\r\n * transform through the duck-typed manager. Inside Tr2Light::AddLight\r\n * Carbon composes boneTransform * transform (Tr2Light.cpp:132) - that swap\r\n * belongs to the Tr2Light port, not here. */\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (!this.display)\r\n {\r\n return;\r\n }\r\n const m = this.worldTransform;\r\n const scaling = (\r\n Math.hypot(m[0], m[1], m[2]) +\r\n Math.hypot(m[4], m[5], m[6]) +\r\n Math.hypot(m[8], m[9], m[10])\r\n ) / 3;\r\n for (const light of this.lights)\r\n {\r\n light?.AddLight(lightManager, m, scaling);\r\n }\r\n }\r\n\r\n /** Carbon's two GetSortValue overloads, dispatched on argument presence:\r\n * the ITr2VolumetricRenderable frustum form (cpp:237-242) - view distance\r\n * minus |authored local scaling| * sortingModifier, consumed by the\r\n * volumetric renderer's DESCENDING stable sort (farthest first,\r\n * Tr2VolumetricsRenderer.cpp:276-287) - and the ITr2Renderable zero-arg\r\n * form (cpp:914-917) - float32 max (finite, NOT Infinity), so the\r\n * transparent reflection pass sorts the cloud to draw first. */\r\n @impl.implemented\r\n GetSortValue(frustum = null)\r\n {\r\n if (!frustum)\r\n {\r\n return FLOAT32_MAX;\r\n }\r\n const viewPos = frustum.viewPos ?? frustum.m_viewPos;\r\n const w = this.worldTransform;\r\n const dx = viewPos[0] - w[12];\r\n const dy = viewPos[1] - w[13];\r\n const dz = viewPos[2] - w[14];\r\n return Math.hypot(dx, dy, dz) - vec3.length(this.scaling) * this.sortingModifier;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetVolumetricBatches (cpp:244-284), exact gate\r\n * order: quality (cpp:246), display+hasUpdated+frustum sphere (cpp:250),\r\n * Sphere-duck pixel size vs the adjusted min screen size (cpp:256-260),\r\n * HasValidTransform (cpp:262), unit-cube buffers + effect shader\r\n * (cpp:267-274), then ONE transparent volumetric batch with the real\r\n * screenSize per-object data and Carbon's 36-index draw (cpp:276-281).\r\n * Stamps renderedLastFrame (cpp:283) - the texture-animation keep-alive.\r\n * Returns whether a batch was committed (JS addition; Carbon returns void). */\r\n @impl.adapted\r\n @impl.reason(\"The procedural unit-cube vertex/index buffers and declaration (OnPrepareResources cpp:453-532) are engine-realized, so the buffer-validity gate (cpp:267-270) and shader-state gate (cpp:271-274) reduce to the effect presence check; the batch records the effect, per-object data and draw arguments for the engine to bind the cube.\")\r\n GetVolumetricBatches(frustum, batches)\r\n {\r\n if (this.currentQuality < this.minVisibleQuality)\r\n {\r\n return false;\r\n }\r\n const sphere = this.boundingSphere;\r\n const isVisible = this.display && this.hasUpdated &&\r\n frustum?.IsSphereVisible(sphere.center, sphere.radius) === true;\r\n if (!isVisible)\r\n {\r\n return false;\r\n }\r\n\r\n // Sphere duck routes to the Est estimator, matching Carbon's Sphere\r\n // overload (cpp:256; TriFrustum cpp:295-298).\r\n const screenSize = frustum.GetPixelSizeAccross(sphere);\r\n if (screenSize < this.adjustedMinScreenSize)\r\n {\r\n return false;\r\n }\r\n if (!this.HasValidTransform())\r\n {\r\n return false;\r\n }\r\n if (!this.effect)\r\n {\r\n return false;\r\n }\r\n\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(this.effect);\r\n batch.SetPerObjectData(this.GetPerObjectData(batches, screenSize));\r\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\r\n const committed = batches?.Commit?.(batch) === true;\r\n\r\n this.renderedLastFrame = true;\r\n return committed;\r\n }\r\n\r\n /** Carbon EveChildCloud2::UpdateVolumetricLightmap (cpp:319-382): the\r\n * scene-facing contract is the gates and the bool return - true means \"this\r\n * cloud consumed the frame's single scene-wide lightmap budget\"\r\n * (Tr2VolumetricsRenderer::ProcessComponentsUntil stops at the FIRST true,\r\n * cpp:219-221). Slice budget: VOXELS_PER_UPDATE = 6400000 * scale^3;\r\n * slices = max(VOXELS / (scaledHeight * scaledDepth), 1) (cpp:354-355).\r\n * QUIRK verbatim: the dispatch group Y/Z counts use the UNSCALED dims while\r\n * the slice count uses the scaled ones (cpp:359-361). Success advances\r\n * lightmapDirtyOffset by slices; reaching scaledWidth completes the map\r\n * (dirty false, offset 0); failure resets the offset and returns false. */\r\n @impl.adapted\r\n @impl.reason(\"The 3D lightmap texture lifecycle, per-object upload and LightMap variable swaps (cpp:327-352, 363-372) are not ported yet; the GenerateLightmap dispatch is delegated to a renderContext.RunComputeShader duck and fail-closes to false when absent.\")\r\n UpdateVolumetricLightmap(renderContext)\r\n {\r\n if (this.currentQuality < this.minVisibleQuality || !this.hasUpdated)\r\n {\r\n return false;\r\n }\r\n if (this.lightmapDirty && this.effect && this.lightmapWidth > 0 && this.HasValidTransform())\r\n {\r\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\r\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\r\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\r\n\r\n const VOXELS_PER_UPDATE = Math.floor(6400000 * this.lightmapSizeScale ** 3);\r\n const slices = Math.max(Math.floor(VOXELS_PER_UPDATE / (scaledHeight * scaledDepth)), 1);\r\n const success = renderContext?.RunComputeShader?.(\r\n this.effect,\r\n \"GenerateLightmap\",\r\n slices,\r\n Math.floor((this.lightmapHeight + 7) / 8),\r\n Math.floor((this.lightmapDepth + 7) / 8)\r\n ) === true;\r\n if (success)\r\n {\r\n this.lightmapDirtyOffset += slices;\r\n if (this.lightmapDirtyOffset >= scaledWidth)\r\n {\r\n this.lightmapDirty = false;\r\n this.lightmapDirtyOffset = 0;\r\n }\r\n return true;\r\n }\r\n this.lightmapDirtyOffset = 0;\r\n }\r\n return false;\r\n }\r\n\r\n /** Carbon EveChildCloud2::SetSceneInformation (cpp:384-424): quality maps to\r\n * lightmapSizeScale (Low 0.1 / Medium 0.15 / default 0.25, cpp:386-397); a\r\n * scale change sets lightmapDirty WITHOUT resetting the dirty offset\r\n * (cpp:398-402 - asymmetric vs MarkLightmapDirty, preserved); copies the 4\r\n * depth slices; localSunDirection = Normalize(TransformNormal(sunDir,\r\n * Inverse(world))) (cpp:407 - single-matrix inverse + basis transform, no\r\n * composition); re-dirties the lightmap when the sun moved past\r\n * cos(5/180) - QUIRK verbatim: Carbon omits the degree conversion, so the\r\n * threshold is ~1.59 degrees, not 5 (cpp:408); stamps target dims; flips\r\n * the two cloud-shadow effect options (cpp:417-423). */\r\n @impl.adapted\r\n @impl.reason(\"Carbon dereferences m_effect with no null guard (cpp:417); the JS option writes are optional-chained. Everything else is verbatim, including the missing degree conversion in the sun-motion threshold.\")\r\n SetSceneInformation(sceneInformation)\r\n {\r\n let lightmapSizeScale;\r\n switch (sceneInformation.quality)\r\n {\r\n case EveChildCloud2.Tr2VolumerticQuality.Low:\r\n lightmapSizeScale = 0.1;\r\n break;\r\n case EveChildCloud2.Tr2VolumerticQuality.Medium:\r\n lightmapSizeScale = 0.15;\r\n break;\r\n default:\r\n lightmapSizeScale = 0.25;\r\n }\r\n if (lightmapSizeScale !== this.lightmapSizeScale)\r\n {\r\n this.lightmapSizeScale = lightmapSizeScale;\r\n this.lightmapDirty = true;\r\n }\r\n this.currentQuality = sceneInformation.quality;\r\n\r\n for (let i = 0; i < 4; ++i)\r\n {\r\n this.depthSlices[i] = sceneInformation.depthSlices?.[i] ?? 0;\r\n }\r\n\r\n // Carbon's one-arg Inverse returns the INPUT unchanged on a singular\r\n // matrix (math Matrix.cpp:12-16) and the recompute still runs - mirrored.\r\n const inverse = mat4.invert(INV_SCRATCH, this.worldTransform) ?? this.worldTransform;\r\n TransformNormal(SUN_SCRATCH, sceneInformation.sunDirection, inverse);\r\n vec3.normalize(this.localSunDirection, SUN_SCRATCH);\r\n if (vec3.dot(this.prevSunDirection, this.localSunDirection) < Math.cos(5.0 / 180.0))\r\n {\r\n vec3.copy(this.prevSunDirection, this.localSunDirection);\r\n this.MarkLightmapDirty(true);\r\n }\r\n\r\n this.targetWidth = sceneInformation.targetWidth;\r\n this.targetHeight = sceneInformation.targetHeight;\r\n\r\n const receive = !!sceneInformation.receiveShadows && !!this.receiveShadows;\r\n this.effect?.SetOption?.(\r\n \"CLOUD_SHADOWS\",\r\n receive ? \"CLOUD_SHADOWS_RECEIVE\" : \"CLOUD_SHADOWS_NONE\"\r\n );\r\n this.effect?.SetOption?.(\r\n \"CLOUD_SHADOW_ALGORITHM\",\r\n receive && sceneInformation.raytracedShadows ? \"CLOUD_SHADOWS_RAYTRACED\" : \"CLOUD_SHADOWS_CASCADED\"\r\n );\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetVolumetricShadowBatches (cpp:759-785): gated on\r\n * display + effect + castShadows, then the \"Shadow\" technique presence\r\n * (cpp:766-776); emits ONE alpha, declaration-less (NULL_DECLARATION,\r\n * cpp:782), non-indexed single-triangle batch with screenSize-1 per-object\r\n * data (cpp:778-784). Does NOT stamp renderedLastFrame. Returns whether the\r\n * batch was committed (JS addition). */\r\n @impl.adapted\r\n @impl.reason(\"The 'Shadow' technique gate applies only when a shader-state interface is present, and the batch is dropped otherwise; NULL_DECLARATION maps to declaration 0.\")\r\n GetVolumetricShadowBatches(batches)\r\n {\r\n if (!this.display || !this.effect || !this.castShadows)\r\n {\r\n return false;\r\n }\r\n // cpp:766-776 - the \"Shadow\" technique must exist. The JS shader duck\r\n // (Tr2Shader.GetTechniqueIndex) returns an INDEX: -1 for missing, 0..n\r\n // for found - 0 is a valid technique (compare < 0, never truthiness).\r\n const shader = this.effect.GetShaderStateInterface?.();\r\n if (shader?.GetTechniqueIndex)\r\n {\r\n const technique = shader.GetTechniqueIndex(\"Shadow\");\r\n if (technique === null || technique === undefined || technique < 0)\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(this.effect);\r\n batch.SetPerObjectData(this.GetPerObjectData(batches, 1));\r\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\r\n batch.SetVertexDeclaration(0);\r\n batch.SetDrawInstanced(3, 1, 0, 0);\r\n return batches?.Commit?.(batch) === true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetVolumetricShadowInfo (cpp:787-790): pure\r\n * delegation to SetupShadowFrustum. The scene calls this to build the\r\n * shadow-camera package before rendering casters into the cloud shadow map\r\n * (EveSpaceScene.cpp:2355-2371). */\r\n @impl.implemented\r\n GetVolumetricShadowInfo(shadowInfo, sunDir)\r\n {\r\n return this.SetupShadowFrustum(shadowInfo, sunDir);\r\n }\r\n\r\n /** Carbon EveChildCloud2::SetupShadowFrustum (cpp:886-907):\r\n * lightView = Inverse(OrthoNormalBasisZ(-sunDir)) (cpp:889 - single-matrix\r\n * build + invert); the unit-cube AABB transformed by worldTransform *\r\n * lightView - COMPOSITION, world applies first, so the gl-matrix operands\r\n * swap (cpp:893; all 8 corners, math AxisAlignedBox.cpp:9-33); max.z\r\n * extended by the 2,500,000 sun-ray magic constant (cpp:895); lightViewProj\r\n * = lightView * OrthoOffCenterMatrix(...) - COMPOSITION, lightView first,\r\n * operands swap (cpp:897), with Carbon's deliberately mirrored argument\r\n * order (max.x, min.x, max.y, min.y, -max.z, -min.z) and D3D z-in-[0,1]\r\n * formula both preserved; DeriveFrustum(lightView, aabb.min, aabb.max)\r\n * (cpp:900-901); outputs aabbMax / lightViewProj copy / shadowFrustum /\r\n * shadowMapSize (cpp:903-906). */\r\n @impl.implemented\r\n SetupShadowFrustum(shadowInfo, sunDir)\r\n {\r\n vec3.set(SUN_SCRATCH, -sunDir[0], -sunDir[1], -sunDir[2]);\r\n OrthoNormalBasisZ(BASIS_SCRATCH, SUN_SCRATCH);\r\n if (!mat4.invert(LIGHT_VIEW_SCRATCH, BASIS_SCRATCH))\r\n {\r\n mat4.identity(LIGHT_VIEW_SCRATCH);\r\n }\r\n\r\n // Carbon (row-vector): m_worldTransform * lightView - world first.\r\n mat4.multiply(WORLD_LIGHT_SCRATCH, LIGHT_VIEW_SCRATCH, this.worldTransform);\r\n let minX = Infinity, minY = Infinity, minZ = Infinity;\r\n let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;\r\n for (let corner = 0; corner < 8; ++corner)\r\n {\r\n CORNER_SCRATCH[0] = (corner & 1) ? 0.5 : -0.5;\r\n CORNER_SCRATCH[1] = (corner & 2) ? 0.5 : -0.5;\r\n CORNER_SCRATCH[2] = (corner & 4) ? 0.5 : -0.5;\r\n vec3.transformMat4(CORNER_SCRATCH, CORNER_SCRATCH, WORLD_LIGHT_SCRATCH);\r\n minX = Math.min(minX, CORNER_SCRATCH[0]);\r\n minY = Math.min(minY, CORNER_SCRATCH[1]);\r\n minZ = Math.min(minZ, CORNER_SCRATCH[2]);\r\n maxX = Math.max(maxX, CORNER_SCRATCH[0]);\r\n maxY = Math.max(maxY, CORNER_SCRATCH[1]);\r\n maxZ = Math.max(maxZ, CORNER_SCRATCH[2]);\r\n }\r\n maxZ += 2500000;\r\n\r\n OrthoOffCenterMatrix(ORTHO_SCRATCH, maxX, minX, maxY, minY, -maxZ, -minZ);\r\n // Carbon (row-vector): lightView * ortho - lightView first.\r\n mat4.multiply(this.lightViewProj, ORTHO_SCRATCH, LIGHT_VIEW_SCRATCH);\r\n\r\n const shadowFrustum = new TriFrustumOrtho();\r\n vec3.set(BOUNDS_MIN_SCRATCH, minX, minY, minZ);\r\n vec3.set(BOUNDS_MAX_SCRATCH, maxX, maxY, maxZ);\r\n shadowFrustum.DeriveFrustum(LIGHT_VIEW_SCRATCH, BOUNDS_MIN_SCRATCH, BOUNDS_MAX_SCRATCH);\r\n\r\n shadowInfo.aabbMax = vec3.fromValues(maxX, maxY, maxZ);\r\n shadowInfo.lightViewProj = mat4.clone(this.lightViewProj);\r\n shadowInfo.shadowFrustum = shadowFrustum;\r\n shadowInfo.shadowMapSize = this.shadowMapSize;\r\n return shadowInfo;\r\n }\r\n\r\n /**\r\n * Makes this cloud's depth-stencil the render target for its shadow pass.\r\n *\r\n * THE GATE IS PORTED AND THE WORK IS NOT, which is why this returns false in\r\n * one case and throws in the other. Carbon's contract\r\n * (`EveChildCloud2.cpp:774-808`) is that `receiveShadows` decides whether\r\n * there is a shadow map at all, and the scene calls `SetCloudShadowMapHandle`\r\n * ONLY after a true return (`EveSpaceScene.cpp:2365-2368`) - which is what\r\n * makes Carbon's unguarded `m_shadowMapDS` dereference there safe.\r\n *\r\n * A cloud that does not receive shadows is therefore fully correct here.\r\n *\r\n * WHAT IS MISSING. Carbon creates the depth-stencil, pushes it as the target,\r\n * clears depth and sets the viewport. Every push, the clear and\r\n * `SetReadOnlyDepth` exist here; `Tr2DepthStencil` does not. Ours is a\r\n * generated shell whose `Create` throws and which declares none of\r\n * `GetTexture`, `IsValid`, `GetWidth` or `GetHeight` - the four Carbon uses\r\n * (`Tr2DepthStencil.h:29,40,48,54-55`).\r\n *\r\n * THIS USED TO RETURN TRUE HAVING DONE NOTHING. The body was\r\n * `renderContext?.PrepareCloudShadowMap?.(this)` against a method no render\r\n * context defines - optional-chained, so it no-opped, and the scene then\r\n * published a shadow-map handle for a shadow map that was never rendered.\r\n * Failing here is the point: the gap is in `Tr2DepthStencil`, and it should\r\n * be visible from the one place that needs it.\r\n *\r\n * @returns {boolean} False when this cloud receives no shadows; otherwise\r\n * never returns.\r\n */\r\n @carbon.method\r\n @impl.notImplemented\r\n @impl.reason(\"Needs Tr2DepthStencil, which is a generated shell: Create throws and GetTexture/IsValid/GetWidth/GetHeight are absent. The receiveShadows gate and the false return are ported.\")\r\n PrepareCloudShadowMap()\r\n {\r\n if (!this.receiveShadows)\r\n {\r\n return false;\r\n }\r\n\r\n throw new Error(\r\n \"EveChildCloud2.PrepareCloudShadowMap: needs Tr2DepthStencil.Create and its \"\r\n + \"GetTexture/IsValid/GetWidth/GetHeight accessors, which are unported.\"\r\n );\r\n }\r\n\r\n /** Carbon EveChildCloud2::SetCloudShadowMapHandle (cpp:829-835): publish the\r\n * shadow depth-stencil into the global \"DepthShadowMap\" variable handle\r\n * (registered in the Carbon ctor, cpp:115). QUIRK: Carbon dereferences\r\n * m_shadowMapDS with no null guard - safe only via the\r\n * PrepareCloudShadowMap-first call order (see above). */\r\n @impl.adapted\r\n @impl.reason(\"The variable store is not ported yet (depthShadowMapHandle is an injected duck); Carbon's unguarded m_shadowMapDS dereference is optional-chained.\")\r\n SetCloudShadowMapHandle()\r\n {\r\n if (this.shadowMapDS?.IsValid?.())\r\n {\r\n this.depthShadowMapHandle?.SetValue?.(this.shadowMapDS);\r\n }\r\n }\r\n\r\n /** Carbon EveChildCloud2::GetBatches (cpp:854-884): quality gate, then ONLY\r\n * the (REFLECTION, TRANSPARENT) type/reason pair produces anything\r\n * (cpp:860) - every other combination is a silent no-op; HasValidTransform\r\n * + unit-cube buffers + reflectionEffect gates (cpp:862-874); one alpha\r\n * batch with the hardcoded 10000 screen size forcing max lodFactor\r\n * (cpp:878). QUIRK: unlike GetVolumetricBatches this does NOT stamp\r\n * renderedLastFrame - reflection-only rendering does not keep texture\r\n * animations alive. Returns whether a batch was committed (JS addition). */\r\n @impl.adapted\r\n @impl.reason(\"Unit-cube buffers/declaration are engine-realized (as GetVolumetricBatches); the perObjectData parameter is unused because Carbon allocates the cloud's own with screenSize 10000 (cpp:878).\")\r\n GetBatches(batches, batchType, _perObjectData, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\r\n {\r\n if (this.currentQuality < this.minVisibleQuality)\r\n {\r\n return false;\r\n }\r\n if (reason !== Tr2RenderReason.TR2RENDERREASON_REFLECTION || batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\r\n {\r\n return false;\r\n }\r\n if (!this.HasValidTransform())\r\n {\r\n return false;\r\n }\r\n if (!this.reflectionEffect)\r\n {\r\n return false;\r\n }\r\n\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(this.reflectionEffect);\r\n batch.SetPerObjectData(this.GetPerObjectData(batches, 10000));\r\n batch.SetDrawIndexedInstanced(12 * 3, 1, 0, 0, 0);\r\n batch.SetRenderingMode(RenderingMode.RM_ALPHA);\r\n return batches?.Commit?.(batch) === true;\r\n }\r\n\r\n /** Carbon EveChildCloud2::HasTransparentBatches (cpp:909-912):\r\n * unconditionally true - the reflection gather always routes the cloud\r\n * through the transparent leg that feeds GetBatches' type/reason filter. */\r\n @impl.implemented\r\n HasTransparentBatches()\r\n {\r\n return true;\r\n }\r\n\r\n /** Carbon's two GetPerObjectData overloads (public, screenSize 1:\r\n * cpp:919-927; private, caller screenSize: cpp:534-542): allocate from the\r\n * accumulator and populate. The GPU-free record carries the live object\r\n * reference plus the CPU-populated field block (cloudData); view-dependent\r\n * members are refreshed by the engine calling PopulatePerObjectData again\r\n * with its render context at realization (screenSize is stamped for that). */\r\n @impl.adapted\r\n @impl.reason(\"EveChildCloudPerObjectData's device constant buffers are not ported yet; the record carries the object reference, the collection-time screenSize and the CPU field block.\")\r\n GetPerObjectData(accumulator = null, screenSize = 1)\r\n {\r\n const data = typeof accumulator?.Allocate === \"function\"\r\n ? accumulator.Allocate(Tr2PerObjectData)\r\n : new Tr2PerObjectData();\r\n if (!data)\r\n {\r\n return null;\r\n }\r\n data.object = this;\r\n data.screenSize = screenSize;\r\n data.cloudData = this.PopulatePerObjectData({}, screenSize);\r\n return data;\r\n }\r\n\r\n /** Carbon EveChildCloud2::PopulatePerObjectData (cpp:544-619) against the\r\n * PerObjectData block (EveChildCloud2.h:125-145). Compositions (Carbon\r\n * row-vector -> gl-matrix operands swap):\r\n * - cpp:548/567 worldTransform * viewTransform (world first) ->\r\n * mat4.multiply(WV, view, world); the cpp:567 transpose is folded into\r\n * explicit element reads: viewDirection = TransformNormal((0,0,-1),\r\n * worldViewT) = (-WV[2], -WV[6], -WV[10]); depthSliceN =\r\n * -WV[14] - slice * WV[15].\r\n * Single-matrix sites (NO swap): the cpp:546/547/551 HLSL packing\r\n * transposes, cpp:550 TransformCoord with the inverted world, cpp:578\r\n * Decompose (mat4.getScaling). */\r\n @impl.adapted\r\n @impl.reason(\"Tr2Renderer's view/projection globals relocate onto the optional renderContext duck (identity/zero fallbacks when absent - the engine repopulates at realization); rand() maps to Math.random with a zero-size guard Carbon's UB-free ctor default (32) never needed; the Tr2Light Perlin flicker inside GetLight awaits the frame-clock seam.\")\r\n PopulatePerObjectData(data, screenSize = 1, renderContext = null)\r\n {\r\n const w = this.worldTransform;\r\n // cpp:546 - packing transpose of a single matrix.\r\n data.world = mat4.transpose(mat4.create(), w);\r\n\r\n // cpp:547 - Transpose(Inverse(reversed-depth projection)); renderer\r\n // global (identity when the context duck is absent; a singular input\r\n // mirrors Carbon's Inverse-returns-input).\r\n data.projectionInv = mat4.create();\r\n const projection = renderContext?.GetReversedDepthProjectionTransform?.();\r\n if (projection)\r\n {\r\n if (!mat4.invert(data.projectionInv, projection))\r\n {\r\n mat4.copy(data.projectionInv, projection);\r\n }\r\n mat4.transpose(data.projectionInv, data.projectionInv);\r\n }\r\n\r\n // cpp:548-549 - Inverse(world * view), COMPOSITION: operands swap.\r\n // Singular product: Carbon's Inverse returns the input unchanged\r\n // (math Matrix.cpp:12-16) - mirrored.\r\n const view = renderContext?.GetViewTransform?.() ?? IDENTITY;\r\n mat4.multiply(WV_SCRATCH, view, w);\r\n data.worldViewInv = mat4.create();\r\n if (!mat4.invert(data.worldViewInv, WV_SCRATCH))\r\n {\r\n mat4.copy(data.worldViewInv, WV_SCRATCH);\r\n }\r\n mat4.transpose(data.worldViewInv, data.worldViewInv);\r\n\r\n // cpp:550 - TransformCoord(viewPosition, Inverse(world)) - single matrix;\r\n // same singular-input mirror.\r\n data.viewPosition = vec3.create();\r\n const viewPosition = renderContext?.GetViewPosition();\r\n if (viewPosition)\r\n {\r\n const inverseWorld = mat4.invert(INV_SCRATCH, w) ?? w;\r\n vec3.transformMat4(data.viewPosition, viewPosition, inverseWorld);\r\n }\r\n\r\n // cpp:551 - packing transpose (stamped by SetupShadowFrustum).\r\n data.lightViewProj = mat4.transpose(mat4.create(), this.lightViewProj);\r\n\r\n // cpp:553-560 - scaled lightmap dims + dirty offset.\r\n const scaledWidth = Math.max(1, Math.floor(this.lightmapWidth * this.lightmapSizeScale));\r\n const scaledHeight = Math.max(1, Math.floor(this.lightmapHeight * this.lightmapSizeScale));\r\n const scaledDepth = Math.max(1, Math.floor(this.lightmapDepth * this.lightmapSizeScale));\r\n data.lightmapDimensions = [scaledWidth, scaledHeight, scaledDepth, this.lightmapDirtyOffset];\r\n\r\n // cpp:562-565 - rand() % noiseTextureSize; nondeterministic by design.\r\n // The generated schema default 0 would be modulo-by-zero UB in Carbon\r\n // (its ctor default is 32) - guarded here.\r\n const noiseSize = this.noiseTextureSize >>> 0;\r\n data.noiseConfig = [\r\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\r\n noiseSize > 0 ? Math.floor(Math.random() * noiseSize) : 0,\r\n noiseSize,\r\n noiseSize,\r\n ];\r\n\r\n // cpp:567-571 - Transpose(world * view) consumed by row-vector transforms;\r\n // ported as explicit element reads of the (already swapped) WV product.\r\n const wv = WV_SCRATCH;\r\n data.viewDirection = vec3.fromValues(-wv[2], -wv[6], -wv[10]);\r\n data.depthSlice0 = -wv[14] - this.depthSlices[0] * wv[15];\r\n data.depthSlice1 = -wv[14] - this.depthSlices[1] * wv[15];\r\n data.depthSlice2 = -wv[14] - this.depthSlices[2] * wv[15];\r\n\r\n // cpp:573.\r\n data.sunDirection = vec3.fromValues(\r\n -this.localSunDirection[0],\r\n -this.localSunDirection[1],\r\n -this.localSunDirection[2]\r\n );\r\n\r\n // cpp:575-580 - Decompose scale, normalized by the largest component\r\n // (pure decomposition - no composition, no swap).\r\n mat4.getScaling(SCALE_SCRATCH, w);\r\n const maxScale = Math.max(SCALE_SCRATCH[0], SCALE_SCRATCH[1], SCALE_SCRATCH[2]);\r\n data.relativeScaling = vec3.fromValues(\r\n SCALE_SCRATCH[0] / maxScale,\r\n SCALE_SCRATCH[1] / maxScale,\r\n SCALE_SCRATCH[2] / maxScale\r\n );\r\n\r\n // cpp:581.\r\n data.lodFactor = Math.max(0, screenSize / Math.max(1, this.minScreenSize) - 1);\r\n\r\n // cpp:583 - Infinity when target dims are unset, matching Carbon's float\r\n // division semantics.\r\n data.targetInvSize = [2 / this.targetWidth, 2 / this.targetHeight];\r\n\r\n // cpp:585-614 - up to 4 lights via Tr2Light::GetLight; radius > 0 scales\r\n // the color by brightnessMultiplier * (innerRadius*2 + 1)^3; remaining\r\n // slots zero-filled (cpp:611-614).\r\n data.lights = [];\r\n for (const light of this.lights)\r\n {\r\n if (data.lights.length >= 4)\r\n {\r\n break;\r\n }\r\n const record = { position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 };\r\n if (light?.GetLight?.(LIGHT_SCRATCH))\r\n {\r\n vec3.copy(record.position, LIGHT_SCRATCH.position);\r\n record.radius = LIGHT_SCRATCH.radius;\r\n if (record.radius > 0)\r\n {\r\n const lightData = light.GetLightData?.();\r\n record.innerRadius = Math.max(Math.min((lightData?.innerRadius ?? 0) / record.radius, 1), 0);\r\n const multiplier = light.GetBrightnessMultiplier?.() ?? 1;\r\n const boost = (record.innerRadius * 2 + 1) ** 3;\r\n record.color[0] = LIGHT_SCRATCH.color[0] * multiplier * boost;\r\n record.color[1] = LIGHT_SCRATCH.color[1] * multiplier * boost;\r\n record.color[2] = LIGHT_SCRATCH.color[2] * multiplier * boost;\r\n }\r\n }\r\n data.lights.push(record);\r\n }\r\n while (data.lights.length < 4)\r\n {\r\n data.lights.push({ position: vec3.create(), radius: 0, color: vec3.create(), innerRadius: 0 });\r\n }\r\n\r\n // cpp:616-618.\r\n data.mapOffsets = [\r\n [this.mapOffset0[0], this.mapOffset0[1], this.mapOffset0[2], 0],\r\n [this.mapOffset1[0], this.mapOffset1[1], this.mapOffset1[2], 0],\r\n [this.mapOffset2[0], this.mapOffset2[1], this.mapOffset2[2], 0],\r\n ];\r\n return data;\r\n }\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2VolumerticQuality = Tr2VolumerticQuality;\r\n\r\n}\r\n"],"names":["FLOAT32_MAX","IDENTITY","mat4","create","INV_SCRATCH","WV_SCRATCH","BASIS_SCRATCH","LIGHT_VIEW_SCRATCH","WORLD_LIGHT_SCRATCH","ORTHO_SCRATCH","CORNER_MIN_SCRATCH","vec3","CORNER_MAX_SCRATCH","CORNER_SCRATCH","SHIFT_SCRATCH","SUN_SCRATCH","SCALE_SCRATCH","BOUNDS_MIN_SCRATCH","BOUNDS_MAX_SCRATCH","LIGHT_SCRATCH","position","radius","color","OrthoNormalBasisZ","out","z","identity","zl","Math","hypot","zx","zy","zz","xx","abs","xy","yx","yy","yz","yl","OrthoOffCenterMatrix","l","r","b","t","zn","zf","TransformNormal","v","m","x","y","_EveChildCloud","_identity","EveChildCloud2","EveSpaceObjectChild","e","_init_reflectionMode","_init_extra_reflectionMode","_init_minVisibleQuality","_init_extra_minVisibleQuality","_init_sortingModifier","_init_extra_sortingModifier","_init_animation","_init_extra_animation","_init_shadowMapDS","_init_extra_shadowMapDS","_init_lightmap","_init_extra_lightmap","_init_lightmapSizeScale","_init_extra_lightmapSizeScale","_init_lights","_init_extra_lights","_init_minScreenSize","_init_extra_minScreenSize","_init_rotation","_init_extra_rotation","_init_translation","_init_extra_translation","_init_scaling","_init_extra_scaling","_init_reflectionEffect","_init_extra_reflectionEffect","_init_effect","_init_extra_effect","_init_noiseTextureSize","_init_extra_noiseTextureSize","_init_mapOffset","_init_extra_mapOffset","_init_mapOffset2","_init_extra_mapOffset2","_init_mapOffset3","_init_extra_mapOffset3","_init_castShadows","_init_extra_castShadows","_init_receiveShadows","_init_extra_receiveShadows","_init_name","_init_extra_name","_init_detailTiling","_init_extra_detailTiling","_init_detailTiling2","_init_extra_detailTiling2","_init_textureTiling","_init_extra_textureTiling","_init_display","_init_extra_display","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","inherit","ITr2Renderable","edit","notify","persist","int32","enum","float32","model","readwrite","objectRef","read","list","quat","uint32","boolean","string","impl","implemented","adapted","reason","method","notImplemented","reflectionMode","minVisibleQuality","sortingModifier","animation","shadowMapDS","lightmap","lightmapSizeScale","lights","minScreenSize","rotation","translation","scaling","reflectionEffect","effect","noiseTextureSize","mapOffset0","mapOffset1","mapOffset2","castShadows","receiveShadows","name","detailTiling1","detailTiling2","textureTiling","display","localTransform","worldTransform","boundingSphere","center","hasUpdated","adjustedMinScreenSize","currentQuality","lightmapDirty","renderedLastFrame","effectHash","lightmapWidth","lightmapHeight","lightmapDepth","lightmapDirtyOffset","prevSunDirection","localSunDirection","depthSlices","Float32Array","targetWidth","targetHeight","lightViewProj","shadowMapSize","depthShadowMapHandle","RegisterComponents","registry","GetComponentRegistry","length","RegisterComponent","EveComponentType","LightOwner","VolumetricRenderable","ShouldReflect","ReflectionRenderable","UpdateSyncronous","updateContext","_params","hash","GetHashValue","UpdateOnlyWhenRendered","AdvanceTime","GetDeltaT","UpdateAsyncronous","params","fromRotationTranslationScale","parent","localToWorldTransform","w","prevX","prevY","prevZ","multiply","set","transformMat4","distance","originShift","GetOriginShift","inverse","invert","offsets","tilings","i","offset","tiling","GetLodFactor","GetBoundingSphere","_query","GetLocalToWorldTransform","copy","IsVisible","frustum","GetFrustum","sphere","IsSphereVisible","screenSize","GetPixelSizeAccross","HasValidTransform","det","determinant","Number","isFinite","IsLightmapDirty","MarkLightmapDirty","dirty","GetLights","lightManager","light","AddLight","GetSortValue","viewPos","m_viewPos","dx","dy","dz","GetVolumetricBatches","batches","isVisible","batch","Tr2RenderBatch","SetMaterial","SetPerObjectData","GetPerObjectData","SetDrawIndexedInstanced","committed","Commit","UpdateVolumetricLightmap","renderContext","scaledWidth","max","floor","scaledHeight","scaledDepth","VOXELS_PER_UPDATE","slices","success","RunComputeShader","SetSceneInformation","sceneInformation","quality","Tr2VolumerticQuality","Low","Medium","sunDirection","normalize","dot","cos","receive","SetOption","raytracedShadows","GetVolumetricShadowBatches","shader","GetShaderStateInterface","GetTechniqueIndex","technique","undefined","SetRenderingMode","RenderingMode","RM_ALPHA","SetVertexDeclaration","SetDrawInstanced","GetVolumetricShadowInfo","shadowInfo","sunDir","SetupShadowFrustum","minX","Infinity","minY","minZ","maxX","maxY","maxZ","corner","min","shadowFrustum","TriFrustumOrtho","DeriveFrustum","aabbMax","fromValues","clone","PrepareCloudShadowMap","Error","SetCloudShadowMapHandle","IsValid","SetValue","GetBatches","batchType","_perObjectData","Tr2RenderReason","TR2RENDERREASON_NORMAL","TR2RENDERREASON_REFLECTION","TriBatchType","TRIBATCHTYPE_TRANSPARENT","HasTransparentBatches","accumulator","data","Allocate","Tr2PerObjectData","object","cloudData","PopulatePerObjectData","world","transpose","projectionInv","projection","GetReversedDepthProjectionTransform","view","GetViewTransform","worldViewInv","viewPosition","GetViewPosition","inverseWorld","lightmapDimensions","noiseSize","noiseConfig","random","wv","viewDirection","depthSlice0","depthSlice1","depthSlice2","getScaling","maxScale","relativeScaling","lodFactor","targetInvSize","record","innerRadius","GetLight","lightData","GetLightData","multiplier","GetBrightnessMultiplier","boost","push","mapOffsets","ReflectionMode","constructor"],"mappings":"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"}