@carbonenginejs/runtime-trinity 0.4.0 → 0.5.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 (966) hide show
  1. package/README.md +139 -7
  2. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +1 -1
  3. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  4. package/dist/controllers/Tr2BindingPoint.js +1 -1
  5. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  6. package/dist/controllers/Tr2ControllerExpression.js +7 -7
  7. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  8. package/dist/curves/CjsGrannyCurves.js +119 -5
  9. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  10. package/dist/curves/Tr2BoneMatrixCurve.js +59 -4
  11. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  12. package/dist/curves/Tr2CurveRandomAxisRotation.js +4 -3
  13. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  14. package/dist/curves/Tr2GrannyTrack.js +1 -1
  15. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  16. package/dist/curves/Tr2MatrixKey.js +1 -1
  17. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  18. package/dist/curves/Tr2ScalarExprKey.js +106 -103
  19. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  20. package/dist/curves/TriColorSequencer.js +86 -0
  21. package/dist/curves/TriColorSequencer.js.map +1 -0
  22. package/dist/curves/TriEventCurve.js +1 -1
  23. package/dist/curves/TriEventCurve.js.map +1 -1
  24. package/dist/curves/TriPerlinCurve.js +2 -49
  25. package/dist/curves/TriPerlinCurve.js.map +1 -1
  26. package/dist/curves/TriVectorSequencer.js +103 -0
  27. package/dist/curves/TriVectorSequencer.js.map +1 -0
  28. package/dist/curves/index.js +2 -0
  29. package/dist/curves/index.js.map +1 -1
  30. package/dist/eve/AudioGameObject.js +121 -0
  31. package/dist/eve/AudioGameObject.js.map +1 -0
  32. package/dist/eve/CjsDistributionRandom.js +39 -0
  33. package/dist/eve/CjsDistributionRandom.js.map +1 -0
  34. package/dist/eve/EveBannerItem.js +6 -2
  35. package/dist/eve/EveBannerItem.js.map +1 -1
  36. package/dist/eve/EveBannerLight.js +9 -12
  37. package/dist/eve/EveBannerLight.js.map +1 -1
  38. package/dist/eve/EveBannerSet.js +21 -1
  39. package/dist/eve/EveBannerSet.js.map +1 -1
  40. package/dist/eve/EveBoosterSet2.js +20 -2
  41. package/dist/eve/EveBoosterSet2.js.map +1 -1
  42. package/dist/eve/EveComponentTypes.js +116 -0
  43. package/dist/eve/EveComponentTypes.js.map +1 -0
  44. package/dist/eve/EveHazeSet.js +19 -1
  45. package/dist/eve/EveHazeSet.js.map +1 -1
  46. package/dist/eve/EveHazeSetLight.js +9 -12
  47. package/dist/eve/EveHazeSetLight.js.map +1 -1
  48. package/dist/eve/EveParticleDirectForce.js +25 -0
  49. package/dist/eve/EveParticleDirectForce.js.map +1 -0
  50. package/dist/eve/EveParticleDragForce.js +25 -0
  51. package/dist/eve/EveParticleDragForce.js.map +1 -0
  52. package/dist/eve/EveParticleSpring.js +26 -0
  53. package/dist/eve/EveParticleSpring.js.map +1 -0
  54. package/dist/eve/EvePlaneLight.js +9 -15
  55. package/dist/eve/EvePlaneLight.js.map +1 -1
  56. package/dist/eve/EvePlaneSet.js +20 -1
  57. package/dist/eve/EvePlaneSet.js.map +1 -1
  58. package/dist/eve/EvePlaneSetItem.js +1 -1
  59. package/dist/eve/EvePlaneSetItem.js.map +1 -1
  60. package/dist/eve/EveSpaceObjectDecal.js +1 -1
  61. package/dist/eve/EveSpaceObjectDecal.js.map +1 -1
  62. package/dist/eve/EveSpacePerObjectData.js +14 -4
  63. package/dist/eve/EveSpacePerObjectData.js.map +1 -1
  64. package/dist/eve/EveSpotlightLight.js +9 -12
  65. package/dist/eve/EveSpotlightLight.js.map +1 -1
  66. package/dist/eve/EveSpotlightSet.js +19 -1
  67. package/dist/eve/EveSpotlightSet.js.map +1 -1
  68. package/dist/eve/EveSpriteLight.js +9 -15
  69. package/dist/eve/EveSpriteLight.js.map +1 -1
  70. package/dist/eve/EveSpriteLineSet.js +19 -1
  71. package/dist/eve/EveSpriteLineSet.js.map +1 -1
  72. package/dist/eve/EveSpriteLineSetItem.js +1 -1
  73. package/dist/eve/EveSpriteLineSetItem.js.map +1 -1
  74. package/dist/eve/EveSpriteSet.js +19 -1
  75. package/dist/eve/EveSpriteSet.js.map +1 -1
  76. package/dist/eve/EveTrailsSet.js +1 -1
  77. package/dist/eve/EveTrailsSet.js.map +1 -1
  78. package/dist/eve/EveUpdateContext.js +195 -31
  79. package/dist/eve/EveUpdateContext.js.map +1 -1
  80. package/dist/eve/Locator.js +2 -2
  81. package/dist/eve/Locator.js.map +1 -1
  82. package/dist/eve/attachment/decal/DecalMeshCache.js +47 -0
  83. package/dist/eve/attachment/decal/DecalMeshCache.js.map +1 -0
  84. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +424 -0
  85. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -0
  86. package/dist/eve/attachment/turrets/EveTurretSet.js +788 -0
  87. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -0
  88. package/dist/{generated/eve → eve}/attachment/turrets/EveTurretSetPSData.js +6 -4
  89. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +1 -0
  90. package/dist/{generated/eve → eve}/attachment/turrets/EveTurretSetVSData.js +12 -8
  91. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +1 -0
  92. package/dist/eve/attachment/turrets/EveTurretTarget.js +216 -0
  93. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -0
  94. package/dist/eve/child/EveChildAudio.js +89 -0
  95. package/dist/eve/child/EveChildAudio.js.map +1 -0
  96. package/dist/eve/child/EveChildContainer.js +540 -14
  97. package/dist/eve/child/EveChildContainer.js.map +1 -1
  98. package/dist/eve/child/EveChildEffectPropagator.js +600 -0
  99. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -0
  100. package/dist/eve/child/EveChildFogVolume.js +183 -0
  101. package/dist/eve/child/EveChildFogVolume.js.map +1 -0
  102. package/dist/{generated/eve → eve}/child/EveChildInstanceTransform.js +1 -1
  103. package/dist/eve/child/EveChildInstanceTransform.js.map +1 -0
  104. package/dist/eve/child/EveChildInstancedMeshes.js +45 -3
  105. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  106. package/dist/eve/child/EveChildLightingOverride.js +159 -0
  107. package/dist/eve/child/EveChildLightingOverride.js.map +1 -0
  108. package/dist/eve/child/EveChildMesh.js +571 -13
  109. package/dist/eve/child/EveChildMesh.js.map +1 -1
  110. package/dist/eve/child/EveChildTransform.js +39 -24
  111. package/dist/eve/child/EveChildTransform.js.map +1 -1
  112. package/dist/{generated/eve → eve}/child/EveCloudVolumeBall.js +1 -1
  113. package/dist/eve/child/EveCloudVolumeBall.js.map +1 -0
  114. package/dist/{generated/eve → eve}/child/behaviors/DroneAgent.js +1 -1
  115. package/dist/eve/child/behaviors/DroneAgent.js.map +1 -0
  116. package/dist/{generated/eve → eve}/child/behaviors/SplineTunnel.js +1 -1
  117. package/dist/eve/child/behaviors/SplineTunnel.js.map +1 -0
  118. package/dist/{generated/eve → eve}/child/behaviors/SplineTunnelPoint.js +1 -1
  119. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +1 -0
  120. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +2 -1
  121. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  122. package/dist/eve/child/lineSetPaths/EveCircle.js +2 -1
  123. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  124. package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -4
  125. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  126. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +3 -2
  127. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  128. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +5 -3
  129. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  130. package/dist/eve/child/modifiers/EveChildModifierSRT.js +6 -4
  131. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  132. package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js +7 -2
  133. package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js.map +1 -1
  134. package/dist/{generated/eve → eve}/distribution/attributeModifiers/InitialPlacement.js +1 -1
  135. package/dist/eve/distribution/attributeModifiers/InitialPlacement.js.map +1 -0
  136. package/dist/eve/index.js +49 -1
  137. package/dist/eve/index.js.map +1 -1
  138. package/dist/{generated/eve/lights/LightData.js → eve/lights/CjsLightData.js} +59 -44
  139. package/dist/eve/lights/CjsLightData.js.map +1 -0
  140. package/dist/{generated/eve → eve}/lights/LightFeatures.js +1 -1
  141. package/dist/eve/lights/LightFeatures.js.map +1 -0
  142. package/dist/eve/lights/Tr2Light.js +30 -38
  143. package/dist/eve/lights/Tr2Light.js.map +1 -1
  144. package/dist/eve/lights/Tr2PointLight.js +37 -15
  145. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  146. package/dist/eve/lights/Tr2SpotLight.js +41 -15
  147. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  148. package/dist/eve/lights/Tr2TexturedPointLight.js +10 -31
  149. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  150. package/dist/eve/perObjectData/DecalPSPerObjectData.js +56 -0
  151. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +1 -0
  152. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +31 -0
  153. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  154. package/dist/{generated/eve → eve}/perObjectData/EveTurretSetPerObjectData.js +5 -3
  155. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  156. package/dist/{generated/eve → eve}/perObjectData/MergeMorphsConstantBuffer.js +1 -1
  157. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +1 -0
  158. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +129 -0
  159. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -0
  160. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +127 -0
  161. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -0
  162. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +200 -0
  163. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -0
  164. package/dist/eve/{EveRemotePositionCurve.js → renderable/stretch/EveRemotePositionCurve.js} +2 -2
  165. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -0
  166. package/dist/eve/renderable/stretch/EveStretch.js +293 -0
  167. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -0
  168. package/dist/eve/renderable/stretch/EveStretch2.js +188 -0
  169. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -0
  170. package/dist/eve/renderable/stretch/EveStretch3.js +335 -0
  171. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -0
  172. package/dist/eve/scene/EveSpaceScene.js +475 -21
  173. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  174. package/dist/eve/socket/EveSocketParameterFilePath.js +26 -0
  175. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -0
  176. package/dist/eve/spaceObject/EveEffectRoot2.js +690 -0
  177. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -0
  178. package/dist/eve/spaceObject/EveMissile.js +165 -0
  179. package/dist/eve/spaceObject/EveMissile.js.map +1 -0
  180. package/dist/eve/spaceObject/EveMissileWarhead.js +318 -0
  181. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -0
  182. package/dist/eve/spaceObject/EveMobile.js +292 -0
  183. package/dist/eve/spaceObject/EveMobile.js.map +1 -0
  184. package/dist/eve/spaceObject/EveRootTransform.js +182 -0
  185. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -0
  186. package/dist/eve/spaceObject/EveSpaceObject2.js +743 -15
  187. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  188. package/dist/eve/spaceObject/EveTransform.js +264 -0
  189. package/dist/eve/spaceObject/EveTransform.js.map +1 -0
  190. package/dist/{generated/eve → eve}/spaceObject/swarm/SwarmVehicle.js +1 -1
  191. package/dist/eve/spaceObject/swarm/SwarmVehicle.js.map +1 -0
  192. package/dist/{generated/eve → eve}/spaceObject/swarm/SwarmVehicleDebug.js +1 -1
  193. package/dist/eve/spaceObject/swarm/SwarmVehicleDebug.js.map +1 -0
  194. package/dist/{generated/eve → eve}/ui/EveEllipseDefinition.js +17 -16
  195. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -0
  196. package/dist/{generated/eve → eve}/ui/EveEllipseSet.js +42 -32
  197. package/dist/eve/ui/EveEllipseSet.js.map +1 -0
  198. package/dist/eve/ui/EveSprite2dBracket.js +75 -0
  199. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -0
  200. package/dist/eve/ui/EveUiObject.js +58 -0
  201. package/dist/eve/ui/EveUiObject.js.map +1 -0
  202. package/dist/eve/volume/EveBoxVolume.js +47 -1
  203. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  204. package/dist/eve/volume/EveEllipsoidVolume.js +28 -1
  205. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  206. package/dist/eve/volume/EveSphereVolume.js +24 -1
  207. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  208. package/dist/generated/{trinityCore → curves}/Tr2VectorFunctionModifier.js +2 -2
  209. package/dist/generated/curves/Tr2VectorFunctionModifier.js.map +1 -0
  210. package/dist/generated/curves/index.js +1 -3
  211. package/dist/generated/curves/index.js.map +1 -1
  212. package/dist/generated/eve/EveCamera.js +100 -21
  213. package/dist/generated/eve/EveCamera.js.map +1 -1
  214. package/dist/generated/eve/EveEntity.js +59 -12
  215. package/dist/generated/eve/EveEntity.js.map +1 -1
  216. package/dist/generated/eve/attachment/decal/index.js +1 -1
  217. package/dist/generated/eve/attachment/index.js +0 -6
  218. package/dist/generated/eve/attachment/index.js.map +1 -1
  219. package/dist/generated/eve/attachment/turrets/enums.js.map +1 -1
  220. package/dist/generated/eve/attachment/turrets/index.js +0 -5
  221. package/dist/generated/eve/attachment/turrets/index.js.map +1 -1
  222. package/dist/generated/eve/child/EveChildBehaviorSystem.js +319 -7
  223. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +1 -1
  224. package/dist/generated/eve/child/EveChildBulletStorm.js +67 -13
  225. package/dist/generated/eve/child/EveChildBulletStorm.js.map +1 -1
  226. package/dist/generated/eve/child/EveChildCloud2.js +88 -5
  227. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  228. package/dist/generated/eve/child/EveChildExplosion.js +116 -13
  229. package/dist/generated/eve/child/EveChildExplosion.js.map +1 -1
  230. package/dist/generated/eve/child/EveChildInstanceContainer.js +42 -8
  231. package/dist/generated/eve/child/EveChildInstanceContainer.js.map +1 -1
  232. package/dist/generated/eve/child/EveChildLineSet.js +3 -3
  233. package/dist/generated/eve/child/EveChildLineSet.js.map +1 -1
  234. package/dist/generated/eve/child/EveChildLink.js +218 -36
  235. package/dist/generated/eve/child/EveChildLink.js.map +1 -1
  236. package/dist/generated/eve/child/EveChildParticleSphere.js +40 -4
  237. package/dist/generated/eve/child/EveChildParticleSphere.js.map +1 -1
  238. package/dist/generated/eve/child/EveChildParticleSystem.js +282 -10
  239. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  240. package/dist/generated/eve/child/EveChildPlug.js +36 -8
  241. package/dist/generated/eve/child/EveChildPlug.js.map +1 -1
  242. package/dist/generated/eve/child/EveChildPostProcessVolume.js +230 -32
  243. package/dist/generated/eve/child/EveChildPostProcessVolume.js.map +1 -1
  244. package/dist/generated/eve/child/EveChildQuad.js +290 -38
  245. package/dist/generated/eve/child/EveChildQuad.js.map +1 -1
  246. package/dist/generated/eve/child/EveChildRef.js +35 -12
  247. package/dist/generated/eve/child/EveChildRef.js.map +1 -1
  248. package/dist/generated/eve/child/EveChildSocket.js +52 -14
  249. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  250. package/dist/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
  251. package/dist/generated/eve/child/behaviors/Allign.js +114 -9
  252. package/dist/generated/eve/child/behaviors/Allign.js.map +1 -1
  253. package/dist/generated/eve/child/behaviors/ApproachGroup.js +117 -9
  254. package/dist/generated/eve/child/behaviors/ApproachGroup.js.map +1 -1
  255. package/dist/generated/eve/child/behaviors/BackAndForth.js +195 -7
  256. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  257. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +675 -17
  258. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  259. package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js +223 -75
  260. package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
  261. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +54 -9
  262. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +1 -1
  263. package/dist/generated/eve/child/behaviors/DroneAvoidance.js +134 -9
  264. package/dist/generated/eve/child/behaviors/DroneAvoidance.js.map +1 -1
  265. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +302 -9
  266. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  267. package/dist/generated/eve/child/behaviors/FollowASpline.js +336 -12
  268. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  269. package/dist/generated/eve/child/behaviors/Formation.js +304 -9
  270. package/dist/generated/eve/child/behaviors/Formation.js.map +1 -1
  271. package/dist/generated/eve/child/behaviors/InclusionVolume.js +70 -9
  272. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +1 -1
  273. package/dist/generated/eve/child/behaviors/Inertia.js +101 -9
  274. package/dist/generated/eve/child/behaviors/Inertia.js.map +1 -1
  275. package/dist/generated/eve/child/behaviors/PlayFX.js +208 -9
  276. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  277. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +412 -9
  278. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +1 -1
  279. package/dist/generated/eve/child/behaviors/SeekTarget.js +102 -18
  280. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  281. package/dist/generated/eve/child/behaviors/SpawnDrones.js +111 -3
  282. package/dist/generated/eve/child/behaviors/SpawnDrones.js.map +1 -1
  283. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +114 -11
  284. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +1 -1
  285. package/dist/generated/eve/child/behaviors/Wander.js +52 -9
  286. package/dist/generated/eve/child/behaviors/Wander.js.map +1 -1
  287. package/dist/generated/eve/child/behaviors/enums.js.map +1 -1
  288. package/dist/generated/eve/child/behaviors/index.js +0 -3
  289. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  290. package/dist/generated/eve/child/enums.js.map +1 -1
  291. package/dist/generated/eve/child/index.js +0 -9
  292. package/dist/generated/eve/child/index.js.map +1 -1
  293. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js +66 -22
  294. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -1
  295. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js +117 -21
  296. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -1
  297. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js +87 -22
  298. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +1 -1
  299. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js +37 -5
  300. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -1
  301. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js +302 -48
  302. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
  303. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js +76 -4
  304. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -1
  305. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +58 -4
  306. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -1
  307. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js +92 -5
  308. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -1
  309. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js +78 -4
  310. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -1
  311. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js +137 -4
  312. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -1
  313. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js +73 -4
  314. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -1
  315. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js +63 -4
  316. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -1
  317. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js +123 -4
  318. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -1
  319. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js +360 -45
  320. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +1 -1
  321. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +11 -5
  322. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -1
  323. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +27 -5
  324. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -1
  325. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +36 -5
  326. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -1
  327. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -1
  328. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +1 -1
  329. package/dist/generated/eve/distribution/index.js +0 -1
  330. package/dist/generated/eve/distribution/index.js.map +1 -1
  331. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js +30 -4
  332. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -1
  333. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +59 -4
  334. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -1
  335. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js +67 -4
  336. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -1
  337. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +26 -4
  338. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -1
  339. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +25 -4
  340. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -1
  341. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +28 -4
  342. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -1
  343. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +28 -4
  344. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -1
  345. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js +27 -4
  346. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -1
  347. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +40 -5
  348. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -1
  349. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js +27 -4
  350. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -1
  351. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +65 -4
  352. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -1
  353. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +55 -4
  354. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -1
  355. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +63 -4
  356. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -1
  357. package/dist/generated/eve/effect/EveLensflare.js +11 -6
  358. package/dist/generated/eve/effect/EveLensflare.js.map +1 -1
  359. package/dist/generated/eve/effect/EveMultiEffect.js +24 -11
  360. package/dist/generated/eve/effect/EveMultiEffect.js.map +1 -1
  361. package/dist/generated/eve/enums.js.map +1 -1
  362. package/dist/generated/eve/index.js +9 -43
  363. package/dist/generated/eve/index.js.map +1 -1
  364. package/dist/generated/eve/lights/Tr2FactionLight.js +116 -26
  365. package/dist/generated/eve/lights/Tr2FactionLight.js.map +1 -1
  366. package/dist/generated/eve/lights/index.js +0 -2
  367. package/dist/generated/eve/lights/index.js.map +1 -1
  368. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +1 -1
  369. package/dist/generated/eve/perObjectData/index.js +0 -3
  370. package/dist/generated/eve/perObjectData/index.js.map +1 -1
  371. package/dist/generated/eve/renderable/index.js +0 -5
  372. package/dist/generated/eve/renderable/index.js.map +1 -1
  373. package/dist/generated/eve/renderable/stretch/enums.js.map +1 -1
  374. package/dist/generated/eve/renderable/stretch/index.js +0 -5
  375. package/dist/generated/eve/renderable/stretch/index.js.map +1 -1
  376. package/dist/generated/eve/scene/EveComponentCollection.js +32 -5
  377. package/dist/generated/eve/scene/EveComponentCollection.js.map +1 -1
  378. package/dist/generated/eve/scene/EveComponentRegistry.js +117 -5
  379. package/dist/generated/eve/scene/EveComponentRegistry.js.map +1 -1
  380. package/dist/generated/eve/scene/EveSceneStaticParticles.js +117 -11
  381. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +1 -1
  382. package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.js +2 -2
  383. package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  384. package/dist/generated/eve/scene/TriShadowFrustum.js +74 -22
  385. package/dist/generated/eve/scene/TriShadowFrustum.js.map +1 -1
  386. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +128 -26
  387. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +1 -1
  388. package/dist/generated/eve/scene/index.js +0 -2
  389. package/dist/generated/eve/scene/index.js.map +1 -1
  390. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js +204 -28
  391. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  392. package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js +78 -10
  393. package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
  394. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +220 -26
  395. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  396. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +291 -40
  397. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  398. package/dist/generated/eve/smartLights/EveSmartLightQuad.js +293 -36
  399. package/dist/generated/eve/smartLights/EveSmartLightQuad.js.map +1 -1
  400. package/dist/generated/eve/smartLights/EveSmartLightSpotLight.js +33 -13
  401. package/dist/generated/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
  402. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +70 -5
  403. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -1
  404. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +184 -70
  405. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -1
  406. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +68 -9
  407. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -1
  408. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +63 -9
  409. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -1
  410. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +253 -26
  411. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -1
  412. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +37 -9
  413. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -1
  414. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +145 -9
  415. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -1
  416. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +1 -1
  417. package/dist/generated/eve/smartLights/index.js +1 -1
  418. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js +33 -5
  419. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +1 -1
  420. package/dist/generated/eve/socket/EveSocketParameterBool.js +56 -0
  421. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +1 -0
  422. package/dist/generated/eve/socket/EveSocketParameterColor.js +68 -0
  423. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +1 -0
  424. package/dist/generated/eve/socket/EveSocketParameterFloat.js +56 -0
  425. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +1 -0
  426. package/dist/generated/eve/socket/EveSocketParameterInt.js +56 -0
  427. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +1 -0
  428. package/dist/generated/eve/socket/EveSocketParameterString.js +54 -5
  429. package/dist/generated/eve/socket/EveSocketParameterString.js.map +1 -1
  430. package/dist/generated/eve/socket/EveSocketParameterVector2.js +64 -0
  431. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +1 -0
  432. package/dist/generated/eve/socket/EveSocketParameterVector3.js +64 -0
  433. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +1 -0
  434. package/dist/generated/eve/socket/EveSocketParameterVector4.js +64 -0
  435. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +1 -0
  436. package/dist/generated/eve/socket/index.js +7 -1
  437. package/dist/generated/eve/socket/index.js.map +1 -1
  438. package/dist/generated/eve/spaceObject/EvePlanet.js +1 -1
  439. package/dist/generated/eve/spaceObject/EvePlanet.js.map +1 -1
  440. package/dist/generated/eve/spaceObject/EveShip2.js +194 -11
  441. package/dist/generated/eve/spaceObject/EveShip2.js.map +1 -1
  442. package/dist/generated/eve/spaceObject/enums.js.map +1 -1
  443. package/dist/generated/eve/spaceObject/index.js +0 -8
  444. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  445. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +104 -15
  446. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  447. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js +83 -7
  448. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
  449. package/dist/generated/eve/spaceObject/swarm/index.js +0 -2
  450. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  451. package/dist/generated/eve/ui/EveLineSet.js +49 -19
  452. package/dist/generated/eve/ui/EveLineSet.js.map +1 -1
  453. package/dist/generated/{trinityCore → eve/ui}/EveSprite2dBracketRenderer.js +3 -3
  454. package/dist/generated/eve/ui/EveSprite2dBracketRenderer.js.map +1 -0
  455. package/dist/generated/eve/ui/EveTacticalTrails.js +20 -8
  456. package/dist/generated/eve/ui/EveTacticalTrails.js.map +1 -1
  457. package/dist/generated/eve/ui/enums.js.map +1 -1
  458. package/dist/generated/eve/ui/index.js +1 -4
  459. package/dist/generated/eve/ui/index.js.map +1 -1
  460. package/dist/generated/include/enums.js.map +1 -1
  461. package/dist/generated/include/index.js +0 -9
  462. package/dist/generated/include/index.js.map +1 -1
  463. package/dist/generated/index.js +14 -116
  464. package/dist/generated/index.js.map +1 -1
  465. package/dist/generated/particle/ITr2GenericEmitter.js +31 -1
  466. package/dist/generated/particle/ITr2GenericEmitter.js.map +1 -1
  467. package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js +114 -64
  468. package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
  469. package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js +62 -26
  470. package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
  471. package/dist/generated/particle/Tr2DynamicEmitter.js +186 -37
  472. package/dist/generated/particle/Tr2DynamicEmitter.js.map +1 -1
  473. package/dist/generated/particle/Tr2ElementBlendConstraint.js +56 -26
  474. package/dist/generated/particle/Tr2ElementBlendConstraint.js.map +1 -1
  475. package/dist/generated/particle/Tr2ForceSphereVolume.js +68 -28
  476. package/dist/generated/particle/Tr2ForceSphereVolume.js.map +1 -1
  477. package/dist/generated/particle/Tr2ParticleSystem.js +266 -10
  478. package/dist/generated/particle/Tr2ParticleSystem.js.map +1 -1
  479. package/dist/generated/particle/Tr2ParticleTurbulenceForce.js +41 -4
  480. package/dist/generated/particle/Tr2ParticleTurbulenceForce.js.map +1 -1
  481. package/dist/generated/particle/Tr2PlaneConstraint.js +160 -42
  482. package/dist/generated/particle/Tr2PlaneConstraint.js.map +1 -1
  483. package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js +71 -22
  484. package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
  485. package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js +59 -26
  486. package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
  487. package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js +59 -26
  488. package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js.map +1 -1
  489. package/dist/generated/particle/Tr2SphereConstraint.js +202 -46
  490. package/dist/generated/particle/Tr2SphereConstraint.js.map +1 -1
  491. package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js +120 -64
  492. package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js.map +1 -1
  493. package/dist/generated/particle/Tr2StaticEmitter.js +79 -9
  494. package/dist/generated/particle/Tr2StaticEmitter.js.map +1 -1
  495. package/dist/generated/particle/index.js +0 -4
  496. package/dist/generated/particle/index.js.map +1 -1
  497. package/dist/generated/postProcess/enums.js.map +1 -1
  498. package/dist/generated/postProcess/index.js +0 -14
  499. package/dist/generated/postProcess/index.js.map +1 -1
  500. package/dist/generated/raytracing/Tr2RaytracingGeometry.js +67 -65
  501. package/dist/generated/raytracing/Tr2RaytracingGeometry.js.map +1 -1
  502. package/dist/generated/raytracing/index.js +0 -1
  503. package/dist/generated/raytracing/index.js.map +1 -1
  504. package/dist/generated/renderJob/Tr2RenderNodeEffect.js +100 -0
  505. package/dist/generated/renderJob/Tr2RenderNodeEffect.js.map +1 -0
  506. package/dist/generated/{trinityCore → renderJob}/Tr2RenderNodeSprite2dScene.js +2 -2
  507. package/dist/generated/renderJob/Tr2RenderNodeSprite2dScene.js.map +1 -0
  508. package/dist/generated/renderJob/TriStepClearUav.js +22 -3
  509. package/dist/generated/renderJob/TriStepClearUav.js.map +1 -1
  510. package/dist/generated/renderJob/TriStepFilterVisibilityResults.js +23 -4
  511. package/dist/generated/renderJob/TriStepFilterVisibilityResults.js.map +1 -1
  512. package/dist/generated/renderJob/TriStepPythonCB.js +20 -5
  513. package/dist/generated/renderJob/TriStepPythonCB.js.map +1 -1
  514. package/dist/generated/renderJob/TriStepRenderAtlas.js +8 -3
  515. package/dist/generated/renderJob/TriStepRenderAtlas.js.map +1 -1
  516. package/dist/generated/renderJob/TriStepRenderDebug.js +59 -24
  517. package/dist/generated/renderJob/TriStepRenderDebug.js.map +1 -1
  518. package/dist/generated/renderJob/TriStepRenderEffect.js +10 -3
  519. package/dist/generated/renderJob/TriStepRenderEffect.js.map +1 -1
  520. package/dist/generated/renderJob/TriStepRenderLineGraph.js +32 -3
  521. package/dist/generated/renderJob/TriStepRenderLineGraph.js.map +1 -1
  522. package/dist/generated/renderJob/TriStepRenderObject.js +19 -7
  523. package/dist/generated/renderJob/TriStepRenderObject.js.map +1 -1
  524. package/dist/generated/renderJob/TriStepRenderPass.js +8 -3
  525. package/dist/generated/renderJob/TriStepRenderPass.js.map +1 -1
  526. package/dist/generated/renderJob/TriStepRenderScene.js +7 -3
  527. package/dist/generated/renderJob/TriStepRenderScene.js.map +1 -1
  528. package/dist/generated/renderJob/TriStepRenderSceneDebug.js +7 -3
  529. package/dist/generated/renderJob/TriStepRenderSceneDebug.js.map +1 -1
  530. package/dist/generated/renderJob/TriStepRenderTexture.js +21 -3
  531. package/dist/generated/renderJob/TriStepRenderTexture.js.map +1 -1
  532. package/dist/generated/renderJob/TriStepRunComputeShader.js +14 -3
  533. package/dist/generated/renderJob/TriStepRunComputeShader.js.map +1 -1
  534. package/dist/generated/renderJob/TriStepSetDebugRenderer.js +10 -3
  535. package/dist/generated/renderJob/TriStepSetDebugRenderer.js.map +1 -1
  536. package/dist/generated/renderJob/TriStepSetUpscalingContextID.js +8 -4
  537. package/dist/generated/renderJob/TriStepSetUpscalingContextID.js.map +1 -1
  538. package/dist/generated/renderJob/TriStepSetVariableStore.js +24 -6
  539. package/dist/generated/renderJob/TriStepSetVariableStore.js.map +1 -1
  540. package/dist/generated/renderJob/TriStepToggleCubemap.js +16 -4
  541. package/dist/generated/renderJob/TriStepToggleCubemap.js.map +1 -1
  542. package/dist/generated/renderJob/TriStepUpdate.js +7 -3
  543. package/dist/generated/renderJob/TriStepUpdate.js.map +1 -1
  544. package/dist/generated/renderJob/enums.js.map +1 -1
  545. package/dist/generated/renderJob/index.js +2 -1
  546. package/dist/generated/renderJob/index.js.map +1 -1
  547. package/dist/generated/shader/enums.js.map +1 -1
  548. package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js +127 -41
  549. package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
  550. package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js +122 -33
  551. package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
  552. package/dist/generated/sprite2d/Tr2Sprite2dScene.js.map +1 -1
  553. package/dist/generated/sprite2d/Tr2Sprite2dTransform.js +51 -31
  554. package/dist/generated/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
  555. package/dist/generated/sprite2d/Tr2Sprite2dVertex.js +37 -26
  556. package/dist/generated/sprite2d/Tr2Sprite2dVertex.js.map +1 -1
  557. package/dist/generated/sprite2d/Tr2SpriteObjectBase.js +5 -6
  558. package/dist/generated/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
  559. package/dist/generated/sprite2d/enums.js.map +1 -1
  560. package/dist/generated/sprite2d/index.js +0 -5
  561. package/dist/generated/sprite2d/index.js.map +1 -1
  562. package/dist/generated/trinityCore/Tr2BoundingLineSet.js +31 -3
  563. package/dist/generated/trinityCore/Tr2BoundingLineSet.js.map +1 -1
  564. package/dist/generated/trinityCore/Tr2CurveLineSet.js +214 -136
  565. package/dist/generated/trinityCore/Tr2CurveLineSet.js.map +1 -1
  566. package/dist/generated/trinityCore/Tr2DebugRenderer.js +113 -87
  567. package/dist/generated/trinityCore/Tr2DebugRenderer.js.map +1 -1
  568. package/dist/generated/trinityCore/Tr2DynamicBinding.js +1 -1
  569. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +1 -1
  570. package/dist/generated/trinityCore/Tr2ExternalParameter.js +147 -33
  571. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +1 -1
  572. package/dist/generated/trinityCore/Tr2GpuProfiler.js.map +1 -1
  573. package/dist/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
  574. package/dist/generated/trinityCore/Tr2GrannyAnimation.js +646 -52
  575. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +1 -1
  576. package/dist/generated/trinityCore/Tr2HostBitmap.js +189 -177
  577. package/dist/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
  578. package/dist/generated/trinityCore/Tr2LineGraph.js +49 -8
  579. package/dist/generated/trinityCore/Tr2LineGraph.js.map +1 -1
  580. package/dist/generated/trinityCore/Tr2LineSet.js +36 -11
  581. package/dist/generated/trinityCore/Tr2LineSet.js.map +1 -1
  582. package/dist/generated/trinityCore/Tr2ManipulationTool.js +39 -11
  583. package/dist/generated/trinityCore/Tr2ManipulationTool.js.map +1 -1
  584. package/dist/generated/trinityCore/Tr2PrimitiveSet.js +46 -42
  585. package/dist/generated/trinityCore/Tr2PrimitiveSet.js.map +1 -1
  586. package/dist/generated/trinityCore/Tr2QuadRenderer.js +199 -45
  587. package/dist/generated/trinityCore/Tr2QuadRenderer.js.map +1 -1
  588. package/dist/generated/trinityCore/Tr2SSAO.js +15 -15
  589. package/dist/generated/trinityCore/Tr2SSAO.js.map +1 -1
  590. package/dist/generated/trinityCore/Tr2ScalingTool.js +17 -3
  591. package/dist/generated/trinityCore/Tr2ScalingTool.js.map +1 -1
  592. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +1 -1
  593. package/dist/generated/trinityCore/Tr2SolidSet.js +43 -7
  594. package/dist/generated/trinityCore/Tr2SolidSet.js.map +1 -1
  595. package/dist/generated/trinityCore/Tr2TextureAnimation.js +75 -40
  596. package/dist/generated/trinityCore/Tr2TextureAnimation.js.map +1 -1
  597. package/dist/generated/trinityCore/Tr2TextureArray.js +1 -1
  598. package/dist/generated/trinityCore/Tr2TextureArray.js.map +1 -1
  599. package/dist/generated/trinityCore/Tr2TextureAtlas.js +4 -0
  600. package/dist/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
  601. package/dist/generated/trinityCore/TriLineSet.js +115 -21
  602. package/dist/generated/trinityCore/TriLineSet.js.map +1 -1
  603. package/dist/generated/trinityCore/TriRigidOrientation.js +23 -3
  604. package/dist/generated/trinityCore/TriRigidOrientation.js.map +1 -1
  605. package/dist/generated/trinityCore/TriValueBinding.js +230 -40
  606. package/dist/generated/trinityCore/TriValueBinding.js.map +1 -1
  607. package/dist/generated/trinityCore/enums.js +1 -84
  608. package/dist/generated/trinityCore/enums.js.map +1 -1
  609. package/dist/generated/trinityCore/index.js +2 -27
  610. package/dist/generated/trinityCore/index.js.map +1 -1
  611. package/dist/generated/ui/index.js +0 -4
  612. package/dist/generated/ui/index.js.map +1 -1
  613. package/dist/generated/utilities/index.js +0 -5
  614. package/dist/generated/utilities/index.js.map +1 -1
  615. package/dist/index.js +115 -129
  616. package/dist/index.js.map +1 -1
  617. package/dist/particle/Tr2GpuSharedEmitter.js +37 -100
  618. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  619. package/dist/{generated/particle → particle}/Tr2ParticleElementData.js +1 -1
  620. package/dist/particle/Tr2ParticleElementData.js.map +1 -0
  621. package/dist/particle/Tr2ParticleElementDeclaration.js +70 -0
  622. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -0
  623. package/dist/particle/Tr2ParticleElementDeclarationName.js +80 -0
  624. package/dist/particle/Tr2ParticleElementDeclarationName.js.map +1 -0
  625. package/dist/particle/index.js +4 -1
  626. package/dist/particle/index.js.map +1 -1
  627. package/dist/particle/particleElementBinding.js +37 -0
  628. package/dist/particle/particleElementBinding.js.map +1 -0
  629. package/dist/{generated/postProcess → postProcess}/BlurContext.js +6 -1
  630. package/dist/postProcess/BlurContext.js.map +1 -0
  631. package/dist/{generated/postProcess → postProcess}/GaussianData.js +1 -1
  632. package/dist/postProcess/GaussianData.js.map +1 -0
  633. package/dist/postProcess/Tr2PPBloomEffect.js +1 -1
  634. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  635. package/dist/{generated/postProcess → postProcess}/Tr2PPColorCorrectionEffect.js +1 -1
  636. package/dist/postProcess/Tr2PPColorCorrectionEffect.js.map +1 -0
  637. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +1 -1
  638. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  639. package/dist/{generated/postProcess → postProcess}/Tr2PPDesaturateEffect.js +1 -1
  640. package/dist/postProcess/Tr2PPDesaturateEffect.js.map +1 -0
  641. package/dist/{generated/postProcess → postProcess}/Tr2PPDynamicExposureEffect.js +1 -1
  642. package/dist/postProcess/Tr2PPDynamicExposureEffect.js.map +1 -0
  643. package/dist/{generated/postProcess → postProcess}/Tr2PPEffect.js +6 -1
  644. package/dist/postProcess/Tr2PPEffect.js.map +1 -0
  645. package/dist/{generated/postProcess → postProcess}/Tr2PPFadeEffect.js +6 -1
  646. package/dist/postProcess/Tr2PPFadeEffect.js.map +1 -0
  647. package/dist/{generated/postProcess → postProcess}/Tr2PPFilmGrainEffect.js +6 -1
  648. package/dist/postProcess/Tr2PPFilmGrainEffect.js.map +1 -0
  649. package/dist/{generated/postProcess → postProcess}/Tr2PPFogEffect.js +6 -1
  650. package/dist/postProcess/Tr2PPFogEffect.js.map +1 -0
  651. package/dist/postProcess/Tr2PPGenericEffect.js +1 -1
  652. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  653. package/dist/{generated/postProcess → postProcess}/Tr2PPGodRaysEffect.js +6 -1
  654. package/dist/postProcess/Tr2PPGodRaysEffect.js.map +1 -0
  655. package/dist/{generated/postProcess → postProcess}/Tr2PPLutEffect.js +6 -1
  656. package/dist/postProcess/Tr2PPLutEffect.js.map +1 -0
  657. package/dist/{generated/postProcess → postProcess}/Tr2PPSignalLossEffect.js +6 -1
  658. package/dist/postProcess/Tr2PPSignalLossEffect.js.map +1 -0
  659. package/dist/postProcess/Tr2PPTaaEffect.js +1 -1
  660. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  661. package/dist/postProcess/Tr2PPTonemappingEffect.js +1 -1
  662. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  663. package/dist/{generated/postProcess → postProcess}/Tr2PPVignetteEffect.js +6 -1
  664. package/dist/postProcess/Tr2PPVignetteEffect.js.map +1 -0
  665. package/dist/postProcess/Tr2PostProcess.js +35 -0
  666. package/dist/postProcess/Tr2PostProcess.js.map +1 -0
  667. package/dist/postProcess/Tr2PostProcessAttributes.js +7 -7
  668. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  669. package/dist/postProcess/index.js +18 -18
  670. package/dist/renderJob/TriStepRemoteSync.js +42 -0
  671. package/dist/renderJob/TriStepRemoteSync.js.map +1 -0
  672. package/dist/renderJob/index.js +1 -0
  673. package/dist/renderJob/index.js.map +1 -1
  674. package/dist/shader/Tr2Effect.js +110 -4
  675. package/dist/shader/Tr2Effect.js.map +1 -1
  676. package/dist/shader/parameter/CjsParameter.js +55 -0
  677. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  678. package/dist/shader/parameter/Tr2ConstantEffectParameter.js +4 -4
  679. package/dist/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
  680. package/dist/shader/parameter/Tr2FloatParameter.js +6 -1
  681. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  682. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +9 -1
  683. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  684. package/dist/shader/parameter/Tr2Matrix4Parameter.js +6 -1
  685. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  686. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +6 -1
  687. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  688. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +6 -1
  689. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  690. package/dist/shader/parameter/Tr2Vector2Parameter.js +74 -6
  691. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  692. package/dist/shader/parameter/Tr2Vector3Parameter.js +90 -6
  693. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  694. package/dist/shader/parameter/Tr2Vector4Parameter.js +70 -1
  695. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  696. package/dist/shader/parameter/TriFloatArrayParameter.js +9 -1
  697. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  698. package/dist/shader/parameter/TriTextureParameter.js +9 -1
  699. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  700. package/dist/shader/parameter/TriTransformParameter.js +16 -2
  701. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  702. package/dist/shader/parameter/TriVariableParameter.js +6 -1
  703. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  704. package/dist/shader/reflection/Tr2ShaderOption.js +1 -1
  705. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  706. package/dist/shader/sampler/Tr2SamplerOverride.js +1 -1
  707. package/dist/shader/sampler/Tr2SamplerOverride.js.map +1 -1
  708. package/dist/{generated/sprite2d → sprite2d}/Tr2Sprite2dClipRect.js +1 -1
  709. package/dist/sprite2d/Tr2Sprite2dClipRect.js.map +1 -0
  710. package/dist/{generated/sprite2d → sprite2d}/Tr2Sprite2dD3DVertex.js +1 -1
  711. package/dist/sprite2d/Tr2Sprite2dD3DVertex.js.map +1 -0
  712. package/dist/{generated/sprite2d → sprite2d}/Tr2Sprite2dLineTraceVertex.js +1 -1
  713. package/dist/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -0
  714. package/dist/{generated/sprite2d → sprite2d}/Tr2Sprite2dTriangle.js +1 -1
  715. package/dist/sprite2d/Tr2Sprite2dTriangle.js.map +1 -0
  716. package/dist/{generated/sprite2d → sprite2d}/Tr2Sprite2dVertexBase.js +4 -4
  717. package/dist/sprite2d/Tr2Sprite2dVertexBase.js.map +1 -0
  718. package/dist/trinityCore/CjsBatchManager.js +203 -0
  719. package/dist/trinityCore/CjsBatchManager.js.map +1 -0
  720. package/dist/trinityCore/GrannyBoneOffset.js +89 -0
  721. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -0
  722. package/dist/trinityCore/ITriRenderBatchAccumulator.js +57 -0
  723. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -0
  724. package/dist/{generated/trinityCore → trinityCore}/Tr2BindingVector3.js +1 -1
  725. package/dist/trinityCore/Tr2BindingVector3.js.map +1 -0
  726. package/dist/trinityCore/Tr2DirectInstanceData.js +85 -0
  727. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -0
  728. package/dist/trinityCore/Tr2ExpressionTermInfo.js +5 -1
  729. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  730. package/dist/trinityCore/Tr2GpuBuffer.js +12 -5
  731. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  732. package/dist/trinityCore/Tr2InstancedMesh.js +59 -1
  733. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  734. package/dist/{generated/trinityCore → trinityCore}/Tr2MaterialParameterStore.js +13 -7
  735. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -0
  736. package/dist/trinityCore/Tr2Mesh.js +140 -2
  737. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  738. package/dist/trinityCore/Tr2MeshArea.js +71 -9
  739. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  740. package/dist/trinityCore/Tr2MeshBase.js +76 -5
  741. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  742. package/dist/trinityCore/Tr2PerObjectData.js +23 -0
  743. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -0
  744. package/dist/{generated/trinityCore → trinityCore}/Tr2PyValueBinding.js +1 -1
  745. package/dist/trinityCore/Tr2PyValueBinding.js.map +1 -0
  746. package/dist/trinityCore/Tr2RenderBatch.js +267 -0
  747. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -0
  748. package/dist/trinityCore/Tr2RenderContext.js +239 -0
  749. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  750. package/dist/trinityCore/Tr2RuntimeInstanceData.js +80 -1
  751. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  752. package/dist/{generated/trinityCore → trinityCore}/Tr2SerializedMorphAnimation.js +1 -1
  753. package/dist/trinityCore/Tr2SerializedMorphAnimation.js.map +1 -0
  754. package/dist/trinityCore/Tr2VisibilityResults.js +104 -0
  755. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -0
  756. package/dist/trinityCore/TriDevice.js +58 -4
  757. package/dist/trinityCore/TriDevice.js.map +1 -1
  758. package/dist/{generated/trinityCore → trinityCore}/TriFloat.js +1 -1
  759. package/dist/trinityCore/TriFloat.js.map +1 -0
  760. package/dist/trinityCore/TriFrustum.js +374 -0
  761. package/dist/trinityCore/TriFrustum.js.map +1 -0
  762. package/dist/trinityCore/TriFrustumOrtho.js +158 -0
  763. package/dist/trinityCore/TriFrustumOrtho.js.map +1 -0
  764. package/dist/trinityCore/TriObserverLocal.js +7 -1
  765. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  766. package/dist/trinityCore/TriRenderBatchAccumulator.js +119 -0
  767. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -0
  768. package/dist/trinityCore/TriRenderBatchMap.js +61 -0
  769. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -0
  770. package/dist/trinityCore/TriSettings.js +82 -0
  771. package/dist/trinityCore/TriSettings.js.map +1 -0
  772. package/dist/{generated/trinityCore → trinityCore}/TriTorque.js +1 -1
  773. package/dist/trinityCore/TriTorque.js.map +1 -0
  774. package/dist/trinityCore/TriVariable.js +39 -1
  775. package/dist/trinityCore/TriVariable.js.map +1 -1
  776. package/dist/{generated/trinityCore → trinityCore}/TriView.js +7 -9
  777. package/dist/trinityCore/TriView.js.map +1 -0
  778. package/dist/trinityCore/TriViewport.js +7 -1
  779. package/dist/trinityCore/TriViewport.js.map +1 -1
  780. package/dist/trinityCore/index.js +23 -5
  781. package/dist/trinityCore/index.js.map +1 -1
  782. package/package.json +2 -2
  783. package/dist/eve/EveRemotePositionCurve.js.map +0 -1
  784. package/dist/generated/curves/Tr2CurveRasterizeDestination.js +0 -37
  785. package/dist/generated/curves/Tr2CurveRasterizeDestination.js.map +0 -1
  786. package/dist/generated/curves/Tr2CurveScalarDefinition.js +0 -48
  787. package/dist/generated/curves/Tr2CurveScalarDefinition.js.map +0 -1
  788. package/dist/generated/curves/Tr2Key.js +0 -47
  789. package/dist/generated/curves/Tr2Key.js.map +0 -1
  790. package/dist/generated/eve/AudioGameObject.js +0 -77
  791. package/dist/generated/eve/AudioGameObject.js.map +0 -1
  792. package/dist/generated/eve/attachment/decal/DecalMeshCache.js +0 -37
  793. package/dist/generated/eve/attachment/decal/DecalMeshCache.js.map +0 -1
  794. package/dist/generated/eve/attachment/turrets/EveTurretFiringFX.js +0 -130
  795. package/dist/generated/eve/attachment/turrets/EveTurretFiringFX.js.map +0 -1
  796. package/dist/generated/eve/attachment/turrets/EveTurretSet.js +0 -307
  797. package/dist/generated/eve/attachment/turrets/EveTurretSet.js.map +0 -1
  798. package/dist/generated/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  799. package/dist/generated/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  800. package/dist/generated/eve/attachment/turrets/EveTurretTarget.js +0 -54
  801. package/dist/generated/eve/attachment/turrets/EveTurretTarget.js.map +0 -1
  802. package/dist/generated/eve/child/EveChildAudio.js +0 -47
  803. package/dist/generated/eve/child/EveChildAudio.js.map +0 -1
  804. package/dist/generated/eve/child/EveChildEffectPropagator.js +0 -121
  805. package/dist/generated/eve/child/EveChildEffectPropagator.js.map +0 -1
  806. package/dist/generated/eve/child/EveChildFogVolume.js +0 -63
  807. package/dist/generated/eve/child/EveChildFogVolume.js.map +0 -1
  808. package/dist/generated/eve/child/EveChildInstanceTransform.js.map +0 -1
  809. package/dist/generated/eve/child/EveChildLightingOverride.js +0 -62
  810. package/dist/generated/eve/child/EveChildLightingOverride.js.map +0 -1
  811. package/dist/generated/eve/child/EveCloudVolumeBall.js.map +0 -1
  812. package/dist/generated/eve/child/behaviors/DroneAgent.js.map +0 -1
  813. package/dist/generated/eve/child/behaviors/SplineTunnel.js.map +0 -1
  814. package/dist/generated/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  815. package/dist/generated/eve/distribution/attributeModifiers/InitialPlacement.js.map +0 -1
  816. package/dist/generated/eve/lights/LightData.js.map +0 -1
  817. package/dist/generated/eve/lights/LightFeatures.js.map +0 -1
  818. package/dist/generated/eve/perObjectData/DecalPSPerObjectData.js +0 -48
  819. package/dist/generated/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  820. package/dist/generated/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  821. package/dist/generated/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  822. package/dist/generated/eve/renderable/stretch/EveFiringEffectElementContainer.js +0 -57
  823. package/dist/generated/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +0 -1
  824. package/dist/generated/eve/renderable/stretch/EveLocalPositionCurve.js +0 -93
  825. package/dist/generated/eve/renderable/stretch/EveLocalPositionCurve.js.map +0 -1
  826. package/dist/generated/eve/renderable/stretch/EveStretch.js +0 -109
  827. package/dist/generated/eve/renderable/stretch/EveStretch.js.map +0 -1
  828. package/dist/generated/eve/renderable/stretch/EveStretch2.js +0 -67
  829. package/dist/generated/eve/renderable/stretch/EveStretch2.js.map +0 -1
  830. package/dist/generated/eve/renderable/stretch/EveStretch3.js +0 -101
  831. package/dist/generated/eve/renderable/stretch/EveStretch3.js.map +0 -1
  832. package/dist/generated/eve/scene/EveInstancedMeshManager.js +0 -206
  833. package/dist/generated/eve/scene/EveInstancedMeshManager.js.map +0 -1
  834. package/dist/generated/eve/scene/Tr2OcclusionBuffer.js +0 -46
  835. package/dist/generated/eve/scene/Tr2OcclusionBuffer.js.map +0 -1
  836. package/dist/generated/eve/socket/_className.js +0 -44
  837. package/dist/generated/eve/socket/_className.js.map +0 -1
  838. package/dist/generated/eve/spaceObject/EveEffectRoot2.js +0 -150
  839. package/dist/generated/eve/spaceObject/EveEffectRoot2.js.map +0 -1
  840. package/dist/generated/eve/spaceObject/EveMissile.js +0 -53
  841. package/dist/generated/eve/spaceObject/EveMissile.js.map +0 -1
  842. package/dist/generated/eve/spaceObject/EveMissileWarhead.js +0 -90
  843. package/dist/generated/eve/spaceObject/EveMissileWarhead.js.map +0 -1
  844. package/dist/generated/eve/spaceObject/EveMobile.js +0 -49
  845. package/dist/generated/eve/spaceObject/EveMobile.js.map +0 -1
  846. package/dist/generated/eve/spaceObject/EveRootTransform.js +0 -48
  847. package/dist/generated/eve/spaceObject/EveRootTransform.js.map +0 -1
  848. package/dist/generated/eve/spaceObject/EveTransform.js +0 -72
  849. package/dist/generated/eve/spaceObject/EveTransform.js.map +0 -1
  850. package/dist/generated/eve/spaceObject/swarm/SwarmVehicle.js.map +0 -1
  851. package/dist/generated/eve/spaceObject/swarm/SwarmVehicleDebug.js.map +0 -1
  852. package/dist/generated/eve/ui/EveEllipseDefinition.js.map +0 -1
  853. package/dist/generated/eve/ui/EveEllipseSet.js.map +0 -1
  854. package/dist/generated/eve/ui/EveSpherePinIndexTree.js +0 -49
  855. package/dist/generated/eve/ui/EveSpherePinIndexTree.js.map +0 -1
  856. package/dist/generated/eve/ui/EveUiObject.js +0 -41
  857. package/dist/generated/eve/ui/EveUiObject.js.map +0 -1
  858. package/dist/generated/include/ITr2InteriorLight.js +0 -37
  859. package/dist/generated/include/ITr2InteriorLight.js.map +0 -1
  860. package/dist/generated/include/ITriDevice.js +0 -31
  861. package/dist/generated/include/ITriDevice.js.map +0 -1
  862. package/dist/generated/include/ITriEffectTextureParameter.js +0 -31
  863. package/dist/generated/include/ITriEffectTextureParameter.js.map +0 -1
  864. package/dist/generated/include/Point.js +0 -34
  865. package/dist/generated/include/Point.js.map +0 -1
  866. package/dist/generated/include/Tr2CurveBase.js +0 -79
  867. package/dist/generated/include/Tr2CurveBase.js.map +0 -1
  868. package/dist/generated/include/Tr2DebugColor.js +0 -40
  869. package/dist/generated/include/Tr2DebugColor.js.map +0 -1
  870. package/dist/generated/include/Tr2DebugObjectReference.js +0 -34
  871. package/dist/generated/include/Tr2DebugObjectReference.js.map +0 -1
  872. package/dist/generated/include/Tr2Rect.js +0 -40
  873. package/dist/generated/include/Tr2Rect.js.map +0 -1
  874. package/dist/generated/include/TriPerlinNoise.js +0 -34
  875. package/dist/generated/include/TriPerlinNoise.js.map +0 -1
  876. package/dist/generated/particle/Tr2ParticleElementData.js.map +0 -1
  877. package/dist/generated/particle/Tr2ParticleElementDeclaration.js +0 -37
  878. package/dist/generated/particle/Tr2ParticleElementDeclaration.js.map +0 -1
  879. package/dist/generated/particle/Tr2ParticleElementDeclarationName.js +0 -42
  880. package/dist/generated/particle/Tr2ParticleElementDeclarationName.js.map +0 -1
  881. package/dist/generated/particle/Tr2ParticleStreamIterator.js +0 -37
  882. package/dist/generated/particle/Tr2ParticleStreamIterator.js.map +0 -1
  883. package/dist/generated/postProcess/BlurContext.js.map +0 -1
  884. package/dist/generated/postProcess/CASConstants.js +0 -34
  885. package/dist/generated/postProcess/CASConstants.js.map +0 -1
  886. package/dist/generated/postProcess/GaussianData.js.map +0 -1
  887. package/dist/generated/postProcess/Tr2PPColorCorrectionEffect.js.map +0 -1
  888. package/dist/generated/postProcess/Tr2PPDesaturateEffect.js.map +0 -1
  889. package/dist/generated/postProcess/Tr2PPDynamicExposureEffect.js.map +0 -1
  890. package/dist/generated/postProcess/Tr2PPEffect.js.map +0 -1
  891. package/dist/generated/postProcess/Tr2PPFadeEffect.js.map +0 -1
  892. package/dist/generated/postProcess/Tr2PPFilmGrainEffect.js.map +0 -1
  893. package/dist/generated/postProcess/Tr2PPFogEffect.js.map +0 -1
  894. package/dist/generated/postProcess/Tr2PPGodRaysEffect.js.map +0 -1
  895. package/dist/generated/postProcess/Tr2PPLutEffect.js.map +0 -1
  896. package/dist/generated/postProcess/Tr2PPSignalLossEffect.js.map +0 -1
  897. package/dist/generated/postProcess/Tr2PPVignetteEffect.js.map +0 -1
  898. package/dist/generated/raytracing/Tr2RaytracingMeshArea.js +0 -40
  899. package/dist/generated/raytracing/Tr2RaytracingMeshArea.js.map +0 -1
  900. package/dist/generated/renderJob/TriStepRemoteSync.js +0 -45
  901. package/dist/generated/renderJob/TriStepRemoteSync.js.map +0 -1
  902. package/dist/generated/sprite2d/Tr2Sprite2dClipRect.js.map +0 -1
  903. package/dist/generated/sprite2d/Tr2Sprite2dD3DVertex.js.map +0 -1
  904. package/dist/generated/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +0 -1
  905. package/dist/generated/sprite2d/Tr2Sprite2dTriangle.js.map +0 -1
  906. package/dist/generated/sprite2d/Tr2Sprite2dVertexBase.js.map +0 -1
  907. package/dist/generated/trinityCore/EveSprite2dBracket.js +0 -42
  908. package/dist/generated/trinityCore/EveSprite2dBracket.js.map +0 -1
  909. package/dist/generated/trinityCore/EveSprite2dBracketRenderer.js.map +0 -1
  910. package/dist/generated/trinityCore/GrannyBoneOffset.js +0 -52
  911. package/dist/generated/trinityCore/GrannyBoneOffset.js.map +0 -1
  912. package/dist/generated/trinityCore/Tr2BindingVector3.js.map +0 -1
  913. package/dist/generated/trinityCore/Tr2DirectInstanceData.js +0 -40
  914. package/dist/generated/trinityCore/Tr2DirectInstanceData.js.map +0 -1
  915. package/dist/generated/trinityCore/Tr2DisplayMode.js +0 -49
  916. package/dist/generated/trinityCore/Tr2DisplayMode.js.map +0 -1
  917. package/dist/generated/trinityCore/Tr2GStateAnimation.js +0 -210
  918. package/dist/generated/trinityCore/Tr2GStateAnimation.js.map +0 -1
  919. package/dist/generated/trinityCore/Tr2GStateParameter.js +0 -67
  920. package/dist/generated/trinityCore/Tr2GStateParameter.js.map +0 -1
  921. package/dist/generated/trinityCore/Tr2MaterialParameterStore.js.map +0 -1
  922. package/dist/generated/trinityCore/Tr2PlatformInfo.js +0 -33
  923. package/dist/generated/trinityCore/Tr2PlatformInfo.js.map +0 -1
  924. package/dist/generated/trinityCore/Tr2PostProcess.js +0 -31
  925. package/dist/generated/trinityCore/Tr2PostProcess.js.map +0 -1
  926. package/dist/generated/trinityCore/Tr2PyValueBinding.js.map +0 -1
  927. package/dist/generated/trinityCore/Tr2RenderNodeEffect.js +0 -64
  928. package/dist/generated/trinityCore/Tr2RenderNodeEffect.js.map +0 -1
  929. package/dist/generated/trinityCore/Tr2RenderNodeSprite2dScene.js.map +0 -1
  930. package/dist/generated/trinityCore/Tr2SerializedMorphAnimation.js.map +0 -1
  931. package/dist/generated/trinityCore/Tr2VectorFunctionModifier.js.map +0 -1
  932. package/dist/generated/trinityCore/Tr2VideoAdapter.js +0 -60
  933. package/dist/generated/trinityCore/Tr2VideoAdapter.js.map +0 -1
  934. package/dist/generated/trinityCore/Tr2VideoDriver.js +0 -46
  935. package/dist/generated/trinityCore/Tr2VideoDriver.js.map +0 -1
  936. package/dist/generated/trinityCore/Tr2VisibilityResults.js +0 -41
  937. package/dist/generated/trinityCore/Tr2VisibilityResults.js.map +0 -1
  938. package/dist/generated/trinityCore/TriColorSequencer.js +0 -48
  939. package/dist/generated/trinityCore/TriColorSequencer.js.map +0 -1
  940. package/dist/generated/trinityCore/TriFloat.js.map +0 -1
  941. package/dist/generated/trinityCore/TriSettings.js +0 -64
  942. package/dist/generated/trinityCore/TriSettings.js.map +0 -1
  943. package/dist/generated/trinityCore/TriTorque.js.map +0 -1
  944. package/dist/generated/trinityCore/TriVectorSequencer.js +0 -48
  945. package/dist/generated/trinityCore/TriVectorSequencer.js.map +0 -1
  946. package/dist/generated/trinityCore/TriView.js.map +0 -1
  947. package/dist/generated/ui/Tr2MainWindow.js +0 -203
  948. package/dist/generated/ui/Tr2MainWindow.js.map +0 -1
  949. package/dist/generated/ui/Tr2MainWindowState.js +0 -63
  950. package/dist/generated/ui/Tr2MainWindowState.js.map +0 -1
  951. package/dist/generated/ui/Tr2MouseCursor.js +0 -55
  952. package/dist/generated/ui/Tr2MouseCursor.js.map +0 -1
  953. package/dist/generated/ui/UIScancode.js +0 -37
  954. package/dist/generated/ui/UIScancode.js.map +0 -1
  955. package/dist/generated/utilities/AreaBoundsInfo.js +0 -34
  956. package/dist/generated/utilities/AreaBoundsInfo.js.map +0 -1
  957. package/dist/generated/utilities/BoundingBox.js +0 -34
  958. package/dist/generated/utilities/BoundingBox.js.map +0 -1
  959. package/dist/generated/utilities/MeshBoundsInfo.js +0 -52
  960. package/dist/generated/utilities/MeshBoundsInfo.js.map +0 -1
  961. package/dist/generated/utilities/Vector3d.js +0 -58
  962. package/dist/generated/utilities/Vector3d.js.map +0 -1
  963. package/dist/generated/utilities/Vector4d.js +0 -49
  964. package/dist/generated/utilities/Vector4d.js.map +0 -1
  965. package/dist/trinityCore/Tr2VideoAdapters.js +0 -79
  966. package/dist/trinityCore/Tr2VideoAdapters.js.map +0 -1
