@carbonenginejs/runtime-trinity 0.4.3 → 0.6.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 (1234) hide show
  1. package/dist/controllers/Tr2ActionAnimateCurveSet.js +2 -2
  2. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  3. package/dist/controllers/Tr2ActionAnimateValue.js +2 -2
  4. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  5. package/dist/controllers/Tr2ActionBindRTPC.js +2 -2
  6. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  7. package/dist/controllers/Tr2ActionCallback.js +2 -2
  8. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  9. package/dist/controllers/Tr2ActionChildEffect.js +2 -2
  10. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  11. package/dist/controllers/Tr2ActionOverlay.js +2 -2
  12. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  13. package/dist/controllers/Tr2ActionPlayCurveSet.js +2 -2
  14. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  15. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +2 -2
  16. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  17. package/dist/controllers/Tr2ActionPlaySound.js +2 -2
  18. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  19. package/dist/controllers/Tr2ActionPython.js +2 -2
  20. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  21. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +4 -4
  22. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  23. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +2 -2
  24. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  25. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +2 -2
  26. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  27. package/dist/controllers/Tr2ActionSetAudioSwitch.js +2 -2
  28. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  29. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +2 -2
  30. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  31. package/dist/controllers/Tr2ActionSetShaderOption.js +2 -2
  32. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  33. package/dist/controllers/Tr2ActionSetValue.js +2 -2
  34. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  35. package/dist/controllers/Tr2ActionSpawnParticles.js +2 -2
  36. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  37. package/dist/controllers/Tr2BindingPoint.js +4 -4
  38. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  39. package/dist/controllers/Tr2Controller.js +2 -2
  40. package/dist/controllers/Tr2Controller.js.map +1 -1
  41. package/dist/controllers/Tr2ControllerEventHandler.js +2 -2
  42. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  43. package/dist/controllers/Tr2ControllerExpression.js +2 -2
  44. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  45. package/dist/controllers/Tr2ControllerFloatVariable.js +2 -2
  46. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  47. package/dist/controllers/Tr2ControllerReference.js +2 -2
  48. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  49. package/dist/controllers/Tr2StateMachine.js +2 -2
  50. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  51. package/dist/controllers/Tr2StateMachineState.js +2 -2
  52. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  53. package/dist/controllers/Tr2StateMachineTransition.js +2 -2
  54. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  55. package/dist/controllers/Tr2SyncToAnimation.js +2 -2
  56. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  57. package/dist/controllers/Tr2TimelineController.js +2 -2
  58. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  59. package/dist/controllers/Tr2TimelineEntry.js +2 -2
  60. package/dist/controllers/Tr2TimelineEntry.js.map +1 -1
  61. package/dist/curves/CjsGrannyCurves.js +13 -14
  62. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  63. package/dist/curves/Tr2BoneMatrixCurve.js +4 -4
  64. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  65. package/dist/curves/Tr2CameraFollowCurveKey.js +3 -3
  66. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  67. package/dist/curves/Tr2CurveColor.js +4 -4
  68. package/dist/curves/Tr2CurveColor.js.map +1 -1
  69. package/dist/curves/Tr2CurveColorMixer.js +4 -4
  70. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  71. package/dist/curves/Tr2CurveCombiner.js +3 -3
  72. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  73. package/dist/curves/Tr2CurveConstant.js +6 -6
  74. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  75. package/dist/curves/Tr2CurveEulerRotation.js +3 -3
  76. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  77. package/dist/curves/Tr2CurveEulerRotationExpression.js +3 -3
  78. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  79. package/dist/curves/Tr2CurveQuaternion.js +3 -3
  80. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  81. package/dist/curves/Tr2CurveQuaternionKey.js +3 -3
  82. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  83. package/dist/curves/Tr2CurveRandomAxisRotation.js +3 -3
  84. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  85. package/dist/curves/Tr2CurveScalar.js +5 -5
  86. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  87. package/dist/curves/Tr2CurveScalarExpression.js +2 -2
  88. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  89. package/dist/curves/Tr2CurveScalarKey.js +2 -2
  90. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  91. package/dist/curves/Tr2CurveSetRange.js +2 -2
  92. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  93. package/dist/curves/Tr2CurveVector2.js +3 -3
  94. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  95. package/dist/curves/Tr2CurveVector3.js +3 -3
  96. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  97. package/dist/curves/Tr2CurveVector3Expression.js +3 -3
  98. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  99. package/dist/curves/Tr2CurveVector3Lerp.js +3 -3
  100. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  101. package/dist/curves/Tr2DistanceTracker.js +3 -3
  102. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  103. package/dist/curves/Tr2FollowCurve.js +3 -3
  104. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  105. package/dist/curves/Tr2GrannyEventTrack.js +1 -1
  106. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  107. package/dist/curves/Tr2GrannyTrack.js +2 -2
  108. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  109. package/dist/curves/Tr2GrannyTransformTrack.js +3 -3
  110. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  111. package/dist/curves/Tr2GrannyVectorTrack.js +1 -1
  112. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  113. package/dist/curves/Tr2MatrixKey.js +3 -3
  114. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  115. package/dist/curves/Tr2ObjectFollowCurveKey.js +4 -4
  116. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  117. package/dist/curves/Tr2QuaternionLerpCurve.js +4 -4
  118. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  119. package/dist/curves/Tr2RotationAdapter.js +3 -3
  120. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  121. package/dist/curves/Tr2ScalarExprKey.js +3 -3
  122. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  123. package/dist/curves/Tr2ScalarExprKeyCurve.js +4 -4
  124. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  125. package/dist/curves/Tr2ScalarFader.js +3 -3
  126. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  127. package/dist/curves/Tr2TranslationAdapter.js +4 -4
  128. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  129. package/dist/curves/TriColorSequencer.js +4 -4
  130. package/dist/curves/TriColorSequencer.js.map +1 -1
  131. package/dist/curves/TriCurveSet.js +2 -2
  132. package/dist/curves/TriCurveSet.js.map +1 -1
  133. package/dist/curves/TriEventCurve.js +2 -2
  134. package/dist/curves/TriEventCurve.js.map +1 -1
  135. package/dist/curves/TriEventKey.js +2 -2
  136. package/dist/curves/TriEventKey.js.map +1 -1
  137. package/dist/curves/TriPerlinCurve.js +3 -3
  138. package/dist/curves/TriPerlinCurve.js.map +1 -1
  139. package/dist/curves/TriVectorSequencer.js +4 -4
  140. package/dist/curves/TriVectorSequencer.js.map +1 -1
  141. package/dist/eve/AudioGameObject.js +6 -6
  142. package/dist/eve/AudioGameObject.js.map +1 -1
  143. package/dist/eve/BackAndForthData.js +3 -3
  144. package/dist/eve/BackAndForthData.js.map +1 -1
  145. package/dist/eve/DecalVSPerObjectData.js +3 -3
  146. package/dist/eve/DecalVSPerObjectData.js.map +1 -1
  147. package/dist/eve/EveBannerItem.js +4 -4
  148. package/dist/eve/EveBannerItem.js.map +1 -1
  149. package/dist/eve/EveBannerLight.js +3 -3
  150. package/dist/eve/EveBannerLight.js.map +1 -1
  151. package/dist/eve/EveBannerSet.js +104 -4
  152. package/dist/eve/EveBannerSet.js.map +1 -1
  153. package/dist/eve/EveBasicPerObjectData.js +3 -3
  154. package/dist/eve/EveBasicPerObjectData.js.map +1 -1
  155. package/dist/eve/EveBoosterSet2.js +76 -6
  156. package/dist/eve/EveBoosterSet2.js.map +1 -1
  157. package/dist/eve/EveBoosterSet2Renderable.js +15 -7
  158. package/dist/eve/EveBoosterSet2Renderable.js.map +1 -1
  159. package/dist/eve/EveChildSpherePinPerObjectData.js +5 -5
  160. package/dist/eve/EveChildSpherePinPerObjectData.js.map +1 -1
  161. package/dist/eve/EveChildUpdateParams.js +4 -4
  162. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  163. package/dist/eve/EveComponentTypes.js +116 -0
  164. package/dist/eve/EveComponentTypes.js.map +1 -0
  165. package/dist/eve/EveCustomMask.js +6 -6
  166. package/dist/eve/EveCustomMask.js.map +1 -1
  167. package/dist/eve/EveDistanceField.js +3 -3
  168. package/dist/eve/EveDistanceField.js.map +1 -1
  169. package/dist/eve/EveHazeSet.js +118 -45
  170. package/dist/eve/EveHazeSet.js.map +1 -1
  171. package/dist/eve/EveHazeSetLight.js +3 -3
  172. package/dist/eve/EveHazeSetLight.js.map +1 -1
  173. package/dist/eve/EveImpactOverlay.js +3 -3
  174. package/dist/eve/EveImpactOverlay.js.map +1 -1
  175. package/dist/eve/EveLineData.js +4 -4
  176. package/dist/eve/EveLineData.js.map +1 -1
  177. package/dist/eve/EveLocator2.js +3 -3
  178. package/dist/eve/EveLocator2.js.map +1 -1
  179. package/dist/eve/EveLocatorSets.js +3 -3
  180. package/dist/eve/EveLocatorSets.js.map +1 -1
  181. package/dist/eve/EveParticleDirectForce.js +1 -1
  182. package/dist/eve/EveParticleDirectForce.js.map +1 -1
  183. package/dist/eve/EveParticleDragForce.js +1 -1
  184. package/dist/eve/EveParticleDragForce.js.map +1 -1
  185. package/dist/eve/EveParticleSpring.js +1 -1
  186. package/dist/eve/EveParticleSpring.js.map +1 -1
  187. package/dist/eve/EvePerObjectPSData.js +3 -3
  188. package/dist/eve/EvePerObjectPSData.js.map +1 -1
  189. package/dist/eve/EvePerObjectVSData.js +3 -3
  190. package/dist/eve/EvePerObjectVSData.js.map +1 -1
  191. package/dist/eve/EvePlaneLight.js +3 -3
  192. package/dist/eve/EvePlaneLight.js.map +1 -1
  193. package/dist/eve/EvePlaneSet.js +179 -74
  194. package/dist/eve/EvePlaneSet.js.map +1 -1
  195. package/dist/eve/EvePlaneSetItem.js +5 -5
  196. package/dist/eve/EvePlaneSetItem.js.map +1 -1
  197. package/dist/eve/EveSpaceObjectAttachmentUtils.js +105 -0
  198. package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +1 -0
  199. package/dist/eve/EveSpaceObjectDecal.js +5 -5
  200. package/dist/eve/EveSpaceObjectDecal.js.map +1 -1
  201. package/dist/eve/EveSpaceObjectPSData.js +5 -5
  202. package/dist/eve/EveSpaceObjectPSData.js.map +1 -1
  203. package/dist/eve/EveSpaceObjectVSData.js +4 -4
  204. package/dist/eve/EveSpaceObjectVSData.js.map +1 -1
  205. package/dist/eve/EveSpacePerObjectData.js +5 -5
  206. package/dist/eve/EveSpacePerObjectData.js.map +1 -1
  207. package/dist/eve/EveSpherePinPerObjectData.js +5 -5
  208. package/dist/eve/EveSpherePinPerObjectData.js.map +1 -1
  209. package/dist/eve/EveSpotlightLight.js +3 -3
  210. package/dist/eve/EveSpotlightLight.js.map +1 -1
  211. package/dist/eve/EveSpotlightSet.js +144 -70
  212. package/dist/eve/EveSpotlightSet.js.map +1 -1
  213. package/dist/eve/EveSpriteLight.js +3 -3
  214. package/dist/eve/EveSpriteLight.js.map +1 -1
  215. package/dist/eve/EveSpriteLineSet.js +120 -47
  216. package/dist/eve/EveSpriteLineSet.js.map +1 -1
  217. package/dist/eve/EveSpriteLineSetItem.js +5 -5
  218. package/dist/eve/EveSpriteLineSetItem.js.map +1 -1
  219. package/dist/eve/EveSpriteSet.js +164 -86
  220. package/dist/eve/EveSpriteSet.js.map +1 -1
  221. package/dist/eve/EveThrottleable.js +2 -2
  222. package/dist/eve/EveThrottleable.js.map +1 -1
  223. package/dist/eve/EveTrailsSet.js +3 -3
  224. package/dist/eve/EveTrailsSet.js.map +1 -1
  225. package/dist/eve/EveUpdateContext.js +198 -34
  226. package/dist/eve/EveUpdateContext.js.map +1 -1
  227. package/dist/eve/FollowASplineData.js +2 -2
  228. package/dist/eve/FollowASplineData.js.map +1 -1
  229. package/dist/eve/FormationData.js +2 -2
  230. package/dist/eve/FormationData.js.map +1 -1
  231. package/dist/eve/InertiaData.js +3 -3
  232. package/dist/eve/InertiaData.js.map +1 -1
  233. package/dist/eve/Locator.js +4 -4
  234. package/dist/eve/Locator.js.map +1 -1
  235. package/dist/eve/LocatorData.js +4 -4
  236. package/dist/eve/LocatorData.js.map +1 -1
  237. package/dist/eve/PlacementDataWithIdentifier.js +4 -4
  238. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  239. package/dist/eve/PlayFXData.js +3 -3
  240. package/dist/eve/PlayFXData.js.map +1 -1
  241. package/dist/eve/ProcessLifetimeData.js +2 -2
  242. package/dist/eve/ProcessLifetimeData.js.map +1 -1
  243. package/dist/eve/SeekTargetData.js +3 -3
  244. package/dist/eve/SeekTargetData.js.map +1 -1
  245. package/dist/eve/attachment/decal/DecalMeshCache.js +2 -2
  246. package/dist/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  247. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +26 -4
  248. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  249. package/dist/eve/attachment/turrets/EveTurretSet.js +133 -6
  250. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  251. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +4 -4
  252. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +1 -1
  253. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +5 -5
  254. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +1 -1
  255. package/dist/eve/attachment/turrets/EveTurretTarget.js +3 -3
  256. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  257. package/dist/eve/child/EveChildAudio.js +4 -4
  258. package/dist/eve/child/EveChildAudio.js.map +1 -1
  259. package/dist/eve/child/EveChildContainer.js +101 -66
  260. package/dist/eve/child/EveChildContainer.js.map +1 -1
  261. package/dist/eve/child/EveChildEffectPropagator.js +4 -4
  262. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  263. package/dist/eve/child/EveChildFogVolume.js +18 -5
  264. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  265. package/dist/eve/child/EveChildInheritProperties.js +3 -3
  266. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  267. package/dist/eve/child/EveChildInstanceTransform.js +4 -4
  268. package/dist/eve/child/EveChildInstanceTransform.js.map +1 -1
  269. package/dist/eve/child/EveChildInstancedMeshes.js +305 -11
  270. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  271. package/dist/eve/child/EveChildLightingOverride.js +18 -5
  272. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  273. package/dist/eve/child/EveChildMesh.js +137 -87
  274. package/dist/eve/child/EveChildMesh.js.map +1 -1
  275. package/dist/eve/child/EveChildTransform.js +31 -21
  276. package/dist/eve/child/EveChildTransform.js.map +1 -1
  277. package/dist/eve/child/EveCloudVolumeBall.js +4 -4
  278. package/dist/eve/child/EveCloudVolumeBall.js.map +1 -1
  279. package/dist/eve/child/IEveSpaceObjectChild.js +2 -2
  280. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  281. package/dist/eve/child/behaviors/DroneAgent.js +5 -5
  282. package/dist/eve/child/behaviors/DroneAgent.js.map +1 -1
  283. package/dist/eve/child/behaviors/SplineTunnel.js +2 -2
  284. package/dist/eve/child/behaviors/SplineTunnel.js.map +1 -1
  285. package/dist/eve/child/behaviors/SplineTunnelPoint.js +3 -3
  286. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +1 -1
  287. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +17 -8
  288. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  289. package/dist/eve/child/lineSetPaths/EveCircle.js +19 -8
  290. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  291. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +3 -3
  292. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  293. package/dist/eve/child/modifiers/EveChildModifierBooster.js +4 -4
  294. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  295. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +7 -6
  296. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  297. package/dist/eve/child/modifiers/EveChildModifierHalo.js +4 -4
  298. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  299. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +4 -4
  300. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  301. package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -5
  302. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  303. package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js +2 -2
  304. package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js.map +1 -1
  305. package/dist/eve/distribution/attributeModifiers/InitialPlacement.js +2 -2
  306. package/dist/eve/distribution/attributeModifiers/InitialPlacement.js.map +1 -1
  307. package/dist/eve/index.js +5 -1
  308. package/dist/eve/index.js.map +1 -1
  309. package/dist/eve/lights/CjsLightData.js +5 -5
  310. package/dist/eve/lights/CjsLightData.js.map +1 -1
  311. package/dist/eve/lights/LightFeatures.js +2 -2
  312. package/dist/eve/lights/LightFeatures.js.map +1 -1
  313. package/dist/eve/lights/Tr2Light.js +89 -4
  314. package/dist/eve/lights/Tr2Light.js.map +1 -1
  315. package/dist/eve/lights/Tr2PointLight.js +4 -4
  316. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  317. package/dist/eve/lights/Tr2SpotLight.js +4 -4
  318. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  319. package/dist/eve/lights/Tr2TexturedPointLight.js +1 -1
  320. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  321. package/dist/eve/lights/lightConversion.js +194 -0
  322. package/dist/eve/lights/lightConversion.js.map +1 -0
  323. package/dist/eve/perObjectData/DecalPSPerObjectData.js +4 -4
  324. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +1 -1
  325. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +4 -4
  326. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -1
  327. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +2 -2
  328. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +1 -1
  329. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +2 -2
  330. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +1 -1
  331. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +2 -2
  332. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  333. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +17 -4
  334. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  335. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +4 -4
  336. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  337. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +4 -4
  338. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  339. package/dist/eve/renderable/stretch/EveStretch.js +15 -5
  340. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  341. package/dist/eve/renderable/stretch/EveStretch2.js +18 -5
  342. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  343. package/dist/eve/renderable/stretch/EveStretch3.js +28 -5
  344. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  345. package/dist/eve/scene/EveSpaceScene.js +448 -21
  346. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  347. package/dist/eve/socket/EveSocketParameterFilePath.js +1 -1
  348. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  349. package/dist/eve/spaceObject/EveEffectRoot2.js +43 -7
  350. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  351. package/dist/eve/spaceObject/EveMissile.js +6 -6
  352. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  353. package/dist/eve/spaceObject/EveMissileWarhead.js +13 -16
  354. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  355. package/dist/eve/spaceObject/EveMobile.js +28 -4
  356. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  357. package/dist/eve/spaceObject/EveRootTransform.js +4 -4
  358. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  359. package/dist/eve/spaceObject/EveSpaceObject2.js +82 -9
  360. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  361. package/dist/eve/spaceObject/EveStation2.js +1 -1
  362. package/dist/eve/spaceObject/EveStation2.js.map +1 -1
  363. package/dist/eve/spaceObject/EveTransform.js +27 -23
  364. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  365. package/dist/eve/spaceObject/swarm/SwarmVehicle.js +4 -4
  366. package/dist/eve/spaceObject/swarm/SwarmVehicle.js.map +1 -1
  367. package/dist/eve/spaceObject/swarm/SwarmVehicleDebug.js +3 -3
  368. package/dist/eve/spaceObject/swarm/SwarmVehicleDebug.js.map +1 -1
  369. package/dist/eve/ui/EveEllipseDefinition.js +3 -3
  370. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  371. package/dist/eve/ui/EveEllipseSet.js +2 -2
  372. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  373. package/dist/eve/ui/EveSprite2dBracket.js +4 -4
  374. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  375. package/dist/eve/ui/EveUiObject.js +1 -1
  376. package/dist/eve/ui/EveUiObject.js.map +1 -1
  377. package/dist/eve/virtualCamera/EveVirtualCamera.js +6 -6
  378. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  379. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +2 -2
  380. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  381. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +1 -1
  382. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  383. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +2 -2
  384. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  385. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +1 -1
  386. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  387. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +1 -1
  388. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  389. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +1 -1
  390. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  391. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +4 -4
  392. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  393. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +2 -2
  394. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  395. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +2 -2
  396. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  397. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +2 -2
  398. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  399. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +2 -2
  400. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  401. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +2 -2
  402. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  403. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +2 -2
  404. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  405. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +2 -2
  406. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  407. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +3 -3
  408. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  409. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +2 -2
  410. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  411. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +2 -2
  412. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  413. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +1 -1
  414. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  415. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +2 -2
  416. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  417. package/dist/eve/volume/EveBoxVolume.js +4 -4
  418. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  419. package/dist/eve/volume/EveEllipsoidVolume.js +4 -4
  420. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  421. package/dist/eve/volume/EveSphereVolume.js +3 -3
  422. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  423. package/dist/generated/curves/Tr2VectorFunctionModifier.js +3 -3
  424. package/dist/generated/curves/Tr2VectorFunctionModifier.js.map +1 -1
  425. package/dist/generated/eve/EveCamera.js +4 -4
  426. package/dist/generated/eve/EveCamera.js.map +1 -1
  427. package/dist/generated/eve/EveEntity.js +2 -2
  428. package/dist/generated/eve/EveEntity.js.map +1 -1
  429. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +5 -5
  430. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +1 -1
  431. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +5 -5
  432. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +1 -1
  433. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js +4 -4
  434. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +1 -1
  435. package/dist/generated/eve/child/EveChildBehaviorSystem.js +2 -2
  436. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +1 -1
  437. package/dist/generated/eve/child/EveChildBulletStorm.js +5 -5
  438. package/dist/generated/eve/child/EveChildBulletStorm.js.map +1 -1
  439. package/dist/generated/eve/child/EveChildCloud.js +5 -5
  440. package/dist/generated/eve/child/EveChildCloud.js.map +1 -1
  441. package/dist/generated/eve/child/EveChildCloud2.js +805 -11
  442. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  443. package/dist/generated/eve/child/EveChildExplosion.js +21 -5
  444. package/dist/generated/eve/child/EveChildExplosion.js.map +1 -1
  445. package/dist/generated/eve/child/EveChildInstanceContainer.js +30 -2
  446. package/dist/generated/eve/child/EveChildInstanceContainer.js.map +1 -1
  447. package/dist/generated/eve/child/EveChildInstanceMeshRenderer.js +3 -3
  448. package/dist/generated/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
  449. package/dist/generated/eve/child/EveChildLineSet.js +2 -2
  450. package/dist/generated/eve/child/EveChildLineSet.js.map +1 -1
  451. package/dist/generated/eve/child/EveChildLink.js +6 -6
  452. package/dist/generated/eve/child/EveChildLink.js.map +1 -1
  453. package/dist/generated/eve/child/EveChildParticleSphere.js +3 -3
  454. package/dist/generated/eve/child/EveChildParticleSphere.js.map +1 -1
  455. package/dist/generated/eve/child/EveChildParticleSystem.js +38 -30
  456. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  457. package/dist/generated/eve/child/EveChildPlug.js +24 -2
  458. package/dist/generated/eve/child/EveChildPlug.js.map +1 -1
  459. package/dist/generated/eve/child/EveChildPostProcessVolume.js +31 -18
  460. package/dist/generated/eve/child/EveChildPostProcessVolume.js.map +1 -1
  461. package/dist/generated/eve/child/EveChildQuad.js +5 -5
  462. package/dist/generated/eve/child/EveChildQuad.js.map +1 -1
  463. package/dist/generated/eve/child/EveChildRef.js +18 -2
  464. package/dist/generated/eve/child/EveChildRef.js.map +1 -1
  465. package/dist/generated/eve/child/EveChildSocket.js +18 -2
  466. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  467. package/dist/generated/eve/child/EveChildSpherePin.js +3 -3
  468. package/dist/generated/eve/child/EveChildSpherePin.js.map +1 -1
  469. package/dist/generated/eve/child/EveCloudEditableVolume.js +2 -2
  470. package/dist/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
  471. package/dist/generated/eve/child/EveCloudVolumeTextureParameter.js +2 -2
  472. package/dist/generated/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
  473. package/dist/generated/eve/child/IEveLightingOverride.js +2 -2
  474. package/dist/generated/eve/child/IEveLightingOverride.js.map +1 -1
  475. package/dist/generated/eve/child/behaviors/Allign.js +3 -3
  476. package/dist/generated/eve/child/behaviors/Allign.js.map +1 -1
  477. package/dist/generated/eve/child/behaviors/ApproachGroup.js +3 -3
  478. package/dist/generated/eve/child/behaviors/ApproachGroup.js.map +1 -1
  479. package/dist/generated/eve/child/behaviors/BackAndForth.js +4 -4
  480. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  481. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +48 -45
  482. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  483. package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js +5 -5
  484. package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
  485. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +3 -3
  486. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +1 -1
  487. package/dist/generated/eve/child/behaviors/DroneAvoidance.js +3 -3
  488. package/dist/generated/eve/child/behaviors/DroneAvoidance.js.map +1 -1
  489. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +3 -3
  490. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  491. package/dist/generated/eve/child/behaviors/FollowASpline.js +3 -3
  492. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  493. package/dist/generated/eve/child/behaviors/Formation.js +4 -4
  494. package/dist/generated/eve/child/behaviors/Formation.js.map +1 -1
  495. package/dist/generated/eve/child/behaviors/InclusionVolume.js +3 -3
  496. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +1 -1
  497. package/dist/generated/eve/child/behaviors/Inertia.js +4 -4
  498. package/dist/generated/eve/child/behaviors/Inertia.js.map +1 -1
  499. package/dist/generated/eve/child/behaviors/PlayFX.js +2 -2
  500. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  501. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +4 -4
  502. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +1 -1
  503. package/dist/generated/eve/child/behaviors/SeekTarget.js +3 -3
  504. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  505. package/dist/generated/eve/child/behaviors/SpawnDrones.js +4 -4
  506. package/dist/generated/eve/child/behaviors/SpawnDrones.js.map +1 -1
  507. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +3 -3
  508. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +1 -1
  509. package/dist/generated/eve/child/behaviors/Wander.js +4 -4
  510. package/dist/generated/eve/child/behaviors/Wander.js.map +1 -1
  511. package/dist/generated/eve/child/lineSetPaths/EveLineChildContainer.js +1 -1
  512. package/dist/generated/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
  513. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js +3 -3
  514. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -1
  515. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js +4 -4
  516. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -1
  517. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js +5 -5
  518. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +1 -1
  519. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js +3 -3
  520. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -1
  521. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js +57 -53
  522. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
  523. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js +2 -2
  524. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -1
  525. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +2 -2
  526. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -1
  527. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js +2 -2
  528. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -1
  529. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js +2 -2
  530. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -1
  531. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js +2 -2
  532. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -1
  533. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js +2 -2
  534. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -1
  535. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js +2 -2
  536. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -1
  537. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js +2 -2
  538. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -1
  539. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js +4 -4
  540. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +1 -1
  541. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +2 -2
  542. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -1
  543. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +4 -4
  544. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -1
  545. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +4 -4
  546. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -1
  547. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js +2 -2
  548. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -1
  549. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +2 -2
  550. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -1
  551. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js +4 -4
  552. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -1
  553. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +2 -2
  554. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -1
  555. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +3 -3
  556. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -1
  557. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +4 -4
  558. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -1
  559. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +3 -3
  560. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -1
  561. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js +2 -2
  562. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -1
  563. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +2 -2
  564. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -1
  565. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js +2 -2
  566. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -1
  567. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +4 -4
  568. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -1
  569. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +3 -3
  570. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -1
  571. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +3 -3
  572. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -1
  573. package/dist/generated/eve/effect/EveLensflare.js +38 -8
  574. package/dist/generated/eve/effect/EveLensflare.js.map +1 -1
  575. package/dist/generated/eve/effect/EveMultiEffect.js +2 -2
  576. package/dist/generated/eve/effect/EveMultiEffect.js.map +1 -1
  577. package/dist/generated/eve/effect/EveMultiEffectParameter.js +2 -2
  578. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +1 -1
  579. package/dist/generated/eve/effect/EveOccluder.js +2 -2
  580. package/dist/generated/eve/effect/EveOccluder.js.map +1 -1
  581. package/dist/generated/eve/effect/EveStarfield.js +2 -2
  582. package/dist/generated/eve/effect/EveStarfield.js.map +1 -1
  583. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +3 -3
  584. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +1 -1
  585. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +4 -4
  586. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -1
  587. package/dist/generated/eve/index.js +1 -1
  588. package/dist/generated/eve/lights/Tr2FactionLight.js +4 -4
  589. package/dist/generated/eve/lights/Tr2FactionLight.js.map +1 -1
  590. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +2 -2
  591. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +1 -1
  592. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +4 -4
  593. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +1 -1
  594. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +4 -4
  595. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -1
  596. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +2 -2
  597. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +1 -1
  598. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +3 -3
  599. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -1
  600. package/dist/generated/eve/scene/EveComponentCollection.js +2 -2
  601. package/dist/generated/eve/scene/EveComponentCollection.js.map +1 -1
  602. package/dist/generated/eve/scene/EveComponentRegistry.js +13 -2
  603. package/dist/generated/eve/scene/EveComponentRegistry.js.map +1 -1
  604. package/dist/generated/eve/scene/EvePendingPickingReadback.js +2 -2
  605. package/dist/generated/eve/scene/EvePendingPickingReadback.js.map +1 -1
  606. package/dist/generated/eve/scene/EvePickingContext.js +2 -2
  607. package/dist/generated/eve/scene/EvePickingContext.js.map +1 -1
  608. package/dist/generated/eve/scene/EveSceneStaticParticles.js +129 -10
  609. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +1 -1
  610. package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.js +3 -3
  611. package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  612. package/dist/generated/eve/scene/TriShadowFrustum.js +75 -23
  613. package/dist/generated/eve/scene/TriShadowFrustum.js.map +1 -1
  614. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +130 -28
  615. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +1 -1
  616. package/dist/generated/eve/scene/index.js +1 -1
  617. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js +39 -26
  618. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  619. package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js +3 -3
  620. package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
  621. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +3 -3
  622. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  623. package/dist/generated/eve/smartLights/EveSmartLightMesh.js +1 -1
  624. package/dist/generated/eve/smartLights/EveSmartLightMesh.js.map +1 -1
  625. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +34 -33
  626. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  627. package/dist/generated/eve/smartLights/EveSmartLightQuad.js +6 -6
  628. package/dist/generated/eve/smartLights/EveSmartLightQuad.js.map +1 -1
  629. package/dist/generated/eve/smartLights/EveSmartLightSpotLight.js +1 -1
  630. package/dist/generated/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
  631. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +1 -1
  632. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -1
  633. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +2 -2
  634. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -1
  635. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +2 -2
  636. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -1
  637. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +1 -1
  638. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -1
  639. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +2 -2
  640. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -1
  641. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +2 -2
  642. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -1
  643. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +2 -2
  644. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -1
  645. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js +2 -2
  646. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +1 -1
  647. package/dist/generated/eve/socket/EveSocketParameterBool.js +1 -1
  648. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +1 -1
  649. package/dist/generated/eve/socket/EveSocketParameterColor.js +2 -2
  650. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +1 -1
  651. package/dist/generated/eve/socket/EveSocketParameterFloat.js +1 -1
  652. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +1 -1
  653. package/dist/generated/eve/socket/EveSocketParameterInt.js +1 -1
  654. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +1 -1
  655. package/dist/generated/eve/socket/EveSocketParameterString.js +2 -2
  656. package/dist/generated/eve/socket/EveSocketParameterString.js.map +1 -1
  657. package/dist/generated/eve/socket/EveSocketParameterVector2.js +2 -2
  658. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +1 -1
  659. package/dist/generated/eve/socket/EveSocketParameterVector3.js +2 -2
  660. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +1 -1
  661. package/dist/generated/eve/socket/EveSocketParameterVector4.js +2 -2
  662. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +1 -1
  663. package/dist/generated/eve/spaceObject/EvePlanet.js +54 -38
  664. package/dist/generated/eve/spaceObject/EvePlanet.js.map +1 -1
  665. package/dist/generated/eve/spaceObject/EveShip2.js +42 -22
  666. package/dist/generated/eve/spaceObject/EveShip2.js.map +1 -1
  667. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +2 -2
  668. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +1 -1
  669. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +197 -149
  670. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  671. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js +90 -5
  672. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
  673. package/dist/generated/eve/ui/EveConnector.js +4 -4
  674. package/dist/generated/eve/ui/EveConnector.js.map +1 -1
  675. package/dist/generated/eve/ui/EveCurveLineSet.js +2 -2
  676. package/dist/generated/eve/ui/EveCurveLineSet.js.map +1 -1
  677. package/dist/generated/eve/ui/EveLineContainer.js +2 -2
  678. package/dist/generated/eve/ui/EveLineContainer.js.map +1 -1
  679. package/dist/generated/eve/ui/EveLineSet.js +4 -4
  680. package/dist/generated/eve/ui/EveLineSet.js.map +1 -1
  681. package/dist/generated/eve/ui/EveProjectBracket.js +4 -4
  682. package/dist/generated/eve/ui/EveProjectBracket.js.map +1 -1
  683. package/dist/generated/eve/ui/EveSpherePin.js +5 -5
  684. package/dist/generated/eve/ui/EveSpherePin.js.map +1 -1
  685. package/dist/generated/eve/ui/EveSprite2dBracketRenderer.js +2 -2
  686. package/dist/generated/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
  687. package/dist/generated/eve/ui/EveTacticalOverlay.js +4 -4
  688. package/dist/generated/eve/ui/EveTacticalOverlay.js.map +1 -1
  689. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +3 -3
  690. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +1 -1
  691. package/dist/generated/eve/ui/EveTacticalTrails.js +2 -2
  692. package/dist/generated/eve/ui/EveTacticalTrails.js.map +1 -1
  693. package/dist/generated/font/Tr2FontManager.js +2 -2
  694. package/dist/generated/font/Tr2FontManager.js.map +1 -1
  695. package/dist/generated/font/Tr2FontMeasurer.js +2 -2
  696. package/dist/generated/font/Tr2FontMeasurer.js.map +1 -1
  697. package/dist/generated/font/Tr2SBitWrapper.js +2 -2
  698. package/dist/generated/font/Tr2SBitWrapper.js.map +1 -1
  699. package/dist/generated/index.js +1 -1
  700. package/dist/generated/particle/ITr2GenericEmitter.js +4 -4
  701. package/dist/generated/particle/ITr2GenericEmitter.js.map +1 -1
  702. package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js +4 -4
  703. package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
  704. package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js +3 -3
  705. package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
  706. package/dist/generated/particle/Tr2DynamicEmitter.js +2 -2
  707. package/dist/generated/particle/Tr2DynamicEmitter.js.map +1 -1
  708. package/dist/generated/particle/Tr2ElementBlendConstraint.js +3 -3
  709. package/dist/generated/particle/Tr2ElementBlendConstraint.js.map +1 -1
  710. package/dist/generated/particle/Tr2ForceSphereVolume.js +3 -3
  711. package/dist/generated/particle/Tr2ForceSphereVolume.js.map +1 -1
  712. package/dist/generated/particle/Tr2GpuParticleSystem.js +2 -2
  713. package/dist/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
  714. package/dist/generated/particle/Tr2ParticleSystem.js +3 -3
  715. package/dist/generated/particle/Tr2ParticleSystem.js.map +1 -1
  716. package/dist/generated/particle/Tr2ParticleTurbulenceForce.js +5 -5
  717. package/dist/generated/particle/Tr2ParticleTurbulenceForce.js.map +1 -1
  718. package/dist/generated/particle/Tr2PlaneConstraint.js +4 -4
  719. package/dist/generated/particle/Tr2PlaneConstraint.js.map +1 -1
  720. package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js +2 -2
  721. package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
  722. package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js +3 -3
  723. package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
  724. package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js +3 -3
  725. package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js.map +1 -1
  726. package/dist/generated/particle/Tr2SphereConstraint.js +4 -4
  727. package/dist/generated/particle/Tr2SphereConstraint.js.map +1 -1
  728. package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js +4 -4
  729. package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js.map +1 -1
  730. package/dist/generated/particle/Tr2StaticEmitter.js +2 -2
  731. package/dist/generated/particle/Tr2StaticEmitter.js.map +1 -1
  732. package/dist/generated/postProcess/Tr2PostProcessRenderer.js +2 -2
  733. package/dist/generated/postProcess/Tr2PostProcessRenderer.js.map +1 -1
  734. package/dist/generated/raytracing/Tr2RaytracingGeometry.js +3 -3
  735. package/dist/generated/raytracing/Tr2RaytracingGeometry.js.map +1 -1
  736. package/dist/generated/raytracing/Tr2RaytracingManager.js +2 -2
  737. package/dist/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
  738. package/dist/generated/raytracing/Tr2RaytracingMesh.js +2 -2
  739. package/dist/generated/raytracing/Tr2RaytracingMesh.js.map +1 -1
  740. package/dist/generated/raytracing/Tr2RaytracingPipelineStateManager.js +2 -2
  741. package/dist/generated/raytracing/Tr2RaytracingPipelineStateManager.js.map +1 -1
  742. package/dist/generated/renderJob/Tr2RenderNodeEffect.js +2 -2
  743. package/dist/generated/renderJob/Tr2RenderNodeEffect.js.map +1 -1
  744. package/dist/generated/renderJob/Tr2RenderNodeSprite2dScene.js +2 -2
  745. package/dist/generated/renderJob/Tr2RenderNodeSprite2dScene.js.map +1 -1
  746. package/dist/generated/renderJob/Tr2StepExecuteRenderNode.js +1 -1
  747. package/dist/generated/renderJob/Tr2StepExecuteRenderNode.js.map +1 -1
  748. package/dist/generated/renderJob/TriStepClearUav.js +2 -2
  749. package/dist/generated/renderJob/TriStepClearUav.js.map +1 -1
  750. package/dist/generated/renderJob/TriStepFilterVisibilityResults.js +1 -1
  751. package/dist/generated/renderJob/TriStepFilterVisibilityResults.js.map +1 -1
  752. package/dist/generated/renderJob/TriStepPythonCB.js +1 -1
  753. package/dist/generated/renderJob/TriStepPythonCB.js.map +1 -1
  754. package/dist/generated/renderJob/TriStepRemoteUpdate.js +1 -1
  755. package/dist/generated/renderJob/TriStepRemoteUpdate.js.map +1 -1
  756. package/dist/generated/renderJob/TriStepRenderAtlas.js +3 -3
  757. package/dist/generated/renderJob/TriStepRenderAtlas.js.map +1 -1
  758. package/dist/generated/renderJob/TriStepRenderDebug.js +2 -2
  759. package/dist/generated/renderJob/TriStepRenderDebug.js.map +1 -1
  760. package/dist/generated/renderJob/TriStepRenderEffect.js +2 -2
  761. package/dist/generated/renderJob/TriStepRenderEffect.js.map +1 -1
  762. package/dist/generated/renderJob/TriStepRenderFps.js +1 -1
  763. package/dist/generated/renderJob/TriStepRenderFps.js.map +1 -1
  764. package/dist/generated/renderJob/TriStepRenderLineGraph.js +1 -1
  765. package/dist/generated/renderJob/TriStepRenderLineGraph.js.map +1 -1
  766. package/dist/generated/renderJob/TriStepRenderObject.js +1 -1
  767. package/dist/generated/renderJob/TriStepRenderObject.js.map +1 -1
  768. package/dist/generated/renderJob/TriStepRenderPass.js +1 -1
  769. package/dist/generated/renderJob/TriStepRenderPass.js.map +1 -1
  770. package/dist/generated/renderJob/TriStepRenderScene.js +1 -1
  771. package/dist/generated/renderJob/TriStepRenderScene.js.map +1 -1
  772. package/dist/generated/renderJob/TriStepRenderSceneDebug.js +1 -1
  773. package/dist/generated/renderJob/TriStepRenderSceneDebug.js.map +1 -1
  774. package/dist/generated/renderJob/TriStepRenderTexture.js +2 -2
  775. package/dist/generated/renderJob/TriStepRenderTexture.js.map +1 -1
  776. package/dist/generated/renderJob/TriStepRunComputeShader.js +1 -1
  777. package/dist/generated/renderJob/TriStepRunComputeShader.js.map +1 -1
  778. package/dist/generated/renderJob/TriStepSetDebugRenderer.js +1 -1
  779. package/dist/generated/renderJob/TriStepSetDebugRenderer.js.map +1 -1
  780. package/dist/generated/renderJob/TriStepSetUpscalingContextID.js +1 -1
  781. package/dist/generated/renderJob/TriStepSetUpscalingContextID.js.map +1 -1
  782. package/dist/generated/renderJob/TriStepSetVariableStore.js +1 -1
  783. package/dist/generated/renderJob/TriStepSetVariableStore.js.map +1 -1
  784. package/dist/generated/renderJob/TriStepTestBlocking.js +1 -1
  785. package/dist/generated/renderJob/TriStepTestBlocking.js.map +1 -1
  786. package/dist/generated/renderJob/TriStepToggleCubemap.js +1 -1
  787. package/dist/generated/renderJob/TriStepToggleCubemap.js.map +1 -1
  788. package/dist/generated/renderJob/TriStepUpdate.js +1 -1
  789. package/dist/generated/renderJob/TriStepUpdate.js.map +1 -1
  790. package/dist/generated/sprite2d/Tr2Sprite2d.js +1 -1
  791. package/dist/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
  792. package/dist/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
  793. package/dist/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
  794. package/dist/generated/sprite2d/Tr2Sprite2dContainer.js +1 -1
  795. package/dist/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
  796. package/dist/generated/sprite2d/Tr2Sprite2dContainerBase.js +1 -1
  797. package/dist/generated/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
  798. package/dist/generated/sprite2d/Tr2Sprite2dDisplayList.js +4 -4
  799. package/dist/generated/sprite2d/Tr2Sprite2dDisplayList.js.map +1 -1
  800. package/dist/generated/sprite2d/Tr2Sprite2dFrame.js +1 -1
  801. package/dist/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
  802. package/dist/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
  803. package/dist/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
  804. package/dist/generated/sprite2d/Tr2Sprite2dLine.js +3 -3
  805. package/dist/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
  806. package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js +3 -3
  807. package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
  808. package/dist/generated/sprite2d/Tr2Sprite2dPickingMask.js +2 -2
  809. package/dist/generated/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
  810. package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js +4 -4
  811. package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
  812. package/dist/generated/sprite2d/Tr2Sprite2dRenderJob.js +1 -1
  813. package/dist/generated/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
  814. package/dist/generated/sprite2d/Tr2Sprite2dScene.js +6 -6
  815. package/dist/generated/sprite2d/Tr2Sprite2dScene.js.map +1 -1
  816. package/dist/generated/sprite2d/Tr2Sprite2dStretch.js +1 -1
  817. package/dist/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
  818. package/dist/generated/sprite2d/Tr2Sprite2dStretchVertical.js +1 -1
  819. package/dist/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
  820. package/dist/generated/sprite2d/Tr2Sprite2dTextObject.js +1 -1
  821. package/dist/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
  822. package/dist/generated/sprite2d/Tr2Sprite2dTexture.js +3 -3
  823. package/dist/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
  824. package/dist/generated/sprite2d/Tr2Sprite2dTransform.js +2 -2
  825. package/dist/generated/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
  826. package/dist/generated/sprite2d/Tr2Sprite2dVertex.js +2 -2
  827. package/dist/generated/sprite2d/Tr2Sprite2dVertex.js.map +1 -1
  828. package/dist/generated/sprite2d/Tr2SpriteObject.js +3 -3
  829. package/dist/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
  830. package/dist/generated/sprite2d/Tr2SpriteObjectBase.js +2 -2
  831. package/dist/generated/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
  832. package/dist/generated/sprite2d/Tr2TexturedSpriteObject.js +1 -1
  833. package/dist/generated/sprite2d/Tr2TexturedSpriteObject.js.map +1 -1
  834. package/dist/generated/trinityCore/ITr2FroxelFogSettings.js +2 -2
  835. package/dist/generated/trinityCore/ITr2FroxelFogSettings.js.map +1 -1
  836. package/dist/generated/trinityCore/ITr2ImpostorSource.js +3 -3
  837. package/dist/generated/trinityCore/ITr2ImpostorSource.js.map +1 -1
  838. package/dist/generated/trinityCore/ITr2InstanceData.js +2 -2
  839. package/dist/generated/trinityCore/ITr2InstanceData.js.map +1 -1
  840. package/dist/generated/trinityCore/Tr2AtlasTexture.js +2 -2
  841. package/dist/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
  842. package/dist/generated/trinityCore/Tr2BoundingLineSet.js +2 -2
  843. package/dist/generated/trinityCore/Tr2BoundingLineSet.js.map +1 -1
  844. package/dist/generated/trinityCore/Tr2CurveLineSet.js +5 -5
  845. package/dist/generated/trinityCore/Tr2CurveLineSet.js.map +1 -1
  846. package/dist/generated/trinityCore/Tr2DebugRenderer.js +4 -4
  847. package/dist/generated/trinityCore/Tr2DebugRenderer.js.map +1 -1
  848. package/dist/generated/trinityCore/Tr2Denoiser.js +2 -2
  849. package/dist/generated/trinityCore/Tr2Denoiser.js.map +1 -1
  850. package/dist/generated/trinityCore/Tr2DynamicBinding.js +2 -2
  851. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +1 -1
  852. package/dist/generated/trinityCore/Tr2ExternalParameter.js +2 -2
  853. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +1 -1
  854. package/dist/generated/trinityCore/Tr2GpuProfiler.js +2 -2
  855. package/dist/generated/trinityCore/Tr2GpuProfiler.js.map +1 -1
  856. package/dist/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
  857. package/dist/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
  858. package/dist/generated/trinityCore/Tr2GrannyAnimation.js +6 -6
  859. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +1 -1
  860. package/dist/generated/trinityCore/Tr2GrannyPrimitiveSet.js +1 -1
  861. package/dist/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
  862. package/dist/generated/trinityCore/Tr2HostBitmap.js +3 -3
  863. package/dist/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
  864. package/dist/generated/trinityCore/Tr2ImpostorManager.js +2 -2
  865. package/dist/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
  866. package/dist/generated/trinityCore/Tr2KelvinColor.js +2 -2
  867. package/dist/generated/trinityCore/Tr2KelvinColor.js.map +1 -1
  868. package/dist/generated/trinityCore/Tr2LineGraph.js +3 -3
  869. package/dist/generated/trinityCore/Tr2LineGraph.js.map +1 -1
  870. package/dist/generated/trinityCore/Tr2LineSet.js +3 -3
  871. package/dist/generated/trinityCore/Tr2LineSet.js.map +1 -1
  872. package/dist/generated/trinityCore/Tr2ManipulationTool.js +5 -5
  873. package/dist/generated/trinityCore/Tr2ManipulationTool.js.map +1 -1
  874. package/dist/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
  875. package/dist/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
  876. package/dist/generated/trinityCore/Tr2PrimitiveSet.js +4 -4
  877. package/dist/generated/trinityCore/Tr2PrimitiveSet.js.map +1 -1
  878. package/dist/generated/trinityCore/Tr2PrimitiveText.js +3 -3
  879. package/dist/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
  880. package/dist/generated/trinityCore/Tr2ProjectBoundingBoxBracket.js +2 -2
  881. package/dist/generated/trinityCore/Tr2ProjectBoundingBoxBracket.js.map +1 -1
  882. package/dist/generated/trinityCore/Tr2QuadRenderer.js +2 -2
  883. package/dist/generated/trinityCore/Tr2QuadRenderer.js.map +1 -1
  884. package/dist/generated/trinityCore/Tr2ReflectionProbe.js +4 -4
  885. package/dist/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
  886. package/dist/generated/trinityCore/Tr2RingBuffer.js +2 -2
  887. package/dist/generated/trinityCore/Tr2RingBuffer.js.map +1 -1
  888. package/dist/generated/trinityCore/Tr2RotationTool.js +2 -2
  889. package/dist/generated/trinityCore/Tr2RotationTool.js.map +1 -1
  890. package/dist/generated/trinityCore/Tr2SSAO.js +2 -2
  891. package/dist/generated/trinityCore/Tr2SSAO.js.map +1 -1
  892. package/dist/generated/trinityCore/Tr2SSSSS.js +3 -3
  893. package/dist/generated/trinityCore/Tr2SSSSS.js.map +1 -1
  894. package/dist/generated/trinityCore/Tr2ScalingTool.js +3 -3
  895. package/dist/generated/trinityCore/Tr2ScalingTool.js.map +1 -1
  896. package/dist/generated/trinityCore/Tr2ShLightingManager.js +2 -2
  897. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +1 -1
  898. package/dist/generated/trinityCore/Tr2ShadowMap.js +2 -2
  899. package/dist/generated/trinityCore/Tr2ShadowMap.js.map +1 -1
  900. package/dist/generated/trinityCore/Tr2SolidSet.js +3 -3
  901. package/dist/generated/trinityCore/Tr2SolidSet.js.map +1 -1
  902. package/dist/generated/trinityCore/Tr2StreamingBitmapSaver.js +3 -3
  903. package/dist/generated/trinityCore/Tr2StreamingBitmapSaver.js.map +1 -1
  904. package/dist/generated/trinityCore/Tr2TextureAnimation.js +2 -2
  905. package/dist/generated/trinityCore/Tr2TextureAnimation.js.map +1 -1
  906. package/dist/generated/trinityCore/Tr2TextureArray.js +3 -3
  907. package/dist/generated/trinityCore/Tr2TextureArray.js.map +1 -1
  908. package/dist/generated/trinityCore/Tr2TextureAtlas.js +3 -3
  909. package/dist/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
  910. package/dist/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
  911. package/dist/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
  912. package/dist/generated/trinityCore/Tr2TextureReference.js +2 -2
  913. package/dist/generated/trinityCore/Tr2TextureReference.js.map +1 -1
  914. package/dist/generated/trinityCore/Tr2Transform.js +5 -5
  915. package/dist/generated/trinityCore/Tr2Transform.js.map +1 -1
  916. package/dist/generated/trinityCore/Tr2TransientTextureReference.js +2 -2
  917. package/dist/generated/trinityCore/Tr2TransientTextureReference.js.map +1 -1
  918. package/dist/generated/trinityCore/Tr2TranslationTool.js +2 -2
  919. package/dist/generated/trinityCore/Tr2TranslationTool.js.map +1 -1
  920. package/dist/generated/trinityCore/Tr2VolumetricsRenderer.js +2 -2
  921. package/dist/generated/trinityCore/Tr2VolumetricsRenderer.js.map +1 -1
  922. package/dist/generated/trinityCore/TriLineSet.js +4 -4
  923. package/dist/generated/trinityCore/TriLineSet.js.map +1 -1
  924. package/dist/generated/trinityCore/TriRigidOrientation.js +4 -4
  925. package/dist/generated/trinityCore/TriRigidOrientation.js.map +1 -1
  926. package/dist/generated/trinityCore/TriValueBinding.js +3 -3
  927. package/dist/generated/trinityCore/TriValueBinding.js.map +1 -1
  928. package/dist/generated/utilities/Float4x3.js +2 -2
  929. package/dist/generated/utilities/Float4x3.js.map +1 -1
  930. package/dist/generated/utilities/Obb.js +3 -3
  931. package/dist/generated/utilities/Obb.js.map +1 -1
  932. package/dist/generated/utilities/Tr2MaterialBoundsAdjustment.js +2 -2
  933. package/dist/generated/utilities/Tr2MaterialBoundsAdjustment.js.map +1 -1
  934. package/dist/index.js +9 -2
  935. package/dist/index.js.map +1 -1
  936. package/dist/particle/Tr2GpuSharedEmitter.js +4 -4
  937. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  938. package/dist/particle/Tr2GpuUniqueEmitter.js +2 -2
  939. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  940. package/dist/particle/Tr2ParticleAttractorForce.js +3 -3
  941. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  942. package/dist/particle/Tr2ParticleDirectForce.js +3 -3
  943. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  944. package/dist/particle/Tr2ParticleDragForce.js +3 -3
  945. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  946. package/dist/particle/Tr2ParticleElementData.js +2 -2
  947. package/dist/particle/Tr2ParticleElementData.js.map +1 -1
  948. package/dist/particle/Tr2ParticleElementDeclaration.js +2 -2
  949. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  950. package/dist/particle/Tr2ParticleElementDeclarationName.js +2 -2
  951. package/dist/particle/Tr2ParticleElementDeclarationName.js.map +1 -1
  952. package/dist/particle/Tr2ParticleFluidDragForce.js +3 -3
  953. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  954. package/dist/particle/Tr2ParticleSpring.js +3 -3
  955. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  956. package/dist/particle/Tr2ParticleVortexForce.js +3 -3
  957. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  958. package/dist/postProcess/BlurContext.js +2 -2
  959. package/dist/postProcess/BlurContext.js.map +1 -1
  960. package/dist/postProcess/GaussianData.js +4 -4
  961. package/dist/postProcess/GaussianData.js.map +1 -1
  962. package/dist/postProcess/Tr2PPBloomEffect.js +2 -2
  963. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  964. package/dist/postProcess/Tr2PPColorCorrectionEffect.js +2 -2
  965. package/dist/postProcess/Tr2PPColorCorrectionEffect.js.map +1 -1
  966. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +1 -1
  967. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  968. package/dist/postProcess/Tr2PPDesaturateEffect.js +1 -1
  969. package/dist/postProcess/Tr2PPDesaturateEffect.js.map +1 -1
  970. package/dist/postProcess/Tr2PPDynamicExposureEffect.js +1 -1
  971. package/dist/postProcess/Tr2PPDynamicExposureEffect.js.map +1 -1
  972. package/dist/postProcess/Tr2PPEffect.js +2 -2
  973. package/dist/postProcess/Tr2PPEffect.js.map +1 -1
  974. package/dist/postProcess/Tr2PPFadeEffect.js +2 -2
  975. package/dist/postProcess/Tr2PPFadeEffect.js.map +1 -1
  976. package/dist/postProcess/Tr2PPFilmGrainEffect.js +1 -1
  977. package/dist/postProcess/Tr2PPFilmGrainEffect.js.map +1 -1
  978. package/dist/postProcess/Tr2PPFogEffect.js +4 -4
  979. package/dist/postProcess/Tr2PPFogEffect.js.map +1 -1
  980. package/dist/postProcess/Tr2PPGenericEffect.js +1 -1
  981. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  982. package/dist/postProcess/Tr2PPGodRaysEffect.js +2 -2
  983. package/dist/postProcess/Tr2PPGodRaysEffect.js.map +1 -1
  984. package/dist/postProcess/Tr2PPLutEffect.js +1 -1
  985. package/dist/postProcess/Tr2PPLutEffect.js.map +1 -1
  986. package/dist/postProcess/Tr2PPSignalLossEffect.js +1 -1
  987. package/dist/postProcess/Tr2PPSignalLossEffect.js.map +1 -1
  988. package/dist/postProcess/Tr2PPTaaEffect.js +1 -1
  989. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  990. package/dist/postProcess/Tr2PPTonemappingEffect.js +1 -1
  991. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  992. package/dist/postProcess/Tr2PPVignetteEffect.js +3 -3
  993. package/dist/postProcess/Tr2PPVignetteEffect.js.map +1 -1
  994. package/dist/postProcess/Tr2PostProcess.js +2 -2
  995. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  996. package/dist/postProcess/Tr2PostProcess2.js +2 -2
  997. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  998. package/dist/postProcess/Tr2PostProcessAttributes.js +5 -5
  999. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  1000. package/dist/renderJob/Tr2RenderJobs.js +2 -2
  1001. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  1002. package/dist/renderJob/TriRenderJob.js +2 -2
  1003. package/dist/renderJob/TriRenderJob.js.map +1 -1
  1004. package/dist/renderJob/TriRenderStep.js +2 -2
  1005. package/dist/renderJob/TriRenderStep.js.map +1 -1
  1006. package/dist/renderJob/TriStepClear.js +2 -2
  1007. package/dist/renderJob/TriStepClear.js.map +1 -1
  1008. package/dist/renderJob/TriStepCopyRenderTarget.js +1 -1
  1009. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  1010. package/dist/renderJob/TriStepEnableWireframeMode.js +1 -1
  1011. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  1012. package/dist/renderJob/TriStepGenerateMipMaps.js +1 -1
  1013. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  1014. package/dist/renderJob/TriStepPopDepthStencil.js +1 -1
  1015. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  1016. package/dist/renderJob/TriStepPopProjection.js +1 -1
  1017. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  1018. package/dist/renderJob/TriStepPopRenderTarget.js +1 -1
  1019. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  1020. package/dist/renderJob/TriStepPopViewTransform.js +1 -1
  1021. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  1022. package/dist/renderJob/TriStepPopViewport.js +1 -1
  1023. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  1024. package/dist/renderJob/TriStepPresentSwapChain.js +1 -1
  1025. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  1026. package/dist/renderJob/TriStepPushDepthStencil.js +1 -1
  1027. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  1028. package/dist/renderJob/TriStepPushProjection.js +1 -1
  1029. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  1030. package/dist/renderJob/TriStepPushRenderTarget.js +1 -1
  1031. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  1032. package/dist/renderJob/TriStepPushViewTransform.js +1 -1
  1033. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  1034. package/dist/renderJob/TriStepPushViewport.js +1 -1
  1035. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  1036. package/dist/renderJob/TriStepRemoteSync.js +1 -1
  1037. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  1038. package/dist/renderJob/TriStepResolve.js +1 -1
  1039. package/dist/renderJob/TriStepResolve.js.map +1 -1
  1040. package/dist/renderJob/TriStepRunJob.js +1 -1
  1041. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  1042. package/dist/renderJob/TriStepSetDepthStencil.js +1 -1
  1043. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  1044. package/dist/renderJob/TriStepSetProjection.js +1 -1
  1045. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  1046. package/dist/renderJob/TriStepSetRenderState.js +2 -2
  1047. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  1048. package/dist/renderJob/TriStepSetRenderTarget.js +1 -1
  1049. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  1050. package/dist/renderJob/TriStepSetStdRndStates.js +1 -1
  1051. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  1052. package/dist/renderJob/TriStepSetView.js +1 -1
  1053. package/dist/renderJob/TriStepSetView.js.map +1 -1
  1054. package/dist/renderJob/TriStepSetViewport.js +1 -1
  1055. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  1056. package/dist/renderJob/TriStepSetVisualizationMode.js +1 -1
  1057. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  1058. package/dist/shader/Tr2Effect.js +2 -2
  1059. package/dist/shader/Tr2Effect.js.map +1 -1
  1060. package/dist/shader/Tr2Material.js +2 -2
  1061. package/dist/shader/Tr2Material.js.map +1 -1
  1062. package/dist/shader/Tr2Shader.js +2 -2
  1063. package/dist/shader/Tr2Shader.js.map +1 -1
  1064. package/dist/shader/material/Tr2EffectLibraryParameters.js +2 -2
  1065. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  1066. package/dist/shader/material/Tr2EffectParam.js +2 -2
  1067. package/dist/shader/material/Tr2EffectParam.js.map +1 -1
  1068. package/dist/shader/material/Tr2EffectPassParameters.js +2 -2
  1069. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  1070. package/dist/shader/material/Tr2EffectTechniqueInputs.js +2 -2
  1071. package/dist/shader/material/Tr2EffectTechniqueInputs.js.map +1 -1
  1072. package/dist/shader/material/Tr2MaterialStageInput.js +2 -2
  1073. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  1074. package/dist/shader/material/Tr2SharedConstantBuffers.js +2 -2
  1075. package/dist/shader/material/Tr2SharedConstantBuffers.js.map +1 -1
  1076. package/dist/shader/parameter/CjsParameter.js +1 -1
  1077. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  1078. package/dist/shader/parameter/Tr2ConstantEffectParameter.js +2 -2
  1079. package/dist/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
  1080. package/dist/shader/parameter/Tr2FloatParameter.js +1 -1
  1081. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  1082. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  1083. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  1084. package/dist/shader/parameter/Tr2Matrix4Parameter.js +2 -2
  1085. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  1086. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +1 -1
  1087. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  1088. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +1 -1
  1089. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  1090. package/dist/shader/parameter/Tr2Vector2Parameter.js +3 -3
  1091. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  1092. package/dist/shader/parameter/Tr2Vector3Parameter.js +3 -3
  1093. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  1094. package/dist/shader/parameter/Tr2Vector4Parameter.js +3 -3
  1095. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  1096. package/dist/shader/parameter/TriFloatArrayParameter.js +1 -1
  1097. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  1098. package/dist/shader/parameter/TriTextureParameter.js +2 -2
  1099. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  1100. package/dist/shader/parameter/TriTransformParameter.js +27 -6
  1101. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  1102. package/dist/shader/parameter/TriVariableParameter.js +2 -2
  1103. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  1104. package/dist/shader/parameter/TriVector4.js +3 -3
  1105. package/dist/shader/parameter/TriVector4.js.map +1 -1
  1106. package/dist/shader/reflection/Tr2EffectConstant.js +2 -2
  1107. package/dist/shader/reflection/Tr2EffectConstant.js.map +1 -1
  1108. package/dist/shader/reflection/Tr2EffectDefine.js +2 -2
  1109. package/dist/shader/reflection/Tr2EffectDefine.js.map +1 -1
  1110. package/dist/shader/reflection/Tr2EffectDescription.js +2 -2
  1111. package/dist/shader/reflection/Tr2EffectDescription.js.map +1 -1
  1112. package/dist/shader/reflection/Tr2EffectLibrary.js +2 -2
  1113. package/dist/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  1114. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +2 -2
  1115. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  1116. package/dist/shader/reflection/Tr2EffectResource.js +2 -2
  1117. package/dist/shader/reflection/Tr2EffectResource.js.map +1 -1
  1118. package/dist/shader/reflection/Tr2EffectStageInput.js +2 -2
  1119. package/dist/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  1120. package/dist/shader/reflection/Tr2EffectTechnique.js +2 -2
  1121. package/dist/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  1122. package/dist/shader/reflection/Tr2Pass.js +2 -2
  1123. package/dist/shader/reflection/Tr2Pass.js.map +1 -1
  1124. package/dist/shader/reflection/Tr2ShaderOption.js +2 -2
  1125. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  1126. package/dist/shader/sampler/Tr2SamplerOverride.js +2 -2
  1127. package/dist/shader/sampler/Tr2SamplerOverride.js.map +1 -1
  1128. package/dist/shader/sampler/Tr2SamplerOverrideData.js +2 -2
  1129. package/dist/shader/sampler/Tr2SamplerOverrideData.js.map +1 -1
  1130. package/dist/shader/sampler/Tr2SamplerSetup.js +2 -2
  1131. package/dist/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  1132. package/dist/shader/support/Tr2DataTextureManager.js +2 -2
  1133. package/dist/shader/support/Tr2DataTextureManager.js.map +1 -1
  1134. package/dist/shader/support/Tr2EffectStateManager.js +2 -2
  1135. package/dist/shader/support/Tr2EffectStateManager.js.map +1 -1
  1136. package/dist/shader/support/Tr2ShaderBuffer.js +2 -2
  1137. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  1138. package/dist/sprite2d/Tr2Sprite2dClipRect.js +2 -2
  1139. package/dist/sprite2d/Tr2Sprite2dClipRect.js.map +1 -1
  1140. package/dist/sprite2d/Tr2Sprite2dD3DVertex.js +2 -2
  1141. package/dist/sprite2d/Tr2Sprite2dD3DVertex.js.map +1 -1
  1142. package/dist/sprite2d/Tr2Sprite2dLineTraceVertex.js +4 -4
  1143. package/dist/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
  1144. package/dist/sprite2d/Tr2Sprite2dTriangle.js +2 -2
  1145. package/dist/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
  1146. package/dist/sprite2d/Tr2Sprite2dVertexBase.js +5 -5
  1147. package/dist/sprite2d/Tr2Sprite2dVertexBase.js.map +1 -1
  1148. package/dist/trinityCore/CjsBatchManager.js +7 -1
  1149. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  1150. package/dist/trinityCore/GrannyBoneOffset.js +5 -5
  1151. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  1152. package/dist/trinityCore/ITriRenderBatchAccumulator.js +28 -2
  1153. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  1154. package/dist/trinityCore/Tr2BindingVector3.js +3 -3
  1155. package/dist/trinityCore/Tr2BindingVector3.js.map +1 -1
  1156. package/dist/trinityCore/Tr2DepthStencil.js +3 -3
  1157. package/dist/trinityCore/Tr2DepthStencil.js.map +1 -1
  1158. package/dist/trinityCore/Tr2DirectInstanceData.js +3 -3
  1159. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  1160. package/dist/trinityCore/Tr2ExpressionTermInfo.js +2 -2
  1161. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  1162. package/dist/trinityCore/Tr2GpuBuffer.js +3 -3
  1163. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  1164. package/dist/trinityCore/Tr2InstancedMesh.js +2 -2
  1165. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  1166. package/dist/trinityCore/Tr2MaterialParameterStore.js +2 -2
  1167. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  1168. package/dist/trinityCore/Tr2Mesh.js +1 -1
  1169. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  1170. package/dist/trinityCore/Tr2MeshArea.js +2 -2
  1171. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  1172. package/dist/trinityCore/Tr2MeshBase.js +3 -3
  1173. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  1174. package/dist/trinityCore/Tr2PrimaryRenderContext.js +2 -2
  1175. package/dist/trinityCore/Tr2PrimaryRenderContext.js.map +1 -1
  1176. package/dist/trinityCore/Tr2PyValueBinding.js +2 -2
  1177. package/dist/trinityCore/Tr2PyValueBinding.js.map +1 -1
  1178. package/dist/trinityCore/Tr2RenderBatch.js +2 -2
  1179. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  1180. package/dist/trinityCore/Tr2RenderContext.js +4 -4
  1181. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  1182. package/dist/trinityCore/Tr2RenderTarget.js +3 -3
  1183. package/dist/trinityCore/Tr2RenderTarget.js.map +1 -1
  1184. package/dist/trinityCore/Tr2RuntimeGpuBuffer.js +2 -2
  1185. package/dist/trinityCore/Tr2RuntimeGpuBuffer.js.map +1 -1
  1186. package/dist/trinityCore/Tr2RuntimeInstanceData.js +3 -3
  1187. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  1188. package/dist/trinityCore/Tr2SerializedMorphAnimation.js +2 -2
  1189. package/dist/trinityCore/Tr2SerializedMorphAnimation.js.map +1 -1
  1190. package/dist/trinityCore/Tr2SwapChain.js +2 -2
  1191. package/dist/trinityCore/Tr2SwapChain.js.map +1 -1
  1192. package/dist/trinityCore/Tr2VariableStore.js +2 -2
  1193. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  1194. package/dist/trinityCore/Tr2VisibilityResults.js +4 -4
  1195. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  1196. package/dist/trinityCore/TriDevice.js +3 -3
  1197. package/dist/trinityCore/TriDevice.js.map +1 -1
  1198. package/dist/trinityCore/TriFloat.js +2 -2
  1199. package/dist/trinityCore/TriFloat.js.map +1 -1
  1200. package/dist/trinityCore/TriFrustum.js +374 -0
  1201. package/dist/trinityCore/TriFrustum.js.map +1 -0
  1202. package/dist/trinityCore/TriFrustumOrtho.js +158 -0
  1203. package/dist/trinityCore/TriFrustumOrtho.js.map +1 -0
  1204. package/dist/trinityCore/TriObserverLocal.js +3 -3
  1205. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  1206. package/dist/trinityCore/TriProjection.js +3 -3
  1207. package/dist/trinityCore/TriProjection.js.map +1 -1
  1208. package/dist/trinityCore/TriRect.js +2 -2
  1209. package/dist/trinityCore/TriRect.js.map +1 -1
  1210. package/dist/trinityCore/TriRenderBatchAccumulator.js +2 -2
  1211. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  1212. package/dist/trinityCore/TriRenderBatchMap.js +10 -1
  1213. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  1214. package/dist/trinityCore/TriSettings.js +2 -2
  1215. package/dist/trinityCore/TriSettings.js.map +1 -1
  1216. package/dist/trinityCore/TriTorque.js +4 -4
  1217. package/dist/trinityCore/TriTorque.js.map +1 -1
  1218. package/dist/trinityCore/TriVariable.js +2 -2
  1219. package/dist/trinityCore/TriVariable.js.map +1 -1
  1220. package/dist/trinityCore/TriView.js +3 -3
  1221. package/dist/trinityCore/TriView.js.map +1 -1
  1222. package/dist/trinityCore/TriViewport.js +2 -2
  1223. package/dist/trinityCore/TriViewport.js.map +1 -1
  1224. package/dist/trinityCore/index.js +4 -0
  1225. package/dist/trinityCore/index.js.map +1 -1
  1226. package/dist/trinityCore/rawData/RawData.js +178 -0
  1227. package/dist/trinityCore/rawData/RawData.js.map +1 -0
  1228. package/dist/trinityCore/rawData/RawDataStore.js +232 -0
  1229. package/dist/trinityCore/rawData/RawDataStore.js.map +1 -0
  1230. package/dist/ui/Tr2PresentParameters.js +2 -2
  1231. package/dist/ui/Tr2PresentParameters.js.map +1 -1
  1232. package/dist/utilities/Range.js +2 -2
  1233. package/dist/utilities/Range.js.map +1 -1
  1234. package/package.json +2 -4
