@carbonenginejs/runtime-trinity 0.6.0 → 0.7.0

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 (1087) hide show
  1. package/README.md +35 -243
  2. package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
  3. package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
  4. package/dist/controllers/ITr2ControllerAction.js +57 -0
  5. package/dist/controllers/ITr2ControllerAction.js.map +1 -1
  6. package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
  7. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  8. package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
  9. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  10. package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
  11. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  12. package/dist/controllers/Tr2ActionCallback.js +5 -0
  13. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  14. package/dist/controllers/Tr2ActionChildEffect.js +63 -0
  15. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  16. package/dist/controllers/Tr2ActionOverlay.js +68 -0
  17. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  18. package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
  19. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  20. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
  21. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  22. package/dist/controllers/Tr2ActionPlaySound.js +11 -0
  23. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  24. package/dist/controllers/Tr2ActionPython.js +11 -0
  25. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  26. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
  27. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  28. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
  29. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  30. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
  31. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  32. package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
  33. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  34. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
  35. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  36. package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
  37. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  38. package/dist/controllers/Tr2ActionSetValue.js +35 -0
  39. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  40. package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
  41. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  42. package/dist/controllers/Tr2BindingPoint.js +67 -0
  43. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  44. package/dist/controllers/Tr2Controller.js +37 -0
  45. package/dist/controllers/Tr2Controller.js.map +1 -1
  46. package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
  47. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  48. package/dist/controllers/Tr2ControllerExpression.js +17 -0
  49. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  50. package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
  51. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  52. package/dist/controllers/Tr2ControllerReference.js +11 -0
  53. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  54. package/dist/controllers/Tr2StateMachine.js +17 -0
  55. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  56. package/dist/controllers/Tr2StateMachineState.js +47 -0
  57. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  58. package/dist/controllers/Tr2StateMachineTransition.js +29 -0
  59. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  60. package/dist/controllers/Tr2SyncToAnimation.js +5 -0
  61. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  62. package/dist/controllers/Tr2TimelineController.js +61 -0
  63. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  64. package/dist/controllers/contracts.js +24 -1
  65. package/dist/controllers/contracts.js.map +1 -1
  66. package/dist/controllers/index.js +1 -1
  67. package/dist/curves/CjsGrannyCurves.js +150 -0
  68. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  69. package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
  70. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  71. package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
  72. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  73. package/dist/curves/Tr2CurveColor.js +6 -0
  74. package/dist/curves/Tr2CurveColor.js.map +1 -1
  75. package/dist/curves/Tr2CurveColorMixer.js +6 -0
  76. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  77. package/dist/curves/Tr2CurveCombiner.js +5 -0
  78. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  79. package/dist/curves/Tr2CurveConstant.js +16 -0
  80. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  81. package/dist/curves/Tr2CurveEulerRotation.js +5 -0
  82. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  83. package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
  84. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  85. package/dist/curves/Tr2CurveQuaternion.js +5 -0
  86. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  87. package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
  88. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  89. package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
  90. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  91. package/dist/curves/Tr2CurveScalar.js +35 -0
  92. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  93. package/dist/curves/Tr2CurveScalarExpression.js +11 -0
  94. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  95. package/dist/curves/Tr2CurveScalarKey.js +6 -0
  96. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  97. package/dist/curves/Tr2CurveSetRange.js +5 -0
  98. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  99. package/dist/curves/Tr2CurveVector2.js +5 -0
  100. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  101. package/dist/curves/Tr2CurveVector3.js +5 -0
  102. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  103. package/dist/curves/Tr2CurveVector3Expression.js +71 -0
  104. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  105. package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
  106. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  107. package/dist/curves/Tr2DistanceTracker.js +6 -0
  108. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  109. package/dist/curves/Tr2FollowCurve.js +6 -0
  110. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  111. package/dist/curves/Tr2GrannyEventTrack.js +5 -0
  112. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  113. package/dist/curves/Tr2GrannyTrack.js +6 -0
  114. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  115. package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
  116. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  117. package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
  118. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  119. package/dist/curves/Tr2MatrixKey.js +5 -0
  120. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  121. package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
  122. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  123. package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
  124. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  125. package/dist/curves/Tr2RotationAdapter.js +6 -0
  126. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  127. package/dist/curves/Tr2ScalarExprKey.js +18 -0
  128. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  129. package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
  130. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  131. package/dist/curves/Tr2ScalarFader.js +11 -0
  132. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  133. package/dist/curves/Tr2TranslationAdapter.js +6 -0
  134. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  135. package/dist/curves/TriColorSequencer.js +6 -0
  136. package/dist/curves/TriColorSequencer.js.map +1 -1
  137. package/dist/curves/TriCurveSet.js +23 -0
  138. package/dist/curves/TriCurveSet.js.map +1 -1
  139. package/dist/curves/TriEventCurve.js +23 -0
  140. package/dist/curves/TriEventCurve.js.map +1 -1
  141. package/dist/curves/TriEventKey.js +5 -0
  142. package/dist/curves/TriEventKey.js.map +1 -1
  143. package/dist/curves/TriPerlinCurve.js +30 -0
  144. package/dist/curves/TriPerlinCurve.js.map +1 -1
  145. package/dist/curves/TriVectorSequencer.js +6 -0
  146. package/dist/curves/TriVectorSequencer.js.map +1 -1
  147. package/dist/eve/AudioGameObject.js +89 -1
  148. package/dist/eve/AudioGameObject.js.map +1 -1
  149. package/dist/eve/BackAndForthData.js +7 -0
  150. package/dist/eve/BackAndForthData.js.map +1 -1
  151. package/dist/eve/CjsDistributionRandom.js +6 -0
  152. package/dist/eve/CjsDistributionRandom.js.map +1 -1
  153. package/dist/eve/CjsEveThrottleableState.js +11 -0
  154. package/dist/eve/CjsEveThrottleableState.js.map +1 -1
  155. package/dist/eve/EveChildUpdateParams.js +7 -0
  156. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  157. package/dist/eve/EveComponentTypes.js.map +1 -1
  158. package/dist/eve/EveCustomMask.js +58 -27
  159. package/dist/eve/EveCustomMask.js.map +1 -1
  160. package/dist/eve/EveDistanceField.js +84 -0
  161. package/dist/eve/EveDistanceField.js.map +1 -1
  162. package/dist/eve/EveEntity.js +138 -0
  163. package/dist/eve/EveEntity.js.map +1 -0
  164. package/dist/eve/EveImpactOverlay.js +61 -0
  165. package/dist/eve/EveImpactOverlay.js.map +1 -1
  166. package/dist/eve/EveLODHelper.js +17 -13
  167. package/dist/eve/EveLODHelper.js.map +1 -1
  168. package/dist/eve/EveLineData.js +2 -0
  169. package/dist/eve/EveLineData.js.map +1 -1
  170. package/dist/eve/EveThrottleable.js +11 -0
  171. package/dist/eve/EveThrottleable.js.map +1 -1
  172. package/dist/eve/FollowASplineData.js +7 -0
  173. package/dist/eve/FollowASplineData.js.map +1 -1
  174. package/dist/eve/FormationData.js +6 -0
  175. package/dist/eve/FormationData.js.map +1 -1
  176. package/dist/eve/InertiaData.js +7 -0
  177. package/dist/eve/InertiaData.js.map +1 -1
  178. package/dist/eve/PlacementDataWithIdentifier.js +7 -0
  179. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  180. package/dist/eve/PlayFXData.js +7 -0
  181. package/dist/eve/PlayFXData.js.map +1 -1
  182. package/dist/eve/SeekTargetData.js +7 -0
  183. package/dist/eve/SeekTargetData.js.map +1 -1
  184. package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
  185. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
  186. package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
  187. package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
  188. package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
  189. package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
  190. package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
  191. package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
  192. package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
  193. package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
  194. package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
  195. package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
  196. package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
  197. package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
  198. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
  199. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
  200. package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
  201. package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
  202. package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
  203. package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
  204. package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
  205. package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
  206. package/dist/eve/attachment/itemSetBounds.js +131 -0
  207. package/dist/eve/attachment/itemSetBounds.js.map +1 -0
  208. package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
  209. package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
  210. package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
  211. package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
  212. package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
  213. package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
  214. package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
  215. package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
  216. package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
  217. package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
  218. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
  219. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
  220. package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
  221. package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
  222. package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
  223. package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
  224. package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
  225. package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
  226. package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
  227. package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
  228. package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
  229. package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
  230. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
  231. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  232. package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
  233. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  234. package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
  235. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  236. package/dist/eve/camera/EveCamera.js +644 -0
  237. package/dist/eve/camera/EveCamera.js.map +1 -0
  238. package/dist/eve/child/EveChildAudio.js +63 -0
  239. package/dist/eve/child/EveChildAudio.js.map +1 -1
  240. package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
  241. package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
  242. package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
  243. package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
  244. package/dist/eve/child/EveChildContainer.js +175 -16
  245. package/dist/eve/child/EveChildContainer.js.map +1 -1
  246. package/dist/eve/child/EveChildEffectPropagator.js +1 -1
  247. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  248. package/dist/eve/child/EveChildFogVolume.js +72 -0
  249. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  250. package/dist/eve/child/EveChildInheritProperties.js +17 -0
  251. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  252. package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
  253. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  254. package/dist/eve/child/EveChildLightingOverride.js +74 -0
  255. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  256. package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
  257. package/dist/eve/child/EveChildLink.js.map +1 -0
  258. package/dist/eve/child/EveChildMesh.js +351 -105
  259. package/dist/eve/child/EveChildMesh.js.map +1 -1
  260. package/dist/eve/child/EveChildSpherePin.js +108 -0
  261. package/dist/eve/child/EveChildSpherePin.js.map +1 -0
  262. package/dist/eve/child/EveChildTransform.js +44 -1
  263. package/dist/eve/child/EveChildTransform.js.map +1 -1
  264. package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
  265. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  266. package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
  267. package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
  268. package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
  269. package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
  270. package/dist/eve/child/behaviors/Wander.js +99 -0
  271. package/dist/eve/child/behaviors/Wander.js.map +1 -0
  272. package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
  273. package/dist/eve/child/behaviors/enums.js.map +1 -0
  274. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
  275. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
  276. package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
  277. package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
  278. package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
  279. package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
  280. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
  281. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
  282. package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
  283. package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
  284. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
  285. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  286. package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
  287. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  288. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
  289. package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
  290. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
  291. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  292. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
  293. package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
  294. package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
  295. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  296. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
  297. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  298. package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
  299. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  300. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
  301. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  302. package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
  303. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  304. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
  305. package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
  306. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
  307. package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
  308. package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
  309. package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
  310. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
  311. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
  312. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
  313. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
  314. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
  315. package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
  316. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
  317. package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
  318. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
  319. package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
  320. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
  321. package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
  322. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
  323. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
  324. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
  325. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
  326. package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
  327. package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
  328. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
  329. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
  330. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
  331. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
  332. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
  333. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
  334. package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
  335. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
  336. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
  337. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
  338. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
  339. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
  340. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
  341. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
  342. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
  343. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
  344. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
  345. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
  346. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
  347. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
  348. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
  349. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
  350. package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
  351. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
  352. package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
  353. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
  354. package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
  355. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
  356. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
  357. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
  358. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
  359. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
  360. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
  361. package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
  362. package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
  363. package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
  364. package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
  365. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
  366. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
  367. package/dist/eve/index.js +117 -47
  368. package/dist/eve/index.js.map +1 -1
  369. package/dist/eve/lights/CjsLightData.js +7 -0
  370. package/dist/eve/lights/CjsLightData.js.map +1 -1
  371. package/dist/eve/lights/Tr2Light.js +41 -0
  372. package/dist/eve/lights/Tr2Light.js.map +1 -1
  373. package/dist/eve/lights/Tr2PointLight.js +5 -0
  374. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  375. package/dist/eve/lights/Tr2SpotLight.js +5 -0
  376. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  377. package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
  378. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  379. package/dist/eve/lights/lightConversion.js +29 -27
  380. package/dist/eve/lights/lightConversion.js.map +1 -1
  381. package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
  382. package/dist/eve/locator/EveLocator2.js.map +1 -0
  383. package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
  384. package/dist/eve/locator/EveLocatorSets.js.map +1 -0
  385. package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
  386. package/dist/eve/locator/Locator.js.map +1 -0
  387. package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
  388. package/dist/eve/locator/LocatorData.js.map +1 -0
  389. package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
  390. package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
  391. package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
  392. package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
  393. package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
  394. package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
  395. package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
  396. package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
  397. package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
  398. package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
  399. package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
  400. package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
  401. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
  402. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  403. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
  404. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  405. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
  406. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  407. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
  408. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  409. package/dist/eve/renderable/stretch/EveStretch.js +158 -9
  410. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  411. package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
  412. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  413. package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
  414. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  415. package/dist/eve/scene/EveSpaceScene.js +56 -6
  416. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  417. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
  418. package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
  419. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
  420. package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
  421. package/dist/eve/scene/picking/EvePickingContext.js +61 -0
  422. package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
  423. package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
  424. package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
  425. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
  426. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
  427. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
  428. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
  429. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
  430. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
  431. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
  432. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
  433. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
  434. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
  435. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
  436. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
  437. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
  438. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
  439. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
  440. package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
  441. package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
  442. package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
  443. package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
  444. package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
  445. package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
  446. package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
  447. package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
  448. package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
  449. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  450. package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
  451. package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
  452. package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
  453. package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
  454. package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
  455. package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
  456. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
  457. package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
  458. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
  459. package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
  460. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
  461. package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
  462. package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
  463. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  464. package/dist/eve/spaceObject/EveMissile.js +49 -1
  465. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  466. package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
  467. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  468. package/dist/eve/spaceObject/EveMobile.js +104 -0
  469. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  470. package/dist/eve/spaceObject/EveRootTransform.js +17 -0
  471. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  472. package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
  473. package/dist/eve/spaceObject/EveShip2.js.map +1 -0
  474. package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
  475. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  476. package/dist/eve/spaceObject/EveTransform.js +100 -4
  477. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  478. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
  479. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
  480. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
  481. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
  482. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
  483. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
  484. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
  485. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
  486. package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
  487. package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
  488. package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
  489. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
  490. package/dist/eve/ui/EveEllipseDefinition.js +15 -0
  491. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  492. package/dist/eve/ui/EveEllipseSet.js +42 -0
  493. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  494. package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
  495. package/dist/eve/ui/EveSpherePin.js.map +1 -0
  496. package/dist/eve/ui/EveSprite2dBracket.js +5 -0
  497. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  498. package/dist/eve/ui/EveUiObject.js +11 -0
  499. package/dist/eve/ui/EveUiObject.js.map +1 -1
  500. package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
  501. package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
  502. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
  503. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
  504. package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
  505. package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
  506. package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
  507. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  508. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
  509. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  510. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
  511. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  512. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
  513. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  514. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
  515. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  516. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
  517. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  518. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
  519. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  520. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
  521. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  522. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
  523. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  524. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
  525. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  526. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
  527. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  528. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
  529. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  530. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
  531. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  532. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
  533. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  534. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
  535. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  536. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
  537. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  538. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
  539. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  540. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
  541. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  542. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
  543. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  544. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
  545. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  546. package/dist/eve/volume/EveBoxVolume.js +59 -0
  547. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  548. package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
  549. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  550. package/dist/eve/volume/EveSphereVolume.js +34 -0
  551. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  552. package/dist/generated/eve/child/EveChildCloud2.js +138 -138
  553. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  554. package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
  555. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  556. package/dist/generated/eve/child/EveChildSocket.js +1 -1
  557. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  558. package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
  559. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  560. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
  561. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  562. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
  563. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  564. package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
  565. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  566. package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
  567. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  568. package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
  569. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  570. package/dist/generated/eve/child/behaviors/index.js +0 -6
  571. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  572. package/dist/generated/eve/child/index.js +0 -23
  573. package/dist/generated/eve/child/index.js.map +1 -1
  574. package/dist/generated/eve/effect/index.js +0 -3
  575. package/dist/generated/eve/effect/index.js.map +1 -1
  576. package/dist/generated/eve/index.js +0 -88
  577. package/dist/generated/eve/index.js.map +1 -1
  578. package/dist/generated/eve/scene/index.js +0 -6
  579. package/dist/generated/eve/scene/index.js.map +1 -1
  580. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
  581. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  582. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
  583. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  584. package/dist/generated/eve/smartLights/index.js +0 -8
  585. package/dist/generated/eve/smartLights/index.js.map +1 -1
  586. package/dist/generated/eve/spaceObject/index.js +0 -4
  587. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  588. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
  589. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  590. package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
  591. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  592. package/dist/generated/eve/ui/index.js +0 -4
  593. package/dist/generated/eve/ui/index.js.map +1 -1
  594. package/dist/generated/index.js +0 -93
  595. package/dist/generated/index.js.map +1 -1
  596. package/dist/generated/trinityCore/index.js +0 -5
  597. package/dist/generated/trinityCore/index.js.map +1 -1
  598. package/dist/index.js +130 -155
  599. package/dist/index.js.map +1 -1
  600. package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
  601. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  602. package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
  603. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  604. package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
  605. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  606. package/dist/particle/Tr2ParticleDirectForce.js +7 -0
  607. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  608. package/dist/particle/Tr2ParticleDragForce.js +7 -0
  609. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  610. package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
  611. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  612. package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
  613. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  614. package/dist/particle/Tr2ParticleSpring.js +10 -0
  615. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  616. package/dist/particle/Tr2ParticleVortexForce.js +10 -0
  617. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  618. package/dist/particle/particleElementBinding.js +12 -0
  619. package/dist/particle/particleElementBinding.js.map +1 -1
  620. package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
  621. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  622. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
  623. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  624. package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
  625. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  626. package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
  627. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  628. package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
  629. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  630. package/dist/postProcess/Tr2PostProcess.js +5 -0
  631. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  632. package/dist/postProcess/Tr2PostProcess2.js +147 -0
  633. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  634. package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
  635. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  636. package/dist/renderJob/Tr2RenderJobs.js +34 -0
  637. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  638. package/dist/renderJob/TriRenderJob.js +59 -0
  639. package/dist/renderJob/TriRenderJob.js.map +1 -1
  640. package/dist/renderJob/TriRenderStep.js +20 -0
  641. package/dist/renderJob/TriRenderStep.js.map +1 -1
  642. package/dist/renderJob/TriStepClear.js +18 -0
  643. package/dist/renderJob/TriStepClear.js.map +1 -1
  644. package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
  645. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  646. package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
  647. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  648. package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
  649. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  650. package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
  651. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  652. package/dist/renderJob/TriStepPopProjection.js +6 -0
  653. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  654. package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
  655. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  656. package/dist/renderJob/TriStepPopViewTransform.js +6 -0
  657. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  658. package/dist/renderJob/TriStepPopViewport.js +6 -0
  659. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  660. package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
  661. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  662. package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
  663. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  664. package/dist/renderJob/TriStepPushProjection.js +6 -0
  665. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  666. package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
  667. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  668. package/dist/renderJob/TriStepPushViewTransform.js +6 -0
  669. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  670. package/dist/renderJob/TriStepPushViewport.js +6 -0
  671. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  672. package/dist/renderJob/TriStepRemoteSync.js +17 -0
  673. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  674. package/dist/renderJob/TriStepResolve.js +13 -0
  675. package/dist/renderJob/TriStepResolve.js.map +1 -1
  676. package/dist/renderJob/TriStepRunJob.js +12 -0
  677. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  678. package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
  679. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  680. package/dist/renderJob/TriStepSetProjection.js +14 -0
  681. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  682. package/dist/renderJob/TriStepSetRenderState.js +20 -0
  683. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  684. package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
  685. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  686. package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
  687. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  688. package/dist/renderJob/TriStepSetView.js +29 -2
  689. package/dist/renderJob/TriStepSetView.js.map +1 -1
  690. package/dist/renderJob/TriStepSetViewport.js +17 -0
  691. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  692. package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
  693. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  694. package/dist/shader/Tr2Effect.js +217 -2
  695. package/dist/shader/Tr2Effect.js.map +1 -1
  696. package/dist/shader/Tr2Material.js +41 -0
  697. package/dist/shader/Tr2Material.js.map +1 -1
  698. package/dist/shader/index.js +1 -11
  699. package/dist/shader/index.js.map +1 -1
  700. package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
  701. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  702. package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
  703. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  704. package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
  705. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  706. package/dist/shader/parameter/CjsParameter.js +94 -0
  707. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  708. package/dist/shader/parameter/CjsVectorParameter.js +20 -0
  709. package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
  710. package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
  711. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  712. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
  713. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
  715. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  716. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
  717. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  718. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
  719. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  720. package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
  721. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  722. package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
  723. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  724. package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
  725. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  726. package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
  727. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  728. package/dist/shader/parameter/TriTextureParameter.js +84 -0
  729. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  730. package/dist/shader/parameter/TriTransformParameter.js +2 -0
  731. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  732. package/dist/shader/parameter/TriVariableParameter.js +38 -0
  733. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  734. package/dist/shader/parameter/TriVector4.js +2 -0
  735. package/dist/shader/parameter/TriVector4.js.map +1 -1
  736. package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
  737. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  738. package/dist/shader/support/CjsVariableStore.js +140 -0
  739. package/dist/shader/support/CjsVariableStore.js.map +1 -1
  740. package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
  741. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  742. package/dist/trinityCore/CjsBatchManager.js +62 -2
  743. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  744. package/dist/trinityCore/GrannyBoneOffset.js +51 -0
  745. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  746. package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
  747. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  748. package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
  749. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  750. package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
  751. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  752. package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
  753. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  754. package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
  755. package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
  756. package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
  757. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  758. package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
  759. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  760. package/dist/trinityCore/Tr2Mesh.js +37 -0
  761. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  762. package/dist/trinityCore/Tr2MeshArea.js +78 -0
  763. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  764. package/dist/trinityCore/Tr2MeshBase.js +98 -2
  765. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  766. package/dist/trinityCore/Tr2PerObjectData.js +10 -0
  767. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
  768. package/dist/trinityCore/Tr2PickType.js +33 -0
  769. package/dist/trinityCore/Tr2PickType.js.map +1 -0
  770. package/dist/trinityCore/Tr2RenderBatch.js +137 -0
  771. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  772. package/dist/trinityCore/Tr2RenderContext.js +271 -0
  773. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  774. package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
  775. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  776. package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
  777. package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
  778. package/dist/trinityCore/Tr2VariableStore.js +26 -0
  779. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  780. package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
  781. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  782. package/dist/trinityCore/TriDevice.js +5 -0
  783. package/dist/trinityCore/TriDevice.js.map +1 -1
  784. package/dist/trinityCore/TriFrustum.js +21 -14
  785. package/dist/trinityCore/TriFrustum.js.map +1 -1
  786. package/dist/trinityCore/TriObserverLocal.js +43 -0
  787. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  788. package/dist/trinityCore/TriProjection.js +86 -32
  789. package/dist/trinityCore/TriProjection.js.map +1 -1
  790. package/dist/trinityCore/TriRect.js +12 -0
  791. package/dist/trinityCore/TriRect.js.map +1 -1
  792. package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
  793. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  794. package/dist/trinityCore/TriRenderBatchMap.js +39 -2
  795. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  796. package/dist/trinityCore/TriSettings.js +38 -0
  797. package/dist/trinityCore/TriSettings.js.map +1 -1
  798. package/dist/trinityCore/TriVariable.js +30 -0
  799. package/dist/trinityCore/TriVariable.js.map +1 -1
  800. package/dist/trinityCore/TriView.js +16 -1
  801. package/dist/trinityCore/TriView.js.map +1 -1
  802. package/dist/trinityCore/TriViewport.js +12 -0
  803. package/dist/trinityCore/TriViewport.js.map +1 -1
  804. package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
  805. package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
  806. package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
  807. package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
  808. package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
  809. package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
  810. package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
  811. package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
  812. package/dist/trinityCore/binding/TriValueBinding.js +648 -0
  813. package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
  814. package/dist/trinityCore/index.js +11 -4
  815. package/dist/trinityCore/index.js.map +1 -1
  816. package/dist/trinityCore/pickRay.js +84 -0
  817. package/dist/trinityCore/pickRay.js.map +1 -0
  818. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +931 -0
  819. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
  820. package/dist/trinityCore/rawData/RawData.js +294 -38
  821. package/dist/trinityCore/rawData/RawData.js.map +1 -1
  822. package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
  823. package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
  824. package/dist/utilities/Range.js +53 -0
  825. package/dist/utilities/Range.js.map +1 -1
  826. package/docs/README.md +88 -0
  827. package/docs/architecture.md +162 -0
  828. package/docs/concepts/eve-runtime-behavior.md +86 -0
  829. package/docs/concepts/generated-class-lifecycle.md +116 -0
  830. package/docs/reference/api.md +76 -0
  831. package/docs/reference/classes/eve-runtime.md +106 -0
  832. package/docs/reference/classes/trinity-core.md +26 -0
  833. package/docs/reference/implementation-status.md +104 -0
  834. package/docs/reference/main-semantic-extraction.md +104 -0
  835. package/package.json +33 -24
  836. package/dist/eve/DecalVSPerObjectData.js +0 -34
  837. package/dist/eve/DecalVSPerObjectData.js.map +0 -1
  838. package/dist/eve/EveBannerItem.js +0 -43
  839. package/dist/eve/EveBannerItem.js.map +0 -1
  840. package/dist/eve/EveBannerLight.js.map +0 -1
  841. package/dist/eve/EveBannerSet.js +0 -190
  842. package/dist/eve/EveBannerSet.js.map +0 -1
  843. package/dist/eve/EveBasicPerObjectData.js +0 -31
  844. package/dist/eve/EveBasicPerObjectData.js.map +0 -1
  845. package/dist/eve/EveBoosterSet2.js.map +0 -1
  846. package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
  847. package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
  848. package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
  849. package/dist/eve/EveHazeSet.js.map +0 -1
  850. package/dist/eve/EveHazeSetLight.js.map +0 -1
  851. package/dist/eve/EveLocator2.js.map +0 -1
  852. package/dist/eve/EveLocatorSets.js.map +0 -1
  853. package/dist/eve/EveParticleDirectForce.js.map +0 -1
  854. package/dist/eve/EveParticleDragForce.js.map +0 -1
  855. package/dist/eve/EveParticleSpring.js.map +0 -1
  856. package/dist/eve/EvePerObjectPSData.js +0 -29
  857. package/dist/eve/EvePerObjectPSData.js.map +0 -1
  858. package/dist/eve/EvePerObjectVSData.js +0 -29
  859. package/dist/eve/EvePerObjectVSData.js.map +0 -1
  860. package/dist/eve/EvePlaneLight.js.map +0 -1
  861. package/dist/eve/EvePlaneSet.js.map +0 -1
  862. package/dist/eve/EvePlaneSetItem.js +0 -45
  863. package/dist/eve/EvePlaneSetItem.js.map +0 -1
  864. package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
  865. package/dist/eve/EveSpaceObjectDecal.js +0 -150
  866. package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
  867. package/dist/eve/EveSpaceObjectPSData.js +0 -73
  868. package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
  869. package/dist/eve/EveSpaceObjectVSData.js +0 -79
  870. package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
  871. package/dist/eve/EveSpacePerObjectData.js +0 -97
  872. package/dist/eve/EveSpacePerObjectData.js.map +0 -1
  873. package/dist/eve/EveSpherePinPerObjectData.js +0 -37
  874. package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
  875. package/dist/eve/EveSpotlightLight.js.map +0 -1
  876. package/dist/eve/EveSpotlightSet.js.map +0 -1
  877. package/dist/eve/EveSpriteLight.js.map +0 -1
  878. package/dist/eve/EveSpriteLineSet.js.map +0 -1
  879. package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
  880. package/dist/eve/EveSpriteSet.js.map +0 -1
  881. package/dist/eve/EveTrailsSet.js.map +0 -1
  882. package/dist/eve/Locator.js.map +0 -1
  883. package/dist/eve/LocatorData.js.map +0 -1
  884. package/dist/eve/ProcessLifetimeData.js.map +0 -1
  885. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
  886. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  887. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
  888. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  889. package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
  890. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  891. package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
  892. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  893. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
  894. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
  895. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
  896. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  897. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
  898. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  899. package/dist/generated/eve/EveCamera.js +0 -264
  900. package/dist/generated/eve/EveCamera.js.map +0 -1
  901. package/dist/generated/eve/EveEntity.js +0 -81
  902. package/dist/generated/eve/EveEntity.js.map +0 -1
  903. package/dist/generated/eve/attachment/decal/index.js +0 -2
  904. package/dist/generated/eve/attachment/decal/index.js.map +0 -1
  905. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
  906. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
  907. package/dist/generated/eve/attachment/haze/index.js +0 -2
  908. package/dist/generated/eve/attachment/haze/index.js.map +0 -1
  909. package/dist/generated/eve/attachment/index.js +0 -5
  910. package/dist/generated/eve/attachment/index.js.map +0 -1
  911. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
  912. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
  913. package/dist/generated/eve/attachment/spotlights/index.js +0 -2
  914. package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
  915. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
  916. package/dist/generated/eve/attachment/sprites/index.js +0 -2
  917. package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
  918. package/dist/generated/eve/attachment/turrets/enums.js +0 -32
  919. package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
  920. package/dist/generated/eve/attachment/turrets/index.js +0 -2
  921. package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
  922. package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
  923. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
  924. package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
  925. package/dist/generated/eve/child/EveChildLink.js.map +0 -1
  926. package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
  927. package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
  928. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
  929. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
  930. package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
  931. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
  932. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
  933. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
  934. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
  935. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
  936. package/dist/generated/eve/child/behaviors/Wander.js +0 -92
  937. package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
  938. package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
  939. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
  940. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
  941. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
  942. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
  943. package/dist/generated/eve/child/modifiers/index.js +0 -5
  944. package/dist/generated/eve/child/modifiers/index.js.map +0 -1
  945. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
  946. package/dist/generated/eve/child/procedural/index.js +0 -10
  947. package/dist/generated/eve/child/procedural/index.js.map +0 -1
  948. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
  949. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
  950. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
  951. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
  952. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
  953. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
  954. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
  955. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
  956. package/dist/generated/eve/child/procedural/selection/index.js +0 -9
  957. package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
  958. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
  959. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
  960. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
  961. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
  962. package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
  963. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
  964. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
  965. package/dist/generated/eve/distribution/index.js +0 -19
  966. package/dist/generated/eve/distribution/index.js.map +0 -1
  967. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
  968. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
  969. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
  970. package/dist/generated/eve/distribution/placement/index.js +0 -4
  971. package/dist/generated/eve/distribution/placement/index.js.map +0 -1
  972. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
  973. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
  974. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
  975. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
  976. package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
  977. package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
  978. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
  979. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
  980. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
  981. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
  982. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
  983. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
  984. package/dist/generated/eve/distribution/spawners/index.js +0 -7
  985. package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
  986. package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
  987. package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
  988. package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
  989. package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
  990. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
  991. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
  992. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
  993. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
  994. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
  995. package/dist/generated/eve/fxAttributes/index.js +0 -3
  996. package/dist/generated/eve/fxAttributes/index.js.map +0 -1
  997. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
  998. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
  999. package/dist/generated/eve/overlays/index.js +0 -2
  1000. package/dist/generated/eve/overlays/index.js.map +0 -1
  1001. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
  1002. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
  1003. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
  1004. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
  1005. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
  1006. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
  1007. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
  1008. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
  1009. package/dist/generated/eve/perObjectData/index.js +0 -5
  1010. package/dist/generated/eve/perObjectData/index.js.map +0 -1
  1011. package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
  1012. package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
  1013. package/dist/generated/eve/scene/EvePickingContext.js +0 -43
  1014. package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
  1015. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
  1016. package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
  1017. package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
  1018. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
  1019. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
  1020. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
  1021. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
  1022. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
  1023. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
  1024. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
  1025. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
  1026. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
  1027. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
  1028. package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
  1029. package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
  1030. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
  1031. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
  1032. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
  1033. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
  1034. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
  1035. package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
  1036. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
  1037. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
  1038. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
  1039. package/dist/generated/eve/socket/index.js +0 -10
  1040. package/dist/generated/eve/socket/index.js.map +0 -1
  1041. package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
  1042. package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
  1043. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
  1044. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
  1045. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
  1046. package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
  1047. package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
  1048. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
  1049. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
  1050. package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
  1051. package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
  1052. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
  1053. package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
  1054. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
  1055. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
  1056. package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
  1057. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
  1058. package/dist/generated/trinityCore/TriValueBinding.js +0 -249
  1059. package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
  1060. package/dist/shader/Tr2Shader.js +0 -150
  1061. package/dist/shader/Tr2Shader.js.map +0 -1
  1062. package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
  1063. package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
  1064. package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
  1065. package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
  1066. package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
  1067. package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
  1068. package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
  1069. package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
  1070. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
  1071. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
  1072. package/dist/shader/reflection/Tr2EffectResource.js +0 -63
  1073. package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
  1074. package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
  1075. package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
  1076. package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
  1077. package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
  1078. package/dist/shader/reflection/Tr2Pass.js +0 -46
  1079. package/dist/shader/reflection/Tr2Pass.js.map +0 -1
  1080. package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
  1081. package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
  1082. package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
  1083. package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
  1084. package/dist/trinityCore/rawData/RawDataStore.js +0 -232
  1085. package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
  1086. /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
  1087. /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"EveChildEffectPropagator.js","sources":["../../../../src/eve/child/EveChildEffectPropagator.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildEffectPropagator.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildEffectPropagator.cpp\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\Children\\EveChildEffectPropagator_Blue.cpp\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { EveChildContainer } from \"./EveChildContainer.js\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\n\n// Module scratch for the trigger-driven locator paths (allocation rules:\n// copy-into, never allocate per frame; child updates run sequentially so the\n// scratch is non-reentrant by construction).\nconst BOUNDS_SCRATCH = vec4.create();\nconst SPHERE_CENTER_SCRATCH = vec3.create();\n\n// Carbon TriQuaternionDirVector (TriMath.cpp:262-269): stores the NORMALIZED\n// direction vector in the quaternion x/y/z slots with w = 0. It is a packed\n// direction, not a rotation - no quaternion composition happens here.\nfunction TriQuaternionDirVector(out, v)\n{\n const length = Math.hypot(v[0], v[1], v[2]);\n const scale = length ? 1 / length : 0;\n out[0] = v[0] * scale;\n out[1] = v[1] * scale;\n out[2] = v[2] * scale;\n out[3] = 0;\n return out;\n}\n\n// Carbon EveChildEffectPropagator::Transform (h:66-72): the per-locator\n// processed record. Records are allocated on trigger (ProcessLocators), never\n// per frame.\nfunction NewTransformRecord()\n{\n return {\n rotation: quat.create(),\n position: vec3.create(),\n scale: vec3.fromValues(1, 1, 1),\n sqrDistToSphereCenter: 0\n };\n}\n\n// Carbon SortByCircleDist (h:74-80): ascending squared distance to the\n// trigger-sphere center.\nfunction SortByCircleDist(lhs, rhs)\n{\n return lhs.sqrDistToSphereCenter - rhs.sqrDistToSphereCenter;\n}\n\n\n/** EveChildEffectPropagator (eve/child) - generated from schema shapeHash 0f2a96e8.... */\n@type.define({ className: \"EveChildEffectPropagator\", family: \"eve/child\" })\nexport class EveChildEffectPropagator extends EveChildContainer\n{\n\n /** m_type (PropagationType - enum PropagationType) [READWRITE, PERSIST, ENUM, NOTIFY] */\n @io.notify\n @io.persist\n @type.int32\n @schema.enum(\"PropagationType\")\n propagationType = 0;\n\n /** m_triggerMethod (TriggerType - enum TriggerType) [READWRITE, PERSIST, ENUM, NOTIFY] */\n @io.notify\n @io.persist\n @type.int32\n @schema.enum(\"TriggerType\")\n triggerMethood = 0;\n\n /** m_stopAfterNumTriggers (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n stopAfterNumTriggers = -1;\n\n /** m_randScaleMin (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n randScaleMin = 1;\n\n /** m_randScaleMax (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n randScaleMax = 1;\n\n /** m_triggerSphereOffset (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n triggerSphereOffset = vec3.create();\n\n /** m_effect (EveChildInstanceContainerPtr) [PERSISTONLY, NOTIFY] */\n @io.notify\n @io.persistOnly\n @type.model(\"EveChildInstanceContainer\")\n effect = null;\n\n /** m_stopToClearDelay (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n stopToClearDelay = 0;\n\n /** m_rndClosenessPreference (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n ClosenessPreference = 0.25;\n\n /** m_effectScaling (Vector3) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.vec3\n effectScaling = vec3.fromValues(1, 1, 1);\n\n /** m_effectDuration (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n durationPerEffect = 3;\n\n /** m_isPlaying (bool) [READ] */\n @io.read\n @type.boolean\n isPlaying = false;\n\n /** m_localLocators (EveLocatorSetsPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"EveLocatorSets\")\n localLocators = null;\n\n /** m_triggerSphereRadiusCurve (Tr2CurveScalarPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2CurveScalar\")\n triggerSphereRadiusCurve = null;\n\n /** m_triggerSphereScalarMulti (float) [READ] */\n @io.read\n @type.float32\n triggerSphereScalarMulti = 1;\n\n /** m_locatorSetName (BlueSharedString) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.string\n locatorSetName = \"\";\n\n /** m_completeness (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n completeness = 1;\n\n /** m_replayAfterDelay (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n replayAfterDelay = false;\n\n /** m_trigger (bool) [READWRITE] */\n @io.readwrite\n @type.boolean\n trigger = false;\n\n /** m_rndMinRangeThreshold (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n minRangeThreshold = 0;\n\n /** m_playTime (float) [READ] */\n @io.read\n @type.float32\n playTime = 0;\n\n /** m_rndRange (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n range = 500;\n\n /** m_numTriggers (int64_t) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.int64\n numTriggers = 10;\n\n /** m_frequency (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n frequency = 1;\n\n /** m_skipCleanup (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n skipCleanup = false;\n\n #currentTriggerIndex = 0;\n\n #numDeleted = 0;\n\n // Carbon m_processedTransforms/m_lastTriggered/m_delayTimer: runtime-only\n // trigger state (never persisted; Carbon keeps them off the Blue surface).\n #processedTransforms = [];\n\n #lastTriggered = [];\n\n #delayTimer = 0;\n\n /** Carbon EveChildEffectPropagator::Play (cpp:101-113): reset via Stop, then\n * arm playback; without an effect the propagator never starts. */\n @carbon.method\n @impl.implemented\n Play()\n {\n this.Stop();\n\n if (!this.effect)\n {\n return;\n }\n\n this.trigger = false;\n this.isPlaying = true;\n this.#delayTimer = this.stopToClearDelay;\n }\n\n /** Carbon EveChildEffectPropagator::Stop (cpp:119-129). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The staged instance container does not yet expose Carbon's native ClearInstanceList helper, so plain hydrated instance lists are cleared directly as a fallback.\")\n Stop()\n {\n this.isPlaying = false;\n this.playTime = 0;\n this.#currentTriggerIndex = 0;\n this.#numDeleted = 0;\n\n if (this.effect)\n {\n if (typeof this.effect.ClearInstanceList === \"function\")\n {\n this.effect.ClearInstanceList();\n }\n else if (Array.isArray(this.effect.instances))\n {\n this.effect.instances.length = 0;\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::Initialize (cpp:131-138). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"DisableEditMode is duck-typed - the staged instance container has not ported its edit-mode surface yet.\")\n Initialize()\n {\n this.effect?.DisableEditMode?.(true);\n return super.Initialize();\n }\n\n /** Carbon EveChildEffectPropagator::OnModified (cpp:61-95): edit-mode lock\n * on effect changes, clamps for completeness/randScaleMin/randScaleMax, and\n * the playTime re-anchor on frequency changes. The value argument follows\n * the repo's OnModified duck (field name or field value). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Field matching follows the repo OnModified duck and DisableEditMode is duck-typed on the staged instance container.\")\n OnModified(value = null)\n {\n if (value === \"effect\" || (value && value === this.effect))\n {\n this.effect?.DisableEditMode?.(true);\n }\n\n if (value === \"completeness\" || value === this.completeness)\n {\n this.completeness = Math.min(1, Math.max(0, this.completeness));\n }\n\n if (value === \"randScaleMin\" || value === this.randScaleMin)\n {\n this.randScaleMin = Math.min(this.randScaleMax, Math.max(0, this.randScaleMin));\n }\n\n if (value === \"randScaleMax\" || value === this.randScaleMax)\n {\n this.randScaleMax = Math.max(this.randScaleMax, this.randScaleMin);\n }\n\n if (value === \"frequency\" || value === this.frequency)\n {\n if (this.frequency !== 0)\n {\n this.playTime = this.#currentTriggerIndex / this.frequency;\n }\n }\n\n return super.OnModified(value);\n }\n\n /** Carbon EveChildEffectPropagator::ManageTriggers (cpp:140-167): fire an\n * instance for every processed locator the growing trigger sphere has\n * swallowed; the list is distance-sorted so the scan stops at the first\n * locator still outside. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CreateInstance is duck-typed - the staged instance container has not ported its instance-spawning surface yet.\")\n ManageTriggers()\n {\n if (!this.triggerSphereRadiusCurve)\n {\n return;\n }\n\n if (!this.effect)\n {\n return;\n }\n\n let currentRadSqr = Number(this.triggerSphereRadiusCurve.GetValueAt?.(this.playTime) ?? 0) * this.triggerSphereScalarMulti;\n currentRadSqr = currentRadSqr * currentRadSqr;\n\n const records = this.#processedTransforms;\n for (let index = this.#currentTriggerIndex; index < records.length; index++)\n {\n const record = records[index];\n if (record.sqrDistToSphereCenter < currentRadSqr)\n {\n this.effect.CreateInstance?.(record.scale, record.rotation, record.position);\n this.#currentTriggerIndex++;\n }\n else\n {\n break;\n }\n }\n }\n\n /**\n * Sync-side frame update (Carbon EveChildEffectPropagator::UpdateSyncronous,\n * cpp:173-231): consume a pending trigger (process + sort the locators and\n * restart playback, seeding the interval-trigger history), forward the sync\n * tick to the effect container, then advance the active trigger method.\n * Carbon deliberately does NOT call the EveChildContainer base here - the\n * effect container replaces the child fan-out.\n * @param {Object} updateContext - frame context (EveUpdateContext)\n * @param {EveChildUpdateParams} params\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CreateInstance on the staged instance container is duck-typed; the trigger bookkeeping is ported.\")\n UpdateSyncronous(updateContext, params)\n {\n if (this.trigger)\n {\n this.ProcessLocators(params?.spaceObjectParent ?? null);\n this.Play();\n\n if (this.triggerMethood === EveChildEffectPropagator.TriggerType.INTERVAL_TRIGGERS)\n {\n // Carbon (cpp:180-189): the last-triggered ring holds\n // floor(effectDuration * frequency) slots primed with -1.\n const size = Math.max(Math.floor(this.durationPerEffect * this.frequency), 0);\n this.#lastTriggered.length = 0;\n for (let index = 0; index < size; index++)\n {\n this.#lastTriggered.push(-1);\n }\n }\n }\n\n this.effect?.UpdateSyncronous?.(updateContext, params);\n\n if (!this.isPlaying)\n {\n return;\n }\n\n switch (this.triggerMethood)\n {\n case EveChildEffectPropagator.TriggerType.TRIGGER_SPHERE_CURVE:\n this.UpdateTriggerCurve(updateContext);\n break;\n case EveChildEffectPropagator.TriggerType.INTERVAL_TRIGGERS:\n if (this.frequency !== 0)\n {\n this.UpdateTriggerInterval(updateContext);\n }\n else\n {\n this.Stop();\n }\n break;\n case EveChildEffectPropagator.TriggerType.INSTANT_PERMANENT:\n this.playTime += Number(updateContext?.GetDeltaT?.() ?? updateContext?.deltaT ?? 0);\n if (this.#currentTriggerIndex === 0)\n {\n for (const record of this.#processedTransforms)\n {\n this.effect?.CreateInstance?.(record.scale, record.rotation, record.position);\n }\n this.#currentTriggerIndex++;\n }\n break;\n default:\n break;\n }\n }\n\n /** Carbon EveChildEffectPropagator::UpdateTriggerCurve (cpp:233-273):\n * advance playTime, let the trigger sphere fire instances, then handle the\n * end of the curve (skip cleanup, delayed replay with re-randomized locator\n * sizes, or stop). */\n @carbon.method\n @impl.implemented\n UpdateTriggerCurve(updateContext)\n {\n const dt = Number(updateContext?.GetDeltaT?.() ?? updateContext?.deltaT ?? 0);\n this.playTime += dt;\n\n if (this.effect)\n {\n this.ManageTriggers();\n }\n\n if (!this.triggerSphereRadiusCurve)\n {\n this.Stop();\n return;\n }\n\n if (this.playTime > Number(this.triggerSphereRadiusCurve.Length?.() ?? 0))\n {\n if (this.skipCleanup)\n {\n return;\n }\n\n if (this.replayAfterDelay)\n {\n if (this.#delayTimer > 0)\n {\n this.#delayTimer -= dt;\n }\n else\n {\n this.RecalculateLocatorSizes();\n this.Play();\n }\n }\n else\n {\n this.Stop();\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::UpdateTriggerInterval (cpp:275-317):\n * frequency-paced spawning from smart-random locators with a spawn cap,\n * plus paced deletion of expired instances (PopFront) until the loop\n * drains. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CreateInstance/PopFront on the staged instance container are duck-typed; the interval bookkeeping is ported.\")\n UpdateTriggerInterval(updateContext)\n {\n const dt = Number(updateContext?.GetDeltaT?.() ?? updateContext?.deltaT ?? 0);\n this.playTime += dt;\n\n if (this.#processedTransforms.length === 0)\n {\n return;\n }\n\n if (this.stopAfterNumTriggers > 0 && this.durationPerEffect !== -1 &&\n this.playTime > (this.stopAfterNumTriggers / this.frequency + this.durationPerEffect))\n {\n this.Stop();\n return;\n }\n\n // Triggers based on the frequency interval unless the maximum amount of\n // spawns has been reached (cpp:291-304).\n if (this.playTime > this.#currentTriggerIndex / this.frequency &&\n (this.#currentTriggerIndex < this.stopAfterNumTriggers || this.stopAfterNumTriggers < 0))\n {\n const locatorIndex = this.GetSmartRandomLocatorIndex();\n if (this.#lastTriggered.length)\n {\n this.#lastTriggered.shift();\n }\n this.#lastTriggered.push(locatorIndex);\n\n const record = this.#processedTransforms[locatorIndex];\n this.effect?.CreateInstance?.(record.scale, record.rotation, record.position);\n this.#currentTriggerIndex++;\n }\n\n if (this.durationPerEffect !== -1 &&\n this.playTime > (this.#numDeleted / this.frequency) + this.durationPerEffect)\n {\n this.effect?.PopFront?.();\n this.#numDeleted++;\n\n if (this.#numDeleted === this.#currentTriggerIndex)\n {\n // Prevent debug rendering on a running loop after it finishes (see\n // InstanceContainers) - cpp:313.\n this.#currentTriggerIndex = 0;\n this.#lastTriggered.length = 0;\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::GetSmartRandomLocatorIndex\n * (cpp:319-351): rejection-sample a locator index not in the recent-trigger\n * history, with Carbon's early exit when the history covers the set or the\n * spawn rate saturates 75% of the locators. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRandInt, matching the BehaviorGroup/EveSpaceObject2 precedent.\")\n GetSmartRandomLocatorIndex()\n {\n let locatorIndex = -1;\n const ptSize = this.#processedTransforms.length;\n const ltSize = this.#lastTriggered.length;\n\n if (ltSize >= ptSize || this.frequency * this.durationPerEffect > 0.75 * ptSize)\n {\n locatorIndex = Math.floor(Math.random() * ptSize);\n }\n else\n {\n // Carbon (cpp:331-336): this loop should rarely repeat; the early exit\n // above bounds the bad case (small locator set, long duration, frequent\n // triggers).\n while (locatorIndex === -1)\n {\n locatorIndex = Math.floor(Math.random() * ptSize);\n for (let index = 0; index < ltSize; index++)\n {\n if (locatorIndex === this.#lastTriggered[index])\n {\n locatorIndex = -1;\n break;\n }\n }\n }\n }\n return locatorIndex;\n }\n\n /**\n * Per-frame async update (Carbon EveChildEffectPropagator::UpdateAsyncronous,\n * cpp:353-366): gate on IsRendering, tick the effect container, then run the\n * EveChildContainer base (which rebuilds the world transform - the Carbon\n * row-vector local * parent composition lives in\n * EveChildTransform.UpdateTransform as mat4.multiply(world, parent, local)).\n * @param {Object} updateContext - frame context (EveUpdateContext)\n * @param {EveChildUpdateParams} params\n * @returns {Float32Array} worldTransform\n */\n @carbon.method\n @carbon.contextual([\"camera\"])\n @impl.implemented\n UpdateAsyncronous(updateContext, params)\n {\n if (!this.IsRendering())\n {\n return this.worldTransform;\n }\n\n this.effect?.UpdateAsyncronous?.(updateContext, params);\n\n return super.UpdateAsyncronous(updateContext, params);\n }\n\n /** Carbon EveChildEffectPropagator::UpdateVisibility (cpp:389-395): the\n * effect container alone receives the visibility tick (no base fan-out). */\n @carbon.method\n @impl.implemented\n UpdateVisibility(updateContext, parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\n {\n this.effect?.UpdateVisibility?.(updateContext, parentTransform, parentLod);\n }\n\n /** Carbon EveChildEffectPropagator::GetRenderables (cpp:397-408): nothing\n * renders until the first trigger fired; then the effect container\n * contributes its instances. */\n @carbon.method\n @impl.implemented\n GetRenderables(out = [])\n {\n if (this.#currentTriggerIndex === 0)\n {\n return out;\n }\n\n this.effect?.GetRenderables?.(out);\n return out;\n }\n\n /** Carbon EveChildEffectPropagator::ProcessLocalLocators (cpp:410-438):\n * sample the owned locator set through the completeness gate; the trigger\n * sphere scalar becomes twice the farthest locator distance. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand, matching the EveSpaceObject2 precedent.\")\n ProcessLocalLocators()\n {\n if (!this.localLocators)\n {\n return;\n }\n\n const locators = this.localLocators.GetLocators?.() ?? this.localLocators.locators ?? [];\n\n this.triggerSphereScalarMulti = 0;\n for (const locator of locators)\n {\n if (Math.random() > this.completeness)\n {\n continue;\n }\n\n const record = NewTransformRecord();\n vec3.copy(record.position, locator.position);\n const lengthSq = vec3.squaredLength(record.position);\n this.triggerSphereScalarMulti = Math.max(this.triggerSphereScalarMulti, lengthSq);\n // Locator directions persist as packed quaternions; copied verbatim\n // (Carbon t.rotation = it->direction - no composition).\n quat.copy(record.rotation, locator.direction);\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon t.scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n this.#processedTransforms.push(record);\n }\n\n this.triggerSphereScalarMulti = Math.sqrt(this.triggerSphereScalarMulti) * 2;\n }\n\n /** Carbon EveChildEffectPropagator::ProcessRefLocators (cpp:440-478): pull\n * the named locator set (default \"damage\") from the space-object parent and\n * scale the trigger sphere by the parent's bounding-sphere radius. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand and the EveSpaceObject2 BlueCast becomes a duck check on the locator/bounds surface.\")\n ProcessRefLocators(parent)\n {\n if (this.locatorSetName === \"\")\n {\n this.locatorSetName = \"damage\";\n }\n\n let locators = null;\n\n if (typeof parent?.GetLocatorsForSet === \"function\" && typeof parent?.GetBoundingSphere === \"function\")\n {\n locators = parent.GetLocatorsForSet(this.locatorSetName);\n vec4.set(BOUNDS_SCRATCH, 0, 0, 0, 0);\n parent.GetBoundingSphere(BOUNDS_SCRATCH);\n this.triggerSphereScalarMulti = BOUNDS_SCRATCH[3];\n }\n else\n {\n return;\n }\n\n if (locators)\n {\n for (const locator of locators)\n {\n if (Math.random() > this.completeness)\n {\n continue;\n }\n\n const record = NewTransformRecord();\n vec3.copy(record.position, locator.position);\n quat.copy(record.rotation, locator.direction);\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon t.scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n this.#processedTransforms.push(record);\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::ProcessRandomSpreadLocators\n * (cpp:480-506): uniform points on the unit sphere pushed out by a\n * closeness-biased distance inside [minRangeThreshold, range]; the packed\n * direction quaternion comes from TriQuaternionDirVector. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand, matching the EveSpaceObject2 precedent.\")\n ProcessRandomSpreadLocators()\n {\n const count = Number(this.numTriggers);\n for (let index = 0; index < count; index++)\n {\n if (Math.random() > this.completeness)\n {\n continue;\n }\n\n // Carbon (cpp:489-491): dist starts uniform, is pulled toward the\n // closeness preference by a second uniform draw, then maps into\n // [minRangeThreshold, range].\n let dist = Math.random();\n dist += (this.ClosenessPreference - dist) * Math.random();\n dist = this.minRangeThreshold + (this.range - this.minRangeThreshold) * dist;\n\n // Carbon (cpp:493-495): uniform unit-sphere direction from (a, z).\n const a = 2 * Math.PI * Math.random();\n const z = Math.random() * 2 - 1;\n const s = Math.sqrt(1 - z * z);\n\n const record = NewTransformRecord();\n // Carbon t.position = angle * dist - scalar-vector scale.\n vec3.set(record.position, s * Math.cos(a) * dist, s * Math.sin(a) * dist, z * dist);\n // TriQuaternionDirVector(&t.rotation, &angle) - packed direction, no\n // quaternion composition.\n vec3.set(SPHERE_CENTER_SCRATCH, s * Math.cos(a), s * Math.sin(a), z);\n TriQuaternionDirVector(record.rotation, SPHERE_CENTER_SCRATCH);\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon t.scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n this.#processedTransforms.push(record);\n }\n this.triggerSphereScalarMulti = this.range;\n }\n\n /** Carbon EveChildEffectPropagator::ProcessLocators (cpp:513-540): rebuild\n * the processed-locator list for the selected propagation type, stop when\n * nothing survived the completeness gate, then distance-sort. */\n @carbon.method\n @impl.implemented\n ProcessLocators(parent = null)\n {\n this.#processedTransforms.length = 0;\n\n switch (this.propagationType)\n {\n case EveChildEffectPropagator.PropagationType.LOCAL_LOCATORS:\n this.ProcessLocalLocators();\n break;\n case EveChildEffectPropagator.PropagationType.LOCATOR_SET_BY_REF:\n this.ProcessRefLocators(parent);\n break;\n case EveChildEffectPropagator.PropagationType.RANDOM_SPREAD:\n this.ProcessRandomSpreadLocators();\n break;\n default:\n break;\n }\n\n if (this.#processedTransforms.length === 0)\n {\n this.Stop();\n return;\n }\n\n this.DistanceSortLocators();\n }\n\n /** Carbon EveChildEffectPropagator::RecalculateLocatorSizes (cpp:542-549):\n * re-randomize the per-locator scale for a delayed replay. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand, matching the EveSpaceObject2 precedent.\")\n RecalculateLocatorSizes()\n {\n for (const record of this.#processedTransforms)\n {\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon it->scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n }\n }\n\n /** Carbon EveChildEffectPropagator::DistanceSortLocators (cpp:556-564):\n * squared distance of every locator to the scaled trigger-sphere center,\n * then an ascending sort so ManageTriggers can early-out. */\n @carbon.method\n @impl.implemented\n DistanceSortLocators()\n {\n // Carbon: it->position - m_triggerSphereOffset * m_triggerSphereScalarMulti\n // - scalar-vector scale plus a vector difference, no matrix composition.\n vec3.scale(SPHERE_CENTER_SCRATCH, this.triggerSphereOffset, this.triggerSphereScalarMulti);\n for (const record of this.#processedTransforms)\n {\n record.sqrDistToSphereCenter = vec3.squaredDistance(record.position, SPHERE_CENTER_SCRATCH);\n }\n\n this.#processedTransforms.sort(SortByCircleDist);\n }\n\n /** Carbon EveChildEffectPropagator::GetEffect (cpp:640-643). */\n @carbon.method\n @impl.implemented\n GetEffect()\n {\n return this.effect;\n }\n\n /** Carbon EveChildEffectPropagator::SetEffect (cpp:645-654): Carbon brackets\n * the swap with UnRegisterComponents/RegisterComponents against the scene\n * component registry. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Component-registry re-registration is engine-owned (registry system unported); the effect swap itself is ported.\")\n SetEffect(effect)\n {\n this.effect = effect ?? null;\n }\n\n /** Carbon EveChildEffectPropagator::SetControllerVariable (cpp:656-662):\n * the effect container alone receives the variable (no base fan-out). */\n @carbon.method\n @impl.implemented\n SetControllerVariable(name, value)\n {\n this.effect?.SetControllerVariable?.(String(name ?? \"\"), Number(value));\n }\n\n /** Carbon EveChildEffectPropagator::RegisterComponents (cpp:45-51) registers\n * the effect with the scene component registry - unported system. */\n @carbon.method\n @impl.notImplemented\n RegisterComponents(..._args)\n {\n throw new Error(\"EveChildEffectPropagator.RegisterComponents is not implemented in CarbonEngineJS (component registry unported).\");\n }\n\n /** Carbon EveChildEffectPropagator::UnRegisterComponents (cpp:53-59)\n * unregisters the effect from the scene component registry - unported\n * system. */\n @carbon.method\n @impl.notImplemented\n UnRegisterComponents(..._args)\n {\n throw new Error(\"EveChildEffectPropagator.UnRegisterComponents is not implemented in CarbonEngineJS (component registry unported).\");\n }\n\n static PropagationType = Object.freeze({\n LOCAL_LOCATORS: 0,\n LOCATOR_SET_BY_REF: 1,\n RANDOM_SPREAD: 2,\n });\n\n static TriggerType = Object.freeze({\n TRIGGER_SPHERE_CURVE: 0,\n INTERVAL_TRIGGERS: 1,\n INSTANT_PERMANENT: 2,\n });\n\n}\n"],"names":["BOUNDS_SCRATCH","vec4","create","SPHERE_CENTER_SCRATCH","vec3","TriQuaternionDirVector","out","v","length","Math","hypot","scale","NewTransformRecord","rotation","quat","position","fromValues","sqrDistToSphereCenter","SortByCircleDist","lhs","rhs","_EveChildEffectPropag","_identity","EveChildEffectPropagator","EveChildContainer","e","_init_propagationType","_init_extra_propagationType","_init_triggerMethood","_init_extra_triggerMethood","_init_stopAfterNumTriggers","_init_extra_stopAfterNumTriggers","_init_randScaleMin","_init_extra_randScaleMin","_init_randScaleMax","_init_extra_randScaleMax","_init_triggerSphereOffset","_init_extra_triggerSphereOffset","_init_effect","_init_extra_effect","_init_stopToClearDelay","_init_extra_stopToClearDelay","_init_ClosenessPreference","_init_extra_ClosenessPreference","_init_effectScaling","_init_extra_effectScaling","_init_durationPerEffect","_init_extra_durationPerEffect","_init_isPlaying","_init_extra_isPlaying","_init_localLocators","_init_extra_localLocators","_init_triggerSphereRadiusCurve","_init_extra_triggerSphereRadiusCurve","_init_triggerSphereScalarMulti","_init_extra_triggerSphereScalarMulti","_init_locatorSetName","_init_extra_locatorSetName","_init_completeness","_init_extra_completeness","_init_replayAfterDelay","_init_extra_replayAfterDelay","_init_trigger","_init_extra_trigger","_init_minRangeThreshold","_init_extra_minRangeThreshold","_init_playTime","_init_extra_playTime","_init_range","_init_extra_range","_init_numTriggers","_init_extra_numTriggers","_init_frequency","_init_extra_frequency","_init_skipCleanup","_init_extra_skipCleanup","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","float32","persistOnly","model","read","boolean","string","readwrite","int64","carbon","method","impl","implemented","adapted","reason","contextual","notImplemented","propagationType","triggerMethood","stopAfterNumTriggers","randScaleMin","randScaleMax","triggerSphereOffset","effect","stopToClearDelay","ClosenessPreference","effectScaling","durationPerEffect","isPlaying","localLocators","triggerSphereRadiusCurve","triggerSphereScalarMulti","locatorSetName","completeness","replayAfterDelay","trigger","minRangeThreshold","playTime","range","numTriggers","frequency","skipCleanup","Play","Stop","ClearInstanceList","Array","isArray","instances","Initialize","DisableEditMode","OnModified","value","min","max","ManageTriggers","currentRadSqr","Number","GetValueAt","records","index","record","CreateInstance","UpdateSyncronous","updateContext","params","ProcessLocators","spaceObjectParent","TriggerType","INTERVAL_TRIGGERS","size","floor","push","TRIGGER_SPHERE_CURVE","UpdateTriggerCurve","UpdateTriggerInterval","INSTANT_PERMANENT","GetDeltaT","deltaT","dt","Length","RecalculateLocatorSizes","locatorIndex","GetSmartRandomLocatorIndex","shift","PopFront","ptSize","ltSize","random","UpdateAsyncronous","IsRendering","worldTransform","UpdateVisibility","parentTransform","parentLod","Tr2Lod","TR2_LOD_HIGH","GetRenderables","ProcessLocalLocators","locators","GetLocators","locator","copy","lengthSq","squaredLength","direction","rand","sqrt","ProcessRefLocators","parent","GetLocatorsForSet","GetBoundingSphere","set","ProcessRandomSpreadLocators","count","dist","a","PI","z","s","cos","sin","PropagationType","LOCAL_LOCATORS","LOCATOR_SET_BY_REF","RANDOM_SPREAD","DistanceSortLocators","squaredDistance","sort","GetEffect","SetEffect","SetControllerVariable","name","String","RegisterComponents","_args","Error","UnRegisterComponents","Object","freeze","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveChildEffectPropagator.js","sources":["../../../../src/eve/child/EveChildEffectPropagator.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildEffectPropagator.h\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildEffectPropagator.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Children/EveChildEffectPropagator_Blue.cpp\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { EveChildContainer } from \"./EveChildContainer.js\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { Tr2Lod } from \"../EveLODHelper.js\";\n\n// Module scratch for the trigger-driven locator paths (allocation rules:\n// copy-into, never allocate per frame; child updates run sequentially so the\n// scratch is non-reentrant by construction).\nconst BOUNDS_SCRATCH = vec4.create();\nconst SPHERE_CENTER_SCRATCH = vec3.create();\n\n// Carbon TriQuaternionDirVector (TriMath.cpp:262-269): stores the NORMALIZED\n// direction vector in the quaternion x/y/z slots with w = 0. It is a packed\n// direction, not a rotation - no quaternion composition happens here.\nfunction TriQuaternionDirVector(out, v)\n{\n const length = Math.hypot(v[0], v[1], v[2]);\n const scale = length ? 1 / length : 0;\n out[0] = v[0] * scale;\n out[1] = v[1] * scale;\n out[2] = v[2] * scale;\n out[3] = 0;\n return out;\n}\n\n// Carbon EveChildEffectPropagator::Transform (h:66-72): the per-locator\n// processed record. Records are allocated on trigger (ProcessLocators), never\n// per frame.\nfunction NewTransformRecord()\n{\n return {\n rotation: quat.create(),\n position: vec3.create(),\n scale: vec3.fromValues(1, 1, 1),\n sqrDistToSphereCenter: 0\n };\n}\n\n// Carbon SortByCircleDist (h:74-80): ascending squared distance to the\n// trigger-sphere center.\nfunction SortByCircleDist(lhs, rhs)\n{\n return lhs.sqrDistToSphereCenter - rhs.sqrDistToSphereCenter;\n}\n\n\n/** EveChildEffectPropagator (eve/child) - generated from schema shapeHash 0f2a96e8.... */\n@type.define({ className: \"EveChildEffectPropagator\", family: \"eve/child\" })\nexport class EveChildEffectPropagator extends EveChildContainer\n{\n\n /** m_type (PropagationType - enum PropagationType) [READWRITE, PERSIST, ENUM, NOTIFY] */\n @io.notify\n @io.persist\n @type.int32\n @schema.enum(\"PropagationType\")\n propagationType = 0;\n\n /** m_triggerMethod (TriggerType - enum TriggerType) [READWRITE, PERSIST, ENUM, NOTIFY] */\n @io.notify\n @io.persist\n @type.int32\n @schema.enum(\"TriggerType\")\n triggerMethood = 0;\n\n /** m_stopAfterNumTriggers (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n stopAfterNumTriggers = -1;\n\n /** m_randScaleMin (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n randScaleMin = 1;\n\n /** m_randScaleMax (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n randScaleMax = 1;\n\n /** m_triggerSphereOffset (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n triggerSphereOffset = vec3.create();\n\n /** m_effect (EveChildInstanceContainerPtr) [PERSISTONLY, NOTIFY] */\n @io.notify\n @io.persistOnly\n @type.model(\"EveChildInstanceContainer\")\n effect = null;\n\n /** m_stopToClearDelay (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n stopToClearDelay = 0;\n\n /** m_rndClosenessPreference (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n ClosenessPreference = 0.25;\n\n /** m_effectScaling (Vector3) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.vec3\n effectScaling = vec3.fromValues(1, 1, 1);\n\n /** m_effectDuration (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n durationPerEffect = 3;\n\n /** m_isPlaying (bool) [READ] */\n @io.read\n @type.boolean\n isPlaying = false;\n\n /** m_localLocators (EveLocatorSetsPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"EveLocatorSets\")\n localLocators = null;\n\n /** m_triggerSphereRadiusCurve (Tr2CurveScalarPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2CurveScalar\")\n triggerSphereRadiusCurve = null;\n\n /** m_triggerSphereScalarMulti (float) [READ] */\n @io.read\n @type.float32\n triggerSphereScalarMulti = 1;\n\n /** m_locatorSetName (BlueSharedString) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.string\n locatorSetName = \"\";\n\n /** m_completeness (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n completeness = 1;\n\n /** m_replayAfterDelay (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n replayAfterDelay = false;\n\n /** m_trigger (bool) [READWRITE] */\n @io.readwrite\n @type.boolean\n trigger = false;\n\n /** m_rndMinRangeThreshold (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n minRangeThreshold = 0;\n\n /** m_playTime (float) [READ] */\n @io.read\n @type.float32\n playTime = 0;\n\n /** m_rndRange (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n range = 500;\n\n /** m_numTriggers (int64_t) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.int64\n numTriggers = 10;\n\n /** m_frequency (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n frequency = 1;\n\n /** m_skipCleanup (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n skipCleanup = false;\n\n #currentTriggerIndex = 0;\n\n #numDeleted = 0;\n\n // Carbon m_processedTransforms/m_lastTriggered/m_delayTimer: runtime-only\n // trigger state (never persisted; Carbon keeps them off the Blue surface).\n #processedTransforms = [];\n\n #lastTriggered = [];\n\n #delayTimer = 0;\n\n /** Carbon EveChildEffectPropagator::Play (cpp:101-113): reset via Stop, then\n * arm playback; without an effect the propagator never starts. */\n @carbon.method\n @impl.implemented\n Play()\n {\n this.Stop();\n\n if (!this.effect)\n {\n return;\n }\n\n this.trigger = false;\n this.isPlaying = true;\n this.#delayTimer = this.stopToClearDelay;\n }\n\n /** Carbon EveChildEffectPropagator::Stop (cpp:119-129). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The staged instance container does not yet expose Carbon's native ClearInstanceList helper, so plain hydrated instance lists are cleared directly as a fallback.\")\n Stop()\n {\n this.isPlaying = false;\n this.playTime = 0;\n this.#currentTriggerIndex = 0;\n this.#numDeleted = 0;\n\n if (this.effect)\n {\n if (typeof this.effect.ClearInstanceList === \"function\")\n {\n this.effect.ClearInstanceList();\n }\n else if (Array.isArray(this.effect.instances))\n {\n this.effect.instances.length = 0;\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::Initialize (cpp:131-138). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"DisableEditMode is duck-typed - the staged instance container has not ported its edit-mode surface yet.\")\n Initialize()\n {\n this.effect?.DisableEditMode?.(true);\n return super.Initialize();\n }\n\n /** Carbon EveChildEffectPropagator::OnModified (cpp:61-95): edit-mode lock\n * on effect changes, clamps for completeness/randScaleMin/randScaleMax, and\n * the playTime re-anchor on frequency changes. The value argument follows\n * the repo's OnModified duck (field name or field value). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Field matching follows the repo OnModified duck and DisableEditMode is duck-typed on the staged instance container.\")\n OnModified(value = null)\n {\n if (value === \"effect\" || (value && value === this.effect))\n {\n this.effect?.DisableEditMode?.(true);\n }\n\n if (value === \"completeness\" || value === this.completeness)\n {\n this.completeness = Math.min(1, Math.max(0, this.completeness));\n }\n\n if (value === \"randScaleMin\" || value === this.randScaleMin)\n {\n this.randScaleMin = Math.min(this.randScaleMax, Math.max(0, this.randScaleMin));\n }\n\n if (value === \"randScaleMax\" || value === this.randScaleMax)\n {\n this.randScaleMax = Math.max(this.randScaleMax, this.randScaleMin);\n }\n\n if (value === \"frequency\" || value === this.frequency)\n {\n if (this.frequency !== 0)\n {\n this.playTime = this.#currentTriggerIndex / this.frequency;\n }\n }\n\n return super.OnModified(value);\n }\n\n /** Carbon EveChildEffectPropagator::ManageTriggers (cpp:140-167): fire an\n * instance for every processed locator the growing trigger sphere has\n * swallowed; the list is distance-sorted so the scan stops at the first\n * locator still outside. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CreateInstance is duck-typed - the staged instance container has not ported its instance-spawning surface yet.\")\n ManageTriggers()\n {\n if (!this.triggerSphereRadiusCurve)\n {\n return;\n }\n\n if (!this.effect)\n {\n return;\n }\n\n let currentRadSqr = Number(this.triggerSphereRadiusCurve.GetValueAt?.(this.playTime) ?? 0) * this.triggerSphereScalarMulti;\n currentRadSqr = currentRadSqr * currentRadSqr;\n\n const records = this.#processedTransforms;\n for (let index = this.#currentTriggerIndex; index < records.length; index++)\n {\n const record = records[index];\n if (record.sqrDistToSphereCenter < currentRadSqr)\n {\n this.effect.CreateInstance?.(record.scale, record.rotation, record.position);\n this.#currentTriggerIndex++;\n }\n else\n {\n break;\n }\n }\n }\n\n /**\n * Sync-side frame update (Carbon EveChildEffectPropagator::UpdateSyncronous,\n * cpp:173-231): consume a pending trigger (process + sort the locators and\n * restart playback, seeding the interval-trigger history), forward the sync\n * tick to the effect container, then advance the active trigger method.\n * Carbon deliberately does NOT call the EveChildContainer base here - the\n * effect container replaces the child fan-out.\n * @param {Object} updateContext - frame context (EveUpdateContext)\n * @param {EveChildUpdateParams} params\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CreateInstance on the staged instance container is duck-typed; the trigger bookkeeping is ported.\")\n UpdateSyncronous(updateContext, params)\n {\n if (this.trigger)\n {\n this.ProcessLocators(params?.spaceObjectParent ?? null);\n this.Play();\n\n if (this.triggerMethood === EveChildEffectPropagator.TriggerType.INTERVAL_TRIGGERS)\n {\n // Carbon (cpp:180-189): the last-triggered ring holds\n // floor(effectDuration * frequency) slots primed with -1.\n const size = Math.max(Math.floor(this.durationPerEffect * this.frequency), 0);\n this.#lastTriggered.length = 0;\n for (let index = 0; index < size; index++)\n {\n this.#lastTriggered.push(-1);\n }\n }\n }\n\n this.effect?.UpdateSyncronous?.(updateContext, params);\n\n if (!this.isPlaying)\n {\n return;\n }\n\n switch (this.triggerMethood)\n {\n case EveChildEffectPropagator.TriggerType.TRIGGER_SPHERE_CURVE:\n this.UpdateTriggerCurve(updateContext);\n break;\n case EveChildEffectPropagator.TriggerType.INTERVAL_TRIGGERS:\n if (this.frequency !== 0)\n {\n this.UpdateTriggerInterval(updateContext);\n }\n else\n {\n this.Stop();\n }\n break;\n case EveChildEffectPropagator.TriggerType.INSTANT_PERMANENT:\n this.playTime += Number(updateContext?.GetDeltaT?.() ?? updateContext?.deltaT ?? 0);\n if (this.#currentTriggerIndex === 0)\n {\n for (const record of this.#processedTransforms)\n {\n this.effect?.CreateInstance?.(record.scale, record.rotation, record.position);\n }\n this.#currentTriggerIndex++;\n }\n break;\n default:\n break;\n }\n }\n\n /** Carbon EveChildEffectPropagator::UpdateTriggerCurve (cpp:233-273):\n * advance playTime, let the trigger sphere fire instances, then handle the\n * end of the curve (skip cleanup, delayed replay with re-randomized locator\n * sizes, or stop). */\n @carbon.method\n @impl.implemented\n UpdateTriggerCurve(updateContext)\n {\n const dt = Number(updateContext?.GetDeltaT?.() ?? updateContext?.deltaT ?? 0);\n this.playTime += dt;\n\n if (this.effect)\n {\n this.ManageTriggers();\n }\n\n if (!this.triggerSphereRadiusCurve)\n {\n this.Stop();\n return;\n }\n\n if (this.playTime > Number(this.triggerSphereRadiusCurve.Length?.() ?? 0))\n {\n if (this.skipCleanup)\n {\n return;\n }\n\n if (this.replayAfterDelay)\n {\n if (this.#delayTimer > 0)\n {\n this.#delayTimer -= dt;\n }\n else\n {\n this.RecalculateLocatorSizes();\n this.Play();\n }\n }\n else\n {\n this.Stop();\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::UpdateTriggerInterval (cpp:275-317):\n * frequency-paced spawning from smart-random locators with a spawn cap,\n * plus paced deletion of expired instances (PopFront) until the loop\n * drains. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CreateInstance/PopFront on the staged instance container are duck-typed; the interval bookkeeping is ported.\")\n UpdateTriggerInterval(updateContext)\n {\n const dt = Number(updateContext?.GetDeltaT?.() ?? updateContext?.deltaT ?? 0);\n this.playTime += dt;\n\n if (this.#processedTransforms.length === 0)\n {\n return;\n }\n\n if (this.stopAfterNumTriggers > 0 && this.durationPerEffect !== -1 &&\n this.playTime > (this.stopAfterNumTriggers / this.frequency + this.durationPerEffect))\n {\n this.Stop();\n return;\n }\n\n // Triggers based on the frequency interval unless the maximum amount of\n // spawns has been reached (cpp:291-304).\n if (this.playTime > this.#currentTriggerIndex / this.frequency &&\n (this.#currentTriggerIndex < this.stopAfterNumTriggers || this.stopAfterNumTriggers < 0))\n {\n const locatorIndex = this.GetSmartRandomLocatorIndex();\n if (this.#lastTriggered.length)\n {\n this.#lastTriggered.shift();\n }\n this.#lastTriggered.push(locatorIndex);\n\n const record = this.#processedTransforms[locatorIndex];\n this.effect?.CreateInstance?.(record.scale, record.rotation, record.position);\n this.#currentTriggerIndex++;\n }\n\n if (this.durationPerEffect !== -1 &&\n this.playTime > (this.#numDeleted / this.frequency) + this.durationPerEffect)\n {\n this.effect?.PopFront?.();\n this.#numDeleted++;\n\n if (this.#numDeleted === this.#currentTriggerIndex)\n {\n // Prevent debug rendering on a running loop after it finishes (see\n // InstanceContainers) - cpp:313.\n this.#currentTriggerIndex = 0;\n this.#lastTriggered.length = 0;\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::GetSmartRandomLocatorIndex\n * (cpp:319-351): rejection-sample a locator index not in the recent-trigger\n * history, with Carbon's early exit when the history covers the set or the\n * spawn rate saturates 75% of the locators. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRandInt, matching the BehaviorGroup/EveSpaceObject2 precedent.\")\n GetSmartRandomLocatorIndex()\n {\n let locatorIndex = -1;\n const ptSize = this.#processedTransforms.length;\n const ltSize = this.#lastTriggered.length;\n\n if (ltSize >= ptSize || this.frequency * this.durationPerEffect > 0.75 * ptSize)\n {\n locatorIndex = Math.floor(Math.random() * ptSize);\n }\n else\n {\n // Carbon (cpp:331-336): this loop should rarely repeat; the early exit\n // above bounds the bad case (small locator set, long duration, frequent\n // triggers).\n while (locatorIndex === -1)\n {\n locatorIndex = Math.floor(Math.random() * ptSize);\n for (let index = 0; index < ltSize; index++)\n {\n if (locatorIndex === this.#lastTriggered[index])\n {\n locatorIndex = -1;\n break;\n }\n }\n }\n }\n return locatorIndex;\n }\n\n /**\n * Per-frame async update (Carbon EveChildEffectPropagator::UpdateAsyncronous,\n * cpp:353-366): gate on IsRendering, tick the effect container, then run the\n * EveChildContainer base (which rebuilds the world transform - the Carbon\n * row-vector local * parent composition lives in\n * EveChildTransform.UpdateTransform as mat4.multiply(world, parent, local)).\n * @param {Object} updateContext - frame context (EveUpdateContext)\n * @param {EveChildUpdateParams} params\n * @returns {Float32Array} worldTransform\n */\n @carbon.method\n @carbon.contextual([\"camera\"])\n @impl.implemented\n UpdateAsyncronous(updateContext, params)\n {\n if (!this.IsRendering())\n {\n return this.worldTransform;\n }\n\n this.effect?.UpdateAsyncronous?.(updateContext, params);\n\n return super.UpdateAsyncronous(updateContext, params);\n }\n\n /** Carbon EveChildEffectPropagator::UpdateVisibility (cpp:389-395): the\n * effect container alone receives the visibility tick (no base fan-out). */\n @carbon.method\n @impl.implemented\n UpdateVisibility(updateContext, parentTransform = null, parentLod = Tr2Lod.TR2_LOD_HIGH)\n {\n this.effect?.UpdateVisibility?.(updateContext, parentTransform, parentLod);\n }\n\n /** Carbon EveChildEffectPropagator::GetRenderables (cpp:397-408): nothing\n * renders until the first trigger fired; then the effect container\n * contributes its instances. */\n @carbon.method\n @impl.implemented\n GetRenderables(out = [])\n {\n if (this.#currentTriggerIndex === 0)\n {\n return out;\n }\n\n this.effect?.GetRenderables?.(out);\n return out;\n }\n\n /** Carbon EveChildEffectPropagator::ProcessLocalLocators (cpp:410-438):\n * sample the owned locator set through the completeness gate; the trigger\n * sphere scalar becomes twice the farthest locator distance. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand, matching the EveSpaceObject2 precedent.\")\n ProcessLocalLocators()\n {\n if (!this.localLocators)\n {\n return;\n }\n\n const locators = this.localLocators.GetLocators?.() ?? this.localLocators.locators ?? [];\n\n this.triggerSphereScalarMulti = 0;\n for (const locator of locators)\n {\n if (Math.random() > this.completeness)\n {\n continue;\n }\n\n const record = NewTransformRecord();\n vec3.copy(record.position, locator.position);\n const lengthSq = vec3.squaredLength(record.position);\n this.triggerSphereScalarMulti = Math.max(this.triggerSphereScalarMulti, lengthSq);\n // Locator directions persist as packed quaternions; copied verbatim\n // (Carbon t.rotation = it->direction - no composition).\n quat.copy(record.rotation, locator.direction);\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon t.scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n this.#processedTransforms.push(record);\n }\n\n this.triggerSphereScalarMulti = Math.sqrt(this.triggerSphereScalarMulti) * 2;\n }\n\n /** Carbon EveChildEffectPropagator::ProcessRefLocators (cpp:440-478): pull\n * the named locator set (default \"damage\") from the space-object parent and\n * scale the trigger sphere by the parent's bounding-sphere radius. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand and the EveSpaceObject2 BlueCast becomes a duck check on the locator/bounds surface.\")\n ProcessRefLocators(parent)\n {\n if (this.locatorSetName === \"\")\n {\n this.locatorSetName = \"damage\";\n }\n\n let locators = null;\n\n if (typeof parent?.GetLocatorsForSet === \"function\" && typeof parent?.GetBoundingSphere === \"function\")\n {\n locators = parent.GetLocatorsForSet(this.locatorSetName);\n vec4.set(BOUNDS_SCRATCH, 0, 0, 0, 0);\n parent.GetBoundingSphere(BOUNDS_SCRATCH);\n this.triggerSphereScalarMulti = BOUNDS_SCRATCH[3];\n }\n else\n {\n return;\n }\n\n if (locators)\n {\n for (const locator of locators)\n {\n if (Math.random() > this.completeness)\n {\n continue;\n }\n\n const record = NewTransformRecord();\n vec3.copy(record.position, locator.position);\n quat.copy(record.rotation, locator.direction);\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon t.scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n this.#processedTransforms.push(record);\n }\n }\n }\n\n /** Carbon EveChildEffectPropagator::ProcessRandomSpreadLocators\n * (cpp:480-506): uniform points on the unit sphere pushed out by a\n * closeness-biased distance inside [minRangeThreshold, range]; the packed\n * direction quaternion comes from TriQuaternionDirVector. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand, matching the EveSpaceObject2 precedent.\")\n ProcessRandomSpreadLocators()\n {\n const count = Number(this.numTriggers);\n for (let index = 0; index < count; index++)\n {\n if (Math.random() > this.completeness)\n {\n continue;\n }\n\n // Carbon (cpp:489-491): dist starts uniform, is pulled toward the\n // closeness preference by a second uniform draw, then maps into\n // [minRangeThreshold, range].\n let dist = Math.random();\n dist += (this.ClosenessPreference - dist) * Math.random();\n dist = this.minRangeThreshold + (this.range - this.minRangeThreshold) * dist;\n\n // Carbon (cpp:493-495): uniform unit-sphere direction from (a, z).\n const a = 2 * Math.PI * Math.random();\n const z = Math.random() * 2 - 1;\n const s = Math.sqrt(1 - z * z);\n\n const record = NewTransformRecord();\n // Carbon t.position = angle * dist - scalar-vector scale.\n vec3.set(record.position, s * Math.cos(a) * dist, s * Math.sin(a) * dist, z * dist);\n // TriQuaternionDirVector(&t.rotation, &angle) - packed direction, no\n // quaternion composition.\n vec3.set(SPHERE_CENTER_SCRATCH, s * Math.cos(a), s * Math.sin(a), z);\n TriQuaternionDirVector(record.rotation, SPHERE_CENTER_SCRATCH);\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon t.scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n this.#processedTransforms.push(record);\n }\n this.triggerSphereScalarMulti = this.range;\n }\n\n /** Carbon EveChildEffectPropagator::ProcessLocators (cpp:513-540): rebuild\n * the processed-locator list for the selected propagation type, stop when\n * nothing survived the completeness gate, then distance-sort. */\n @carbon.method\n @impl.implemented\n ProcessLocators(parent = null)\n {\n this.#processedTransforms.length = 0;\n\n switch (this.propagationType)\n {\n case EveChildEffectPropagator.PropagationType.LOCAL_LOCATORS:\n this.ProcessLocalLocators();\n break;\n case EveChildEffectPropagator.PropagationType.LOCATOR_SET_BY_REF:\n this.ProcessRefLocators(parent);\n break;\n case EveChildEffectPropagator.PropagationType.RANDOM_SPREAD:\n this.ProcessRandomSpreadLocators();\n break;\n default:\n break;\n }\n\n if (this.#processedTransforms.length === 0)\n {\n this.Stop();\n return;\n }\n\n this.DistanceSortLocators();\n }\n\n /** Carbon EveChildEffectPropagator::RecalculateLocatorSizes (cpp:542-549):\n * re-randomize the per-locator scale for a delayed replay. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Math.random replaces Carbon's unseeded TriRand, matching the EveSpaceObject2 precedent.\")\n RecalculateLocatorSizes()\n {\n for (const record of this.#processedTransforms)\n {\n const rand = this.randScaleMin + Math.random() * (this.randScaleMax - this.randScaleMin);\n // Carbon it->scale = m_effectScaling * rand - scalar-vector scale.\n vec3.scale(record.scale, this.effectScaling, rand);\n }\n }\n\n /** Carbon EveChildEffectPropagator::DistanceSortLocators (cpp:556-564):\n * squared distance of every locator to the scaled trigger-sphere center,\n * then an ascending sort so ManageTriggers can early-out. */\n @carbon.method\n @impl.implemented\n DistanceSortLocators()\n {\n // Carbon: it->position - m_triggerSphereOffset * m_triggerSphereScalarMulti\n // - scalar-vector scale plus a vector difference, no matrix composition.\n vec3.scale(SPHERE_CENTER_SCRATCH, this.triggerSphereOffset, this.triggerSphereScalarMulti);\n for (const record of this.#processedTransforms)\n {\n record.sqrDistToSphereCenter = vec3.squaredDistance(record.position, SPHERE_CENTER_SCRATCH);\n }\n\n this.#processedTransforms.sort(SortByCircleDist);\n }\n\n /** Carbon EveChildEffectPropagator::GetEffect (cpp:640-643). */\n @carbon.method\n @impl.implemented\n GetEffect()\n {\n return this.effect;\n }\n\n /** Carbon EveChildEffectPropagator::SetEffect (cpp:645-654): Carbon brackets\n * the swap with UnRegisterComponents/RegisterComponents against the scene\n * component registry. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Component-registry re-registration is engine-owned (registry system unported); the effect swap itself is ported.\")\n SetEffect(effect)\n {\n this.effect = effect ?? null;\n }\n\n /** Carbon EveChildEffectPropagator::SetControllerVariable (cpp:656-662):\n * the effect container alone receives the variable (no base fan-out). */\n @carbon.method\n @impl.implemented\n SetControllerVariable(name, value)\n {\n this.effect?.SetControllerVariable?.(String(name ?? \"\"), Number(value));\n }\n\n /** Carbon EveChildEffectPropagator::RegisterComponents (cpp:45-51) registers\n * the effect with the scene component registry - unported system. */\n @carbon.method\n @impl.notImplemented\n RegisterComponents(..._args)\n {\n throw new Error(\"EveChildEffectPropagator.RegisterComponents is not implemented in CarbonEngineJS (component registry unported).\");\n }\n\n /** Carbon EveChildEffectPropagator::UnRegisterComponents (cpp:53-59)\n * unregisters the effect from the scene component registry - unported\n * system. */\n @carbon.method\n @impl.notImplemented\n UnRegisterComponents(..._args)\n {\n throw new Error(\"EveChildEffectPropagator.UnRegisterComponents is not implemented in CarbonEngineJS (component registry unported).\");\n }\n\n static PropagationType = Object.freeze({\n LOCAL_LOCATORS: 0,\n LOCATOR_SET_BY_REF: 1,\n RANDOM_SPREAD: 2,\n });\n\n static TriggerType = Object.freeze({\n TRIGGER_SPHERE_CURVE: 0,\n INTERVAL_TRIGGERS: 1,\n INSTANT_PERMANENT: 2,\n });\n\n}\n"],"names":["BOUNDS_SCRATCH","vec4","create","SPHERE_CENTER_SCRATCH","vec3","TriQuaternionDirVector","out","v","length","Math","hypot","scale","NewTransformRecord","rotation","quat","position","fromValues","sqrDistToSphereCenter","SortByCircleDist","lhs","rhs","_EveChildEffectPropag","_identity","EveChildEffectPropagator","EveChildContainer","e","_init_propagationType","_init_extra_propagationType","_init_triggerMethood","_init_extra_triggerMethood","_init_stopAfterNumTriggers","_init_extra_stopAfterNumTriggers","_init_randScaleMin","_init_extra_randScaleMin","_init_randScaleMax","_init_extra_randScaleMax","_init_triggerSphereOffset","_init_extra_triggerSphereOffset","_init_effect","_init_extra_effect","_init_stopToClearDelay","_init_extra_stopToClearDelay","_init_ClosenessPreference","_init_extra_ClosenessPreference","_init_effectScaling","_init_extra_effectScaling","_init_durationPerEffect","_init_extra_durationPerEffect","_init_isPlaying","_init_extra_isPlaying","_init_localLocators","_init_extra_localLocators","_init_triggerSphereRadiusCurve","_init_extra_triggerSphereRadiusCurve","_init_triggerSphereScalarMulti","_init_extra_triggerSphereScalarMulti","_init_locatorSetName","_init_extra_locatorSetName","_init_completeness","_init_extra_completeness","_init_replayAfterDelay","_init_extra_replayAfterDelay","_init_trigger","_init_extra_trigger","_init_minRangeThreshold","_init_extra_minRangeThreshold","_init_playTime","_init_extra_playTime","_init_range","_init_extra_range","_init_numTriggers","_init_extra_numTriggers","_init_frequency","_init_extra_frequency","_init_skipCleanup","_init_extra_skipCleanup","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","float32","persistOnly","model","read","boolean","string","readwrite","int64","carbon","method","impl","implemented","adapted","reason","contextual","notImplemented","propagationType","triggerMethood","stopAfterNumTriggers","randScaleMin","randScaleMax","triggerSphereOffset","effect","stopToClearDelay","ClosenessPreference","effectScaling","durationPerEffect","isPlaying","localLocators","triggerSphereRadiusCurve","triggerSphereScalarMulti","locatorSetName","completeness","replayAfterDelay","trigger","minRangeThreshold","playTime","range","numTriggers","frequency","skipCleanup","Play","Stop","ClearInstanceList","Array","isArray","instances","Initialize","DisableEditMode","OnModified","value","min","max","ManageTriggers","currentRadSqr","Number","GetValueAt","records","index","record","CreateInstance","UpdateSyncronous","updateContext","params","ProcessLocators","spaceObjectParent","TriggerType","INTERVAL_TRIGGERS","size","floor","push","TRIGGER_SPHERE_CURVE","UpdateTriggerCurve","UpdateTriggerInterval","INSTANT_PERMANENT","GetDeltaT","deltaT","dt","Length","RecalculateLocatorSizes","locatorIndex","GetSmartRandomLocatorIndex","shift","PopFront","ptSize","ltSize","random","UpdateAsyncronous","IsRendering","worldTransform","UpdateVisibility","parentTransform","parentLod","Tr2Lod","TR2_LOD_HIGH","GetRenderables","ProcessLocalLocators","locators","GetLocators","locator","copy","lengthSq","squaredLength","direction","rand","sqrt","ProcessRefLocators","parent","GetLocatorsForSet","GetBoundingSphere","set","ProcessRandomSpreadLocators","count","dist","a","PI","z","s","cos","sin","PropagationType","LOCAL_LOCATORS","LOCATOR_SET_BY_REF","RANDOM_SPREAD","DistanceSortLocators","squaredDistance","sort","GetEffect","SetEffect","SetControllerVariable","name","String","RegisterComponents","_args","Error","UnRegisterComponents","Object","freeze","constructor"],"mappings":"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"}