@@ -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 { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { quat } from \"@carbonenginejs/core-math/quat\";\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 { EveLODHelper, Tr2Lod } from \"../EveLODHelper.js\";\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_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 = vec4.fromValues(0, 0, 0, -1);\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 quat.multiply(rotation, modelRotation, rotation);\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 return true;\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 @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 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, 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 position = vec3.create();\r\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\r\n return out;\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 @carbon.method\r\n @impl.implemented\r\n GetControllerVariables()\r\n {\r\n return Object.fromEntries(this.#controllerVariables);\r\n }\r\n\r\n /** Carbon method GetLastUsedMeshLod (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetLastUsedMeshLod(...args)\r\n {\r\n throw new Error(\"EveSpaceObject2.GetLastUsedMeshLod is not implemented in CarbonEngineJS.\");\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 /**\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 // Mesh bone matrices come from the (unported) animation updater; only\r\n // mat4-shaped 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 #zero = Object.freeze([0, 0, 0]);\r\n\r\n static #unitY = Object.freeze([0, 1, 0]);\r\n\r\n static #identityRotation = Object.freeze([0, 0, 0, 1]);\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}\r\n"],"names":["_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_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","vec3","quat","color","mat4","carbon","method","impl","adapted","implemented","notImplemented","reflectionMode","effectChildren","children","name","mute","inheritProperties","customMasks","overlayEffects","positionDelta","lodLevel","curveSets","isPickable","estimatedPixelDiameter","estimatedPixelDiameterWithChildren","generatedShapeEllipsoidCenter","create","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","vec4","createLinear","display","update","secondaryLightingSphereRadius","boundingSphereCenter","dirtLevel","lastDamageLocatorHit","boundingSphereRadius","modelWorldPosition","modelTranslationCurve","modelRotationCurve","shapeEllipsoidCenter","shapeEllipsoidRadius","translationCurve","worldTransform","inverseWorldTransform","lastWorldTransform","worldVelocity","audioGeometry","isVisible","Map","meshLod","Initialize","controller","IsLinked","Link","damageLocatorCount","set","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","UpdateSyncronous","updateContext","observerTransform","GetObserverTransform","Update","EveLODHelper","ShouldUpdate","overlay","params","EveChildUpdateParams","spaceObjectParent","ownerMaxSpeed","maxSpeed","localToWorldTransform","GetLocalToWorldTransform","DisplayChildren","IsAlwaysOn","UpdateAsyncronous","threshold","frequency","Math","min","curveSet","controllerUpdateFrequency","GetWorldPosition","GetWorldRotation","FindSoundEmitter","GetObserver","emitter","SetMute","PlayAnimationEx","animName","loopCount","start","speed","clearWhenDone","CalculateSkinnedBoundingBoxFromTransform","transform","Infinity","max","GetGeometryResource","IsUsingCMF","localMin","localMax","GetLocalBoundingBox","corner","CalculateSkinnedBoundingSphere","out","center","GetBoundingSphereCenter","GetBoundingSphereRadius","ClearImpactDamage","Clear","ClearAnimations","CreateImpactFromPosition","position","direction","lifeTime","size","closestDamageLocator","CreateImpact","damageLocatorIndex","EndAnimation","FreezeHighDetailMesh","decal","SetHighDetailDecalState","GetDamageLocatorCount","GetLocatorCount","locatorSetName","GetCloseLocatorIndex","posInObjectSpace","locatorPosition","locatorDirection","closestLength","closestIndex","distance","squaredDistance","GetGoodLocatorIndex","GetDamageLocatorDirection","GetDamageLocator","GetTransformedDamageLocator","IsImpostor","GetLocatorPositionFromSet","inWorldSpace","GetLocatorRotationFromSet","HandleControllerEvent","eventName","HandleEvent","PlayAnimation","ChainAnimation","ChainAnimationEx","#PlayAnimation","replace","delay","RebuildBoundingSphereInformation","geometryRes","IsGood","RecalculateBoundingSphere","sphere","GetBoundingSphere","GetMeshIndex","GetControllerVariables","Object","fromEntries","GetLastUsedMeshLod","args","Error","GetLocatorTransform","locator","candidate","GetBoneWorldTransform","GetTransform","minBounds","maxBounds","updater","IsInitialized","GetDynamicBounds","GetBoundingBox","GetBoneCount","HasMeshBinding","GetSkeletonBoneIndices","GetMeshBindingBoneCount","SetImpactDamageState","shield","armor","hull","doCreateArmorImpacts","SetDamageState","SetControllerVariable","SetImpactAnimation","enable","duration","ToggleEffect","value","key","next","SetVariable","SetProceduralContainerVariable","StartControllers","Start","TransformLocators","result","record","Array","isArray","boneIndex","#TransformLocator","bone","boneRotation","getRotation","#ApplyModelTransform","translation","GetValueAt","add","transformQuat","#GetLocatorsForSet","GetLocators","#GetLocatorInObjectSpace","outPosition","outDirection","boneCount","GetMeshBoneCount","#GetClosestLocatorIndex","#IsLocatorFacingPosition","moved","subtract","squaredLength","#TransformNormal","matrix","x","y","z","#GetBoneMatrix","bones","GetMeshBoneMatrixList","#ApplyControllerVariables","variables","methodName","setter","call","#UpdateCurve","fallback","ArrayBuffer","isView","#GetContextValue","context","propertyNames","propertyName","undefined","freeze","ReflectionMode","Tr2Lod","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/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 { 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-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 EveSpaceObject2::GetLights (cpp:3536-3560): submits m_lights to\r\n * the light manager. Awaits the LightOwner consumption pass\r\n * (Tr2LightManager submission is unported); registration presence is the\r\n * \"LightOwner\" duck contract. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetLights(..._args)\r\n {\r\n throw new Error(\"EveSpaceObject2.GetLights is not implemented in CarbonEngineJS.\");\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","_args","Error","IsCastingShadow","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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"}