@@ -1 +1 @@
1
- {"version":3,"file":"EveSpaceObject2.js","sources":["../../../../src/eve/spaceObject/EveSpaceObject2.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2_Blue.cpp\r\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../../generated/eve/EveEntity.js\";\r\nimport { EveChildUpdateParams } from \"../EveChildUpdateParams.js\";\r\nimport { EveChildInheritProperties } from \"../child/EveChildInheritProperties.js\";\r\nimport { box3 } from \"@carbonenginejs/core-math/box3\";\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { quat } from \"@carbonenginejs/core-math/quat\";\r\nimport { sph3 } from \"@carbonenginejs/core-math/sph3\";\r\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\r\nimport { ReflectionMode } from \"../../generated/eve/enums.js\";\r\nimport { ImpactConfiguration } from \"../../generated/include/enums.js\";\r\nimport { EveLODHelper, Tr2Lod } from \"../EveLODHelper.js\";\r\nimport { TriBatchType } from \"@carbonenginejs/runtime-const/graphics\";\r\nimport { Tr2PerObjectData } from \"../../trinityCore/Tr2PerObjectData.js\";\r\nimport { Tr2RenderBatch, TriRenderBatchAreaBlock } from \"../../trinityCore/Tr2RenderBatch.js\";\r\n\r\n// Static scratch for the sorted-transparent area pass (allocation rules: hot\r\n// per-frame path, copy-into, never allocate per call).\r\nconst TRANSPARENT_AABB_MIN = vec3.create();\r\nconst TRANSPARENT_AABB_MAX = vec3.create();\r\nconst TRANSPARENT_CENTER = vec3.create();\r\n\r\n// Carbon EveMeshOverlayEffect::OverlayType (EveMeshOverlayEffect.h:35-41).\r\nconst OVERLAY_TYPE_OPAQUEONLY = 0;\r\nconst OVERLAY_TYPE_ALL = 1;\r\n\r\n@type.define({ className: \"EveSpaceObject2\", family: \"eve/spaceObject\" })\r\nexport class EveSpaceObject2 extends EveEntity\r\n{\r\n\r\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"ReflectionMode\")\r\n reflectionMode = 3;\r\n\r\n /** m_effectChildren (PIEveSpaceObjectChildVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectChild\")\r\n effectChildren = [];\r\n\r\n /** m_children (PIEveTransformVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveTransform\")\r\n children = [];\r\n\r\n /** m_name (std::string) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_mute (bool) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n mute = false;\r\n\r\n /** m_inheritProperties (EveChildInheritPropertiesPtr) [READWRITE] */\r\n @io.readwrite\r\n @type.objectRef(\"EveChildInheritProperties\")\r\n inheritProperties = null;\r\n\r\n /** m_customMasks (PEveCustomMaskVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveCustomMask\")\r\n customMasks = [];\r\n\r\n /** m_overlayEffects (PEveMeshOverlayEffectVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveMeshOverlayEffect\")\r\n overlayEffects = [];\r\n\r\n /** m_positionDelta (Tr2BindingVector3Ptr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2BindingVector3\")\r\n positionDelta = null;\r\n\r\n /** m_lodLevel (Tr2Lod - enum Tr2Lod) [READ] */\r\n @io.read\r\n @type.int32\r\n @schema.enum(\"Tr2Lod\")\r\n lodLevel = -1;\r\n\r\n /** m_curveSets (PTriCurveSetVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriCurveSet\")\r\n curveSets = [];\r\n\r\n /** m_isPickable (bool) [READWRITE] */\r\n @io.readwrite\r\n @type.boolean\r\n isPickable = true;\r\n\r\n /** m_estimatedPixelDiameter (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedPixelDiameter = 0;\r\n\r\n /** m_estimatedPixelDiameterWithChildren (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedPixelDiameterWithChildren = 0;\r\n\r\n /** m_generatedShapeEllipsoidCenter (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n generatedShapeEllipsoidCenter = vec3.create();\r\n\r\n /** m_generatedShapeEllipsoidRadius (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n generatedShapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\r\n\r\n /** m_animationUpdater (Tr2GrannyAnimationPtr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2GrannyAnimation\")\r\n animationUpdater = null;\r\n\r\n /** m_dna (std::string) [READ, PERSIST] */\r\n @io.persist\r\n @type.string\r\n dna = \"\";\r\n\r\n /** m_castShadow (bool) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n castShadow = false;\r\n\r\n /** m_isAnimated (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n isAnimated = false;\r\n\r\n /** m_dynamicBoundingSphereEnabled (bool) [READ, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n dynamicBoundingSphereEnabled = false;\r\n\r\n /** m_attachments (PIEveSpaceObjectAttachmentVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectAttachment\")\r\n attachments = [];\r\n\r\n /** m_decals (PEveSpaceObjectDecalVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveSpaceObjectDecal\")\r\n decals = [];\r\n\r\n /** m_lights (PTr2LightVector) [READ, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n /** m_externalParameters (PTr2ExternalParameterVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"Tr2ExternalParameter\")\r\n externalParameters = [];\r\n\r\n /** m_controllers (PITr2ControllerVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"ITr2Controller\")\r\n controllers = [];\r\n\r\n /** m_locators (PEveLocator2Vector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveLocator2\")\r\n locators = [];\r\n\r\n /** m_mesh (Tr2MeshBasePtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"Tr2MeshBase\")\r\n mesh = null;\r\n\r\n /** m_impactOverlay (EveImpactOverlayPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"EveImpactOverlay\")\r\n impactOverlay = null;\r\n\r\n /** m_clipSphereCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n clipSphereCenter = vec3.create();\r\n\r\n /** m_clipSphereFactor2 (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n clipSphereFactor2 = 0;\r\n\r\n /** m_clipSphereFactor (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n clipSphereFactor = 0;\r\n\r\n /** m_observers (PTriObserverLocalVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriObserverLocal\")\r\n observers = [];\r\n\r\n /** m_worldPosition (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n worldPosition = vec3.create();\r\n\r\n /** m_ballRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriQuaternionFunction\")\r\n rotationCurve = null;\r\n\r\n /** m_worldRotation (Quaternion) [READ] */\r\n @io.read\r\n @type.quat\r\n worldRotation = quat.create();\r\n\r\n /** m_modelScale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n modelScale = 1;\r\n\r\n /** m_locatorSets (PEveLocatorSetsVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveLocatorSets\")\r\n locatorSets = [];\r\n\r\n /** m_activationStrength (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n activationStrength = 1;\r\n\r\n /** m_albedoColor (Color) [READWRITE] */\r\n @io.readwrite\r\n @type.color\r\n albedoColor = vec4.createLinear();\r\n\r\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_update (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n update = true;\r\n\r\n /** m_secondaryLightingSphereRadius (float) [READ] */\r\n @io.read\r\n @type.float32\r\n secondaryLightingSphereRadius = 0;\r\n\r\n /** m_boundingSphereCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n boundingSphereCenter = vec3.create();\r\n\r\n /** m_dirtLevel (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n dirtLevel = 0;\r\n\r\n /** m_psData.customData (Vector4) [READWRITE] - script/SOF-driven custom shader data. */\r\n @io.readwrite\r\n @type.vec4\r\n customShaderData = vec4.create();\r\n\r\n /** m_lastDamageLocatorHit (int) [READ] */\r\n @io.read\r\n @type.int32\r\n lastDamageLocatorHit = -1;\r\n\r\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n boundingSphereRadius = -1;\r\n\r\n /** m_boundingSphereWorldCenter (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n modelWorldPosition = vec3.create();\r\n\r\n /** m_modelTranslation (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriVectorFunction\")\r\n modelTranslationCurve = null;\r\n\r\n /** m_modelRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriQuaternionFunction\")\r\n modelRotationCurve = null;\r\n\r\n /** m_shapeEllipsoidCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n shapeEllipsoidCenter = vec3.create();\r\n\r\n /** m_shapeEllipsoidRadius (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n shapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\r\n\r\n /** m_ballPosition (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriVectorFunction\")\r\n translationCurve = null;\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.mat4\r\n inverseWorldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.mat4\r\n lastWorldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.vec3\r\n worldVelocity = vec3.create();\r\n\r\n @io.readwrite\r\n @type.objectRef(\"ITr2AudGeometry\")\r\n audioGeometry = null;\r\n\r\n @type.boolean\r\n isVisible = false;\r\n\r\n #controllerVariables = new Map([\r\n [\"DirtLevel\", 0],\r\n [\"ActivationStrength\", 1],\r\n [\"ShieldDamage\", 1],\r\n [\"ArmorDamage\", 1],\r\n [\"HullDamage\", 1],\r\n [\"ClipSphereFactor\", 0],\r\n [\"ClipSphereFactor2\", 0]\r\n ]);\r\n\r\n #lastUpdateTransformTime = null;\r\n\r\n // Carbon m_lastCurveUpdateTime: stamped by the sync-side LOD gate; the async\r\n // side updates curve sets only when it matches the frame time.\r\n #lastCurveUpdateTime = 0;\r\n\r\n // Carbon m_dynamicBoundingSphere: disabled while w is -1; a future animation\r\n // updater port publishes skinned bounds here.\r\n #dynamicBoundingSphere = sph3.set(sph3.create(), 0, 0, 0, -1);\r\n\r\n // Carbon keeps the realized world sphere separate from the authored local\r\n // sphere. It is refreshed by UpdateWorldBounds after transform changes.\r\n #boundingSphereWorldRadius = -1;\r\n\r\n // Carbon visibility and mesh LOD state are runtime-only renderer results.\r\n #isInFrustum = false;\r\n\r\n #isMeshVisible = false;\r\n\r\n #lodLevelWithChildren = Tr2Lod.TR2_LOD_UNSPECIFIED;\r\n\r\n #meshScreenSize = 0;\r\n\r\n #overlayMeshAreaBlocks = [ [], [] ];\r\n\r\n #shadowMeshOpaqueAreas = [];\r\n\r\n #cachedAreaBlocksBuilt = false;\r\n\r\n // Carbon m_localAabbMin/Max: cached so GetLocalBoundingBox can answer before\r\n // LOD selection assigns a mesh (at worst it lags one frame).\r\n #localAabbMin = vec3.create();\r\n\r\n #localAabbMax = vec3.create();\r\n\r\n // Carbon m_allowLodSelection: cleared by FreezeHighDetailMesh.\r\n #allowLodSelection = true;\r\n\r\n // Carbon m_impostorMode: the impostor system that raises it is unported.\r\n #impostorMode = false;\r\n\r\n get meshLod()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n set meshLod(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n if (!controller?.IsLinked?.())\r\n {\r\n controller?.Link?.(this);\r\n }\r\n }\r\n // Authored inherit properties propagate as part of the lifecycle so a\r\n // field-populated graph (values import, document hydration) matches the\r\n // SetInheritProperties authoring path.\r\n if (this.inheritProperties)\r\n {\r\n this.#PropagateInheritProperties();\r\n }\r\n // Carbon derives the impact overlay's damage locator count from the\r\n // \"damage\" locator set at build time; deriving it here keeps it out of\r\n // the authored values while reproducing the same live state.\r\n if (this.impactOverlay)\r\n {\r\n let damageLocatorCount = 0;\r\n for (const set of this.locatorSets)\r\n {\r\n if (set?.HasName?.(\"damage\")) damageLocatorCount += set.locators.length;\r\n }\r\n this.impactOverlay.SetDamageLocatorCount(damageLocatorCount);\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetMesh()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMesh(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddController(controller)\r\n {\r\n this.controllers.push(controller);\r\n if (!controller?.IsLinked?.())\r\n {\r\n controller?.Link?.(this);\r\n }\r\n EveSpaceObject2.#ApplyControllerVariables(controller, this.#controllerVariables, \"SetVariable\");\r\n return controller;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddObserver(observer)\r\n {\r\n this.observers.push(observer);\r\n return observer;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetInheritProperties(colorSet)\r\n {\r\n if (!this.inheritProperties)\r\n {\r\n this.inheritProperties = new EveChildInheritProperties();\r\n }\r\n this.inheritProperties.SetProperties(colorSet);\r\n this.#PropagateInheritProperties();\r\n }\r\n\r\n #PropagateInheritProperties()\r\n {\r\n const properties = this.inheritProperties.GetProperties();\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetInheritProperties?.(properties);\r\n }\r\n for (const light of this.lights)\r\n {\r\n light?.SetInheritProperties?.(properties);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetEffectChildByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const child of this.effectChildren)\r\n {\r\n if ((child?.GetName?.() ?? child?.name ?? \"\") === target)\r\n {\r\n return child;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddToEffectChildrenList(child)\r\n {\r\n if (this.inheritProperties)\r\n {\r\n child?.SetInheritProperties?.(this.inheritProperties.GetProperties());\r\n }\r\n this.effectChildren.push(child);\r\n EveSpaceObject2.#ApplyControllerVariables(child, this.#controllerVariables, \"SetControllerVariable\");\r\n return child;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddLight(light)\r\n {\r\n if (this.inheritProperties)\r\n {\r\n light?.SetInheritProperties?.(this.inheritProperties.GetProperties());\r\n }\r\n this.lights.push(light);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ClearLights()\r\n {\r\n this.lights.length = 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n RemoveFromEffectChildrenList(child)\r\n {\r\n const index = this.effectChildren.indexOf(child);\r\n if (index === -1)\r\n {\r\n return false;\r\n }\r\n this.effectChildren.splice(index, 1);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetModelRotationCurve(curve)\r\n {\r\n this.modelRotationCurve = curve ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetModelRotationCurve()\r\n {\r\n return this.modelRotationCurve;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetModelTranslationCurve(curve)\r\n {\r\n this.modelTranslationCurve = curve ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetModelTranslationCurve()\r\n {\r\n return this.modelTranslationCurve;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateWorldTransform(time)\r\n {\r\n const nextTime = Number(time) || 0;\r\n if (this.#lastUpdateTransformTime === nextTime)\r\n {\r\n return false;\r\n }\r\n this.#lastUpdateTransformTime = nextTime;\r\n mat4.copy(this.lastWorldTransform, this.worldTransform);\r\n\r\n EveSpaceObject2.#UpdateCurve(this.translationCurve, nextTime, this.worldPosition, EveSpaceObject2.#zero);\r\n if (this.translationCurve?.GetValueDotAt)\r\n {\r\n this.translationCurve.GetValueDotAt(nextTime, this.worldVelocity);\r\n }\r\n else\r\n {\r\n vec3.set(this.worldVelocity, 0, 0, 0);\r\n }\r\n\r\n EveSpaceObject2.#UpdateCurve(this.rotationCurve, nextTime, this.worldRotation, EveSpaceObject2.#identityRotation);\r\n const rotation = quat.clone(this.worldRotation);\r\n if (this.modelRotationCurve)\r\n {\r\n const modelRotation = quat.create();\r\n EveSpaceObject2.#UpdateCurve(this.modelRotationCurve, nextTime, modelRotation, EveSpaceObject2.#identityRotation);\r\n // Carbon (row-vector): rotation = modelRotation * m_worldRotation - model first.\r\n quat.multiply(rotation, rotation, modelRotation);\r\n }\r\n\r\n mat4.fromQuat(this.worldTransform, rotation);\r\n if (this.modelScale !== 1)\r\n {\r\n mat4.scale(this.worldTransform, this.worldTransform, [this.modelScale, this.modelScale, this.modelScale]);\r\n }\r\n\r\n if (this.modelTranslationCurve)\r\n {\r\n const modelTranslation = vec3.create();\r\n EveSpaceObject2.#UpdateCurve(this.modelTranslationCurve, nextTime, modelTranslation, EveSpaceObject2.#zero);\r\n vec3.transformMat4(modelTranslation, modelTranslation, this.worldTransform);\r\n this.worldTransform[12] = this.worldPosition[0] + modelTranslation[0];\r\n this.worldTransform[13] = this.worldPosition[1] + modelTranslation[1];\r\n this.worldTransform[14] = this.worldPosition[2] + modelTranslation[2];\r\n }\r\n else\r\n {\r\n this.worldTransform[12] = this.worldPosition[0];\r\n this.worldTransform[13] = this.worldPosition[1];\r\n this.worldTransform[14] = this.worldPosition[2];\r\n }\r\n\r\n if (!mat4.invert(this.inverseWorldTransform, this.worldTransform))\r\n {\r\n mat4.identity(this.inverseWorldTransform);\r\n }\r\n this.UpdateWorldBounds();\r\n return true;\r\n }\r\n\r\n /**\r\n * Refreshes Carbon's realized world-space sphere from the dynamic skinned\r\n * sphere when available, otherwise from the authored local sphere.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The browser runtime refreshes the cache with world-transform updates instead of Carbon's renderer-side PrepareShaderData pass.\")\r\n UpdateWorldBounds()\r\n {\r\n const updater = this.animationUpdater;\r\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\r\n {\r\n updater.GetDynamicBounds?.(this.#dynamicBoundingSphere, this.#localAabbMin, this.#localAabbMax);\r\n if (this.#dynamicBoundingSphere[3] > 0)\r\n {\r\n vec3.transformMat4(this.modelWorldPosition, this.#dynamicBoundingSphere, this.worldTransform);\r\n this.#boundingSphereWorldRadius = this.modelScale * this.#dynamicBoundingSphere[3];\r\n return true;\r\n }\r\n }\r\n if (this.boundingSphereRadius > 0)\r\n {\r\n vec3.transformMat4(this.modelWorldPosition, this.boundingSphereCenter, this.worldTransform);\r\n this.#boundingSphereWorldRadius = this.modelScale * this.boundingSphereRadius;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateSyncronous(updateContext = null)\r\n {\r\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\r\n this.UpdateWorldTransform(time);\r\n if (!this.update)\r\n {\r\n return false;\r\n }\r\n\r\n const observerTransform = this.GetObserverTransform();\r\n for (const observer of this.observers)\r\n {\r\n observer?.Update?.(observerTransform);\r\n }\r\n\r\n // LOD-gated curve/overlay stamp (Carbon EveSpaceObject2::UpdateSyncronous:\r\n // ShouldUpdate(m_lodLevelWithChildren, time - m_lastCurveUpdateTime) -\r\n // adapted to lodLevel, m_lodLevelWithChildren is unported). Overlay effects\r\n // receive the context time as BOTH clocks, as Carbon does; the async pass\r\n // updates curve sets only on frames stamped here.\r\n if (EveLODHelper.ShouldUpdate(this.lodLevel, time - this.#lastCurveUpdateTime))\r\n {\r\n this.#lastCurveUpdateTime = time;\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.Update?.(time, time);\r\n }\r\n }\r\n\r\n if (this.effectChildren.length)\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.spaceObjectParent = this;\r\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\r\n params.activationStrength = this.activationStrength;\r\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\r\n for (const child of this.effectChildren)\r\n {\r\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\r\n child?.UpdateSyncronous?.(updateContext, params);\r\n }\r\n }\r\n\r\n this.impactOverlay?.UpdateSyncronous?.(updateContext, this);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext = null)\r\n {\r\n if (!this.update)\r\n {\r\n return 0;\r\n }\r\n\r\n const threshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetHighDetailThreshold\", \"highDetailThreshold\");\r\n const frequency = this.isVisible && threshold > 0\r\n ? Math.min(1, this.estimatedPixelDiameter / threshold)\r\n : 0;\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Update?.(frequency);\r\n }\r\n\r\n // Object-level curve sets update only on frames the sync-side LOD gate\r\n // stamped, receiving the context time as BOTH realTime and simTime\r\n // (Carbon EveSpaceObject2::UpdateAsyncronous: if (m_lastCurveUpdateTime ==\r\n // time) (*it)->Update(time, time)).\r\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\r\n if (this.#lastCurveUpdateTime === time)\r\n {\r\n for (const curveSet of this.curveSets)\r\n {\r\n curveSet?.Update?.(time, time);\r\n }\r\n }\r\n\r\n for (const child of this.children)\r\n {\r\n child?.Update?.(updateContext);\r\n }\r\n\r\n if (this.effectChildren.length)\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.spaceObjectParent = this;\r\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\r\n params.activationStrength = this.activationStrength;\r\n params.controllerUpdateFrequency = frequency;\r\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\r\n for (const child of this.effectChildren)\r\n {\r\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\r\n child?.UpdateAsyncronous?.(updateContext, params);\r\n }\r\n }\r\n\r\n this.impactOverlay?.UpdateAsyncronous?.(updateContext, this);\r\n return frequency;\r\n }\r\n\r\n /**\r\n * Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards\r\n * visibility to the explicitly owned visual branches.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.\")\r\n UpdateVisibility(updateContext = null, _parentTransform = EveSpaceObject2.#identityTransform)\r\n {\r\n this.isVisible = false;\r\n this.#isMeshVisible = false;\r\n this.#isInFrustum = false;\r\n if (!this.display)\r\n {\r\n return false;\r\n }\r\n\r\n this.UpdateWorldBounds();\r\n this.lodLevel = Tr2Lod.TR2_LOD_LOW;\r\n this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\r\n this.#impostorMode = false;\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const lowThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetLowDetailThreshold\", \"lowDetailThreshold\");\r\n const mediumThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetMediumDetailThreshold\", \"mediumDetailThreshold\");\r\n const visibilityThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetVisibilityThreshold\", \"visibilityThreshold\");\r\n const lodFactor = EveSpaceObject2.#GetContextValue(updateContext, \"GetLodFactor\", \"lodFactor\") || 1;\r\n\r\n if (this.boundingSphereRadius > 0 && this.#boundingSphereWorldRadius > 0)\r\n {\r\n EveSpaceObject2.#SetSphere(\r\n EveSpaceObject2.#worldSphere,\r\n this.modelWorldPosition,\r\n this.#boundingSphereWorldRadius\r\n );\r\n if (frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false)\r\n {\r\n this.EstimatePixelDiameter(frustum);\r\n this.#isMeshVisible = true;\r\n }\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n if (attachment?.UpdateVisibility?.(updateContext, this.worldTransform, null, 0))\r\n {\r\n this.#isMeshVisible = true;\r\n this.isVisible = true;\r\n }\r\n }\r\n\r\n if (this.DisplayChildren())\r\n {\r\n for (const child of this.children)\r\n {\r\n child?.UpdateVisibility?.(updateContext, this.worldTransform);\r\n }\r\n }\r\n\r\n if (this.GetBoundingSphere(EveSpaceObject2.#worldSphere, 1))\r\n {\r\n this.#isInFrustum = frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false;\r\n this.estimatedPixelDiameterWithChildren = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\r\n if (this.#isInFrustum && this.estimatedPixelDiameterWithChildren >= visibilityThreshold)\r\n {\r\n this.isVisible = true;\r\n }\r\n }\r\n\r\n if (this.isVisible)\r\n {\r\n if (this.estimatedPixelDiameter > mediumThreshold) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\r\n else if (this.estimatedPixelDiameter > lowThreshold) this.lodLevel = Tr2Lod.TR2_LOD_MEDIUM;\r\n\r\n if (this.estimatedPixelDiameterWithChildren > mediumThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_HIGH;\r\n else if (this.estimatedPixelDiameterWithChildren > lowThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_MEDIUM;\r\n else this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\r\n }\r\n\r\n for (const observer of this.observers)\r\n {\r\n const target = observer?.GetObserver?.() ?? observer?.observer;\r\n target?.SetVisibility?.(this.isVisible);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.UpdateVisibility?.(updateContext, this.worldTransform, this.#lodLevelWithChildren);\r\n }\r\n\r\n if (this.mesh && this.#boundingSphereWorldRadius > 0)\r\n {\r\n EveSpaceObject2.#SetSphere(\r\n EveSpaceObject2.#worldSphere,\r\n this.modelWorldPosition,\r\n this.#boundingSphereWorldRadius\r\n );\r\n this.#meshScreenSize = EveSpaceObject2.#GetEstimatedPixelSize(frustum, EveSpaceObject2.#worldSphere) * lodFactor;\r\n if (!this.#allowLodSelection) this.#meshScreenSize = Infinity;\r\n this.mesh.UseWithScreenSize?.(this.#meshScreenSize, this.#boundingSphereWorldRadius);\r\n }\r\n return this.isVisible;\r\n }\r\n\r\n /** Collects the hull and explicitly owned Carbon child/decal renderables. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!this.display || !this.isVisible) return out;\r\n if (this.#allowLodSelection && this.#isMeshVisible)\r\n {\r\n this.mesh?.GetBoundingBox?.(this.#localAabbMin, this.#localAabbMax);\r\n }\r\n if (this.mesh && this.#isMeshVisible && this.mesh.IsLoading?.() !== true)\r\n {\r\n out.push(this);\r\n }\r\n if (this.DisplayChildren())\r\n {\r\n for (const child of this.children) child?.GetRenderables?.(out);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n if (this.DisplayChildren() || child?.IsAlwaysOn?.()) child?.GetRenderables?.(out);\r\n }\r\n if (this.mesh && this.#isMeshVisible)\r\n {\r\n const geometryResource = this.mesh.GetGeometryResource?.();\r\n if (geometryResource)\r\n {\r\n for (const decal of this.decals)\r\n {\r\n decal?.GetRenderables?.(out, null, geometryResource, this.#meshScreenSize);\r\n }\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated\r\n * attachments recurse, the impact overlay contributes, the hull mesh delegates\r\n * per batch type, and TRANSPARENT routes through the distance-sorted area\r\n * path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is\r\n * deferred with the overlay realization work. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.\")\r\n GetBatches(batches, batchType, perObjectData, reason, renderContext = null)\r\n {\r\n if (!this.mesh) return false;\r\n if (this.mesh.display === false) return false;\r\n\r\n // Returns whether any batch was committed (JS addition; Carbon returns\r\n // void). The O(1) accumulator count makes the delta check free.\r\n const committedBefore = batches.GetBatchCount?.() ?? 0;\r\n\r\n if (this.activationStrength !== 0)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.GetBatches?.(batches, batchType, perObjectData, reason);\r\n }\r\n }\r\n\r\n this.impactOverlay?.GetBatches?.(batches, batchType, perObjectData, this.#meshScreenSize);\r\n\r\n const areas = this.mesh.GetAreas?.(batchType);\r\n if (areas)\r\n {\r\n if (batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\r\n {\r\n this.mesh.GetBatches(batches, areas, perObjectData);\r\n }\r\n else\r\n {\r\n this.#GetSortedTransparentBatches(areas, batches, perObjectData, renderContext);\r\n }\r\n }\r\n\r\n // add overlay effect batches (Carbon calls this for every batch type)\r\n this.GetBatchesFromOverlayVector(batches, perObjectData, batchType, this.mesh);\r\n\r\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\r\n }\r\n\r\n // Carbon GetSortedBatchesFromMeshAreaVector (EveSpaceObject2.cpp:57-121):\r\n // object-space area bounding-box centers -> world space -> squared distance to\r\n // the view position, sorted back-to-front (descending), committed in that\r\n // order into the order-preserving TRANSPARENT accumulator. Bounding boxes come\r\n // from the geometry resource when it exposes them; a failed lookup keeps\r\n // Carbon's origin-center fallback.\r\n #GetSortedTransparentBatches(areas, batches, perObjectData, renderContext)\r\n {\r\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n const meshIndex = this.mesh.meshIndex ?? 0;\r\n\r\n const sorted = [];\r\n for (const area of areas)\r\n {\r\n if (!area || area.GetDisplay?.() === false) continue;\r\n\r\n vec3.set(TRANSPARENT_CENTER, 0, 0, 0);\r\n if (geometry?.GetAreaBoundingBox?.(meshIndex, area.GetIndex(), TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX))\r\n {\r\n vec3.add(TRANSPARENT_CENTER, TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX);\r\n vec3.scale(TRANSPARENT_CENTER, TRANSPARENT_CENTER, 0.5);\r\n }\r\n vec3.transformMat4(TRANSPARENT_CENTER, TRANSPARENT_CENTER, this.worldTransform);\r\n\r\n const dx = (viewPosition?.[0] ?? 0) - TRANSPARENT_CENTER[0];\r\n const dy = (viewPosition?.[1] ?? 0) - TRANSPARENT_CENTER[1];\r\n const dz = (viewPosition?.[2] ?? 0) - TRANSPARENT_CENTER[2];\r\n sorted.push({ area, distance: dx * dx + dy * dy + dz * dz });\r\n }\r\n\r\n sorted.sort((a, b) => b.distance - a.distance);\r\n\r\n for (const entry of sorted)\r\n {\r\n const area = entry.area;\r\n if (!area.GetMaterialInterface?.()) continue;\r\n const batch = this.mesh.CreateGeometryBatch(geometry, area, perObjectData);\r\n if (batch) batches.Commit(batch);\r\n }\r\n }\r\n\r\n /** Rebuilds the cached overlay/shadow area-block lists from the current mesh\r\n * (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by\r\n * the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +\r\n * TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the\r\n * shadow list groups OPAQUE areas by shared material. All coalesced. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.\")\r\n RebuildCachedData()\r\n {\r\n this.ReleaseCachedData();\r\n if (!this.mesh) return;\r\n\r\n const all = this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL];\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_TRANSPARENT);\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_DECAL);\r\n this.mesh.CollectAreaBlocks(\r\n this.#overlayMeshAreaBlocks[OVERLAY_TYPE_OPAQUEONLY], TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n for (const blocks of this.#overlayMeshAreaBlocks)\r\n {\r\n TriRenderBatchAreaBlock.Optimize(blocks);\r\n }\r\n\r\n this.mesh.CollectAreaBlocksWithSharedMaterials(\r\n this.#shadowMeshOpaqueAreas, TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n for (const collector of this.#shadowMeshOpaqueAreas)\r\n {\r\n collector.Optimize();\r\n }\r\n this.#cachedAreaBlocksBuilt = true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ReleaseCachedData()\r\n {\r\n for (const blocks of this.#overlayMeshAreaBlocks)\r\n {\r\n blocks.length = 0;\r\n }\r\n this.#shadowMeshOpaqueAreas.length = 0;\r\n this.#cachedAreaBlocksBuilt = false;\r\n }\r\n\r\n #EnsureCachedAreaBlocks()\r\n {\r\n if (!this.#cachedAreaBlocksBuilt && this.mesh) this.RebuildCachedData();\r\n }\r\n\r\n /** Carbon GetShadowBatches (EveSpaceObject2.cpp:1143-1184): one batch per\r\n * cached shared-material OPAQUE area block, using the area's own material.\r\n * Carbon bakes realized-LOD draw args; the GPU-free port defers them to the\r\n * engine via the geometry source descriptor, so shadowPixelSize travels unused\r\n * until engine LOD selection consumes it. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.\")\r\n GetShadowBatches(batches, perObjectData, _shadowPixelSize)\r\n {\r\n if (!this.mesh || this.mesh.display === false) return false;\r\n this.#EnsureCachedAreaBlocks();\r\n\r\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\r\n const meshIndex = this.mesh.meshIndex ?? 0;\r\n\r\n let committed = false;\r\n for (const collector of this.#shadowMeshOpaqueAreas)\r\n {\r\n const material = collector.shaderMaterial;\r\n if (!material) continue;\r\n for (const block of collector.areaBlockVector)\r\n {\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(material);\r\n if (!batch.IsValid()) continue;\r\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\r\n batch.SetPerObjectData(perObjectData ?? null);\r\n committed = batches.Commit(batch) || committed;\r\n }\r\n }\r\n return committed;\r\n }\r\n\r\n /** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the\r\n * impact overlay's armor-damage shader draws over the TYPE_ALL blocks at\r\n * maximum priority; each displayed overlay effect draws its per-batch-type\r\n * effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything\r\n * else -> TYPE_ALL). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Generated EveMeshOverlayEffect has no method surface yet, so the per-batch-type effect selection reads its fields here until the class is promoted; realized-LOD draw args defer to the engine.\")\r\n GetBatchesFromOverlayVector(batches, perObjectData, batchType, mesh)\r\n {\r\n const impactEffect = this.impactOverlay?.GetArmorDamageShader?.(batchType) ?? null;\r\n if (!impactEffect && !this.overlayEffects.length) return false;\r\n if (!mesh) return false;\r\n this.#EnsureCachedAreaBlocks();\r\n\r\n const committedBefore = batches.GetBatchCount?.() ?? 0;\r\n\r\n const geometry = mesh.GetGeometryResource?.() ?? null;\r\n const meshIndex = mesh.meshIndex ?? 0;\r\n\r\n if (impactEffect)\r\n {\r\n for (const block of this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL])\r\n {\r\n this.#CommitBlockBatch(batches, impactEffect, geometry, meshIndex, block, perObjectData, 0xFFFFFFFF);\r\n }\r\n }\r\n\r\n for (const overlay of this.overlayEffects)\r\n {\r\n const effects = this.#OverlayEffectsFor(overlay, batchType);\r\n if (!effects) continue;\r\n\r\n const overlayType = batchType === TriBatchType.TRIBATCHTYPE_OPAQUE\r\n ? OVERLAY_TYPE_OPAQUEONLY\r\n : OVERLAY_TYPE_ALL;\r\n const blocks = this.#overlayMeshAreaBlocks[overlayType];\r\n for (const effect of effects)\r\n {\r\n for (const block of blocks)\r\n {\r\n this.#CommitBlockBatch(batches, effect, geometry, meshIndex, block, perObjectData, 0);\r\n }\r\n }\r\n }\r\n\r\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\r\n }\r\n\r\n #CommitBlockBatch(batches, material, geometry, meshIndex, block, perObjectData, priority)\r\n {\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(material);\r\n if (!batch.IsValid()) return;\r\n if (priority !== 0) batch.SetPriority(priority);\r\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\r\n batch.SetPerObjectData(perObjectData ?? null);\r\n batches.Commit(batch);\r\n }\r\n\r\n // EveMeshOverlayEffect::GetEffects (display-gated, per batch type). Prefers a\r\n // promoted method surface; falls back to the generated class's fields.\r\n #OverlayEffectsFor(overlay, batchType)\r\n {\r\n if (!overlay) return null;\r\n if (typeof overlay.GetEffects === \"function\") return overlay.GetEffects(batchType) ?? null;\r\n if (overlay.display === false) return null;\r\n\r\n switch (batchType)\r\n {\r\n case TriBatchType.TRIBATCHTYPE_OPAQUE: return overlay.opaqueEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_DECAL: return overlay.decalEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_TRANSPARENT: return overlay.transparentEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_ADDITIVE: return overlay.additiveEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_DISTORTION: return overlay.distortionEffects ?? null;\r\n default: return null;\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The overlay HasTransparentArea predicate reads the generated class's transparentEffects field until the class is promoted.\")\r\n HasTransparentBatches()\r\n {\r\n if (!this.mesh) return false;\r\n if ((this.mesh.GetAreas?.(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0) return true;\r\n\r\n for (const overlay of this.overlayEffects)\r\n {\r\n if (overlay?.HasTransparentArea?.() ?? ((overlay?.transparentEffects?.length ?? 0) > 0)) return true;\r\n }\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\r\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\r\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\r\n return Math.hypot(x, y, z);\r\n }\r\n\r\n /** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>,\r\n * which calls back into the object at upload time; the GPU-free record carries\r\n * the same live object reference for the engine serializer (the space-object\r\n * Main profile) to pull current values at realization. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Persistent VS/PS device buffers are engine-owned; the record carries the object reference the engine serializer consumes.\")\r\n GetPerObjectData(accumulator = null)\r\n {\r\n const data = typeof accumulator?.Allocate === \"function\"\r\n ? accumulator.Allocate(Tr2PerObjectData)\r\n : new Tr2PerObjectData();\r\n data.object = this;\r\n return data;\r\n }\r\n\r\n /** Carbon forwards the shadow pass to the same per-object record. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(accumulator = null)\r\n {\r\n return this.GetPerObjectData(accumulator);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n DisplayChildren()\r\n {\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetObserverTransform()\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform()\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetWorldPosition()\r\n {\r\n return this.worldPosition;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetWorldRotation()\r\n {\r\n return this.worldRotation;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n FindSoundEmitter(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const observer of this.observers)\r\n {\r\n if (observer?.name === target)\r\n {\r\n return typeof observer.GetObserver === \"function\"\r\n ? observer.GetObserver()\r\n : observer.observer ?? null;\r\n }\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n const emitter = child?.FindSoundEmitter?.(target);\r\n if (emitter)\r\n {\r\n return emitter;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMute(mute)\r\n {\r\n this.mute = !!mute;\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetMute?.(this.mute);\r\n }\r\n for (const observer of this.observers)\r\n {\r\n observer?.SetMute?.(this.mute);\r\n }\r\n }\r\n\r\n /**\r\n * Plays an animation with explicit loop, start, and speed settings\r\n * (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n PlayAnimationEx(animName, loopCount, start, speed, clearWhenDone = true)\r\n {\r\n this.#PlayAnimation(animName, true, loopCount, start, speed, clearWhenDone);\r\n }\r\n\r\n /**\r\n * Calculates the skinned bounding box under a transform (CMF path: the\r\n * local box corners transformed with perspective divide). The granny path\r\n * is unported. Returns an inverted-empty { min, max } box when dynamic\r\n * bounds are disabled, as Carbon's BoundingBoxInitialize does.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateSkinnedBoundingBoxFromTransform(transform)\r\n {\r\n const min = vec3.fromValues(Infinity, Infinity, Infinity);\r\n const max = vec3.fromValues(-Infinity, -Infinity, -Infinity);\r\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\r\n {\r\n const { min: localMin, max: localMax } = this.GetLocalBoundingBox();\r\n const corner = vec3.create();\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n corner,\r\n index & 1 ? localMax[0] : localMin[0],\r\n index & 2 ? localMax[1] : localMin[1],\r\n index & 4 ? localMax[2] : localMin[2]\r\n );\r\n vec3.transformMat4(corner, corner, transform);\r\n vec3.min(min, min, corner);\r\n vec3.max(max, max, corner);\r\n }\r\n }\r\n return { min, max };\r\n }\r\n\r\n /**\r\n * Calculates the skinned bounding sphere (CMF path: the current bounding\r\n * sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds\r\n * are disabled.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateSkinnedBoundingSphere(out = vec4.create())\r\n {\r\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\r\n {\r\n const center = this.GetBoundingSphereCenter();\r\n return vec4.set(out, center[0], center[1], center[2], this.GetBoundingSphereRadius());\r\n }\r\n return vec4.set(out, 0, 0, 0, -1);\r\n }\r\n\r\n /**\r\n * Clears all impact and damage effects on the impact overlay.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearImpactDamage()\r\n {\r\n this.impactOverlay?.Clear?.();\r\n }\r\n\r\n /**\r\n * Clears all animations on the animation updater.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearAnimations()\r\n {\r\n this.animationUpdater?.ClearAnimations?.();\r\n }\r\n\r\n /**\r\n * Creates an impact facing a position on the closest facing damage locator.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CreateImpactFromPosition(position, direction, lifeTime, size)\r\n {\r\n const closestDamageLocator = this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\r\n return this.CreateImpact(closestDamageLocator, direction, lifeTime, size);\r\n }\r\n\r\n /**\r\n * Creates an impact effect on a damage locator through the impact overlay.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CreateImpact(damageLocatorIndex, direction, lifeTime, size)\r\n {\r\n if (this.impactOverlay)\r\n {\r\n return this.impactOverlay.CreateImpact?.(damageLocatorIndex, direction, lifeTime, size, 1, this.lodLevel, this) ?? -1;\r\n }\r\n return -1;\r\n }\r\n\r\n /**\r\n * Ends the current animation on the animation updater.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EndAnimation()\r\n {\r\n this.animationUpdater?.EndAnimation?.();\r\n }\r\n\r\n /**\r\n * Freezes LOD selection at the current mesh and marks decal geometry\r\n * frozen.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n FreezeHighDetailMesh()\r\n {\r\n this.#allowLodSelection = false;\r\n for (const decal of this.decals)\r\n {\r\n decal?.SetHighDetailDecalState?.(true);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the number of damage locators on this object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocatorCount()\r\n {\r\n return this.GetLocatorCount(EveSpaceObject2.#damageLocatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the number of locators in a named locator set.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorCount(locatorSetName)\r\n {\r\n return this.#GetLocatorsForSet(locatorSetName)?.length ?? 0;\r\n }\r\n\r\n /**\r\n * Gets the first locator list whose set has the requested Carbon name.\r\n * The returned list remains owned by the locator set.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorsForSet(locatorSetName)\r\n {\r\n return this.#GetLocatorsForSet(locatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the closest locator in a set to a world position, ignoring locator\r\n * facing. Returns -1 when the set is missing or empty.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetCloseLocatorIndex(position, locatorSetName)\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (!locators)\r\n {\r\n return -1;\r\n }\r\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\r\n const locatorPosition = vec3.create();\r\n const locatorDirection = vec3.create();\r\n let closestLength = Infinity;\r\n let closestIndex = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\r\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\r\n if (distance < closestLength)\r\n {\r\n closestIndex = index;\r\n closestLength = distance;\r\n }\r\n }\r\n return closestIndex;\r\n }\r\n\r\n /**\r\n * Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex\r\n * (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not\r\n * script-exposed.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetGoodLocatorIndex(position, locatorSetName)\r\n {\r\n return this.GetCloseLocatorIndex(position, locatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the local direction of an indexed damage locator, (0,0,0) for\r\n * indices out of range (Carbon script GetDamageLocatorDirection maps to\r\n * GetDamageLocatorDirectionLocal).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetDamageLocatorDirection(index, inWorldSpaceOrOut = vec3.create(), out = vec3.create())\r\n {\r\n const targetableCall = typeof inWorldSpaceOrOut === \"boolean\";\r\n const inWorldSpace = targetableCall && inWorldSpaceOrOut;\r\n if (!targetableCall) out = inWorldSpaceOrOut;\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n vec3.set(out, 0, targetableCall ? 1 : 0, 0);\r\n return targetableCall ? false : out;\r\n }\r\n const position = vec3.create();\r\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\r\n if (inWorldSpace) EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\r\n return targetableCall ? true : out;\r\n }\r\n\r\n /** Internal ITriTargetable locator query, using the org-standard out-last convention. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.\")\r\n GetDamageLocatorPosition(index, inWorldSpace, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n if (inWorldSpace) vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\r\n else vec3.set(out, 0, 0, 0);\r\n return false;\r\n }\r\n this.#GetLocatorInObjectSpace(out, EveSpaceObject2.#locatorDirection, locators[index]);\r\n if (inWorldSpace) vec3.transformMat4(out, out, this.worldTransform);\r\n return true;\r\n }\r\n\r\n /** Gets the closest facing damage locator for ITriTargetable consumers. */\r\n @carbon.method\r\n @impl.implemented\r\n GetClosestDamageLocatorIndex(position)\r\n {\r\n return this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\r\n }\r\n\r\n /** Ports Carbon's randomized distance/direction fit for impact variation. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriRand is represented by Math.random; all locator scoring remains source-faithful.\")\r\n GetGoodDamageLocatorIndex(position)\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators) return 0;\r\n\r\n const objectPosition = vec3.transformMat4(EveSpaceObject2.#objectPosition, position, this.inverseWorldTransform);\r\n let minDistance = Infinity;\r\n let maxDistance = Number.MIN_VALUE;\r\n let bestDirectionFit = 0;\r\n\r\n for (const locator of locators)\r\n {\r\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locator);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\r\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\r\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\r\n minDistance = Math.min(minDistance, distance);\r\n maxDistance = Math.max(maxDistance, distance);\r\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\r\n bestDirectionFit = Math.max(bestDirectionFit, EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset));\r\n }\r\n\r\n const desiredFit = Math.random() * (0.25 - (1 - bestDirectionFit)) + 0.75;\r\n let bestFit = 1;\r\n let bestLocator = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locators[index]);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\r\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\r\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\r\n const range = maxDistance - minDistance;\r\n let scale = range > 0 ? 1 - (distance - minDistance) / range : 1;\r\n let value = 2 * scale - 1;\r\n value = value < 0 ? 1 - Math.sqrt(Math.abs(value)) : Math.sqrt(Math.abs(value)) + 1;\r\n value *= 0.5;\r\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\r\n value *= EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset);\r\n const fit = Math.abs(value - desiredFit);\r\n if (fit < bestFit)\r\n {\r\n bestFit = fit;\r\n bestLocator = index;\r\n }\r\n }\r\n return bestLocator < 0 ? this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName) : bestLocator;\r\n }\r\n\r\n /** Gets the model-scaled target radius. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRadius()\r\n {\r\n return this.GetBoundingSphereRadius();\r\n }\r\n\r\n /** Computes a miss point just outside the model silhouette. */\r\n @carbon.method\r\n @impl.implemented\r\n GetMissPosition(hit, source, out = vec3.create())\r\n {\r\n if (this.boundingSphereRadius > 0)\r\n {\r\n vec3.copy(out, this.modelWorldPosition);\r\n if (hit && source)\r\n {\r\n vec3.subtract(EveSpaceObject2.#missOffset, hit, out);\r\n vec3.subtract(EveSpaceObject2.#missDirection, hit, source);\r\n const directionLength = vec3.length(EveSpaceObject2.#missDirection);\r\n if (directionLength) vec3.scale(EveSpaceObject2.#missDirection, EveSpaceObject2.#missDirection, 1 / directionLength);\r\n vec3.scaleAndAdd(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, EveSpaceObject2.#missDirection, -vec3.dot(EveSpaceObject2.#missDirection, EveSpaceObject2.#missOffset));\r\n const offsetLength = vec3.length(EveSpaceObject2.#missOffset);\r\n if (offsetLength) vec3.scale(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, 1 / offsetLength);\r\n vec3.scaleAndAdd(out, out, EveSpaceObject2.#missOffset, this.GetBoundingSphereRadius() * 1.125);\r\n }\r\n }\r\n else\r\n {\r\n this.GetDamageLocatorPosition(-1, true, out);\r\n }\r\n return out;\r\n }\r\n\r\n /** Gets the current target impact material. */\r\n @carbon.method\r\n @impl.implemented\r\n GetImpactConfiguration()\r\n {\r\n return this.impactOverlay?.GetImpactConfiguration?.() ?? ImpactConfiguration.IMPACT_INVALID;\r\n }\r\n\r\n /** Reports whether impacts currently use the authored shield ellipsoid. */\r\n @carbon.method\r\n @impl.implemented\r\n HasImpactConfigurationShield()\r\n {\r\n return !!this.impactOverlay?.HasShieldEllipsoid?.()\r\n && this.GetImpactConfiguration() === ImpactConfiguration.IMPACT_SHIELD;\r\n }\r\n\r\n /** Resolves a shield-ray or damage-locator collision point. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.\")\r\n GetImpactPosition(locator, posPrev, posNow, epsilon, out = vec3.create())\r\n {\r\n if (!this.HasImpactConfigurationShield())\r\n {\r\n this.GetDamageLocatorPosition(locator, true, out);\r\n return vec3.squaredDistance(posNow, out) < Number(epsilon);\r\n }\r\n\r\n vec3.transformMat4(EveSpaceObject2.#rayOrigin, posPrev, this.inverseWorldTransform);\r\n vec3.transformMat4(EveSpaceObject2.#rayEnd, posNow, this.inverseWorldTransform);\r\n vec3.subtract(EveSpaceObject2.#rayDirection, EveSpaceObject2.#rayEnd, EveSpaceObject2.#rayOrigin);\r\n this.#GetShapeEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii);\r\n const t = EveSpaceObject2.#IntersectEllipsoidRay(out, EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayOrigin, EveSpaceObject2.#rayDirection);\r\n if (t !== null && t >= -1 && t <= 1)\r\n {\r\n vec3.transformMat4(out, out, this.worldTransform);\r\n return true;\r\n }\r\n if (EveSpaceObject2.#IsPointInsideEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayEnd))\r\n {\r\n vec3.copy(out, posNow);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Updates an existing impact overlay entry. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateImpact(out, direction, impactIndex)\r\n {\r\n return this.impactOverlay?.UpdateImpact?.(out, direction, impactIndex) ?? false;\r\n }\r\n\r\n /**\r\n * Gets the local position of an indexed damage locator, (0,0,0) for\r\n * indices out of range.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocator(index, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n return out;\r\n }\r\n\r\n /**\r\n * Gets the world-space position of an indexed damage locator, (0,0,0) for\r\n * indices out of range (returned untransformed, as Carbon does).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTransformedDamageLocator(index, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n return vec3.transformMat4(out, out, this.worldTransform);\r\n }\r\n\r\n /**\r\n * Checks whether this object is in impostor mode. The impostor system that\r\n * raises the flag is unported, so this reports the default until then.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n IsImpostor()\r\n {\r\n return this.#impostorMode;\r\n }\r\n\r\n /**\r\n * Gets a locator position from a named set. Out-of-range or missing-set\r\n * queries return the world translation in world space and (0,0,0) in\r\n * object space, as Carbon does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorPositionFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (index < 0 || !locators || index >= locators.length)\r\n {\r\n if (inWorldSpace)\r\n {\r\n return vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\r\n }\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n if (inWorldSpace)\r\n {\r\n vec3.transformMat4(out, out, this.worldTransform);\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Gets a locator direction from a named set. Out-of-range or missing-set\r\n * queries return (0,1,0), as Carbon does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorRotationFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (index < 0 || !locators || index >= locators.length)\r\n {\r\n return vec3.set(out, 0, 1, 0);\r\n }\r\n const position = vec3.create();\r\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\r\n if (inWorldSpace)\r\n {\r\n EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\r\n }\r\n return out;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n HandleControllerEvent(name)\r\n {\r\n const eventName = String(name ?? \"\");\r\n for (const controller of this.controllers)\r\n {\r\n controller?.HandleEvent?.(eventName);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.HandleControllerEvent?.(eventName);\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.HandleControllerEvent?.(eventName);\r\n }\r\n }\r\n\r\n /**\r\n * Plays an animation once, replacing the current one\r\n * (Carbon script PlayAnimation maps to PlayAnimationOnce).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n PlayAnimation(animName)\r\n {\r\n this.#PlayAnimation(animName, true, 1, 0, 1, true);\r\n }\r\n\r\n /**\r\n * Chains an animation once after the current one (Carbon ChainAnimation).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChainAnimation(animName)\r\n {\r\n this.#PlayAnimation(animName, false, 1, 0, 1, true);\r\n }\r\n\r\n /**\r\n * Chains an animation with explicit loop, start, and speed settings\r\n * (Carbon ChainAnimationEx).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChainAnimationEx(animName, loopCount, start, speed)\r\n {\r\n this.#PlayAnimation(animName, false, loopCount, start, speed, true);\r\n }\r\n\r\n // Carbon EveSpaceObject2::PlayAnimation: every playback wrapper funnels\r\n // into the animation updater, which owns playback state; a missing updater\r\n // is a Carbon-faithful no-op.\r\n #PlayAnimation(animName, replace, loopCount, delay, speed, clearWhenDone)\r\n {\r\n this.animationUpdater?.PlayAnimation?.(String(animName ?? \"\"), replace, loopCount, delay, speed, clearWhenDone);\r\n }\r\n\r\n /**\r\n * Recalculates the authored bounding sphere from the mesh geometry\r\n * resource. Fails when no mesh or ready geometry resource is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildBoundingSphereInformation()\r\n {\r\n const mesh = this.mesh;\r\n if (!mesh)\r\n {\r\n return false;\r\n }\r\n const geometryRes = mesh.GetGeometryResource?.();\r\n if (!geometryRes || !geometryRes.IsGood?.())\r\n {\r\n return false;\r\n }\r\n geometryRes.RecalculateBoundingSphere?.();\r\n const sphere = vec4.create();\r\n geometryRes.GetBoundingSphere?.(mesh.GetMeshIndex?.() ?? 0, sphere);\r\n vec3.set(this.boundingSphereCenter, sphere[0], sphere[1], sphere[2]);\r\n this.boundingSphereRadius = sphere[3];\r\n return true;\r\n }\r\n\r\n /** Sets Carbon's authored local bounding sphere from a sph3-compatible value. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.\")\r\n SetBoundingSphereInformation(sphere)\r\n {\r\n if (sphere?.center)\r\n {\r\n vec3.copy(this.boundingSphereCenter, sphere.center);\r\n this.boundingSphereRadius = Number(sphere.radius);\r\n }\r\n else\r\n {\r\n this.boundingSphereRadius = sph3.extract(sphere, this.boundingSphereCenter);\r\n }\r\n this.UpdateWorldBounds();\r\n return this;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetControllerVariables()\r\n {\r\n return Object.fromEntries(this.#controllerVariables);\r\n }\r\n\r\n /** Gets Carbon's most recently selected geometry LOD. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Geometry resources without multi-LOD support expose their sole browser LOD as index zero.\")\r\n GetLastUsedMeshLod()\r\n {\r\n const geometryResource = this.mesh?.GetGeometryResource?.();\r\n if (!geometryResource) return -1;\r\n if (!this.#allowLodSelection) return 0;\r\n return geometryResource.GetLodIndexForScreenSize?.(this.mesh?.GetMeshIndex?.() ?? 0, this.#meshScreenSize) ?? 0;\r\n }\r\n\r\n /**\r\n * Gets a named locator's transform (Carbon script GetLocatorTransform maps\r\n * to GetEveLocatorTransform): the identity for unknown names, the animated\r\n * bone world transform when the animation updater resolves the name, else\r\n * the authored locator transform.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLocatorTransform(name, out = mat4.create())\r\n {\r\n const target = String(name ?? \"\");\r\n let locator = null;\r\n for (const candidate of this.locators)\r\n {\r\n if (candidate?.GetName?.() === target)\r\n {\r\n locator = candidate;\r\n break;\r\n }\r\n }\r\n if (!locator)\r\n {\r\n return mat4.identity(out);\r\n }\r\n if (this.animationUpdater?.GetBoneWorldTransform?.(target, out))\r\n {\r\n return out;\r\n }\r\n return mat4.copy(out, locator.GetTransform());\r\n }\r\n\r\n /**\r\n * Gets the local axis-aligned bounding box: dynamic skinned bounds when\r\n * enabled, else the mesh box, else the cached box (at worst it lags one\r\n * frame). With out arguments it fills them and returns true; without, it\r\n * returns { min, max }.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLocalBoundingBox(minBounds, maxBounds)\r\n {\r\n const min = vec3.create();\r\n const max = vec3.create();\r\n const updater = this.animationUpdater;\r\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\r\n {\r\n const sphere = vec4.create();\r\n updater.GetDynamicBounds?.(sphere, min, max);\r\n vec3.copy(this.#localAabbMin, min);\r\n vec3.copy(this.#localAabbMax, max);\r\n }\r\n else if (this.mesh?.GetBoundingBox?.(min, max))\r\n {\r\n vec3.copy(this.#localAabbMin, min);\r\n vec3.copy(this.#localAabbMax, max);\r\n }\r\n else\r\n {\r\n vec3.copy(min, this.#localAabbMin);\r\n vec3.copy(max, this.#localAabbMax);\r\n }\r\n if (minBounds && maxBounds)\r\n {\r\n vec3.copy(minBounds, min);\r\n vec3.copy(maxBounds, max);\r\n return true;\r\n }\r\n return { min, max };\r\n }\r\n\r\n /** Gets Carbon's cached local box transformed into a world-axis-aligned box. */\r\n @carbon.method\r\n @impl.adapted\r\n GetWorldBoundingBox(minBounds, maxBounds)\r\n {\r\n box3.fromBounds(EveSpaceObject2.#localBox, this.#localAabbMin, this.#localAabbMax);\r\n EveSpaceObject2.#TransformBox(EveSpaceObject2.#worldBox, EveSpaceObject2.#localBox, this.worldTransform);\r\n const min = minBounds ?? vec3.create();\r\n const max = maxBounds ?? vec3.create();\r\n vec3.set(min, EveSpaceObject2.#worldBox[0], EveSpaceObject2.#worldBox[1], EveSpaceObject2.#worldBox[2]);\r\n vec3.set(max, EveSpaceObject2.#worldBox[3], EveSpaceObject2.#worldBox[4], EveSpaceObject2.#worldBox[5]);\r\n return minBounds && maxBounds ? true : { min, max };\r\n }\r\n\r\n /** Reports whether the attached mesh has a ready geometry resource. */\r\n @carbon.method\r\n @impl.implemented\r\n IsBoundingBoxReady()\r\n {\r\n const geometryResource = this.mesh?.GetGeometryResource?.();\r\n return !!geometryResource?.IsGood?.();\r\n }\r\n\r\n /**\r\n * Gets Carbon's realized world sphere, optionally accumulated with transform\r\n * and effect children when query is EVE_BOUNDS_WITH_CHILDREN.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBoundingSphere(out = sph3.create(), query = 0)\r\n {\r\n if (!this.UpdateWorldBounds()) return false;\r\n EveSpaceObject2.#SetSphere(out, this.modelWorldPosition, this.#boundingSphereWorldRadius);\r\n if (!query || !this.DisplayChildren()) return true;\r\n for (const child of this.children)\r\n {\r\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\r\n {\r\n sph3.union(out, out, EveSpaceObject2.#childSphere);\r\n }\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\r\n {\r\n sph3.union(out, out, EveSpaceObject2.#childSphere);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** Updates Carbon's geometry-derived on-screen pixel diameter. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.\")\r\n EstimatePixelDiameter(frustum)\r\n {\r\n if (this.mesh?.GetBoundingBox?.(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax))\r\n {\r\n vec3.copy(this.#localAabbMin, EveSpaceObject2.#boundsMin);\r\n vec3.copy(this.#localAabbMax, EveSpaceObject2.#boundsMax);\r\n }\r\n sph3.fromBounds(EveSpaceObject2.#localSphere, this.#localAabbMin, this.#localAabbMax);\r\n sph3.transformMat4(EveSpaceObject2.#worldSphere, EveSpaceObject2.#localSphere, this.worldTransform);\r\n this.estimatedPixelDiameter = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\r\n return this.estimatedPixelDiameter;\r\n }\r\n\r\n /** Reports the result of the latest Carbon visibility update. */\r\n @carbon.method\r\n @impl.implemented\r\n IsInFrustum()\r\n {\r\n return this.#isInFrustum;\r\n }\r\n\r\n /**\r\n * Gets the bounding sphere center, preferring the dynamic skinned sphere\r\n * when one is published.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereCenter(out = vec3.create())\r\n {\r\n if (this.#dynamicBoundingSphere[3] !== -1)\r\n {\r\n return vec3.set(out, this.#dynamicBoundingSphere[0], this.#dynamicBoundingSphere[1], this.#dynamicBoundingSphere[2]);\r\n }\r\n return vec3.copy(out, this.boundingSphereCenter);\r\n }\r\n\r\n /**\r\n * Gets the model-scaled bounding sphere radius, preferring the dynamic\r\n * skinned sphere when one is published.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereRadius()\r\n {\r\n if (this.#dynamicBoundingSphere[3] !== -1)\r\n {\r\n return this.modelScale * this.#dynamicBoundingSphere[3];\r\n }\r\n return this.modelScale * this.boundingSphereRadius;\r\n }\r\n\r\n /**\r\n * Gets the number of mesh-bound bones. Carbon dereferences the animation\r\n * updater unchecked; CarbonEngineJS reports 0 when none is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBoneCount()\r\n {\r\n const updater = this.animationUpdater;\r\n if (!updater)\r\n {\r\n return 0;\r\n }\r\n if (updater.IsUsingCMF?.())\r\n {\r\n if (!updater.HasMeshBinding?.())\r\n {\r\n return 0;\r\n }\r\n return updater.GetSkeletonBoneIndices?.().length ?? 0;\r\n }\r\n return updater.GetMeshBindingBoneCount?.() ?? 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetImpactDamageState(shield, armor, hull, doCreateArmorImpacts = true)\r\n {\r\n this.impactOverlay?.SetDamageState?.(shield, armor, hull, doCreateArmorImpacts);\r\n this.SetControllerVariable(\"ShieldDamage\", shield);\r\n this.SetControllerVariable(\"ArmorDamage\", armor);\r\n this.SetControllerVariable(\"HullDamage\", hull);\r\n }\r\n\r\n /**\r\n * Toggles a named impact-overlay animation (boosters, hardeners, ...).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetImpactAnimation(name, enable, duration)\r\n {\r\n this.impactOverlay?.ToggleEffect?.(name, enable, duration);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetControllerVariable(name, value)\r\n {\r\n const key = String(name ?? \"\");\r\n const next = Number(value);\r\n this.#controllerVariables.set(key, next);\r\n for (const controller of this.controllers)\r\n {\r\n controller?.SetVariable?.(key, next);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetControllerVariable?.(key, next);\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.SetControllerVariable?.(key, next);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetProceduralContainerVariable(name, value)\r\n {\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetProceduralContainerVariable?.(name, value);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n StartControllers()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Start?.();\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.StartControllers?.();\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.StartControllers?.();\r\n }\r\n }\r\n\r\n /**\r\n * Applies bone and model transforms to locators and returns\r\n * [position, rotation, boneIndex] tuples, as the Carbon script surface\r\n * does (TransformLocators maps to PyTransformLocators). Accepts either\r\n * locator records ({ position, direction, boneIndex }, Carbon's\r\n * LocatorStructureList shape) or the same [position, rotation, boneIndex]\r\n * tuple shape it returns.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n TransformLocators(locators = [])\r\n {\r\n const result = [];\r\n for (const locator of locators ?? [])\r\n {\r\n const record = Array.isArray(locator)\r\n ? { position: locator[0], rotation: locator[1], boneIndex: locator[2] }\r\n : { position: locator?.position, rotation: locator?.direction ?? locator?.rotation, boneIndex: locator?.boneIndex };\r\n const position = vec3.clone(record.position ?? EveSpaceObject2.#zero);\r\n const rotation = quat.clone(record.rotation ?? EveSpaceObject2.#identityRotation);\r\n const boneIndex = Number(record.boneIndex ?? 0);\r\n this.#TransformLocator(position, rotation, boneIndex);\r\n if (this.modelTranslationCurve || this.modelRotationCurve)\r\n {\r\n this.#ApplyModelTransform(position, rotation);\r\n }\r\n result.push([position, rotation, boneIndex]);\r\n }\r\n return result;\r\n }\r\n\r\n // Carbon Blue TransformLocator: bone-attached records pick up the mesh\r\n // bone matrix; without bone data the authored values pass through.\r\n #TransformLocator(position, rotation, boneIndex)\r\n {\r\n const updater = this.animationUpdater;\r\n if (boneIndex <= 0 || !updater?.IsInitialized?.())\r\n {\r\n return;\r\n }\r\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, boneIndex);\r\n if (!bone)\r\n {\r\n return;\r\n }\r\n vec3.transformMat4(position, position, bone);\r\n const boneRotation = mat4.getRotation(quat.create(), bone);\r\n quat.multiply(rotation, boneRotation, rotation);\r\n }\r\n\r\n // Carbon Blue ApplyModelTransform samples both curves at the Be::Time()\r\n // origin (pure GetValueAt, no playback advance): translation adds, model\r\n // rotation rotates the position and pre-multiplies.\r\n #ApplyModelTransform(position, rotation)\r\n {\r\n if (this.modelTranslationCurve)\r\n {\r\n const translation = vec3.create();\r\n this.modelTranslationCurve.GetValueAt?.(0, translation);\r\n vec3.add(position, position, translation);\r\n }\r\n if (this.modelRotationCurve)\r\n {\r\n const modelRotation = quat.create();\r\n this.modelRotationCurve.GetValueAt?.(0, modelRotation);\r\n vec3.transformQuat(position, position, modelRotation);\r\n quat.multiply(rotation, modelRotation, rotation);\r\n }\r\n }\r\n\r\n // Carbon GetLocatorsForSet: first set matching the name wins.\r\n #GetLocatorsForSet(locatorSetName)\r\n {\r\n const target = String(locatorSetName ?? \"\");\r\n for (const set of this.locatorSets)\r\n {\r\n if (set?.HasName?.(target))\r\n {\r\n return set.GetLocators();\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Carbon GetLocatorInObjectSpace: the direction is +Y rotated by the\r\n // authored quaternion; bone-attached locators additionally apply the mesh\r\n // bone matrix. Carbon leaves the outputs untouched (caller-uninitialized)\r\n // when bone data is missing; CarbonEngineJS keeps the unskinned values.\r\n #GetLocatorInObjectSpace(outPosition, outDirection, locator)\r\n {\r\n vec3.transformQuat(outDirection, EveSpaceObject2.#unitY, locator.direction);\r\n vec3.copy(outPosition, locator.position);\r\n const updater = this.animationUpdater;\r\n if (locator.boneIndex > 0 && updater?.IsInitialized?.())\r\n {\r\n const boneCount = Number(updater.GetMeshBoneCount?.() ?? 0);\r\n if (locator.boneIndex < boneCount)\r\n {\r\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, locator.boneIndex);\r\n if (bone)\r\n {\r\n vec3.transformMat4(outPosition, locator.position, bone);\r\n EveSpaceObject2.#TransformNormal(outDirection, outDirection, bone);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Carbon GetClosestLocatorIndex: facing-gated closest search; 0 when the\r\n // set is missing, -1 when no locator faces the position.\r\n #GetClosestLocatorIndex(position, locatorSetName)\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (!locators)\r\n {\r\n return 0;\r\n }\r\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\r\n const locatorPosition = vec3.create();\r\n const locatorDirection = vec3.create();\r\n let closestLength = Infinity;\r\n let closestIndex = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(locatorDirection, posInObjectSpace))\r\n {\r\n continue;\r\n }\r\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\r\n if (distance < closestLength)\r\n {\r\n closestIndex = index;\r\n closestLength = distance;\r\n }\r\n }\r\n return closestIndex;\r\n }\r\n\r\n static #IsLocatorFacingPosition(locatorDirection, posInObjectSpace)\r\n {\r\n const moved = vec3.subtract(vec3.create(), posInObjectSpace, locatorDirection);\r\n return vec3.squaredLength(moved) < vec3.squaredLength(posInObjectSpace);\r\n }\r\n\r\n static #TransformNormal(out, direction, matrix)\r\n {\r\n const x = direction[0];\r\n const y = direction[1];\r\n const z = direction[2];\r\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\r\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\r\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\r\n return out;\r\n }\r\n\r\n #GetShapeEllipsoid(outCenter, outRadii)\r\n {\r\n if (this.shapeEllipsoidRadius[0] > 0)\r\n {\r\n vec3.copy(outCenter, this.shapeEllipsoidCenter);\r\n vec3.copy(outRadii, this.shapeEllipsoidRadius);\r\n }\r\n else\r\n {\r\n const bounds = this.GetLocalBoundingBox(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax);\r\n if (bounds === false)\r\n {\r\n vec3.set(EveSpaceObject2.#boundsMin, -1, -1, -1);\r\n vec3.set(EveSpaceObject2.#boundsMax, 1, 1, 1);\r\n }\r\n vec3.subtract(outRadii, EveSpaceObject2.#boundsMax, EveSpaceObject2.#boundsMin);\r\n vec3.scale(outRadii, outRadii, Math.sqrt(3) * 0.5);\r\n vec3.lerp(outCenter, EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax, 0.5);\r\n }\r\n vec3.copy(this.generatedShapeEllipsoidCenter, outCenter);\r\n vec3.copy(this.generatedShapeEllipsoidRadius, outRadii);\r\n }\r\n\r\n static #GetDirectionFit(v0, v1)\r\n {\r\n const direction = -vec3.dot(v0, v1);\r\n return direction < 0\r\n ? (1 - Math.sqrt(Math.abs(direction))) * 0.5\r\n : (Math.sqrt(Math.abs(direction)) + 1) * 0.5;\r\n }\r\n\r\n static #IntersectEllipsoidRay(out, center, radii, origin, direction)\r\n {\r\n const vx = direction[0] / radii[0];\r\n const vy = direction[1] / radii[1];\r\n const vz = direction[2] / radii[2];\r\n const sx = (origin[0] - center[0]) / radii[0];\r\n const sy = (origin[1] - center[1]) / radii[1];\r\n const sz = (origin[2] - center[2]) / radii[2];\r\n const vv = vx * vx + vy * vy + vz * vz;\r\n if (!(vv > 0)) return null;\r\n const vs = vx * sx + vy * sy + vz * sz;\r\n const ss = sx * sx + sy * sy + sz * sz;\r\n let discriminant = (vs / vv) ** 2 - ss / vv + 1 / vv;\r\n if (discriminant < 0) return null;\r\n discriminant = Math.sqrt(discriminant);\r\n let t = -discriminant - vs / vv;\r\n if (t < 0) t = discriminant - vs / vv;\r\n vec3.scaleAndAdd(out, origin, direction, t);\r\n return t;\r\n }\r\n\r\n static #IsPointInsideEllipsoid(center, radii, point)\r\n {\r\n const x = (point[0] - center[0]) / radii[0];\r\n const y = (point[1] - center[1]) / radii[1];\r\n const z = (point[2] - center[2]) / radii[2];\r\n return x * x + y * y + z * z <= 1;\r\n }\r\n\r\n // Mesh bone matrices come from the animation updater; only mat4-shaped\r\n // entries are usable.\r\n static #GetBoneMatrix(updater, boneIndex)\r\n {\r\n const bones = updater.GetMeshBoneMatrixList?.();\r\n const bone = bones?.[boneIndex];\r\n return bone && bone.length >= 16 ? bone : null;\r\n }\r\n\r\n static #ApplyControllerVariables(target, variables, methodName)\r\n {\r\n const setter = target?.[methodName];\r\n if (typeof setter !== \"function\")\r\n {\r\n return;\r\n }\r\n for (const [name, value] of variables)\r\n {\r\n setter.call(target, name, value);\r\n }\r\n }\r\n\r\n static #UpdateCurve(curve, time, out, fallback)\r\n {\r\n if (!curve)\r\n {\r\n for (let index = 0; index < out.length; index++)\r\n {\r\n out[index] = fallback[index];\r\n }\r\n return out;\r\n }\r\n\r\n let result;\r\n if (typeof curve.Update === \"function\")\r\n {\r\n result = curve.Update(time, out);\r\n }\r\n else if (typeof curve.GetValueAt === \"function\")\r\n {\r\n result = curve.GetValueAt(time, out);\r\n }\r\n if ((Array.isArray(result) || ArrayBuffer.isView(result)) && result !== out)\r\n {\r\n for (let index = 0; index < out.length; index++)\r\n {\r\n out[index] = result[index];\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n static #GetContextValue(context, methodName, ...propertyNames)\r\n {\r\n const method = context?.[methodName];\r\n if (typeof method === \"function\")\r\n {\r\n return Number(method.call(context)) || 0;\r\n }\r\n for (const propertyName of propertyNames)\r\n {\r\n if (context?.[propertyName] !== undefined && context?.[propertyName] !== null)\r\n {\r\n return Number(context[propertyName]) || 0;\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n static #GetPixelSize(frustum, sphere)\r\n {\r\n const method = frustum?.GetPixelSizeAccross;\r\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\r\n }\r\n\r\n static #GetEstimatedPixelSize(frustum, sphere)\r\n {\r\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\r\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\r\n }\r\n\r\n static #SetSphere(out, center, radius)\r\n {\r\n return sph3.set(out, center[0], center[1], center[2], radius);\r\n }\r\n\r\n // Avoid box3.transformMat4's legacy all-components-sum empty sentinel: a\r\n // valid symmetric box such as [-1,-1,-1,1,1,1] has that same sum.\r\n static #TransformBox(out, bounds, transform)\r\n {\r\n out[0] = out[1] = out[2] = Infinity;\r\n out[3] = out[4] = out[5] = -Infinity;\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n EveSpaceObject2.#boxCorner,\r\n index & 1 ? bounds[3] : bounds[0],\r\n index & 2 ? bounds[4] : bounds[1],\r\n index & 4 ? bounds[5] : bounds[2]\r\n );\r\n vec3.transformMat4(EveSpaceObject2.#boxCorner, EveSpaceObject2.#boxCorner, transform);\r\n out[0] = Math.min(out[0], EveSpaceObject2.#boxCorner[0]);\r\n out[1] = Math.min(out[1], EveSpaceObject2.#boxCorner[1]);\r\n out[2] = Math.min(out[2], EveSpaceObject2.#boxCorner[2]);\r\n out[3] = Math.max(out[3], EveSpaceObject2.#boxCorner[0]);\r\n out[4] = Math.max(out[4], EveSpaceObject2.#boxCorner[1]);\r\n out[5] = Math.max(out[5], EveSpaceObject2.#boxCorner[2]);\r\n }\r\n return out;\r\n }\r\n\r\n static #zero = Object.freeze([0, 0, 0]);\r\n\r\n static #unitY = Object.freeze([0, 1, 0]);\r\n\r\n static #locatorDirection = vec3.create();\r\n static #locatorPosition = vec3.create();\r\n static #locatorOffset = vec3.create();\r\n static #objectPosition = vec3.create();\r\n static #missOffset = vec3.create();\r\n static #missDirection = vec3.create();\r\n static #rayOrigin = vec3.create();\r\n static #rayEnd = vec3.create();\r\n static #rayDirection = vec3.create();\r\n static #ellipsoidCenter = vec3.create();\r\n static #ellipsoidRadii = vec3.create();\r\n static #boundsMin = vec3.create();\r\n static #boundsMax = vec3.create();\r\n static #childSphere = sph3.create();\r\n static #localSphere = sph3.create();\r\n static #worldSphere = sph3.create();\r\n static #localBox = box3.create();\r\n static #worldBox = box3.create();\r\n static #boxCorner = vec3.create();\r\n\r\n static #identityRotation = Object.freeze([0, 0, 0, 1]);\r\n\r\n static #identityTransform = mat4.create();\r\n\r\n static #damageLocatorSetName = \"damage\";\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2Lod = Tr2Lod;\r\n\r\n static ImpactConfiguration = ImpactConfiguration;\r\n\r\n}\r\n"],"names":["TRANSPARENT_AABB_MIN","vec3","create","TRANSPARENT_AABB_MAX","TRANSPARENT_CENTER","OVERLAY_TYPE_OPAQUEONLY","OVERLAY_TYPE_ALL","_EveSpaceObject","_identity","EveSpaceObject2","EveEntity","e","_init_reflectionMode","_init_extra_reflectionMode","_init_effectChildren","_init_extra_effectChildren","_init_children","_init_extra_children","_init_name","_init_extra_name","_init_mute","_init_extra_mute","_init_inheritProperties","_init_extra_inheritProperties","_init_customMasks","_init_extra_customMasks","_init_overlayEffects","_init_extra_overlayEffects","_init_positionDelta","_init_extra_positionDelta","_init_lodLevel","_init_extra_lodLevel","_init_curveSets","_init_extra_curveSets","_init_isPickable","_init_extra_isPickable","_init_estimatedPixelDiameter","_init_extra_estimatedPixelDiameter","_init_estimatedPixelDiameterWithChildren","_init_extra_estimatedPixelDiameterWithChildren","_init_generatedShapeEllipsoidCenter","_init_extra_generatedShapeEllipsoidCenter","_init_generatedShapeEllipsoidRadius","_init_extra_generatedShapeEllipsoidRadius","_init_animationUpdater","_init_extra_animationUpdater","_init_dna","_init_extra_dna","_init_castShadow","_init_extra_castShadow","_init_isAnimated","_init_extra_isAnimated","_init_dynamicBoundingSphereEnabled","_init_extra_dynamicBoundingSphereEnabled","_init_attachments","_init_extra_attachments","_init_decals","_init_extra_decals","_init_lights","_init_extra_lights","_init_externalParameters","_init_extra_externalParameters","_init_controllers","_init_extra_controllers","_init_locators","_init_extra_locators","_init_mesh","_init_extra_mesh","_init_impactOverlay","_init_extra_impactOverlay","_init_clipSphereCenter","_init_extra_clipSphereCenter","_init_clipSphereFactor","_init_extra_clipSphereFactor","_init_clipSphereFactor2","_init_extra_clipSphereFactor2","_init_observers","_init_extra_observers","_init_worldPosition","_init_extra_worldPosition","_init_rotationCurve","_init_extra_rotationCurve","_init_worldRotation","_init_extra_worldRotation","_init_modelScale","_init_extra_modelScale","_init_locatorSets","_init_extra_locatorSets","_init_activationStrength","_init_extra_activationStrength","_init_albedoColor","_init_extra_albedoColor","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_secondaryLightingSphereRadius","_init_extra_secondaryLightingSphereRadius","_init_boundingSphereCenter","_init_extra_boundingSphereCenter","_init_dirtLevel","_init_extra_dirtLevel","_init_customShaderData","_init_extra_customShaderData","_init_lastDamageLocatorHit","_init_extra_lastDamageLocatorHit","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_modelWorldPosition","_init_extra_modelWorldPosition","_init_modelTranslationCurve","_init_extra_modelTranslationCurve","_init_modelRotationCurve","_init_extra_modelRotationCurve","_init_shapeEllipsoidCenter","_init_extra_shapeEllipsoidCenter","_init_shapeEllipsoidRadius","_init_extra_shapeEllipsoidRadius","_init_translationCurve","_init_extra_translationCurve","_init_worldTransform","_init_extra_worldTransform","_init_inverseWorldTransform","_init_extra_inverseWorldTransform","_init_lastWorldTransform","_init_extra_lastWorldTransform","_init_worldVelocity","_init_extra_worldVelocity","_init_audioGeometry","_init_extra_audioGeometry","_init_isVisible","_init_extra_isVisible","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","list","string","readwrite","boolean","objectRef","read","float32","quat","color","vec4","mat4","carbon","method","impl","adapted","implemented","reason","reflectionMode","effectChildren","children","name","mute","inheritProperties","customMasks","overlayEffects","positionDelta","lodLevel","curveSets","isPickable","estimatedPixelDiameter","estimatedPixelDiameterWithChildren","generatedShapeEllipsoidCenter","generatedShapeEllipsoidRadius","fromValues","animationUpdater","dna","castShadow","isAnimated","dynamicBoundingSphereEnabled","attachments","decals","lights","externalParameters","controllers","locators","mesh","impactOverlay","clipSphereCenter","clipSphereFactor2","clipSphereFactor","observers","worldPosition","rotationCurve","worldRotation","modelScale","locatorSets","activationStrength","albedoColor","createLinear","display","update","secondaryLightingSphereRadius","boundingSphereCenter","dirtLevel","customShaderData","lastDamageLocatorHit","boundingSphereRadius","modelWorldPosition","modelTranslationCurve","modelRotationCurve","shapeEllipsoidCenter","shapeEllipsoidRadius","translationCurve","worldTransform","inverseWorldTransform","lastWorldTransform","worldVelocity","audioGeometry","isVisible","Map","sph3","set","Tr2Lod","TR2_LOD_UNSPECIFIED","meshLod","Initialize","controller","IsLinked","Link","damageLocatorCount","HasName","length","SetDamageLocatorCount","GetMesh","SetMesh","AddController","push","AddObserver","observer","SetInheritProperties","colorSet","EveChildInheritProperties","SetProperties","#PropagateInheritProperties","properties","GetProperties","child","light","GetEffectChildByName","target","String","GetName","AddToEffectChildrenList","AddLight","ClearLights","RemoveFromEffectChildrenList","index","indexOf","splice","SetModelRotationCurve","curve","GetModelRotationCurve","SetModelTranslationCurve","GetModelTranslationCurve","UpdateWorldTransform","time","nextTime","Number","copy","GetValueDotAt","rotation","clone","modelRotation","multiply","fromQuat","scale","modelTranslation","transformMat4","invert","identity","UpdateWorldBounds","updater","IsInitialized","GetDynamicBounds","UpdateSyncronous","updateContext","observerTransform","GetObserverTransform","Update","EveLODHelper","ShouldUpdate","overlay","params","EveChildUpdateParams","spaceObjectParent","ownerMaxSpeed","maxSpeed","localToWorldTransform","GetLocalToWorldTransform","DisplayChildren","IsAlwaysOn","UpdateAsyncronous","threshold","frequency","Math","min","curveSet","controllerUpdateFrequency","UpdateVisibility","_parentTransform","TR2_LOD_LOW","frustum","GetFrustum","lowThreshold","mediumThreshold","visibilityThreshold","lodFactor","IsSphereVisible","EstimatePixelDiameter","attachment","GetBoundingSphere","TR2_LOD_HIGH","TR2_LOD_MEDIUM","GetObserver","SetVisibility","Infinity","UseWithScreenSize","GetRenderables","out","GetBoundingBox","IsLoading","geometryResource","GetGeometryResource","decal","GetBatches","batches","batchType","perObjectData","renderContext","committedBefore","GetBatchCount","areas","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","GetBatchesFromOverlayVector","#GetSortedTransparentBatches","geometry","viewPosition","GetViewPosition","meshIndex","sorted","area","GetDisplay","GetAreaBoundingBox","GetIndex","add","dx","dy","dz","distance","sort","a","b","entry","GetMaterialInterface","batch","CreateGeometryBatch","Commit","RebuildCachedData","ReleaseCachedData","all","CollectAreaBlocks","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","blocks","TriRenderBatchAreaBlock","Optimize","CollectAreaBlocksWithSharedMaterials","collector","#EnsureCachedAreaBlocks","GetShadowBatches","_shadowPixelSize","committed","material","shaderMaterial","block","areaBlockVector","Tr2RenderBatch","SetMaterial","IsValid","SetGeometrySource","startIndex","count","SetPerObjectData","impactEffect","GetArmorDamageShader","effects","overlayType","effect","#CommitBlockBatch","priority","SetPriority","#OverlayEffectsFor","GetEffects","opaqueEffects","decalEffects","transparentEffects","TRIBATCHTYPE_ADDITIVE","additiveEffects","TRIBATCHTYPE_DISTORTION","distortionEffects","HasTransparentBatches","HasTransparentArea","GetSortValue","x","y","z","hypot","GetPerObjectData","accumulator","data","Allocate","Tr2PerObjectData","object","GetShadowPerObjectData","GetWorldPosition","GetWorldRotation","FindSoundEmitter","emitter","SetMute","PlayAnimationEx","animName","loopCount","start","speed","clearWhenDone","CalculateSkinnedBoundingBoxFromTransform","transform","max","IsUsingCMF","localMin","localMax","GetLocalBoundingBox","corner","CalculateSkinnedBoundingSphere","center","GetBoundingSphereCenter","GetBoundingSphereRadius","ClearImpactDamage","Clear","ClearAnimations","CreateImpactFromPosition","position","direction","lifeTime","size","closestDamageLocator","CreateImpact","damageLocatorIndex","EndAnimation","FreezeHighDetailMesh","SetHighDetailDecalState","GetDamageLocatorCount","GetLocatorCount","locatorSetName","GetLocatorsForSet","GetCloseLocatorIndex","posInObjectSpace","locatorPosition","locatorDirection","closestLength","closestIndex","squaredDistance","GetGoodLocatorIndex","GetDamageLocatorDirection","inWorldSpaceOrOut","targetableCall","inWorldSpace","GetDamageLocatorPosition","GetClosestDamageLocatorIndex","GetGoodDamageLocatorIndex","objectPosition","minDistance","maxDistance","MIN_VALUE","bestDirectionFit","locator","subtract","desiredFit","random","bestFit","bestLocator","range","value","sqrt","abs","fit","GetRadius","GetMissPosition","hit","source","directionLength","scaleAndAdd","dot","offsetLength","GetImpactConfiguration","ImpactConfiguration","IMPACT_INVALID","HasImpactConfigurationShield","HasShieldEllipsoid","IMPACT_SHIELD","GetImpactPosition","posPrev","posNow","epsilon","t","UpdateImpact","impactIndex","GetDamageLocator","GetTransformedDamageLocator","IsImpostor","GetLocatorPositionFromSet","GetLocatorRotationFromSet","HandleControllerEvent","eventName","HandleEvent","PlayAnimation","ChainAnimation","ChainAnimationEx","#PlayAnimation","replace","delay","RebuildBoundingSphereInformation","geometryRes","IsGood","RecalculateBoundingSphere","sphere","GetMeshIndex","SetBoundingSphereInformation","radius","extract","GetControllerVariables","Object","fromEntries","GetLastUsedMeshLod","GetLodIndexForScreenSize","GetLocatorTransform","candidate","GetBoneWorldTransform","GetTransform","minBounds","maxBounds","GetWorldBoundingBox","box3","fromBounds","IsBoundingBoxReady","query","union","IsInFrustum","GetBoneCount","HasMeshBinding","GetSkeletonBoneIndices","GetMeshBindingBoneCount","SetImpactDamageState","shield","armor","hull","doCreateArmorImpacts","SetDamageState","SetControllerVariable","SetImpactAnimation","enable","duration","ToggleEffect","key","next","SetVariable","SetProceduralContainerVariable","StartControllers","Start","TransformLocators","result","record","Array","isArray","boneIndex","#TransformLocator","bone","boneRotation","getRotation","#ApplyModelTransform","translation","GetValueAt","transformQuat","#GetLocatorsForSet","GetLocators","#GetLocatorInObjectSpace","outPosition","outDirection","boneCount","GetMeshBoneCount","#GetClosestLocatorIndex","#GetShapeEllipsoid","outCenter","outRadii","bounds","lerp","#IsLocatorFacingPosition","moved","squaredLength","#TransformNormal","matrix","#GetDirectionFit","v0","v1","#IntersectEllipsoidRay","radii","origin","vx","vy","vz","sx","sy","sz","vv","vs","ss","discriminant","#IsPointInsideEllipsoid","point","#GetBoneMatrix","bones","GetMeshBoneMatrixList","#ApplyControllerVariables","variables","methodName","setter","call","#UpdateCurve","fallback","ArrayBuffer","isView","#GetContextValue","context","propertyNames","propertyName","undefined","#GetPixelSize","GetPixelSizeAccross","#GetEstimatedPixelSize","GetPixelSizeAccrossEst","#SetSphere","#TransformBox","freeze","ReflectionMode","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveSpaceObject2.js","sources":["../../../../src/eve/spaceObject/EveSpaceObject2.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2_Blue.cpp\r\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveEntity } from \"../../generated/eve/EveEntity.js\";\r\nimport { EveChildUpdateParams } from \"../EveChildUpdateParams.js\";\r\nimport { EveChildInheritProperties } from \"../child/EveChildInheritProperties.js\";\r\nimport { box3 } from \"@carbonenginejs/runtime-utils/box3\";\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\r\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\nimport { ReflectionMode } from \"../../generated/eve/enums.js\";\r\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\r\nimport { ImpactConfiguration } from \"../../generated/include/enums.js\";\r\nimport { EveLODHelper, Tr2Lod } from \"../EveLODHelper.js\";\r\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\r\nimport { Tr2PerObjectData } from \"../../trinityCore/Tr2PerObjectData.js\";\r\nimport { Tr2RenderBatch, TriRenderBatchAreaBlock } from \"../../trinityCore/Tr2RenderBatch.js\";\r\n\r\n// Static scratch for the sorted-transparent area pass (allocation rules: hot\r\n// per-frame path, copy-into, never allocate per call).\r\nconst TRANSPARENT_AABB_MIN = vec3.create();\r\nconst TRANSPARENT_AABB_MAX = vec3.create();\r\nconst TRANSPARENT_CENTER = vec3.create();\r\n\r\n// Carbon EveMeshOverlayEffect::OverlayType (EveMeshOverlayEffect.h:35-41).\r\nconst OVERLAY_TYPE_OPAQUEONLY = 0;\r\nconst OVERLAY_TYPE_ALL = 1;\r\n\r\n@type.define({ className: \"EveSpaceObject2\", family: \"eve/spaceObject\" })\r\nexport class EveSpaceObject2 extends EveEntity\r\n{\r\n\r\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"ReflectionMode\")\r\n reflectionMode = 3;\r\n\r\n /** m_effectChildren (PIEveSpaceObjectChildVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectChild\")\r\n effectChildren = [];\r\n\r\n /** m_children (PIEveTransformVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveTransform\")\r\n children = [];\r\n\r\n /** m_name (std::string) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_mute (bool) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n mute = false;\r\n\r\n /** m_inheritProperties (EveChildInheritPropertiesPtr) [READWRITE] */\r\n @io.readwrite\r\n @type.objectRef(\"EveChildInheritProperties\")\r\n inheritProperties = null;\r\n\r\n /** m_customMasks (PEveCustomMaskVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveCustomMask\")\r\n customMasks = [];\r\n\r\n /** m_overlayEffects (PEveMeshOverlayEffectVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveMeshOverlayEffect\")\r\n overlayEffects = [];\r\n\r\n /** m_positionDelta (Tr2BindingVector3Ptr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2BindingVector3\")\r\n positionDelta = null;\r\n\r\n /** m_lodLevel (Tr2Lod - enum Tr2Lod) [READ] */\r\n @io.read\r\n @type.int32\r\n @schema.enum(\"Tr2Lod\")\r\n lodLevel = -1;\r\n\r\n /** m_curveSets (PTriCurveSetVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriCurveSet\")\r\n curveSets = [];\r\n\r\n /** m_isPickable (bool) [READWRITE] */\r\n @io.readwrite\r\n @type.boolean\r\n isPickable = true;\r\n\r\n /** m_estimatedPixelDiameter (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedPixelDiameter = 0;\r\n\r\n /** m_estimatedPixelDiameterWithChildren (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedPixelDiameterWithChildren = 0;\r\n\r\n /** m_generatedShapeEllipsoidCenter (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n generatedShapeEllipsoidCenter = vec3.create();\r\n\r\n /** m_generatedShapeEllipsoidRadius (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n generatedShapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\r\n\r\n /** m_animationUpdater (Tr2GrannyAnimationPtr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2GrannyAnimation\")\r\n animationUpdater = null;\r\n\r\n /** m_dna (std::string) [READ, PERSIST] */\r\n @io.persist\r\n @type.string\r\n dna = \"\";\r\n\r\n /** m_castShadow (bool) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n castShadow = false;\r\n\r\n /** m_isAnimated (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n isAnimated = false;\r\n\r\n /** m_dynamicBoundingSphereEnabled (bool) [READ, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n dynamicBoundingSphereEnabled = false;\r\n\r\n /** m_attachments (PIEveSpaceObjectAttachmentVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectAttachment\")\r\n attachments = [];\r\n\r\n /** m_decals (PEveSpaceObjectDecalVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveSpaceObjectDecal\")\r\n decals = [];\r\n\r\n /** m_lights (PTr2LightVector) [READ, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n /** m_externalParameters (PTr2ExternalParameterVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"Tr2ExternalParameter\")\r\n externalParameters = [];\r\n\r\n /** m_controllers (PITr2ControllerVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"ITr2Controller\")\r\n controllers = [];\r\n\r\n /** m_locators (PEveLocator2Vector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveLocator2\")\r\n locators = [];\r\n\r\n /** m_mesh (Tr2MeshBasePtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"Tr2MeshBase\")\r\n mesh = null;\r\n\r\n /** m_impactOverlay (EveImpactOverlayPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"EveImpactOverlay\")\r\n impactOverlay = null;\r\n\r\n /** m_clipSphereCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n clipSphereCenter = vec3.create();\r\n\r\n /** m_clipSphereFactor2 (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n clipSphereFactor2 = 0;\r\n\r\n /** m_clipSphereFactor (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n clipSphereFactor = 0;\r\n\r\n /** m_observers (PTriObserverLocalVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriObserverLocal\")\r\n observers = [];\r\n\r\n /** m_worldPosition (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n worldPosition = vec3.create();\r\n\r\n /** m_ballRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriQuaternionFunction\")\r\n rotationCurve = null;\r\n\r\n /** m_worldRotation (Quaternion) [READ] */\r\n @io.read\r\n @type.quat\r\n worldRotation = quat.create();\r\n\r\n /** m_modelScale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n modelScale = 1;\r\n\r\n /** m_locatorSets (PEveLocatorSetsVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveLocatorSets\")\r\n locatorSets = [];\r\n\r\n /** m_activationStrength (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n activationStrength = 1;\r\n\r\n /** m_albedoColor (Color) [READWRITE] */\r\n @io.readwrite\r\n @type.color\r\n albedoColor = vec4.createLinear();\r\n\r\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_update (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n update = true;\r\n\r\n /** m_secondaryLightingSphereRadius (float) [READ] */\r\n @io.read\r\n @type.float32\r\n secondaryLightingSphereRadius = 0;\r\n\r\n /** m_boundingSphereCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n boundingSphereCenter = vec3.create();\r\n\r\n /** m_dirtLevel (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n dirtLevel = 0;\r\n\r\n /** m_psData.customData (Vector4) [READWRITE] - script/SOF-driven custom shader data. */\r\n @io.readwrite\r\n @type.vec4\r\n customShaderData = vec4.create();\r\n\r\n /** m_lastDamageLocatorHit (int) [READ] */\r\n @io.read\r\n @type.int32\r\n lastDamageLocatorHit = -1;\r\n\r\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n boundingSphereRadius = -1;\r\n\r\n /** m_boundingSphereWorldCenter (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n modelWorldPosition = vec3.create();\r\n\r\n /** m_modelTranslation (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriVectorFunction\")\r\n modelTranslationCurve = null;\r\n\r\n /** m_modelRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriQuaternionFunction\")\r\n modelRotationCurve = null;\r\n\r\n /** m_shapeEllipsoidCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n shapeEllipsoidCenter = vec3.create();\r\n\r\n /** m_shapeEllipsoidRadius (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n shapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\r\n\r\n /** m_ballPosition (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriVectorFunction\")\r\n translationCurve = null;\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.mat4\r\n inverseWorldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.mat4\r\n lastWorldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.vec3\r\n worldVelocity = vec3.create();\r\n\r\n @io.readwrite\r\n @type.objectRef(\"ITr2AudGeometry\")\r\n audioGeometry = null;\r\n\r\n @type.boolean\r\n isVisible = false;\r\n\r\n #controllerVariables = new Map([\r\n [\"DirtLevel\", 0],\r\n [\"ActivationStrength\", 1],\r\n [\"ShieldDamage\", 1],\r\n [\"ArmorDamage\", 1],\r\n [\"HullDamage\", 1],\r\n [\"ClipSphereFactor\", 0],\r\n [\"ClipSphereFactor2\", 0]\r\n ]);\r\n\r\n #lastUpdateTransformTime = null;\r\n\r\n // Carbon m_lastCurveUpdateTime: stamped by the sync-side LOD gate; the async\r\n // side updates curve sets only when it matches the frame time.\r\n #lastCurveUpdateTime = 0;\r\n\r\n // Carbon m_dynamicBoundingSphere: disabled while w is -1; a future animation\r\n // updater port publishes skinned bounds here.\r\n #dynamicBoundingSphere = sph3.set(sph3.create(), 0, 0, 0, -1);\r\n\r\n // Carbon keeps the realized world sphere separate from the authored local\r\n // sphere. It is refreshed by UpdateWorldBounds after transform changes.\r\n #boundingSphereWorldRadius = -1;\r\n\r\n // Carbon visibility and mesh LOD state are runtime-only renderer results.\r\n #isInFrustum = false;\r\n\r\n #isMeshVisible = false;\r\n\r\n #lodLevelWithChildren = Tr2Lod.TR2_LOD_UNSPECIFIED;\r\n\r\n #meshScreenSize = 0;\r\n\r\n #overlayMeshAreaBlocks = [ [], [] ];\r\n\r\n #shadowMeshOpaqueAreas = [];\r\n\r\n #cachedAreaBlocksBuilt = false;\r\n\r\n // Carbon m_localAabbMin/Max: cached so GetLocalBoundingBox can answer before\r\n // LOD selection assigns a mesh (at worst it lags one frame).\r\n #localAabbMin = vec3.create();\r\n\r\n #localAabbMax = vec3.create();\r\n\r\n // Carbon m_allowLodSelection: cleared by FreezeHighDetailMesh.\r\n #allowLodSelection = true;\r\n\r\n // Carbon m_impostorMode: the impostor system that raises it is unported.\r\n #impostorMode = false;\r\n\r\n get meshLod()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n set meshLod(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n if (!controller?.IsLinked?.())\r\n {\r\n controller?.Link?.(this);\r\n }\r\n }\r\n // Authored inherit properties propagate as part of the lifecycle so a\r\n // field-populated graph (values import, document hydration) matches the\r\n // SetInheritProperties authoring path.\r\n if (this.inheritProperties)\r\n {\r\n this.#PropagateInheritProperties();\r\n }\r\n // Carbon derives the impact overlay's damage locator count from the\r\n // \"damage\" locator set at build time; deriving it here keeps it out of\r\n // the authored values while reproducing the same live state.\r\n if (this.impactOverlay)\r\n {\r\n let damageLocatorCount = 0;\r\n for (const set of this.locatorSets)\r\n {\r\n if (set?.HasName?.(\"damage\")) damageLocatorCount += set.locators.length;\r\n }\r\n this.impactOverlay.SetDamageLocatorCount(damageLocatorCount);\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetMesh()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMesh(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddController(controller)\r\n {\r\n this.controllers.push(controller);\r\n if (!controller?.IsLinked?.())\r\n {\r\n controller?.Link?.(this);\r\n }\r\n EveSpaceObject2.#ApplyControllerVariables(controller, this.#controllerVariables, \"SetVariable\");\r\n return controller;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddObserver(observer)\r\n {\r\n this.observers.push(observer);\r\n return observer;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetInheritProperties(colorSet)\r\n {\r\n if (!this.inheritProperties)\r\n {\r\n this.inheritProperties = new EveChildInheritProperties();\r\n }\r\n this.inheritProperties.SetProperties(colorSet);\r\n this.#PropagateInheritProperties();\r\n }\r\n\r\n #PropagateInheritProperties()\r\n {\r\n const properties = this.inheritProperties.GetProperties();\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetInheritProperties?.(properties);\r\n }\r\n for (const light of this.lights)\r\n {\r\n light?.SetInheritProperties?.(properties);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetEffectChildByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const child of this.effectChildren)\r\n {\r\n if ((child?.GetName?.() ?? child?.name ?? \"\") === target)\r\n {\r\n return child;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddToEffectChildrenList(child)\r\n {\r\n if (this.inheritProperties)\r\n {\r\n child?.SetInheritProperties?.(this.inheritProperties.GetProperties());\r\n }\r\n this.effectChildren.push(child);\r\n EveSpaceObject2.#ApplyControllerVariables(child, this.#controllerVariables, \"SetControllerVariable\");\r\n return child;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddLight(light)\r\n {\r\n if (this.inheritProperties)\r\n {\r\n light?.SetInheritProperties?.(this.inheritProperties.GetProperties());\r\n }\r\n this.lights.push(light);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ClearLights()\r\n {\r\n this.lights.length = 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n RemoveFromEffectChildrenList(child)\r\n {\r\n const index = this.effectChildren.indexOf(child);\r\n if (index === -1)\r\n {\r\n return false;\r\n }\r\n this.effectChildren.splice(index, 1);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetModelRotationCurve(curve)\r\n {\r\n this.modelRotationCurve = curve ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetModelRotationCurve()\r\n {\r\n return this.modelRotationCurve;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetModelTranslationCurve(curve)\r\n {\r\n this.modelTranslationCurve = curve ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetModelTranslationCurve()\r\n {\r\n return this.modelTranslationCurve;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateWorldTransform(time)\r\n {\r\n const nextTime = Number(time) || 0;\r\n if (this.#lastUpdateTransformTime === nextTime)\r\n {\r\n return false;\r\n }\r\n this.#lastUpdateTransformTime = nextTime;\r\n mat4.copy(this.lastWorldTransform, this.worldTransform);\r\n\r\n EveSpaceObject2.#UpdateCurve(this.translationCurve, nextTime, this.worldPosition, EveSpaceObject2.#zero);\r\n if (this.translationCurve?.GetValueDotAt)\r\n {\r\n this.translationCurve.GetValueDotAt(nextTime, this.worldVelocity);\r\n }\r\n else\r\n {\r\n vec3.set(this.worldVelocity, 0, 0, 0);\r\n }\r\n\r\n EveSpaceObject2.#UpdateCurve(this.rotationCurve, nextTime, this.worldRotation, EveSpaceObject2.#identityRotation);\r\n const rotation = quat.clone(this.worldRotation);\r\n if (this.modelRotationCurve)\r\n {\r\n const modelRotation = quat.create();\r\n EveSpaceObject2.#UpdateCurve(this.modelRotationCurve, nextTime, modelRotation, EveSpaceObject2.#identityRotation);\r\n // Carbon (row-vector): rotation = modelRotation * m_worldRotation - model first.\r\n quat.multiply(rotation, rotation, modelRotation);\r\n }\r\n\r\n mat4.fromQuat(this.worldTransform, rotation);\r\n if (this.modelScale !== 1)\r\n {\r\n // Carbon (row-vector): m_worldTransform * scaleMatrix - scale LAST\r\n // (cpp:2711-2716). gl mat4.scale builds W*S = scale FIRST; equivalent\r\n // ONLY because modelScale is strictly uniform (a uniform scale commutes\r\n // with the pure rotation here). If modelScale ever becomes a vec3 this\r\n // must become mat4.multiply(w, S, w) per the swap rule.\r\n mat4.scale(this.worldTransform, this.worldTransform, [this.modelScale, this.modelScale, this.modelScale]);\r\n }\r\n\r\n if (this.modelTranslationCurve)\r\n {\r\n const modelTranslation = vec3.create();\r\n EveSpaceObject2.#UpdateCurve(this.modelTranslationCurve, nextTime, modelTranslation, EveSpaceObject2.#zero);\r\n vec3.transformMat4(modelTranslation, modelTranslation, this.worldTransform);\r\n this.worldTransform[12] = this.worldPosition[0] + modelTranslation[0];\r\n this.worldTransform[13] = this.worldPosition[1] + modelTranslation[1];\r\n this.worldTransform[14] = this.worldPosition[2] + modelTranslation[2];\r\n }\r\n else\r\n {\r\n this.worldTransform[12] = this.worldPosition[0];\r\n this.worldTransform[13] = this.worldPosition[1];\r\n this.worldTransform[14] = this.worldPosition[2];\r\n }\r\n\r\n if (!mat4.invert(this.inverseWorldTransform, this.worldTransform))\r\n {\r\n mat4.identity(this.inverseWorldTransform);\r\n }\r\n this.UpdateWorldBounds();\r\n return true;\r\n }\r\n\r\n /**\r\n * Refreshes Carbon's realized world-space sphere from the dynamic skinned\r\n * sphere when available, otherwise from the authored local sphere.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The browser runtime refreshes the cache with world-transform updates instead of Carbon's renderer-side PrepareShaderData pass.\")\r\n UpdateWorldBounds()\r\n {\r\n const updater = this.animationUpdater;\r\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\r\n {\r\n updater.GetDynamicBounds?.(this.#dynamicBoundingSphere, this.#localAabbMin, this.#localAabbMax);\r\n if (this.#dynamicBoundingSphere[3] > 0)\r\n {\r\n vec3.transformMat4(this.modelWorldPosition, this.#dynamicBoundingSphere, this.worldTransform);\r\n this.#boundingSphereWorldRadius = this.modelScale * this.#dynamicBoundingSphere[3];\r\n return true;\r\n }\r\n }\r\n if (this.boundingSphereRadius > 0)\r\n {\r\n vec3.transformMat4(this.modelWorldPosition, this.boundingSphereCenter, this.worldTransform);\r\n this.#boundingSphereWorldRadius = this.modelScale * this.boundingSphereRadius;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateSyncronous(updateContext = null)\r\n {\r\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\r\n this.UpdateWorldTransform(time);\r\n if (!this.update)\r\n {\r\n return false;\r\n }\r\n\r\n const observerTransform = this.GetObserverTransform();\r\n for (const observer of this.observers)\r\n {\r\n observer?.Update?.(observerTransform);\r\n }\r\n\r\n // LOD-gated curve/overlay stamp (Carbon EveSpaceObject2::UpdateSyncronous:\r\n // ShouldUpdate(m_lodLevelWithChildren, time - m_lastCurveUpdateTime) -\r\n // adapted to lodLevel, m_lodLevelWithChildren is unported). Overlay effects\r\n // receive the context time as BOTH clocks, as Carbon does; the async pass\r\n // updates curve sets only on frames stamped here.\r\n if (EveLODHelper.ShouldUpdate(this.lodLevel, time - this.#lastCurveUpdateTime))\r\n {\r\n this.#lastCurveUpdateTime = time;\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.Update?.(time, time);\r\n }\r\n }\r\n\r\n if (this.effectChildren.length)\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.spaceObjectParent = this;\r\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\r\n params.activationStrength = this.activationStrength;\r\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\r\n for (const child of this.effectChildren)\r\n {\r\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\r\n child?.UpdateSyncronous?.(updateContext, params);\r\n }\r\n }\r\n\r\n this.impactOverlay?.UpdateSyncronous?.(updateContext, this);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext = null)\r\n {\r\n if (!this.update)\r\n {\r\n return 0;\r\n }\r\n\r\n const threshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetHighDetailThreshold\", \"highDetailThreshold\");\r\n const frequency = this.isVisible && threshold > 0\r\n ? Math.min(1, this.estimatedPixelDiameter / threshold)\r\n : 0;\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Update?.(frequency);\r\n }\r\n\r\n // Object-level curve sets update only on frames the sync-side LOD gate\r\n // stamped, receiving the context time as BOTH realTime and simTime\r\n // (Carbon EveSpaceObject2::UpdateAsyncronous: if (m_lastCurveUpdateTime ==\r\n // time) (*it)->Update(time, time)).\r\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\r\n if (this.#lastCurveUpdateTime === time)\r\n {\r\n for (const curveSet of this.curveSets)\r\n {\r\n curveSet?.Update?.(time, time);\r\n }\r\n }\r\n\r\n for (const child of this.children)\r\n {\r\n child?.Update?.(updateContext);\r\n }\r\n\r\n if (this.effectChildren.length)\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.spaceObjectParent = this;\r\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\r\n params.activationStrength = this.activationStrength;\r\n params.controllerUpdateFrequency = frequency;\r\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\r\n for (const child of this.effectChildren)\r\n {\r\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\r\n child?.UpdateAsyncronous?.(updateContext, params);\r\n }\r\n }\r\n\r\n this.impactOverlay?.UpdateAsyncronous?.(updateContext, this);\r\n return frequency;\r\n }\r\n\r\n /**\r\n * Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards\r\n * visibility to the explicitly owned visual branches.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.\")\r\n UpdateVisibility(updateContext = null, _parentTransform = EveSpaceObject2.#identityTransform)\r\n {\r\n this.isVisible = false;\r\n this.#isMeshVisible = false;\r\n this.#isInFrustum = false;\r\n if (!this.display)\r\n {\r\n return false;\r\n }\r\n\r\n this.UpdateWorldBounds();\r\n this.lodLevel = Tr2Lod.TR2_LOD_LOW;\r\n this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\r\n this.#impostorMode = false;\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const lowThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetLowDetailThreshold\", \"lowDetailThreshold\");\r\n const mediumThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetMediumDetailThreshold\", \"mediumDetailThreshold\");\r\n const visibilityThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetVisibilityThreshold\", \"visibilityThreshold\");\r\n const lodFactor = EveSpaceObject2.#GetContextValue(updateContext, \"GetLodFactor\", \"lodFactor\") || 1;\r\n\r\n if (this.boundingSphereRadius > 0 && this.#boundingSphereWorldRadius > 0)\r\n {\r\n EveSpaceObject2.#SetSphere(\r\n EveSpaceObject2.#worldSphere,\r\n this.modelWorldPosition,\r\n this.#boundingSphereWorldRadius\r\n );\r\n if (frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false)\r\n {\r\n this.EstimatePixelDiameter(frustum);\r\n this.#isMeshVisible = true;\r\n }\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n if (attachment?.UpdateVisibility?.(updateContext, this.worldTransform, null, 0))\r\n {\r\n this.#isMeshVisible = true;\r\n this.isVisible = true;\r\n }\r\n }\r\n\r\n if (this.DisplayChildren())\r\n {\r\n for (const child of this.children)\r\n {\r\n child?.UpdateVisibility?.(updateContext, this.worldTransform);\r\n }\r\n }\r\n\r\n if (this.GetBoundingSphere(EveSpaceObject2.#worldSphere, 1))\r\n {\r\n this.#isInFrustum = frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false;\r\n this.estimatedPixelDiameterWithChildren = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\r\n if (this.#isInFrustum && this.estimatedPixelDiameterWithChildren >= visibilityThreshold)\r\n {\r\n this.isVisible = true;\r\n }\r\n }\r\n\r\n if (this.isVisible)\r\n {\r\n if (this.estimatedPixelDiameter > mediumThreshold) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\r\n else if (this.estimatedPixelDiameter > lowThreshold) this.lodLevel = Tr2Lod.TR2_LOD_MEDIUM;\r\n\r\n if (this.estimatedPixelDiameterWithChildren > mediumThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_HIGH;\r\n else if (this.estimatedPixelDiameterWithChildren > lowThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_MEDIUM;\r\n else this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\r\n }\r\n\r\n for (const observer of this.observers)\r\n {\r\n const target = observer?.GetObserver?.() ?? observer?.observer;\r\n target?.SetVisibility?.(this.isVisible);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.UpdateVisibility?.(updateContext, this.worldTransform, this.#lodLevelWithChildren);\r\n }\r\n\r\n if (this.mesh && this.#boundingSphereWorldRadius > 0)\r\n {\r\n EveSpaceObject2.#SetSphere(\r\n EveSpaceObject2.#worldSphere,\r\n this.modelWorldPosition,\r\n this.#boundingSphereWorldRadius\r\n );\r\n this.#meshScreenSize = EveSpaceObject2.#GetEstimatedPixelSize(frustum, EveSpaceObject2.#worldSphere) * lodFactor;\r\n if (!this.#allowLodSelection) this.#meshScreenSize = Infinity;\r\n this.mesh.UseWithScreenSize?.(this.#meshScreenSize, this.#boundingSphereWorldRadius);\r\n }\r\n return this.isVisible;\r\n }\r\n\r\n /** Collects the hull and explicitly owned Carbon child/decal renderables. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!this.display || !this.isVisible) return out;\r\n if (this.#allowLodSelection && this.#isMeshVisible)\r\n {\r\n this.mesh?.GetBoundingBox?.(this.#localAabbMin, this.#localAabbMax);\r\n }\r\n if (this.mesh && this.#isMeshVisible && this.mesh.IsLoading?.() !== true)\r\n {\r\n out.push(this);\r\n }\r\n if (this.DisplayChildren())\r\n {\r\n for (const child of this.children) child?.GetRenderables?.(out);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n if (this.DisplayChildren() || child?.IsAlwaysOn?.()) child?.GetRenderables?.(out);\r\n }\r\n if (this.mesh && this.#isMeshVisible)\r\n {\r\n const geometryResource = this.mesh.GetGeometryResource?.();\r\n if (geometryResource)\r\n {\r\n for (const decal of this.decals)\r\n {\r\n decal?.GetRenderables?.(out, null, geometryResource, this.#meshScreenSize);\r\n }\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated\r\n * attachments recurse, the impact overlay contributes, the hull mesh delegates\r\n * per batch type, and TRANSPARENT routes through the distance-sorted area\r\n * path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is\r\n * deferred with the overlay realization work. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.\")\r\n GetBatches(batches, batchType, perObjectData, reason, renderContext = null)\r\n {\r\n if (!this.mesh) return false;\r\n if (this.mesh.display === false) return false;\r\n\r\n // Returns whether any batch was committed (JS addition; Carbon returns\r\n // void). The O(1) accumulator count makes the delta check free.\r\n const committedBefore = batches.GetBatchCount?.() ?? 0;\r\n\r\n if (this.activationStrength !== 0)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.GetBatches?.(batches, batchType, perObjectData, reason);\r\n }\r\n }\r\n\r\n this.impactOverlay?.GetBatches?.(batches, batchType, perObjectData, this.#meshScreenSize);\r\n\r\n const areas = this.mesh.GetAreas?.(batchType);\r\n if (areas)\r\n {\r\n if (batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\r\n {\r\n this.mesh.GetBatches(batches, areas, perObjectData);\r\n }\r\n else\r\n {\r\n this.#GetSortedTransparentBatches(areas, batches, perObjectData, renderContext);\r\n }\r\n }\r\n\r\n // add overlay effect batches (Carbon calls this for every batch type)\r\n this.GetBatchesFromOverlayVector(batches, perObjectData, batchType, this.mesh);\r\n\r\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\r\n }\r\n\r\n // Carbon GetSortedBatchesFromMeshAreaVector (EveSpaceObject2.cpp:57-121):\r\n // object-space area bounding-box centers -> world space -> squared distance to\r\n // the view position, sorted back-to-front (descending), committed in that\r\n // order into the order-preserving TRANSPARENT accumulator. Bounding boxes come\r\n // from the geometry resource when it exposes them; a failed lookup keeps\r\n // Carbon's origin-center fallback.\r\n #GetSortedTransparentBatches(areas, batches, perObjectData, renderContext)\r\n {\r\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n const meshIndex = this.mesh.meshIndex ?? 0;\r\n\r\n const sorted = [];\r\n for (const area of areas)\r\n {\r\n if (!area || area.GetDisplay?.() === false) continue;\r\n\r\n vec3.set(TRANSPARENT_CENTER, 0, 0, 0);\r\n if (geometry?.GetAreaBoundingBox?.(meshIndex, area.GetIndex(), TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX))\r\n {\r\n vec3.add(TRANSPARENT_CENTER, TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX);\r\n vec3.scale(TRANSPARENT_CENTER, TRANSPARENT_CENTER, 0.5);\r\n }\r\n vec3.transformMat4(TRANSPARENT_CENTER, TRANSPARENT_CENTER, this.worldTransform);\r\n\r\n const dx = (viewPosition?.[0] ?? 0) - TRANSPARENT_CENTER[0];\r\n const dy = (viewPosition?.[1] ?? 0) - TRANSPARENT_CENTER[1];\r\n const dz = (viewPosition?.[2] ?? 0) - TRANSPARENT_CENTER[2];\r\n sorted.push({ area, distance: dx * dx + dy * dy + dz * dz });\r\n }\r\n\r\n sorted.sort((a, b) => b.distance - a.distance);\r\n\r\n for (const entry of sorted)\r\n {\r\n const area = entry.area;\r\n if (!area.GetMaterialInterface?.()) continue;\r\n const batch = this.mesh.CreateGeometryBatch(geometry, area, perObjectData);\r\n if (batch) batches.Commit(batch);\r\n }\r\n }\r\n\r\n /** Rebuilds the cached overlay/shadow area-block lists from the current mesh\r\n * (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by\r\n * the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +\r\n * TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the\r\n * shadow list groups OPAQUE areas by shared material. All coalesced. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.\")\r\n RebuildCachedData()\r\n {\r\n this.ReleaseCachedData();\r\n if (!this.mesh) return;\r\n\r\n const all = this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL];\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_TRANSPARENT);\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_DECAL);\r\n this.mesh.CollectAreaBlocks(\r\n this.#overlayMeshAreaBlocks[OVERLAY_TYPE_OPAQUEONLY], TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n for (const blocks of this.#overlayMeshAreaBlocks)\r\n {\r\n TriRenderBatchAreaBlock.Optimize(blocks);\r\n }\r\n\r\n this.mesh.CollectAreaBlocksWithSharedMaterials(\r\n this.#shadowMeshOpaqueAreas, TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n for (const collector of this.#shadowMeshOpaqueAreas)\r\n {\r\n collector.Optimize();\r\n }\r\n this.#cachedAreaBlocksBuilt = true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ReleaseCachedData()\r\n {\r\n for (const blocks of this.#overlayMeshAreaBlocks)\r\n {\r\n blocks.length = 0;\r\n }\r\n this.#shadowMeshOpaqueAreas.length = 0;\r\n this.#cachedAreaBlocksBuilt = false;\r\n }\r\n\r\n #EnsureCachedAreaBlocks()\r\n {\r\n if (!this.#cachedAreaBlocksBuilt && this.mesh) this.RebuildCachedData();\r\n }\r\n\r\n /** Carbon GetShadowBatches (EveSpaceObject2.cpp:1143-1184): one batch per\r\n * cached shared-material OPAQUE area block, using the area's own material.\r\n * Carbon bakes realized-LOD draw args; the GPU-free port defers them to the\r\n * engine via the geometry source descriptor, so shadowPixelSize travels unused\r\n * until engine LOD selection consumes it. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.\")\r\n GetShadowBatches(batches, perObjectData, _shadowPixelSize)\r\n {\r\n if (!this.mesh || this.mesh.display === false) return false;\r\n this.#EnsureCachedAreaBlocks();\r\n\r\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\r\n const meshIndex = this.mesh.meshIndex ?? 0;\r\n\r\n let committed = false;\r\n for (const collector of this.#shadowMeshOpaqueAreas)\r\n {\r\n const material = collector.shaderMaterial;\r\n if (!material) continue;\r\n for (const block of collector.areaBlockVector)\r\n {\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(material);\r\n if (!batch.IsValid()) continue;\r\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\r\n batch.SetPerObjectData(perObjectData ?? null);\r\n committed = batches.Commit(batch) || committed;\r\n }\r\n }\r\n return committed;\r\n }\r\n\r\n /** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the\r\n * impact overlay's armor-damage shader draws over the TYPE_ALL blocks at\r\n * maximum priority; each displayed overlay effect draws its per-batch-type\r\n * effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything\r\n * else -> TYPE_ALL). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Generated EveMeshOverlayEffect has no method surface yet, so the per-batch-type effect selection reads its fields here until the class is promoted; realized-LOD draw args defer to the engine.\")\r\n GetBatchesFromOverlayVector(batches, perObjectData, batchType, mesh)\r\n {\r\n const impactEffect = this.impactOverlay?.GetArmorDamageShader?.(batchType) ?? null;\r\n if (!impactEffect && !this.overlayEffects.length) return false;\r\n if (!mesh) return false;\r\n this.#EnsureCachedAreaBlocks();\r\n\r\n const committedBefore = batches.GetBatchCount?.() ?? 0;\r\n\r\n const geometry = mesh.GetGeometryResource?.() ?? null;\r\n const meshIndex = mesh.meshIndex ?? 0;\r\n\r\n if (impactEffect)\r\n {\r\n for (const block of this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL])\r\n {\r\n this.#CommitBlockBatch(batches, impactEffect, geometry, meshIndex, block, perObjectData, 0xFFFFFFFF);\r\n }\r\n }\r\n\r\n for (const overlay of this.overlayEffects)\r\n {\r\n const effects = this.#OverlayEffectsFor(overlay, batchType);\r\n if (!effects) continue;\r\n\r\n const overlayType = batchType === TriBatchType.TRIBATCHTYPE_OPAQUE\r\n ? OVERLAY_TYPE_OPAQUEONLY\r\n : OVERLAY_TYPE_ALL;\r\n const blocks = this.#overlayMeshAreaBlocks[overlayType];\r\n for (const effect of effects)\r\n {\r\n for (const block of blocks)\r\n {\r\n this.#CommitBlockBatch(batches, effect, geometry, meshIndex, block, perObjectData, 0);\r\n }\r\n }\r\n }\r\n\r\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\r\n }\r\n\r\n #CommitBlockBatch(batches, material, geometry, meshIndex, block, perObjectData, priority)\r\n {\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(material);\r\n if (!batch.IsValid()) return;\r\n if (priority !== 0) batch.SetPriority(priority);\r\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\r\n batch.SetPerObjectData(perObjectData ?? null);\r\n batches.Commit(batch);\r\n }\r\n\r\n // EveMeshOverlayEffect::GetEffects (display-gated, per batch type). Prefers a\r\n // promoted method surface; falls back to the generated class's fields.\r\n #OverlayEffectsFor(overlay, batchType)\r\n {\r\n if (!overlay) return null;\r\n if (typeof overlay.GetEffects === \"function\") return overlay.GetEffects(batchType) ?? null;\r\n if (overlay.display === false) return null;\r\n\r\n switch (batchType)\r\n {\r\n case TriBatchType.TRIBATCHTYPE_OPAQUE: return overlay.opaqueEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_DECAL: return overlay.decalEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_TRANSPARENT: return overlay.transparentEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_ADDITIVE: return overlay.additiveEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_DISTORTION: return overlay.distortionEffects ?? null;\r\n default: return null;\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The overlay HasTransparentArea predicate reads the generated class's transparentEffects field until the class is promoted.\")\r\n HasTransparentBatches()\r\n {\r\n if (!this.mesh) return false;\r\n if ((this.mesh.GetAreas?.(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0) return true;\r\n\r\n for (const overlay of this.overlayEffects)\r\n {\r\n if (overlay?.HasTransparentArea?.() ?? ((overlay?.transparentEffects?.length ?? 0) > 0)) return true;\r\n }\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\r\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\r\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\r\n return Math.hypot(x, y, z);\r\n }\r\n\r\n /** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>,\r\n * which calls back into the object at upload time; the GPU-free record carries\r\n * the same live object reference for the engine serializer (the space-object\r\n * Main profile) to pull current values at realization. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Persistent VS/PS device buffers are engine-owned; the record carries the object reference the engine serializer consumes.\")\r\n GetPerObjectData(accumulator = null)\r\n {\r\n const data = typeof accumulator?.Allocate === \"function\"\r\n ? accumulator.Allocate(Tr2PerObjectData)\r\n : new Tr2PerObjectData();\r\n data.object = this;\r\n return data;\r\n }\r\n\r\n /** Carbon forwards the shadow pass to the same per-object record. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(accumulator = null)\r\n {\r\n return this.GetPerObjectData(accumulator);\r\n }\r\n\r\n /** Carbon EveSpaceObject2::GetLights (cpp:3536-3555): display gate only\r\n * (no lights-empty early-out, unlike EveChildMesh), then per light\r\n * AddLight(manager, worldTransform, 1, bones, boneCount) FOLLOWED by\r\n * SetBrightnessMultiplier(m_activationStrength) - the order is contract:\r\n * the submission uses the multiplier stamped on the PREVIOUS pass (first\r\n * pass uses the Tr2Light default 1) - one frame of activation-strength\r\n * lag, preserved verbatim. cpp:3554's dead `DisplayChildren()` local is\r\n * not ported. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The granny bone list (Tr2GrannyAnimationUtils::GetBoneList, cpp:3545-3547) awaits the JS animation seam - (null, 0) is passed, the established EveChildMesh convention.\")\r\n GetLights(lightManager)\r\n {\r\n if (!this.display)\r\n {\r\n return;\r\n }\r\n for (const light of this.lights)\r\n {\r\n light?.AddLight?.(lightManager, this.worldTransform, 1, null, 0);\r\n light?.SetBrightnessMultiplier?.(this.activationStrength);\r\n }\r\n }\r\n\r\n /** Carbon EveSpaceObject2::IsCastingShadow (cpp:1940-1990) culls against the\r\n * camera/shadow frustums; awaits the TriFrustum port (visibility pass).\r\n * Presence satisfies the \"ShadowCaster\" duck contract. */\r\n @carbon.method\r\n @impl.notImplemented\r\n IsCastingShadow(..._args)\r\n {\r\n throw new Error(\"EveSpaceObject2.IsCastingShadow is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon EveSpaceObject2::RegisterComponents (cpp:3568-3609): registers its\r\n * own components and its children with the scene registration container \"so\r\n * we don't have to traverse the tree every frame\". RegisterAudioGeometry\r\n * (cpp:3572-3575) is audio-engine-owned and unported. Gate m_display. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n if (this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n\r\n if (ShouldReflect(this.reflectionMode))\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n\r\n if (this.castShadow)\r\n {\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n\r\n for (const child of this.effectChildren)\r\n {\r\n child?.Register?.(registry);\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveSpaceObject2::UnRegisterComponents (cpp:3615-3638): forwards\r\n * the un-registration to the children only - EveEntity::UnRegister already\r\n * called UnRegisterAllComponents(this) first (EveEntity.cpp:90) - and does\r\n * not re-check display. UnregisterAudioGeometry (cpp:3617) is\r\n * audio-engine-owned and unported. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const child of this.effectChildren)\r\n {\r\n child?.UnRegister?.(registry);\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n DisplayChildren()\r\n {\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetObserverTransform()\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform()\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetWorldPosition()\r\n {\r\n return this.worldPosition;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetWorldRotation()\r\n {\r\n return this.worldRotation;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n FindSoundEmitter(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const observer of this.observers)\r\n {\r\n if (observer?.name === target)\r\n {\r\n return typeof observer.GetObserver === \"function\"\r\n ? observer.GetObserver()\r\n : observer.observer ?? null;\r\n }\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n const emitter = child?.FindSoundEmitter?.(target);\r\n if (emitter)\r\n {\r\n return emitter;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMute(mute)\r\n {\r\n this.mute = !!mute;\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetMute?.(this.mute);\r\n }\r\n for (const observer of this.observers)\r\n {\r\n observer?.SetMute?.(this.mute);\r\n }\r\n }\r\n\r\n /**\r\n * Plays an animation with explicit loop, start, and speed settings\r\n * (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n PlayAnimationEx(animName, loopCount, start, speed, clearWhenDone = true)\r\n {\r\n this.#PlayAnimation(animName, true, loopCount, start, speed, clearWhenDone);\r\n }\r\n\r\n /**\r\n * Calculates the skinned bounding box under a transform (CMF path: the\r\n * local box corners transformed with perspective divide). The granny path\r\n * is unported. Returns an inverted-empty { min, max } box when dynamic\r\n * bounds are disabled, as Carbon's BoundingBoxInitialize does.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateSkinnedBoundingBoxFromTransform(transform)\r\n {\r\n const min = vec3.fromValues(Infinity, Infinity, Infinity);\r\n const max = vec3.fromValues(-Infinity, -Infinity, -Infinity);\r\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\r\n {\r\n const { min: localMin, max: localMax } = this.GetLocalBoundingBox();\r\n const corner = vec3.create();\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n corner,\r\n index & 1 ? localMax[0] : localMin[0],\r\n index & 2 ? localMax[1] : localMin[1],\r\n index & 4 ? localMax[2] : localMin[2]\r\n );\r\n vec3.transformMat4(corner, corner, transform);\r\n vec3.min(min, min, corner);\r\n vec3.max(max, max, corner);\r\n }\r\n }\r\n return { min, max };\r\n }\r\n\r\n /**\r\n * Calculates the skinned bounding sphere (CMF path: the current bounding\r\n * sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds\r\n * are disabled.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateSkinnedBoundingSphere(out = vec4.create())\r\n {\r\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\r\n {\r\n const center = this.GetBoundingSphereCenter();\r\n return vec4.set(out, center[0], center[1], center[2], this.GetBoundingSphereRadius());\r\n }\r\n return vec4.set(out, 0, 0, 0, -1);\r\n }\r\n\r\n /**\r\n * Clears all impact and damage effects on the impact overlay.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearImpactDamage()\r\n {\r\n this.impactOverlay?.Clear?.();\r\n }\r\n\r\n /**\r\n * Clears all animations on the animation updater.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearAnimations()\r\n {\r\n this.animationUpdater?.ClearAnimations?.();\r\n }\r\n\r\n /**\r\n * Creates an impact facing a position on the closest facing damage locator.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CreateImpactFromPosition(position, direction, lifeTime, size)\r\n {\r\n const closestDamageLocator = this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\r\n return this.CreateImpact(closestDamageLocator, direction, lifeTime, size);\r\n }\r\n\r\n /**\r\n * Creates an impact effect on a damage locator through the impact overlay.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CreateImpact(damageLocatorIndex, direction, lifeTime, size)\r\n {\r\n if (this.impactOverlay)\r\n {\r\n return this.impactOverlay.CreateImpact?.(damageLocatorIndex, direction, lifeTime, size, 1, this.lodLevel, this) ?? -1;\r\n }\r\n return -1;\r\n }\r\n\r\n /**\r\n * Ends the current animation on the animation updater.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EndAnimation()\r\n {\r\n this.animationUpdater?.EndAnimation?.();\r\n }\r\n\r\n /**\r\n * Freezes LOD selection at the current mesh and marks decal geometry\r\n * frozen.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n FreezeHighDetailMesh()\r\n {\r\n this.#allowLodSelection = false;\r\n for (const decal of this.decals)\r\n {\r\n decal?.SetHighDetailDecalState?.(true);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the number of damage locators on this object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocatorCount()\r\n {\r\n return this.GetLocatorCount(EveSpaceObject2.#damageLocatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the number of locators in a named locator set.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorCount(locatorSetName)\r\n {\r\n return this.#GetLocatorsForSet(locatorSetName)?.length ?? 0;\r\n }\r\n\r\n /**\r\n * Gets the first locator list whose set has the requested Carbon name.\r\n * The returned list remains owned by the locator set.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorsForSet(locatorSetName)\r\n {\r\n return this.#GetLocatorsForSet(locatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the closest locator in a set to a world position, ignoring locator\r\n * facing. Returns -1 when the set is missing or empty.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetCloseLocatorIndex(position, locatorSetName)\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (!locators)\r\n {\r\n return -1;\r\n }\r\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\r\n const locatorPosition = vec3.create();\r\n const locatorDirection = vec3.create();\r\n let closestLength = Infinity;\r\n let closestIndex = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\r\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\r\n if (distance < closestLength)\r\n {\r\n closestIndex = index;\r\n closestLength = distance;\r\n }\r\n }\r\n return closestIndex;\r\n }\r\n\r\n /**\r\n * Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex\r\n * (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not\r\n * script-exposed.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetGoodLocatorIndex(position, locatorSetName)\r\n {\r\n return this.GetCloseLocatorIndex(position, locatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the local direction of an indexed damage locator, (0,0,0) for\r\n * indices out of range (Carbon script GetDamageLocatorDirection maps to\r\n * GetDamageLocatorDirectionLocal).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetDamageLocatorDirection(index, inWorldSpaceOrOut = vec3.create(), out = vec3.create())\r\n {\r\n const targetableCall = typeof inWorldSpaceOrOut === \"boolean\";\r\n const inWorldSpace = targetableCall && inWorldSpaceOrOut;\r\n if (!targetableCall) out = inWorldSpaceOrOut;\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n vec3.set(out, 0, targetableCall ? 1 : 0, 0);\r\n return targetableCall ? false : out;\r\n }\r\n const position = vec3.create();\r\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\r\n if (inWorldSpace) EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\r\n return targetableCall ? true : out;\r\n }\r\n\r\n /** Internal ITriTargetable locator query, using the org-standard out-last convention. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.\")\r\n GetDamageLocatorPosition(index, inWorldSpace, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n if (inWorldSpace) vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\r\n else vec3.set(out, 0, 0, 0);\r\n return false;\r\n }\r\n this.#GetLocatorInObjectSpace(out, EveSpaceObject2.#locatorDirection, locators[index]);\r\n if (inWorldSpace) vec3.transformMat4(out, out, this.worldTransform);\r\n return true;\r\n }\r\n\r\n /** Gets the closest facing damage locator for ITriTargetable consumers. */\r\n @carbon.method\r\n @impl.implemented\r\n GetClosestDamageLocatorIndex(position)\r\n {\r\n return this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\r\n }\r\n\r\n /** Ports Carbon's randomized distance/direction fit for impact variation. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriRand is represented by Math.random; all locator scoring remains source-faithful.\")\r\n GetGoodDamageLocatorIndex(position)\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators) return 0;\r\n\r\n const objectPosition = vec3.transformMat4(EveSpaceObject2.#objectPosition, position, this.inverseWorldTransform);\r\n let minDistance = Infinity;\r\n let maxDistance = Number.MIN_VALUE;\r\n let bestDirectionFit = 0;\r\n\r\n for (const locator of locators)\r\n {\r\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locator);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\r\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\r\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\r\n minDistance = Math.min(minDistance, distance);\r\n maxDistance = Math.max(maxDistance, distance);\r\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\r\n bestDirectionFit = Math.max(bestDirectionFit, EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset));\r\n }\r\n\r\n const desiredFit = Math.random() * (0.25 - (1 - bestDirectionFit)) + 0.75;\r\n let bestFit = 1;\r\n let bestLocator = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locators[index]);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\r\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\r\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\r\n const range = maxDistance - minDistance;\r\n let scale = range > 0 ? 1 - (distance - minDistance) / range : 1;\r\n let value = 2 * scale - 1;\r\n value = value < 0 ? 1 - Math.sqrt(Math.abs(value)) : Math.sqrt(Math.abs(value)) + 1;\r\n value *= 0.5;\r\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\r\n value *= EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset);\r\n const fit = Math.abs(value - desiredFit);\r\n if (fit < bestFit)\r\n {\r\n bestFit = fit;\r\n bestLocator = index;\r\n }\r\n }\r\n return bestLocator < 0 ? this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName) : bestLocator;\r\n }\r\n\r\n /** Gets the model-scaled target radius. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRadius()\r\n {\r\n return this.GetBoundingSphereRadius();\r\n }\r\n\r\n /** Computes a miss point just outside the model silhouette. */\r\n @carbon.method\r\n @impl.implemented\r\n GetMissPosition(hit, source, out = vec3.create())\r\n {\r\n if (this.boundingSphereRadius > 0)\r\n {\r\n vec3.copy(out, this.modelWorldPosition);\r\n if (hit && source)\r\n {\r\n vec3.subtract(EveSpaceObject2.#missOffset, hit, out);\r\n vec3.subtract(EveSpaceObject2.#missDirection, hit, source);\r\n const directionLength = vec3.length(EveSpaceObject2.#missDirection);\r\n if (directionLength) vec3.scale(EveSpaceObject2.#missDirection, EveSpaceObject2.#missDirection, 1 / directionLength);\r\n vec3.scaleAndAdd(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, EveSpaceObject2.#missDirection, -vec3.dot(EveSpaceObject2.#missDirection, EveSpaceObject2.#missOffset));\r\n const offsetLength = vec3.length(EveSpaceObject2.#missOffset);\r\n if (offsetLength) vec3.scale(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, 1 / offsetLength);\r\n vec3.scaleAndAdd(out, out, EveSpaceObject2.#missOffset, this.GetBoundingSphereRadius() * 1.125);\r\n }\r\n }\r\n else\r\n {\r\n this.GetDamageLocatorPosition(-1, true, out);\r\n }\r\n return out;\r\n }\r\n\r\n /** Gets the current target impact material. */\r\n @carbon.method\r\n @impl.implemented\r\n GetImpactConfiguration()\r\n {\r\n return this.impactOverlay?.GetImpactConfiguration?.() ?? ImpactConfiguration.IMPACT_INVALID;\r\n }\r\n\r\n /** Reports whether impacts currently use the authored shield ellipsoid. */\r\n @carbon.method\r\n @impl.implemented\r\n HasImpactConfigurationShield()\r\n {\r\n return !!this.impactOverlay?.HasShieldEllipsoid?.()\r\n && this.GetImpactConfiguration() === ImpactConfiguration.IMPACT_SHIELD;\r\n }\r\n\r\n /** Resolves a shield-ray or damage-locator collision point. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.\")\r\n GetImpactPosition(locator, posPrev, posNow, epsilon, out = vec3.create())\r\n {\r\n if (!this.HasImpactConfigurationShield())\r\n {\r\n this.GetDamageLocatorPosition(locator, true, out);\r\n return vec3.squaredDistance(posNow, out) < Number(epsilon);\r\n }\r\n\r\n vec3.transformMat4(EveSpaceObject2.#rayOrigin, posPrev, this.inverseWorldTransform);\r\n vec3.transformMat4(EveSpaceObject2.#rayEnd, posNow, this.inverseWorldTransform);\r\n vec3.subtract(EveSpaceObject2.#rayDirection, EveSpaceObject2.#rayEnd, EveSpaceObject2.#rayOrigin);\r\n this.#GetShapeEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii);\r\n const t = EveSpaceObject2.#IntersectEllipsoidRay(out, EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayOrigin, EveSpaceObject2.#rayDirection);\r\n if (t !== null && t >= -1 && t <= 1)\r\n {\r\n vec3.transformMat4(out, out, this.worldTransform);\r\n return true;\r\n }\r\n if (EveSpaceObject2.#IsPointInsideEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayEnd))\r\n {\r\n vec3.copy(out, posNow);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Updates an existing impact overlay entry. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateImpact(out, direction, impactIndex)\r\n {\r\n return this.impactOverlay?.UpdateImpact?.(out, direction, impactIndex) ?? false;\r\n }\r\n\r\n /**\r\n * Gets the local position of an indexed damage locator, (0,0,0) for\r\n * indices out of range.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocator(index, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n return out;\r\n }\r\n\r\n /**\r\n * Gets the world-space position of an indexed damage locator, (0,0,0) for\r\n * indices out of range (returned untransformed, as Carbon does).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTransformedDamageLocator(index, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n return vec3.transformMat4(out, out, this.worldTransform);\r\n }\r\n\r\n /**\r\n * Checks whether this object is in impostor mode. The impostor system that\r\n * raises the flag is unported, so this reports the default until then.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n IsImpostor()\r\n {\r\n return this.#impostorMode;\r\n }\r\n\r\n /**\r\n * Gets a locator position from a named set. Out-of-range or missing-set\r\n * queries return the world translation in world space and (0,0,0) in\r\n * object space, as Carbon does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorPositionFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (index < 0 || !locators || index >= locators.length)\r\n {\r\n if (inWorldSpace)\r\n {\r\n return vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\r\n }\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n if (inWorldSpace)\r\n {\r\n vec3.transformMat4(out, out, this.worldTransform);\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Gets a locator direction from a named set. Out-of-range or missing-set\r\n * queries return (0,1,0), as Carbon does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorRotationFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (index < 0 || !locators || index >= locators.length)\r\n {\r\n return vec3.set(out, 0, 1, 0);\r\n }\r\n const position = vec3.create();\r\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\r\n if (inWorldSpace)\r\n {\r\n EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\r\n }\r\n return out;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n HandleControllerEvent(name)\r\n {\r\n const eventName = String(name ?? \"\");\r\n for (const controller of this.controllers)\r\n {\r\n controller?.HandleEvent?.(eventName);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.HandleControllerEvent?.(eventName);\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.HandleControllerEvent?.(eventName);\r\n }\r\n }\r\n\r\n /**\r\n * Plays an animation once, replacing the current one\r\n * (Carbon script PlayAnimation maps to PlayAnimationOnce).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n PlayAnimation(animName)\r\n {\r\n this.#PlayAnimation(animName, true, 1, 0, 1, true);\r\n }\r\n\r\n /**\r\n * Chains an animation once after the current one (Carbon ChainAnimation).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChainAnimation(animName)\r\n {\r\n this.#PlayAnimation(animName, false, 1, 0, 1, true);\r\n }\r\n\r\n /**\r\n * Chains an animation with explicit loop, start, and speed settings\r\n * (Carbon ChainAnimationEx).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChainAnimationEx(animName, loopCount, start, speed)\r\n {\r\n this.#PlayAnimation(animName, false, loopCount, start, speed, true);\r\n }\r\n\r\n // Carbon EveSpaceObject2::PlayAnimation: every playback wrapper funnels\r\n // into the animation updater, which owns playback state; a missing updater\r\n // is a Carbon-faithful no-op.\r\n #PlayAnimation(animName, replace, loopCount, delay, speed, clearWhenDone)\r\n {\r\n this.animationUpdater?.PlayAnimation?.(String(animName ?? \"\"), replace, loopCount, delay, speed, clearWhenDone);\r\n }\r\n\r\n /**\r\n * Recalculates the authored bounding sphere from the mesh geometry\r\n * resource. Fails when no mesh or ready geometry resource is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildBoundingSphereInformation()\r\n {\r\n const mesh = this.mesh;\r\n if (!mesh)\r\n {\r\n return false;\r\n }\r\n const geometryRes = mesh.GetGeometryResource?.();\r\n if (!geometryRes || !geometryRes.IsGood?.())\r\n {\r\n return false;\r\n }\r\n geometryRes.RecalculateBoundingSphere?.();\r\n const sphere = vec4.create();\r\n geometryRes.GetBoundingSphere?.(mesh.GetMeshIndex?.() ?? 0, sphere);\r\n vec3.set(this.boundingSphereCenter, sphere[0], sphere[1], sphere[2]);\r\n this.boundingSphereRadius = sphere[3];\r\n return true;\r\n }\r\n\r\n /** Sets Carbon's authored local bounding sphere from a sph3-compatible value. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.\")\r\n SetBoundingSphereInformation(sphere)\r\n {\r\n if (sphere?.center)\r\n {\r\n vec3.copy(this.boundingSphereCenter, sphere.center);\r\n this.boundingSphereRadius = Number(sphere.radius);\r\n }\r\n else\r\n {\r\n this.boundingSphereRadius = sph3.extract(sphere, this.boundingSphereCenter);\r\n }\r\n this.UpdateWorldBounds();\r\n return this;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetControllerVariables()\r\n {\r\n return Object.fromEntries(this.#controllerVariables);\r\n }\r\n\r\n /** Gets Carbon's most recently selected geometry LOD. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Geometry resources without multi-LOD support expose their sole browser LOD as index zero.\")\r\n GetLastUsedMeshLod()\r\n {\r\n const geometryResource = this.mesh?.GetGeometryResource?.();\r\n if (!geometryResource) return -1;\r\n if (!this.#allowLodSelection) return 0;\r\n return geometryResource.GetLodIndexForScreenSize?.(this.mesh?.GetMeshIndex?.() ?? 0, this.#meshScreenSize) ?? 0;\r\n }\r\n\r\n /**\r\n * Gets a named locator's transform (Carbon script GetLocatorTransform maps\r\n * to GetEveLocatorTransform): the identity for unknown names, the animated\r\n * bone world transform when the animation updater resolves the name, else\r\n * the authored locator transform.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLocatorTransform(name, out = mat4.create())\r\n {\r\n const target = String(name ?? \"\");\r\n let locator = null;\r\n for (const candidate of this.locators)\r\n {\r\n if (candidate?.GetName?.() === target)\r\n {\r\n locator = candidate;\r\n break;\r\n }\r\n }\r\n if (!locator)\r\n {\r\n return mat4.identity(out);\r\n }\r\n if (this.animationUpdater?.GetBoneWorldTransform?.(target, out))\r\n {\r\n return out;\r\n }\r\n return mat4.copy(out, locator.GetTransform());\r\n }\r\n\r\n /**\r\n * Gets the local axis-aligned bounding box: dynamic skinned bounds when\r\n * enabled, else the mesh box, else the cached box (at worst it lags one\r\n * frame). With out arguments it fills them and returns true; without, it\r\n * returns { min, max }.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLocalBoundingBox(minBounds, maxBounds)\r\n {\r\n const min = vec3.create();\r\n const max = vec3.create();\r\n const updater = this.animationUpdater;\r\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\r\n {\r\n const sphere = vec4.create();\r\n updater.GetDynamicBounds?.(sphere, min, max);\r\n vec3.copy(this.#localAabbMin, min);\r\n vec3.copy(this.#localAabbMax, max);\r\n }\r\n else if (this.mesh?.GetBoundingBox?.(min, max))\r\n {\r\n vec3.copy(this.#localAabbMin, min);\r\n vec3.copy(this.#localAabbMax, max);\r\n }\r\n else\r\n {\r\n vec3.copy(min, this.#localAabbMin);\r\n vec3.copy(max, this.#localAabbMax);\r\n }\r\n if (minBounds && maxBounds)\r\n {\r\n vec3.copy(minBounds, min);\r\n vec3.copy(maxBounds, max);\r\n return true;\r\n }\r\n return { min, max };\r\n }\r\n\r\n /** Gets Carbon's cached local box transformed into a world-axis-aligned box. */\r\n @carbon.method\r\n @impl.adapted\r\n GetWorldBoundingBox(minBounds, maxBounds)\r\n {\r\n box3.fromBounds(EveSpaceObject2.#localBox, this.#localAabbMin, this.#localAabbMax);\r\n EveSpaceObject2.#TransformBox(EveSpaceObject2.#worldBox, EveSpaceObject2.#localBox, this.worldTransform);\r\n const min = minBounds ?? vec3.create();\r\n const max = maxBounds ?? vec3.create();\r\n vec3.set(min, EveSpaceObject2.#worldBox[0], EveSpaceObject2.#worldBox[1], EveSpaceObject2.#worldBox[2]);\r\n vec3.set(max, EveSpaceObject2.#worldBox[3], EveSpaceObject2.#worldBox[4], EveSpaceObject2.#worldBox[5]);\r\n return minBounds && maxBounds ? true : { min, max };\r\n }\r\n\r\n /** Reports whether the attached mesh has a ready geometry resource. */\r\n @carbon.method\r\n @impl.implemented\r\n IsBoundingBoxReady()\r\n {\r\n const geometryResource = this.mesh?.GetGeometryResource?.();\r\n return !!geometryResource?.IsGood?.();\r\n }\r\n\r\n /**\r\n * Gets Carbon's realized world sphere, optionally accumulated with transform\r\n * and effect children when query is EVE_BOUNDS_WITH_CHILDREN.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBoundingSphere(out = sph3.create(), query = 0)\r\n {\r\n if (!this.UpdateWorldBounds()) return false;\r\n EveSpaceObject2.#SetSphere(out, this.modelWorldPosition, this.#boundingSphereWorldRadius);\r\n if (!query || !this.DisplayChildren()) return true;\r\n for (const child of this.children)\r\n {\r\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\r\n {\r\n sph3.union(out, out, EveSpaceObject2.#childSphere);\r\n }\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\r\n {\r\n sph3.union(out, out, EveSpaceObject2.#childSphere);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** Updates Carbon's geometry-derived on-screen pixel diameter. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.\")\r\n EstimatePixelDiameter(frustum)\r\n {\r\n if (this.mesh?.GetBoundingBox?.(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax))\r\n {\r\n vec3.copy(this.#localAabbMin, EveSpaceObject2.#boundsMin);\r\n vec3.copy(this.#localAabbMax, EveSpaceObject2.#boundsMax);\r\n }\r\n sph3.fromBounds(EveSpaceObject2.#localSphere, this.#localAabbMin, this.#localAabbMax);\r\n sph3.transformMat4(EveSpaceObject2.#worldSphere, EveSpaceObject2.#localSphere, this.worldTransform);\r\n this.estimatedPixelDiameter = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\r\n return this.estimatedPixelDiameter;\r\n }\r\n\r\n /** Reports the result of the latest Carbon visibility update. */\r\n @carbon.method\r\n @impl.implemented\r\n IsInFrustum()\r\n {\r\n return this.#isInFrustum;\r\n }\r\n\r\n /**\r\n * Gets the bounding sphere center, preferring the dynamic skinned sphere\r\n * when one is published.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereCenter(out = vec3.create())\r\n {\r\n if (this.#dynamicBoundingSphere[3] !== -1)\r\n {\r\n return vec3.set(out, this.#dynamicBoundingSphere[0], this.#dynamicBoundingSphere[1], this.#dynamicBoundingSphere[2]);\r\n }\r\n return vec3.copy(out, this.boundingSphereCenter);\r\n }\r\n\r\n /**\r\n * Gets the model-scaled bounding sphere radius, preferring the dynamic\r\n * skinned sphere when one is published.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereRadius()\r\n {\r\n if (this.#dynamicBoundingSphere[3] !== -1)\r\n {\r\n return this.modelScale * this.#dynamicBoundingSphere[3];\r\n }\r\n return this.modelScale * this.boundingSphereRadius;\r\n }\r\n\r\n /**\r\n * Gets the number of mesh-bound bones. Carbon dereferences the animation\r\n * updater unchecked; CarbonEngineJS reports 0 when none is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBoneCount()\r\n {\r\n const updater = this.animationUpdater;\r\n if (!updater)\r\n {\r\n return 0;\r\n }\r\n if (updater.IsUsingCMF?.())\r\n {\r\n if (!updater.HasMeshBinding?.())\r\n {\r\n return 0;\r\n }\r\n return updater.GetSkeletonBoneIndices?.().length ?? 0;\r\n }\r\n return updater.GetMeshBindingBoneCount?.() ?? 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetImpactDamageState(shield, armor, hull, doCreateArmorImpacts = true)\r\n {\r\n this.impactOverlay?.SetDamageState?.(shield, armor, hull, doCreateArmorImpacts);\r\n this.SetControllerVariable(\"ShieldDamage\", shield);\r\n this.SetControllerVariable(\"ArmorDamage\", armor);\r\n this.SetControllerVariable(\"HullDamage\", hull);\r\n }\r\n\r\n /**\r\n * Toggles a named impact-overlay animation (boosters, hardeners, ...).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetImpactAnimation(name, enable, duration)\r\n {\r\n this.impactOverlay?.ToggleEffect?.(name, enable, duration);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetControllerVariable(name, value)\r\n {\r\n const key = String(name ?? \"\");\r\n const next = Number(value);\r\n this.#controllerVariables.set(key, next);\r\n for (const controller of this.controllers)\r\n {\r\n controller?.SetVariable?.(key, next);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetControllerVariable?.(key, next);\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.SetControllerVariable?.(key, next);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetProceduralContainerVariable(name, value)\r\n {\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetProceduralContainerVariable?.(name, value);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n StartControllers()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Start?.();\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.StartControllers?.();\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.StartControllers?.();\r\n }\r\n }\r\n\r\n /**\r\n * Applies bone and model transforms to locators and returns\r\n * [position, rotation, boneIndex] tuples, as the Carbon script surface\r\n * does (TransformLocators maps to PyTransformLocators). Accepts either\r\n * locator records ({ position, direction, boneIndex }, Carbon's\r\n * LocatorStructureList shape) or the same [position, rotation, boneIndex]\r\n * tuple shape it returns.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n TransformLocators(locators = [])\r\n {\r\n const result = [];\r\n for (const locator of locators ?? [])\r\n {\r\n const record = Array.isArray(locator)\r\n ? { position: locator[0], rotation: locator[1], boneIndex: locator[2] }\r\n : { position: locator?.position, rotation: locator?.direction ?? locator?.rotation, boneIndex: locator?.boneIndex };\r\n const position = vec3.clone(record.position ?? EveSpaceObject2.#zero);\r\n const rotation = quat.clone(record.rotation ?? EveSpaceObject2.#identityRotation);\r\n const boneIndex = Number(record.boneIndex ?? 0);\r\n this.#TransformLocator(position, rotation, boneIndex);\r\n if (this.modelTranslationCurve || this.modelRotationCurve)\r\n {\r\n this.#ApplyModelTransform(position, rotation);\r\n }\r\n result.push([position, rotation, boneIndex]);\r\n }\r\n return result;\r\n }\r\n\r\n // Carbon Blue TransformLocator: bone-attached records pick up the mesh\r\n // bone matrix; without bone data the authored values pass through.\r\n #TransformLocator(position, rotation, boneIndex)\r\n {\r\n const updater = this.animationUpdater;\r\n if (boneIndex <= 0 || !updater?.IsInitialized?.())\r\n {\r\n return;\r\n }\r\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, boneIndex);\r\n if (!bone)\r\n {\r\n return;\r\n }\r\n vec3.transformMat4(position, position, bone);\r\n const boneRotation = mat4.getRotation(quat.create(), bone);\r\n quat.multiply(rotation, boneRotation, rotation);\r\n }\r\n\r\n // Carbon Blue ApplyModelTransform samples both curves at the Be::Time()\r\n // origin (pure GetValueAt, no playback advance): translation adds, model\r\n // rotation rotates the position and pre-multiplies.\r\n #ApplyModelTransform(position, rotation)\r\n {\r\n if (this.modelTranslationCurve)\r\n {\r\n const translation = vec3.create();\r\n this.modelTranslationCurve.GetValueAt?.(0, translation);\r\n vec3.add(position, position, translation);\r\n }\r\n if (this.modelRotationCurve)\r\n {\r\n const modelRotation = quat.create();\r\n this.modelRotationCurve.GetValueAt?.(0, modelRotation);\r\n vec3.transformQuat(position, position, modelRotation);\r\n quat.multiply(rotation, modelRotation, rotation);\r\n }\r\n }\r\n\r\n // Carbon GetLocatorsForSet: first set matching the name wins.\r\n #GetLocatorsForSet(locatorSetName)\r\n {\r\n const target = String(locatorSetName ?? \"\");\r\n for (const set of this.locatorSets)\r\n {\r\n if (set?.HasName?.(target))\r\n {\r\n return set.GetLocators();\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Carbon GetLocatorInObjectSpace: the direction is +Y rotated by the\r\n // authored quaternion; bone-attached locators additionally apply the mesh\r\n // bone matrix. Carbon leaves the outputs untouched (caller-uninitialized)\r\n // when bone data is missing; CarbonEngineJS keeps the unskinned values.\r\n #GetLocatorInObjectSpace(outPosition, outDirection, locator)\r\n {\r\n vec3.transformQuat(outDirection, EveSpaceObject2.#unitY, locator.direction);\r\n vec3.copy(outPosition, locator.position);\r\n const updater = this.animationUpdater;\r\n if (locator.boneIndex > 0 && updater?.IsInitialized?.())\r\n {\r\n const boneCount = Number(updater.GetMeshBoneCount?.() ?? 0);\r\n if (locator.boneIndex < boneCount)\r\n {\r\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, locator.boneIndex);\r\n if (bone)\r\n {\r\n vec3.transformMat4(outPosition, locator.position, bone);\r\n EveSpaceObject2.#TransformNormal(outDirection, outDirection, bone);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Carbon GetClosestLocatorIndex: facing-gated closest search; 0 when the\r\n // set is missing, -1 when no locator faces the position.\r\n #GetClosestLocatorIndex(position, locatorSetName)\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (!locators)\r\n {\r\n return 0;\r\n }\r\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\r\n const locatorPosition = vec3.create();\r\n const locatorDirection = vec3.create();\r\n let closestLength = Infinity;\r\n let closestIndex = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(locatorDirection, posInObjectSpace))\r\n {\r\n continue;\r\n }\r\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\r\n if (distance < closestLength)\r\n {\r\n closestIndex = index;\r\n closestLength = distance;\r\n }\r\n }\r\n return closestIndex;\r\n }\r\n\r\n static #IsLocatorFacingPosition(locatorDirection, posInObjectSpace)\r\n {\r\n const moved = vec3.subtract(vec3.create(), posInObjectSpace, locatorDirection);\r\n return vec3.squaredLength(moved) < vec3.squaredLength(posInObjectSpace);\r\n }\r\n\r\n static #TransformNormal(out, direction, matrix)\r\n {\r\n const x = direction[0];\r\n const y = direction[1];\r\n const z = direction[2];\r\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\r\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\r\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\r\n return out;\r\n }\r\n\r\n #GetShapeEllipsoid(outCenter, outRadii)\r\n {\r\n if (this.shapeEllipsoidRadius[0] > 0)\r\n {\r\n vec3.copy(outCenter, this.shapeEllipsoidCenter);\r\n vec3.copy(outRadii, this.shapeEllipsoidRadius);\r\n }\r\n else\r\n {\r\n const bounds = this.GetLocalBoundingBox(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax);\r\n if (bounds === false)\r\n {\r\n vec3.set(EveSpaceObject2.#boundsMin, -1, -1, -1);\r\n vec3.set(EveSpaceObject2.#boundsMax, 1, 1, 1);\r\n }\r\n vec3.subtract(outRadii, EveSpaceObject2.#boundsMax, EveSpaceObject2.#boundsMin);\r\n vec3.scale(outRadii, outRadii, Math.sqrt(3) * 0.5);\r\n vec3.lerp(outCenter, EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax, 0.5);\r\n }\r\n vec3.copy(this.generatedShapeEllipsoidCenter, outCenter);\r\n vec3.copy(this.generatedShapeEllipsoidRadius, outRadii);\r\n }\r\n\r\n static #GetDirectionFit(v0, v1)\r\n {\r\n const direction = -vec3.dot(v0, v1);\r\n return direction < 0\r\n ? (1 - Math.sqrt(Math.abs(direction))) * 0.5\r\n : (Math.sqrt(Math.abs(direction)) + 1) * 0.5;\r\n }\r\n\r\n static #IntersectEllipsoidRay(out, center, radii, origin, direction)\r\n {\r\n const vx = direction[0] / radii[0];\r\n const vy = direction[1] / radii[1];\r\n const vz = direction[2] / radii[2];\r\n const sx = (origin[0] - center[0]) / radii[0];\r\n const sy = (origin[1] - center[1]) / radii[1];\r\n const sz = (origin[2] - center[2]) / radii[2];\r\n const vv = vx * vx + vy * vy + vz * vz;\r\n if (!(vv > 0)) return null;\r\n const vs = vx * sx + vy * sy + vz * sz;\r\n const ss = sx * sx + sy * sy + sz * sz;\r\n let discriminant = (vs / vv) ** 2 - ss / vv + 1 / vv;\r\n if (discriminant < 0) return null;\r\n discriminant = Math.sqrt(discriminant);\r\n let t = -discriminant - vs / vv;\r\n if (t < 0) t = discriminant - vs / vv;\r\n vec3.scaleAndAdd(out, origin, direction, t);\r\n return t;\r\n }\r\n\r\n static #IsPointInsideEllipsoid(center, radii, point)\r\n {\r\n const x = (point[0] - center[0]) / radii[0];\r\n const y = (point[1] - center[1]) / radii[1];\r\n const z = (point[2] - center[2]) / radii[2];\r\n return x * x + y * y + z * z <= 1;\r\n }\r\n\r\n // Mesh bone matrices come from the animation updater; only mat4-shaped\r\n // entries are usable.\r\n static #GetBoneMatrix(updater, boneIndex)\r\n {\r\n const bones = updater.GetMeshBoneMatrixList?.();\r\n const bone = bones?.[boneIndex];\r\n return bone && bone.length >= 16 ? bone : null;\r\n }\r\n\r\n static #ApplyControllerVariables(target, variables, methodName)\r\n {\r\n const setter = target?.[methodName];\r\n if (typeof setter !== \"function\")\r\n {\r\n return;\r\n }\r\n for (const [name, value] of variables)\r\n {\r\n setter.call(target, name, value);\r\n }\r\n }\r\n\r\n static #UpdateCurve(curve, time, out, fallback)\r\n {\r\n if (!curve)\r\n {\r\n for (let index = 0; index < out.length; index++)\r\n {\r\n out[index] = fallback[index];\r\n }\r\n return out;\r\n }\r\n\r\n let result;\r\n if (typeof curve.Update === \"function\")\r\n {\r\n result = curve.Update(time, out);\r\n }\r\n else if (typeof curve.GetValueAt === \"function\")\r\n {\r\n result = curve.GetValueAt(time, out);\r\n }\r\n if ((Array.isArray(result) || ArrayBuffer.isView(result)) && result !== out)\r\n {\r\n for (let index = 0; index < out.length; index++)\r\n {\r\n out[index] = result[index];\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n static #GetContextValue(context, methodName, ...propertyNames)\r\n {\r\n const method = context?.[methodName];\r\n if (typeof method === \"function\")\r\n {\r\n return Number(method.call(context)) || 0;\r\n }\r\n for (const propertyName of propertyNames)\r\n {\r\n if (context?.[propertyName] !== undefined && context?.[propertyName] !== null)\r\n {\r\n return Number(context[propertyName]) || 0;\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n static #GetPixelSize(frustum, sphere)\r\n {\r\n const method = frustum?.GetPixelSizeAccross;\r\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\r\n }\r\n\r\n static #GetEstimatedPixelSize(frustum, sphere)\r\n {\r\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\r\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\r\n }\r\n\r\n static #SetSphere(out, center, radius)\r\n {\r\n return sph3.set(out, center[0], center[1], center[2], radius);\r\n }\r\n\r\n // Avoid box3.transformMat4's legacy all-components-sum empty sentinel: a\r\n // valid symmetric box such as [-1,-1,-1,1,1,1] has that same sum.\r\n static #TransformBox(out, bounds, transform)\r\n {\r\n out[0] = out[1] = out[2] = Infinity;\r\n out[3] = out[4] = out[5] = -Infinity;\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n EveSpaceObject2.#boxCorner,\r\n index & 1 ? bounds[3] : bounds[0],\r\n index & 2 ? bounds[4] : bounds[1],\r\n index & 4 ? bounds[5] : bounds[2]\r\n );\r\n vec3.transformMat4(EveSpaceObject2.#boxCorner, EveSpaceObject2.#boxCorner, transform);\r\n out[0] = Math.min(out[0], EveSpaceObject2.#boxCorner[0]);\r\n out[1] = Math.min(out[1], EveSpaceObject2.#boxCorner[1]);\r\n out[2] = Math.min(out[2], EveSpaceObject2.#boxCorner[2]);\r\n out[3] = Math.max(out[3], EveSpaceObject2.#boxCorner[0]);\r\n out[4] = Math.max(out[4], EveSpaceObject2.#boxCorner[1]);\r\n out[5] = Math.max(out[5], EveSpaceObject2.#boxCorner[2]);\r\n }\r\n return out;\r\n }\r\n\r\n static #zero = Object.freeze([0, 0, 0]);\r\n\r\n static #unitY = Object.freeze([0, 1, 0]);\r\n\r\n static #locatorDirection = vec3.create();\r\n static #locatorPosition = vec3.create();\r\n static #locatorOffset = vec3.create();\r\n static #objectPosition = vec3.create();\r\n static #missOffset = vec3.create();\r\n static #missDirection = vec3.create();\r\n static #rayOrigin = vec3.create();\r\n static #rayEnd = vec3.create();\r\n static #rayDirection = vec3.create();\r\n static #ellipsoidCenter = vec3.create();\r\n static #ellipsoidRadii = vec3.create();\r\n static #boundsMin = vec3.create();\r\n static #boundsMax = vec3.create();\r\n static #childSphere = sph3.create();\r\n static #localSphere = sph3.create();\r\n static #worldSphere = sph3.create();\r\n static #localBox = box3.create();\r\n static #worldBox = box3.create();\r\n static #boxCorner = vec3.create();\r\n\r\n static #identityRotation = Object.freeze([0, 0, 0, 1]);\r\n\r\n static #identityTransform = mat4.create();\r\n\r\n static #damageLocatorSetName = \"damage\";\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2Lod = Tr2Lod;\r\n\r\n static ImpactConfiguration = ImpactConfiguration;\r\n\r\n}\r\n"],"names":["TRANSPARENT_AABB_MIN","vec3","create","TRANSPARENT_AABB_MAX","TRANSPARENT_CENTER","OVERLAY_TYPE_OPAQUEONLY","OVERLAY_TYPE_ALL","_EveSpaceObject","_identity","EveSpaceObject2","EveEntity","e","_init_reflectionMode","_init_extra_reflectionMode","_init_effectChildren","_init_extra_effectChildren","_init_children","_init_extra_children","_init_name","_init_extra_name","_init_mute","_init_extra_mute","_init_inheritProperties","_init_extra_inheritProperties","_init_customMasks","_init_extra_customMasks","_init_overlayEffects","_init_extra_overlayEffects","_init_positionDelta","_init_extra_positionDelta","_init_lodLevel","_init_extra_lodLevel","_init_curveSets","_init_extra_curveSets","_init_isPickable","_init_extra_isPickable","_init_estimatedPixelDiameter","_init_extra_estimatedPixelDiameter","_init_estimatedPixelDiameterWithChildren","_init_extra_estimatedPixelDiameterWithChildren","_init_generatedShapeEllipsoidCenter","_init_extra_generatedShapeEllipsoidCenter","_init_generatedShapeEllipsoidRadius","_init_extra_generatedShapeEllipsoidRadius","_init_animationUpdater","_init_extra_animationUpdater","_init_dna","_init_extra_dna","_init_castShadow","_init_extra_castShadow","_init_isAnimated","_init_extra_isAnimated","_init_dynamicBoundingSphereEnabled","_init_extra_dynamicBoundingSphereEnabled","_init_attachments","_init_extra_attachments","_init_decals","_init_extra_decals","_init_lights","_init_extra_lights","_init_externalParameters","_init_extra_externalParameters","_init_controllers","_init_extra_controllers","_init_locators","_init_extra_locators","_init_mesh","_init_extra_mesh","_init_impactOverlay","_init_extra_impactOverlay","_init_clipSphereCenter","_init_extra_clipSphereCenter","_init_clipSphereFactor","_init_extra_clipSphereFactor","_init_clipSphereFactor2","_init_extra_clipSphereFactor2","_init_observers","_init_extra_observers","_init_worldPosition","_init_extra_worldPosition","_init_rotationCurve","_init_extra_rotationCurve","_init_worldRotation","_init_extra_worldRotation","_init_modelScale","_init_extra_modelScale","_init_locatorSets","_init_extra_locatorSets","_init_activationStrength","_init_extra_activationStrength","_init_albedoColor","_init_extra_albedoColor","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_secondaryLightingSphereRadius","_init_extra_secondaryLightingSphereRadius","_init_boundingSphereCenter","_init_extra_boundingSphereCenter","_init_dirtLevel","_init_extra_dirtLevel","_init_customShaderData","_init_extra_customShaderData","_init_lastDamageLocatorHit","_init_extra_lastDamageLocatorHit","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_modelWorldPosition","_init_extra_modelWorldPosition","_init_modelTranslationCurve","_init_extra_modelTranslationCurve","_init_modelRotationCurve","_init_extra_modelRotationCurve","_init_shapeEllipsoidCenter","_init_extra_shapeEllipsoidCenter","_init_shapeEllipsoidRadius","_init_extra_shapeEllipsoidRadius","_init_translationCurve","_init_extra_translationCurve","_init_worldTransform","_init_extra_worldTransform","_init_inverseWorldTransform","_init_extra_inverseWorldTransform","_init_lastWorldTransform","_init_extra_lastWorldTransform","_init_worldVelocity","_init_extra_worldVelocity","_init_audioGeometry","_init_extra_audioGeometry","_init_isVisible","_init_extra_isVisible","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","list","string","readwrite","boolean","objectRef","read","float32","quat","color","vec4","mat4","carbon","method","impl","adapted","implemented","reason","notImplemented","reflectionMode","effectChildren","children","name","mute","inheritProperties","customMasks","overlayEffects","positionDelta","lodLevel","curveSets","isPickable","estimatedPixelDiameter","estimatedPixelDiameterWithChildren","generatedShapeEllipsoidCenter","generatedShapeEllipsoidRadius","fromValues","animationUpdater","dna","castShadow","isAnimated","dynamicBoundingSphereEnabled","attachments","decals","lights","externalParameters","controllers","locators","mesh","impactOverlay","clipSphereCenter","clipSphereFactor2","clipSphereFactor","observers","worldPosition","rotationCurve","worldRotation","modelScale","locatorSets","activationStrength","albedoColor","createLinear","display","update","secondaryLightingSphereRadius","boundingSphereCenter","dirtLevel","customShaderData","lastDamageLocatorHit","boundingSphereRadius","modelWorldPosition","modelTranslationCurve","modelRotationCurve","shapeEllipsoidCenter","shapeEllipsoidRadius","translationCurve","worldTransform","inverseWorldTransform","lastWorldTransform","worldVelocity","audioGeometry","isVisible","Map","sph3","set","Tr2Lod","TR2_LOD_UNSPECIFIED","meshLod","Initialize","controller","IsLinked","Link","damageLocatorCount","HasName","length","SetDamageLocatorCount","GetMesh","SetMesh","AddController","push","AddObserver","observer","SetInheritProperties","colorSet","EveChildInheritProperties","SetProperties","#PropagateInheritProperties","properties","GetProperties","child","light","GetEffectChildByName","target","String","GetName","AddToEffectChildrenList","AddLight","ClearLights","RemoveFromEffectChildrenList","index","indexOf","splice","SetModelRotationCurve","curve","GetModelRotationCurve","SetModelTranslationCurve","GetModelTranslationCurve","UpdateWorldTransform","time","nextTime","Number","copy","GetValueDotAt","rotation","clone","modelRotation","multiply","fromQuat","scale","modelTranslation","transformMat4","invert","identity","UpdateWorldBounds","updater","IsInitialized","GetDynamicBounds","UpdateSyncronous","updateContext","observerTransform","GetObserverTransform","Update","EveLODHelper","ShouldUpdate","overlay","params","EveChildUpdateParams","spaceObjectParent","ownerMaxSpeed","maxSpeed","localToWorldTransform","GetLocalToWorldTransform","DisplayChildren","IsAlwaysOn","UpdateAsyncronous","threshold","frequency","Math","min","curveSet","controllerUpdateFrequency","UpdateVisibility","_parentTransform","TR2_LOD_LOW","frustum","GetFrustum","lowThreshold","mediumThreshold","visibilityThreshold","lodFactor","IsSphereVisible","EstimatePixelDiameter","attachment","GetBoundingSphere","TR2_LOD_HIGH","TR2_LOD_MEDIUM","GetObserver","SetVisibility","Infinity","UseWithScreenSize","GetRenderables","out","GetBoundingBox","IsLoading","geometryResource","GetGeometryResource","decal","GetBatches","batches","batchType","perObjectData","renderContext","committedBefore","GetBatchCount","areas","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","GetBatchesFromOverlayVector","#GetSortedTransparentBatches","geometry","viewPosition","GetViewPosition","meshIndex","sorted","area","GetDisplay","GetAreaBoundingBox","GetIndex","add","dx","dy","dz","distance","sort","a","b","entry","GetMaterialInterface","batch","CreateGeometryBatch","Commit","RebuildCachedData","ReleaseCachedData","all","CollectAreaBlocks","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","blocks","TriRenderBatchAreaBlock","Optimize","CollectAreaBlocksWithSharedMaterials","collector","#EnsureCachedAreaBlocks","GetShadowBatches","_shadowPixelSize","committed","material","shaderMaterial","block","areaBlockVector","Tr2RenderBatch","SetMaterial","IsValid","SetGeometrySource","startIndex","count","SetPerObjectData","impactEffect","GetArmorDamageShader","effects","overlayType","effect","#CommitBlockBatch","priority","SetPriority","#OverlayEffectsFor","GetEffects","opaqueEffects","decalEffects","transparentEffects","TRIBATCHTYPE_ADDITIVE","additiveEffects","TRIBATCHTYPE_DISTORTION","distortionEffects","HasTransparentBatches","HasTransparentArea","GetSortValue","x","y","z","hypot","GetPerObjectData","accumulator","data","Allocate","Tr2PerObjectData","object","GetShadowPerObjectData","GetLights","lightManager","SetBrightnessMultiplier","IsCastingShadow","_args","Error","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","ShouldReflect","ReflectionRenderable","ShadowCaster","Register","UnRegisterComponents","UnRegister","GetWorldPosition","GetWorldRotation","FindSoundEmitter","emitter","SetMute","PlayAnimationEx","animName","loopCount","start","speed","clearWhenDone","CalculateSkinnedBoundingBoxFromTransform","transform","max","IsUsingCMF","localMin","localMax","GetLocalBoundingBox","corner","CalculateSkinnedBoundingSphere","center","GetBoundingSphereCenter","GetBoundingSphereRadius","ClearImpactDamage","Clear","ClearAnimations","CreateImpactFromPosition","position","direction","lifeTime","size","closestDamageLocator","CreateImpact","damageLocatorIndex","EndAnimation","FreezeHighDetailMesh","SetHighDetailDecalState","GetDamageLocatorCount","GetLocatorCount","locatorSetName","GetLocatorsForSet","GetCloseLocatorIndex","posInObjectSpace","locatorPosition","locatorDirection","closestLength","closestIndex","squaredDistance","GetGoodLocatorIndex","GetDamageLocatorDirection","inWorldSpaceOrOut","targetableCall","inWorldSpace","GetDamageLocatorPosition","GetClosestDamageLocatorIndex","GetGoodDamageLocatorIndex","objectPosition","minDistance","maxDistance","MIN_VALUE","bestDirectionFit","locator","subtract","desiredFit","random","bestFit","bestLocator","range","value","sqrt","abs","fit","GetRadius","GetMissPosition","hit","source","directionLength","scaleAndAdd","dot","offsetLength","GetImpactConfiguration","ImpactConfiguration","IMPACT_INVALID","HasImpactConfigurationShield","HasShieldEllipsoid","IMPACT_SHIELD","GetImpactPosition","posPrev","posNow","epsilon","t","UpdateImpact","impactIndex","GetDamageLocator","GetTransformedDamageLocator","IsImpostor","GetLocatorPositionFromSet","GetLocatorRotationFromSet","HandleControllerEvent","eventName","HandleEvent","PlayAnimation","ChainAnimation","ChainAnimationEx","#PlayAnimation","replace","delay","RebuildBoundingSphereInformation","geometryRes","IsGood","RecalculateBoundingSphere","sphere","GetMeshIndex","SetBoundingSphereInformation","radius","extract","GetControllerVariables","Object","fromEntries","GetLastUsedMeshLod","GetLodIndexForScreenSize","GetLocatorTransform","candidate","GetBoneWorldTransform","GetTransform","minBounds","maxBounds","GetWorldBoundingBox","box3","fromBounds","IsBoundingBoxReady","query","union","IsInFrustum","GetBoneCount","HasMeshBinding","GetSkeletonBoneIndices","GetMeshBindingBoneCount","SetImpactDamageState","shield","armor","hull","doCreateArmorImpacts","SetDamageState","SetControllerVariable","SetImpactAnimation","enable","duration","ToggleEffect","key","next","SetVariable","SetProceduralContainerVariable","StartControllers","Start","TransformLocators","result","record","Array","isArray","boneIndex","#TransformLocator","bone","boneRotation","getRotation","#ApplyModelTransform","translation","GetValueAt","transformQuat","#GetLocatorsForSet","GetLocators","#GetLocatorInObjectSpace","outPosition","outDirection","boneCount","GetMeshBoneCount","#GetClosestLocatorIndex","#GetShapeEllipsoid","outCenter","outRadii","bounds","lerp","#IsLocatorFacingPosition","moved","squaredLength","#TransformNormal","matrix","#GetDirectionFit","v0","v1","#IntersectEllipsoidRay","radii","origin","vx","vy","vz","sx","sy","sz","vv","vs","ss","discriminant","#IsPointInsideEllipsoid","point","#GetBoneMatrix","bones","GetMeshBoneMatrixList","#ApplyControllerVariables","variables","methodName","setter","call","#UpdateCurve","fallback","ArrayBuffer","isView","#GetContextValue","context","propertyNames","propertyName","undefined","#GetPixelSize","GetPixelSizeAccross","#GetEstimatedPixelSize","GetPixelSizeAccrossEst","#SetSphere","#TransformBox","freeze","ReflectionMode","constructor"],"mappings":"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"}