@@ -7,6 +7,12 @@ import { EveChildTransform as _EveChildTransform } from './EveChildTransform.js'
7
7
  import { EveComponentType } from '../EveComponentTypes.js';
8
8
 
9
9
  let _initProto, _initClass, _init_priority, _init_extra_priority, _init_volumes, _init_extra_volumes, _init_boundingSphereCenter, _init_extra_boundingSphereCenter, _init_boundingSphereRadius, _init_extra_boundingSphereRadius, _init_name, _init_extra_name, _init_intensity, _init_extra_intensity, _init_thickness, _init_extra_thickness, _init_thicknessEnabled, _init_extra_thicknessEnabled, _init_lightDirectionality, _init_extra_lightDirectionality, _init_lightDirectionalityEnabled, _init_extra_lightDirectionalityEnabled, _init_environmentIntensity, _init_extra_environmentIntensity, _init_environmentIntensityEnabled, _init_extra_environmentIntensityEnabled, _init_environmentDirectionality, _init_extra_environmentDirectionality, _init_environmentDirectionalityEnabled, _init_extra_environmentDirectionalityEnabled, _init_fogColor, _init_extra_fogColor, _init_fogColorEnabled, _init_extra_fogColorEnabled, _init_backgroundVisibility, _init_extra_backgroundVisibility, _init_backgroundVisibilityEnabled, _init_extra_backgroundVisibilityEnabled, _init_godRayNoiseIntensity, _init_extra_godRayNoiseIntensity, _init_godRayNoiseIntensityEnabled, _init_extra_godRayNoiseIntensityEnabled, _init_godRayNoiseFrequency, _init_extra_godRayNoiseFrequency, _init_godRayNoiseFrequencyEnabled, _init_extra_godRayNoiseFrequencyEnabled, _init_godRayNoiseAnimationSpeed, _init_extra_godRayNoiseAnimationSpeed, _init_godRayNoiseAnimationSpeedEnabled, _init_extra_godRayNoiseAnimationSpeedEnabled, _init_fogNoiseIntensity, _init_extra_fogNoiseIntensity, _init_fogNoiseIntensityEnabled, _init_extra_fogNoiseIntensityEnabled, _init_fogNoiseFrequency, _init_extra_fogNoiseFrequency, _init_fogNoiseFrequencyEnabled, _init_extra_fogNoiseFrequencyEnabled;
10
+
11
+ /**
12
+ * Space-object child that contributes a prioritized froxel fog settings
13
+ * override, its strength driven by how deeply the camera sits inside the volumes
14
+ * it owns.
15
+ */
10
16
  let _EveChildFogVolume;
11
17
  new class extends _identity {
12
18
  static [class EveChildFogVolume extends _EveChildTransform {
@@ -52,6 +58,12 @@ new class extends _identity {
52
58
  fogNoiseIntensityEnabled = (_init_extra_fogNoiseIntensity(this), _init_fogNoiseIntensityEnabled(this, false));
53
59
  fogNoiseFrequency = (_init_extra_fogNoiseIntensityEnabled(this), _init_fogNoiseFrequency(this, 15));
54
60
  fogNoiseFrequencyEnabled = (_init_extra_fogNoiseFrequency(this), _init_fogNoiseFrequencyEnabled(this, false));
61
+
62
+ /**
63
+ * Recomputes the local bounding sphere as the union of the child volumes'
64
+ * spheres, skipping volumes with a missing centre or a non-finite/negative
65
+ * radius; returns whether any volume contributed.
66
+ */
55
67
  RebuildBoundingSphere() {
56
68
  vec3.set(this.boundingSphereCenter, 0, 0, 0);
57
69
  this.boundingSphereRadius = 0;
@@ -69,17 +81,41 @@ new class extends _identity {
69
81
  }
70
82
  return initialized;
71
83
  }
84
+
85
+ /**
86
+ * The authored name, persisted with the volume and used to identify it in the
87
+ * parent graph.
88
+ */
72
89
  GetName() {
73
90
  return this.name;
74
91
  }
92
+
93
+ /** Sets the authored volume name, coercing nullish to the empty string. */
75
94
  SetName(name) {
76
95
  this.name = String(name ?? "");
77
96
  }
97
+
98
+ /**
99
+ * Copies the cached local-space bounding sphere into out and always reports success, even before any volume has contributed (in which case it is the zero-radius sphere at the origin).
100
+ * @param {Float32Array} [out] - caller-owned; receives (x, y, z, radius)
101
+ * @returns {Boolean} always true
102
+ */
78
103
  GetBoundingSphere(out = vec4.create()) {
79
104
  vec4.set(out, this.boundingSphereCenter[0], this.boundingSphereCenter[1], this.boundingSphereCenter[2], this.boundingSphereRadius);
80
105
  return true;
81
106
  }
107
+
108
+ /** No-op: a fog volume carries no sync-side frame work. */
82
109
  UpdateSyncronous(_updateContext, _params) {}
110
+
111
+ /**
112
+ * Rebuilds the world transform and bounding sphere, then resolves the fog
113
+ * intensity for the frame: with no volumes the authored intensity applies
114
+ * directly; otherwise the camera is moved into local space and, only while it
115
+ * is inside the bounding sphere, the strongest volume intensity there
116
+ * (short-circuiting at 1) is scaled by the authored intensity - a camera
117
+ * outside leaves the intensity at zero.
118
+ */
83
119
  UpdateAsyncronous(updateContext, params = {}) {
84
120
  this.UpdateTransform(params.localToWorldTransform ?? mat4.create());
85
121
  const initialized = this.RebuildBoundingSphere();
@@ -99,15 +135,33 @@ new class extends _identity {
99
135
  }
100
136
  this.#fogIntensity *= this.intensity;
101
137
  }
138
+
139
+ /**
140
+ * Copies the child's world transform, as rebuilt by the last async update.
141
+ * @param {Float32Array} [out] - caller-owned; allocated when omitted
142
+ * @returns {Float32Array} out
143
+ */
102
144
  GetLocalToWorldTransform(out = mat4.create()) {
103
145
  return mat4.copy(out, this.worldTransform);
104
146
  }
147
+
148
+ /**
149
+ * Applies the authored scale/rotation/translation through the shared child
150
+ * transform setup.
151
+ */
105
152
  Setup(scale, rotation, translation, lowestLodVisible) {
106
153
  return super.Setup(scale, rotation, translation, lowestLodVisible);
107
154
  }
155
+
156
+ /** Returns true unconditionally - a fog volume reports itself as always on. */
108
157
  IsAlwaysOn() {
109
158
  return true;
110
159
  }
160
+
161
+ /**
162
+ * Builds the initial bounding sphere from the authored volumes so the first
163
+ * frame can already reject an outside camera.
164
+ */
111
165
  Initialize() {
112
166
  this.RebuildBoundingSphere();
113
167
  return true;
@@ -124,6 +178,13 @@ new class extends _identity {
124
178
  registry.RegisterComponent(EveComponentType.FroxelFogSettings, this);
125
179
  }
126
180
  }
181
+
182
+ /**
183
+ * Returns this child's contribution to the froxel fog system: its priority,
184
+ * the intensity resolved by the last async update, and every optional
185
+ * attribute as a {value, enabled} pair so the consumer can tell an override
186
+ * from a default.
187
+ */
127
188
  GetFroxelFogSettings() {
128
189
  const attribute = (value, enabled) => ({
129
190
  value,
@@ -145,9 +206,20 @@ new class extends _identity {
145
206
  fogNoiseFrequency: attribute(this.fogNoiseFrequency, this.fogNoiseFrequencyEnabled)
146
207
  };
147
208
  }
209
+
210
+ /** No-op: a fog volume is not renderable and keeps no visibility state. */
148
211
  UpdateVisibility(_updateContext, _parentTransform, _parentLod) {}
212
+
213
+ /** No-op: a fog volume contributes settings, never renderables. */
149
214
  GetRenderables(_renderables) {}
215
+
216
+ /** No-op: a fog volume has no LOD levels. */
150
217
  ChangeLOD(_lod) {}
218
+ /**
219
+ * Grows the accumulated bounding sphere so it also encloses the given sphere,
220
+ * short-circuiting when either sphere already contains the other and handling
221
+ * coincident centres.
222
+ */
151
223
  #UnionSphere(sphere) {
152
224
  const delta = vec3.subtract(vec3.create(), sphere.center, this.boundingSphereCenter);
153
225
  const distance = vec3.length(delta);
@@ -1 +1 @@
1
- {"version":3,"file":"EveChildFogVolume.js","sources":["../../../../src/eve/child/EveChildFogVolume.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildFogVolume.h\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildFogVolume.cpp\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildFogVolume_Blue.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\nimport { impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveChildTransform } from \"./EveChildTransform.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\n\r\n\r\n@type.define({ className: \"EveChildFogVolume\", family: \"eve/child\" })\r\nexport class EveChildFogVolume extends EveChildTransform\r\n{\r\n #fogIntensity = 0;\r\n\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Priority\")\r\n priority = 2;\r\n\r\n @io.persist\r\n @type.list(\"IEveVolume\")\r\n volumes = [];\r\n\r\n @io.read\r\n @type.vec3\r\n boundingSphereCenter = vec3.create();\r\n\r\n @io.read\r\n @type.float32\r\n boundingSphereRadius = 0;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n thickness = 1;\r\n\r\n @io.persist\r\n @type.boolean\r\n thicknessEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n lightDirectionality = 0.5;\r\n\r\n @io.persist\r\n @type.boolean\r\n lightDirectionalityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n environmentIntensity = 1;\r\n\r\n @io.persist\r\n @type.boolean\r\n environmentIntensityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n environmentDirectionality = 0.75;\r\n\r\n @io.persist\r\n @type.boolean\r\n environmentDirectionalityEnabled = false;\r\n\r\n @io.persist\r\n @type.color\r\n fogColor = vec4.fromValues(1, 1, 1, 1);\r\n\r\n @io.persist\r\n @type.boolean\r\n fogColorEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n backgroundVisibility = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n backgroundVisibilityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n godRayNoiseIntensity = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n godRayNoiseIntensityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n godRayNoiseFrequency = 15;\r\n\r\n @io.persist\r\n @type.boolean\r\n godRayNoiseFrequencyEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n godRayNoiseAnimationSpeed = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n godRayNoiseAnimationSpeedEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n fogNoiseIntensity = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n fogNoiseIntensityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n fogNoiseFrequency = 15;\r\n\r\n @io.persist\r\n @type.boolean\r\n fogNoiseFrequencyEnabled = false;\r\n\r\n @impl.adapted\r\n RebuildBoundingSphere()\r\n {\r\n vec3.set(this.boundingSphereCenter, 0, 0, 0);\r\n this.boundingSphereRadius = 0;\r\n let initialized = false;\r\n for (const volume of this.volumes)\r\n {\r\n const sphere = volume?.GetBoundingSphere?.();\r\n if (!sphere?.center || !Number.isFinite(sphere.radius) || sphere.radius < 0) continue;\r\n if (!initialized)\r\n {\r\n vec3.copy(this.boundingSphereCenter, sphere.center);\r\n this.boundingSphereRadius = sphere.radius;\r\n initialized = true;\r\n continue;\r\n }\r\n this.#UnionSphere(sphere);\r\n }\r\n return initialized;\r\n }\r\n\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, this.boundingSphereCenter[0], this.boundingSphereCenter[1], this.boundingSphereCenter[2], this.boundingSphereRadius);\r\n return true;\r\n }\r\n\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext, params = {})\r\n {\r\n this.UpdateTransform(params.localToWorldTransform ?? mat4.create());\r\n const initialized = this.RebuildBoundingSphere();\r\n if (this.volumes.length === 0)\r\n {\r\n this.#fogIntensity = this.intensity;\r\n return;\r\n }\r\n\r\n this.#fogIntensity = 0;\r\n const viewPosition = updateContext?.renderContext?.GetViewPosition?.();\r\n const inverse = mat4.invert(mat4.create(), this.worldTransform);\r\n if (!viewPosition || !inverse || !initialized) return;\r\n const localView = vec3.transformMat4(vec3.create(), viewPosition, inverse);\r\n if (vec3.distance(localView, this.boundingSphereCenter) > this.boundingSphereRadius) return;\r\n for (const volume of this.volumes)\r\n {\r\n this.#fogIntensity = Math.max(this.#fogIntensity, Number(volume?.GetIntensity?.(localView)) || 0);\r\n if (this.#fogIntensity >= 1) break;\r\n }\r\n this.#fogIntensity *= this.intensity;\r\n }\r\n\r\n GetLocalToWorldTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n\r\n Setup(scale, rotation, translation, lowestLodVisible)\r\n {\r\n return super.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n IsAlwaysOn()\r\n {\r\n return true;\r\n }\r\n\r\n Initialize()\r\n {\r\n this.RebuildBoundingSphere();\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildFogVolume::RegisterComponents (cpp:69-72): unconditional\r\n * FroxelFogSettings leaf self-registration. Carbon's UnRegisterComponents\r\n * (cpp:74-77) only removes this same component, which EveEntity::UnRegister\r\n * already did via UnRegisterAllComponents (EveEntity.cpp:90), so the JS\r\n * un-side keeps the base no-op. */\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.FroxelFogSettings, this);\r\n }\r\n }\r\n\r\n @impl.adapted\r\n GetFroxelFogSettings()\r\n {\r\n const attribute = (value, enabled) => ({ value, enabled });\r\n return {\r\n priority: this.priority,\r\n intensity: this.#fogIntensity,\r\n thickness: attribute(this.thickness, this.thicknessEnabled),\r\n lightDirectionality: attribute(this.lightDirectionality, this.lightDirectionalityEnabled),\r\n environmentIntensity: attribute(this.environmentIntensity, this.environmentIntensityEnabled),\r\n environmentDirectionality: attribute(this.environmentDirectionality, this.environmentDirectionalityEnabled),\r\n fogColor: attribute(vec4.clone(this.fogColor), this.fogColorEnabled),\r\n backgroundVisibility: attribute(this.backgroundVisibility, this.backgroundVisibilityEnabled),\r\n godRayNoiseIntensity: attribute(this.godRayNoiseIntensity, this.godRayNoiseIntensityEnabled),\r\n godRayNoiseFrequency: attribute(this.godRayNoiseFrequency, this.godRayNoiseFrequencyEnabled),\r\n godRayNoiseAnimationSpeed: attribute(this.godRayNoiseAnimationSpeed, this.godRayNoiseAnimationSpeedEnabled),\r\n fogNoiseIntensity: attribute(this.fogNoiseIntensity, this.fogNoiseIntensityEnabled),\r\n fogNoiseFrequency: attribute(this.fogNoiseFrequency, this.fogNoiseFrequencyEnabled)\r\n };\r\n }\r\n\r\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\r\n {\r\n }\r\n\r\n GetRenderables(_renderables)\r\n {\r\n }\r\n\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n static Priority = Object.freeze({\r\n SCENE_DEFAULT_PRIORITY: 0,\r\n LOW_PRIORITY: 1,\r\n MEDIUM_PRIORITY: 2,\r\n HIGH_PRIORITY: 3,\r\n UI_PRIORITY: 4,\r\n PRIORITY_COUNT: 5\r\n });\r\n\r\n #UnionSphere(sphere)\r\n {\r\n const delta = vec3.subtract(vec3.create(), sphere.center, this.boundingSphereCenter);\r\n const distance = vec3.length(delta);\r\n if (distance + sphere.radius <= this.boundingSphereRadius) return;\r\n if (distance + this.boundingSphereRadius <= sphere.radius)\r\n {\r\n vec3.copy(this.boundingSphereCenter, sphere.center);\r\n this.boundingSphereRadius = sphere.radius;\r\n return;\r\n }\r\n if (distance === 0)\r\n {\r\n this.boundingSphereRadius = Math.max(this.boundingSphereRadius, sphere.radius);\r\n return;\r\n }\r\n const radius = (this.boundingSphereRadius + sphere.radius + distance) * 0.5;\r\n vec3.scaleAndAdd(this.boundingSphereCenter, this.boundingSphereCenter, delta, (radius - this.boundingSphereRadius) / distance);\r\n this.boundingSphereRadius = radius;\r\n }\r\n}\r\n"],"names":["_EveChildFogVolume","_identity","EveChildFogVolume","EveChildTransform","e","_init_priority","_init_extra_priority","_init_volumes","_init_extra_volumes","_init_boundingSphereCenter","_init_extra_boundingSphereCenter","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_name","_init_extra_name","_init_intensity","_init_extra_intensity","_init_thickness","_init_extra_thickness","_init_thicknessEnabled","_init_extra_thicknessEnabled","_init_lightDirectionality","_init_extra_lightDirectionality","_init_lightDirectionalityEnabled","_init_extra_lightDirectionalityEnabled","_init_environmentIntensity","_init_extra_environmentIntensity","_init_environmentIntensityEnabled","_init_extra_environmentIntensityEnabled","_init_environmentDirectionality","_init_extra_environmentDirectionality","_init_environmentDirectionalityEnabled","_init_extra_environmentDirectionalityEnabled","_init_fogColor","_init_extra_fogColor","_init_fogColorEnabled","_init_extra_fogColorEnabled","_init_backgroundVisibility","_init_extra_backgroundVisibility","_init_backgroundVisibilityEnabled","_init_extra_backgroundVisibilityEnabled","_init_godRayNoiseIntensity","_init_extra_godRayNoiseIntensity","_init_godRayNoiseIntensityEnabled","_init_extra_godRayNoiseIntensityEnabled","_init_godRayNoiseFrequency","_init_extra_godRayNoiseFrequency","_init_godRayNoiseFrequencyEnabled","_init_extra_godRayNoiseFrequencyEnabled","_init_godRayNoiseAnimationSpeed","_init_extra_godRayNoiseAnimationSpeed","_init_godRayNoiseAnimationSpeedEnabled","_init_extra_godRayNoiseAnimationSpeedEnabled","_init_fogNoiseIntensity","_init_extra_fogNoiseIntensity","_init_fogNoiseIntensityEnabled","_init_extra_fogNoiseIntensityEnabled","_init_fogNoiseFrequency","_init_extra_fogNoiseFrequency","_init_fogNoiseFrequencyEnabled","_init_extra_fogNoiseFrequencyEnabled","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","list","read","vec3","float32","string","boolean","color","impl","adapted","implemented","constructor","args","priority","volumes","boundingSphereCenter","create","boundingSphereRadius","name","intensity","thickness","thicknessEnabled","lightDirectionality","lightDirectionalityEnabled","environmentIntensity","environmentIntensityEnabled","environmentDirectionality","environmentDirectionalityEnabled","fogColor","vec4","fromValues","fogColorEnabled","backgroundVisibility","backgroundVisibilityEnabled","godRayNoiseIntensity","godRayNoiseIntensityEnabled","godRayNoiseFrequency","godRayNoiseFrequencyEnabled","godRayNoiseAnimationSpeed","godRayNoiseAnimationSpeedEnabled","fogNoiseIntensity","fogNoiseIntensityEnabled","fogNoiseFrequency","fogNoiseFrequencyEnabled","RebuildBoundingSphere","set","initialized","volume","sphere","GetBoundingSphere","center","Number","isFinite","radius","copy","GetName","SetName","String","out","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","UpdateTransform","localToWorldTransform","mat4","length","viewPosition","renderContext","GetViewPosition","inverse","invert","worldTransform","localView","transformMat4","distance","Math","max","GetIntensity","GetLocalToWorldTransform","Setup","scale","rotation","translation","lowestLodVisible","IsAlwaysOn","Initialize","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","FroxelFogSettings","GetFroxelFogSettings","attribute","value","enabled","clone","UpdateVisibility","_parentTransform","_parentLod","GetRenderables","_renderables","ChangeLOD","_lod","#UnionSphere","delta","subtract","scaleAndAdd","Priority","Object","freeze","SCENE_DEFAULT_PRIORITY","LOW_PRIORITY","MEDIUM_PRIORITY","HIGH_PRIORITY","UI_PRIORITY","PRIORITY_COUNT"],"mappings":"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"}
1
+ {"version":3,"file":"EveChildFogVolume.js","sources":["../../../../src/eve/child/EveChildFogVolume.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildFogVolume.h\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildFogVolume.cpp\r\n// trinity/trinity/Eve/SpaceObject/Children/EveChildFogVolume_Blue.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\nimport { impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveChildTransform } from \"./EveChildTransform.js\";\r\nimport { EveComponentType } from \"../EveComponentTypes.js\";\r\n\r\n\r\n/**\r\n * Space-object child that contributes a prioritized froxel fog settings\r\n * override, its strength driven by how deeply the camera sits inside the volumes\r\n * it owns.\r\n */\r\n@type.define({ className: \"EveChildFogVolume\", family: \"eve/child\" })\r\nexport class EveChildFogVolume extends EveChildTransform\r\n{\r\n #fogIntensity = 0;\r\n\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Priority\")\r\n priority = 2;\r\n\r\n @io.persist\r\n @type.list(\"IEveVolume\")\r\n volumes = [];\r\n\r\n @io.read\r\n @type.vec3\r\n boundingSphereCenter = vec3.create();\r\n\r\n @io.read\r\n @type.float32\r\n boundingSphereRadius = 0;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.float32\r\n intensity = 1;\r\n\r\n @io.persist\r\n @type.float32\r\n thickness = 1;\r\n\r\n @io.persist\r\n @type.boolean\r\n thicknessEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n lightDirectionality = 0.5;\r\n\r\n @io.persist\r\n @type.boolean\r\n lightDirectionalityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n environmentIntensity = 1;\r\n\r\n @io.persist\r\n @type.boolean\r\n environmentIntensityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n environmentDirectionality = 0.75;\r\n\r\n @io.persist\r\n @type.boolean\r\n environmentDirectionalityEnabled = false;\r\n\r\n @io.persist\r\n @type.color\r\n fogColor = vec4.fromValues(1, 1, 1, 1);\r\n\r\n @io.persist\r\n @type.boolean\r\n fogColorEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n backgroundVisibility = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n backgroundVisibilityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n godRayNoiseIntensity = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n godRayNoiseIntensityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n godRayNoiseFrequency = 15;\r\n\r\n @io.persist\r\n @type.boolean\r\n godRayNoiseFrequencyEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n godRayNoiseAnimationSpeed = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n godRayNoiseAnimationSpeedEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n fogNoiseIntensity = 0;\r\n\r\n @io.persist\r\n @type.boolean\r\n fogNoiseIntensityEnabled = false;\r\n\r\n @io.persist\r\n @type.float32\r\n fogNoiseFrequency = 15;\r\n\r\n @io.persist\r\n @type.boolean\r\n fogNoiseFrequencyEnabled = false;\r\n\r\n /**\r\n * Recomputes the local bounding sphere as the union of the child volumes'\r\n * spheres, skipping volumes with a missing centre or a non-finite/negative\r\n * radius; returns whether any volume contributed.\r\n */\r\n @impl.adapted\r\n RebuildBoundingSphere()\r\n {\r\n vec3.set(this.boundingSphereCenter, 0, 0, 0);\r\n this.boundingSphereRadius = 0;\r\n let initialized = false;\r\n for (const volume of this.volumes)\r\n {\r\n const sphere = volume?.GetBoundingSphere?.();\r\n if (!sphere?.center || !Number.isFinite(sphere.radius) || sphere.radius < 0) continue;\r\n if (!initialized)\r\n {\r\n vec3.copy(this.boundingSphereCenter, sphere.center);\r\n this.boundingSphereRadius = sphere.radius;\r\n initialized = true;\r\n continue;\r\n }\r\n this.#UnionSphere(sphere);\r\n }\r\n return initialized;\r\n }\r\n\r\n /**\r\n * The authored name, persisted with the volume and used to identify it in the\r\n * parent graph.\r\n */\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored volume name, coercing nullish to the empty string. */\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /**\r\n * Copies the cached local-space bounding sphere into out and always reports success, even before any volume has contributed (in which case it is the zero-radius sphere at the origin).\r\n * @param {Float32Array} [out] - caller-owned; receives (x, y, z, radius)\r\n * @returns {Boolean} always true\r\n */\r\n GetBoundingSphere(out = vec4.create())\r\n {\r\n vec4.set(out, this.boundingSphereCenter[0], this.boundingSphereCenter[1], this.boundingSphereCenter[2], this.boundingSphereRadius);\r\n return true;\r\n }\r\n\r\n /** No-op: a fog volume carries no sync-side frame work. */\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /**\r\n * Rebuilds the world transform and bounding sphere, then resolves the fog\r\n * intensity for the frame: with no volumes the authored intensity applies\r\n * directly; otherwise the camera is moved into local space and, only while it\r\n * is inside the bounding sphere, the strongest volume intensity there\r\n * (short-circuiting at 1) is scaled by the authored intensity - a camera\r\n * outside leaves the intensity at zero.\r\n */\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext, params = {})\r\n {\r\n this.UpdateTransform(params.localToWorldTransform ?? mat4.create());\r\n const initialized = this.RebuildBoundingSphere();\r\n if (this.volumes.length === 0)\r\n {\r\n this.#fogIntensity = this.intensity;\r\n return;\r\n }\r\n\r\n this.#fogIntensity = 0;\r\n const viewPosition = updateContext?.renderContext?.GetViewPosition?.();\r\n const inverse = mat4.invert(mat4.create(), this.worldTransform);\r\n if (!viewPosition || !inverse || !initialized) return;\r\n const localView = vec3.transformMat4(vec3.create(), viewPosition, inverse);\r\n if (vec3.distance(localView, this.boundingSphereCenter) > this.boundingSphereRadius) return;\r\n for (const volume of this.volumes)\r\n {\r\n this.#fogIntensity = Math.max(this.#fogIntensity, Number(volume?.GetIntensity?.(localView)) || 0);\r\n if (this.#fogIntensity >= 1) break;\r\n }\r\n this.#fogIntensity *= this.intensity;\r\n }\r\n\r\n /**\r\n * Copies the child's world transform, as rebuilt by the last async update.\r\n * @param {Float32Array} [out] - caller-owned; allocated when omitted\r\n * @returns {Float32Array} out\r\n */\r\n GetLocalToWorldTransform(out = mat4.create())\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n\r\n /**\r\n * Applies the authored scale/rotation/translation through the shared child\r\n * transform setup.\r\n */\r\n Setup(scale, rotation, translation, lowestLodVisible)\r\n {\r\n return super.Setup(scale, rotation, translation, lowestLodVisible);\r\n }\r\n\r\n /** Returns true unconditionally - a fog volume reports itself as always on. */\r\n IsAlwaysOn()\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Builds the initial bounding sphere from the authored volumes so the first\r\n * frame can already reject an outside camera.\r\n */\r\n Initialize()\r\n {\r\n this.RebuildBoundingSphere();\r\n return true;\r\n }\r\n\r\n /** Carbon EveChildFogVolume::RegisterComponents (cpp:69-72): unconditional\r\n * FroxelFogSettings leaf self-registration. Carbon's UnRegisterComponents\r\n * (cpp:74-77) only removes this same component, which EveEntity::UnRegister\r\n * already did via UnRegisterAllComponents (EveEntity.cpp:90), so the JS\r\n * un-side keeps the base no-op. */\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.FroxelFogSettings, this);\r\n }\r\n }\r\n\r\n /**\r\n * Returns this child's contribution to the froxel fog system: its priority,\r\n * the intensity resolved by the last async update, and every optional\r\n * attribute as a {value, enabled} pair so the consumer can tell an override\r\n * from a default.\r\n */\r\n @impl.adapted\r\n GetFroxelFogSettings()\r\n {\r\n const attribute = (value, enabled) => ({ value, enabled });\r\n return {\r\n priority: this.priority,\r\n intensity: this.#fogIntensity,\r\n thickness: attribute(this.thickness, this.thicknessEnabled),\r\n lightDirectionality: attribute(this.lightDirectionality, this.lightDirectionalityEnabled),\r\n environmentIntensity: attribute(this.environmentIntensity, this.environmentIntensityEnabled),\r\n environmentDirectionality: attribute(this.environmentDirectionality, this.environmentDirectionalityEnabled),\r\n fogColor: attribute(vec4.clone(this.fogColor), this.fogColorEnabled),\r\n backgroundVisibility: attribute(this.backgroundVisibility, this.backgroundVisibilityEnabled),\r\n godRayNoiseIntensity: attribute(this.godRayNoiseIntensity, this.godRayNoiseIntensityEnabled),\r\n godRayNoiseFrequency: attribute(this.godRayNoiseFrequency, this.godRayNoiseFrequencyEnabled),\r\n godRayNoiseAnimationSpeed: attribute(this.godRayNoiseAnimationSpeed, this.godRayNoiseAnimationSpeedEnabled),\r\n fogNoiseIntensity: attribute(this.fogNoiseIntensity, this.fogNoiseIntensityEnabled),\r\n fogNoiseFrequency: attribute(this.fogNoiseFrequency, this.fogNoiseFrequencyEnabled)\r\n };\r\n }\r\n\r\n /** No-op: a fog volume is not renderable and keeps no visibility state. */\r\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\r\n {\r\n }\r\n\r\n /** No-op: a fog volume contributes settings, never renderables. */\r\n GetRenderables(_renderables)\r\n {\r\n }\r\n\r\n /** No-op: a fog volume has no LOD levels. */\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n static Priority = Object.freeze({\r\n SCENE_DEFAULT_PRIORITY: 0,\r\n LOW_PRIORITY: 1,\r\n MEDIUM_PRIORITY: 2,\r\n HIGH_PRIORITY: 3,\r\n UI_PRIORITY: 4,\r\n PRIORITY_COUNT: 5\r\n });\r\n\r\n /**\r\n * Grows the accumulated bounding sphere so it also encloses the given sphere,\r\n * short-circuiting when either sphere already contains the other and handling\r\n * coincident centres.\r\n */\r\n #UnionSphere(sphere)\r\n {\r\n const delta = vec3.subtract(vec3.create(), sphere.center, this.boundingSphereCenter);\r\n const distance = vec3.length(delta);\r\n if (distance + sphere.radius <= this.boundingSphereRadius) return;\r\n if (distance + this.boundingSphereRadius <= sphere.radius)\r\n {\r\n vec3.copy(this.boundingSphereCenter, sphere.center);\r\n this.boundingSphereRadius = sphere.radius;\r\n return;\r\n }\r\n if (distance === 0)\r\n {\r\n this.boundingSphereRadius = Math.max(this.boundingSphereRadius, sphere.radius);\r\n return;\r\n }\r\n const radius = (this.boundingSphereRadius + sphere.radius + distance) * 0.5;\r\n vec3.scaleAndAdd(this.boundingSphereCenter, this.boundingSphereCenter, delta, (radius - this.boundingSphereRadius) / distance);\r\n this.boundingSphereRadius = radius;\r\n }\r\n}\r\n"],"names":["_EveChildFogVolume","_identity","EveChildFogVolume","EveChildTransform","e","_init_priority","_init_extra_priority","_init_volumes","_init_extra_volumes","_init_boundingSphereCenter","_init_extra_boundingSphereCenter","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_name","_init_extra_name","_init_intensity","_init_extra_intensity","_init_thickness","_init_extra_thickness","_init_thicknessEnabled","_init_extra_thicknessEnabled","_init_lightDirectionality","_init_extra_lightDirectionality","_init_lightDirectionalityEnabled","_init_extra_lightDirectionalityEnabled","_init_environmentIntensity","_init_extra_environmentIntensity","_init_environmentIntensityEnabled","_init_extra_environmentIntensityEnabled","_init_environmentDirectionality","_init_extra_environmentDirectionality","_init_environmentDirectionalityEnabled","_init_extra_environmentDirectionalityEnabled","_init_fogColor","_init_extra_fogColor","_init_fogColorEnabled","_init_extra_fogColorEnabled","_init_backgroundVisibility","_init_extra_backgroundVisibility","_init_backgroundVisibilityEnabled","_init_extra_backgroundVisibilityEnabled","_init_godRayNoiseIntensity","_init_extra_godRayNoiseIntensity","_init_godRayNoiseIntensityEnabled","_init_extra_godRayNoiseIntensityEnabled","_init_godRayNoiseFrequency","_init_extra_godRayNoiseFrequency","_init_godRayNoiseFrequencyEnabled","_init_extra_godRayNoiseFrequencyEnabled","_init_godRayNoiseAnimationSpeed","_init_extra_godRayNoiseAnimationSpeed","_init_godRayNoiseAnimationSpeedEnabled","_init_extra_godRayNoiseAnimationSpeedEnabled","_init_fogNoiseIntensity","_init_extra_fogNoiseIntensity","_init_fogNoiseIntensityEnabled","_init_extra_fogNoiseIntensityEnabled","_init_fogNoiseFrequency","_init_extra_fogNoiseFrequency","_init_fogNoiseFrequencyEnabled","_init_extra_fogNoiseFrequencyEnabled","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","list","read","vec3","float32","string","boolean","color","impl","adapted","implemented","constructor","args","priority","volumes","boundingSphereCenter","create","boundingSphereRadius","name","intensity","thickness","thicknessEnabled","lightDirectionality","lightDirectionalityEnabled","environmentIntensity","environmentIntensityEnabled","environmentDirectionality","environmentDirectionalityEnabled","fogColor","vec4","fromValues","fogColorEnabled","backgroundVisibility","backgroundVisibilityEnabled","godRayNoiseIntensity","godRayNoiseIntensityEnabled","godRayNoiseFrequency","godRayNoiseFrequencyEnabled","godRayNoiseAnimationSpeed","godRayNoiseAnimationSpeedEnabled","fogNoiseIntensity","fogNoiseIntensityEnabled","fogNoiseFrequency","fogNoiseFrequencyEnabled","RebuildBoundingSphere","set","initialized","volume","sphere","GetBoundingSphere","center","Number","isFinite","radius","copy","GetName","SetName","String","out","UpdateSyncronous","_updateContext","_params","UpdateAsyncronous","updateContext","params","UpdateTransform","localToWorldTransform","mat4","length","viewPosition","renderContext","GetViewPosition","inverse","invert","worldTransform","localView","transformMat4","distance","Math","max","GetIntensity","GetLocalToWorldTransform","Setup","scale","rotation","translation","lowestLodVisible","IsAlwaysOn","Initialize","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","FroxelFogSettings","GetFroxelFogSettings","attribute","value","enabled","clone","UpdateVisibility","_parentTransform","_parentLod","GetRenderables","_renderables","ChangeLOD","_lod","#UnionSphere","delta","subtract","scaleAndAdd","Priority","Object","freeze","SCENE_DEFAULT_PRIORITY","LOW_PRIORITY","MEDIUM_PRIORITY","HIGH_PRIORITY","UI_PRIORITY","PRIORITY_COUNT"],"mappings":"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"}
@@ -5,6 +5,11 @@ import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
5
5
 
6
6
  let _initProto, _initClass, _init_Primary, _init_extra_Primary, _init_Secondary, _init_extra_Secondary, _init_Tertiary, _init_extra_Tertiary, _init_Black, _init_extra_Black, _init_White, _init_extra_White, _init_Yellow, _init_extra_Yellow, _init_Orange, _init_extra_Orange, _init_Red, _init_extra_Red, _init_Blue, _init_extra_Blue, _init_Green, _init_extra_Green, _init_Cyan, _init_extra_Cyan, _init_Fire, _init_extra_Fire, _init_Hull, _init_extra_Hull, _init_Glass, _init_extra_Glass, _init_Reactor, _init_extra_Reactor, _init_Darkhull, _init_extra_Darkhull, _init_Booster, _init_extra_Booster, _init_Killmark, _init_extra_Killmark, _init_PrimaryLight, _init_extra_PrimaryLight, _init_SecondaryLight, _init_extra_SecondaryLight, _init_TertiaryLight, _init_extra_TertiaryLight, _init_WhiteLight, _init_extra_WhiteLight, _init_PrimarySpotlight, _init_extra_PrimarySpotlight, _init_SecondarySpotlight, _init_extra_SecondarySpotlight, _init_TertiarySpotlight, _init_extra_TertiarySpotlight, _init_PrimaryHologram, _init_extra_PrimaryHologram, _init_SecondaryHologram, _init_extra_SecondaryHologram, _init_TertiaryHologram, _init_extra_TertiaryHologram, _init_State, _init_extra_State, _init_State2, _init_extra_State2, _init_State3, _init_extra_State3, _init_State4, _init_extra_State4, _init_StateVulnerable, _init_extra_StateVulnerable, _init_StateInvulnerable, _init_extra_StateInvulnerable, _init_PrimaryForcefield, _init_extra_PrimaryForcefield, _init_SecondaryForcefield, _init_extra_SecondaryForcefield, _init_PrimaryBanner, _init_extra_PrimaryBanner, _init_PrimaryBillboard, _init_extra_PrimaryBillboard, _init_PrimaryFx, _init_extra_PrimaryFx, _init_SecondaryFx, _init_extra_SecondaryFx, _init_PrimaryWarpFx, _init_extra_PrimaryWarpFx, _init_PrimaryAttackFx, _init_extra_PrimaryAttackFx, _init_PrimarySiegeFx, _init_extra_PrimarySiegeFx, _init_PrimaryDockedFx, _init_extra_PrimaryDockedFx;
7
7
  const COLOR_PROPERTIES = Object.freeze(["Primary", "Secondary", "Tertiary", "Black", "White", "Yellow", "Orange", "Red", "Blue", "Green", "Cyan", "Fire", "Hull", "Glass", "Reactor", "Darkhull", "Booster", "Killmark", "PrimaryLight", "SecondaryLight", "TertiaryLight", "WhiteLight", "PrimaryHologram", "SecondaryHologram", "TertiaryHologram", "State0", "State1", "State2", "State3", "StateVulnerable", "StateInvulnerable", "PrimaryForcefield", "SecondaryForcefield", "PrimaryBanner", "PrimaryFx", "SecondaryFx", "PrimarySpotlight", "SecondarySpotlight", "TertiarySpotlight", "PrimaryBillboard", "PrimaryWarpFx", "PrimaryAttackFx", "PrimarySiegeFx", "PrimaryDockedFx"]);
8
+
9
+ /**
10
+ * The SOF colour set a space object hands down to its children: one colour per
11
+ * named material slot (Primary, Hull, Booster, State0, ...) in a fixed order.
12
+ */
8
13
  let _EveChildInheritPrope;
9
14
  class EveChildInheritProperties extends CjsModel {
10
15
  static {
@@ -61,12 +66,24 @@ class EveChildInheritProperties extends CjsModel {
61
66
  PrimarySiegeFx = (_init_extra_PrimaryAttackFx(this), _init_PrimarySiegeFx(this, vec4.create()));
62
67
  PrimaryDockedFx = (_init_extra_PrimarySiegeFx(this), _init_PrimaryDockedFx(this, vec4.create()));
63
68
  #properties = (_init_extra_PrimaryDockedFx(this), COLOR_PROPERTIES.map(name => this[name]));
69
+
70
+ /**
71
+ * Copies an indexed colour set into the named colour fields in the fixed SOF
72
+ * property order; a nullish set is ignored, and the set must hold at least as
73
+ * many entries as there are properties.
74
+ */
64
75
  SetProperties(colorSet) {
65
76
  if (!colorSet) return;
66
77
  for (let index = 0; index < this.#properties.length; index++) {
67
78
  vec4.copy(this.#properties[index], colorSet[index]);
68
79
  }
69
80
  }
81
+
82
+ /**
83
+ * Returns the colour vectors in SOF property order; the array and its vectors
84
+ * are this object's live storage, not copies, so writes through it change the
85
+ * inherited colours.
86
+ */
70
87
  GetProperties() {
71
88
  return this.#properties;
72
89
  }