@carbonenginejs/runtime-trinity 0.6.0 → 0.8.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 (1091) hide show
  1. package/README.md +35 -243
  2. package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
  3. package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
  4. package/dist/controllers/ITr2ControllerAction.js +57 -0
  5. package/dist/controllers/ITr2ControllerAction.js.map +1 -1
  6. package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
  7. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  8. package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
  9. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  10. package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
  11. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  12. package/dist/controllers/Tr2ActionCallback.js +5 -0
  13. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  14. package/dist/controllers/Tr2ActionChildEffect.js +63 -0
  15. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  16. package/dist/controllers/Tr2ActionOverlay.js +68 -0
  17. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  18. package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
  19. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  20. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
  21. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  22. package/dist/controllers/Tr2ActionPlaySound.js +11 -0
  23. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  24. package/dist/controllers/Tr2ActionPython.js +11 -0
  25. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  26. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
  27. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  28. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
  29. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  30. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
  31. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  32. package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
  33. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  34. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
  35. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  36. package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
  37. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  38. package/dist/controllers/Tr2ActionSetValue.js +35 -0
  39. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  40. package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
  41. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  42. package/dist/controllers/Tr2BindingPoint.js +67 -0
  43. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  44. package/dist/controllers/Tr2Controller.js +37 -0
  45. package/dist/controllers/Tr2Controller.js.map +1 -1
  46. package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
  47. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  48. package/dist/controllers/Tr2ControllerExpression.js +17 -0
  49. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  50. package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
  51. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  52. package/dist/controllers/Tr2ControllerReference.js +11 -0
  53. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  54. package/dist/controllers/Tr2StateMachine.js +17 -0
  55. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  56. package/dist/controllers/Tr2StateMachineState.js +47 -0
  57. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  58. package/dist/controllers/Tr2StateMachineTransition.js +29 -0
  59. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  60. package/dist/controllers/Tr2SyncToAnimation.js +5 -0
  61. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  62. package/dist/controllers/Tr2TimelineController.js +61 -0
  63. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  64. package/dist/controllers/contracts.js +24 -1
  65. package/dist/controllers/contracts.js.map +1 -1
  66. package/dist/controllers/index.js +1 -1
  67. package/dist/curves/CjsGrannyCurves.js +150 -0
  68. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  69. package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
  70. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  71. package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
  72. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  73. package/dist/curves/Tr2CurveColor.js +6 -0
  74. package/dist/curves/Tr2CurveColor.js.map +1 -1
  75. package/dist/curves/Tr2CurveColorMixer.js +6 -0
  76. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  77. package/dist/curves/Tr2CurveCombiner.js +5 -0
  78. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  79. package/dist/curves/Tr2CurveConstant.js +16 -0
  80. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  81. package/dist/curves/Tr2CurveEulerRotation.js +5 -0
  82. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  83. package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
  84. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  85. package/dist/curves/Tr2CurveQuaternion.js +5 -0
  86. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  87. package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
  88. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  89. package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
  90. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  91. package/dist/curves/Tr2CurveScalar.js +35 -0
  92. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  93. package/dist/curves/Tr2CurveScalarExpression.js +11 -0
  94. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  95. package/dist/curves/Tr2CurveScalarKey.js +6 -0
  96. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  97. package/dist/curves/Tr2CurveSetRange.js +5 -0
  98. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  99. package/dist/curves/Tr2CurveVector2.js +5 -0
  100. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  101. package/dist/curves/Tr2CurveVector3.js +5 -0
  102. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  103. package/dist/curves/Tr2CurveVector3Expression.js +71 -0
  104. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  105. package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
  106. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  107. package/dist/curves/Tr2DistanceTracker.js +6 -0
  108. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  109. package/dist/curves/Tr2FollowCurve.js +6 -0
  110. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  111. package/dist/curves/Tr2GrannyEventTrack.js +5 -0
  112. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  113. package/dist/curves/Tr2GrannyTrack.js +6 -0
  114. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  115. package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
  116. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  117. package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
  118. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  119. package/dist/curves/Tr2MatrixKey.js +5 -0
  120. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  121. package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
  122. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  123. package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
  124. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  125. package/dist/curves/Tr2RotationAdapter.js +6 -0
  126. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  127. package/dist/curves/Tr2ScalarExprKey.js +18 -0
  128. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  129. package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
  130. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  131. package/dist/curves/Tr2ScalarFader.js +11 -0
  132. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  133. package/dist/curves/Tr2TranslationAdapter.js +6 -0
  134. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  135. package/dist/curves/TriColorSequencer.js +6 -0
  136. package/dist/curves/TriColorSequencer.js.map +1 -1
  137. package/dist/curves/TriCurveSet.js +23 -0
  138. package/dist/curves/TriCurveSet.js.map +1 -1
  139. package/dist/curves/TriEventCurve.js +23 -0
  140. package/dist/curves/TriEventCurve.js.map +1 -1
  141. package/dist/curves/TriEventKey.js +5 -0
  142. package/dist/curves/TriEventKey.js.map +1 -1
  143. package/dist/curves/TriPerlinCurve.js +30 -0
  144. package/dist/curves/TriPerlinCurve.js.map +1 -1
  145. package/dist/curves/TriVectorSequencer.js +6 -0
  146. package/dist/curves/TriVectorSequencer.js.map +1 -1
  147. package/dist/eve/AudioGameObject.js +89 -1
  148. package/dist/eve/AudioGameObject.js.map +1 -1
  149. package/dist/eve/BackAndForthData.js +7 -0
  150. package/dist/eve/BackAndForthData.js.map +1 -1
  151. package/dist/eve/CjsDistributionRandom.js +6 -0
  152. package/dist/eve/CjsDistributionRandom.js.map +1 -1
  153. package/dist/eve/CjsEveThrottleableState.js +11 -0
  154. package/dist/eve/CjsEveThrottleableState.js.map +1 -1
  155. package/dist/eve/EveChildUpdateParams.js +7 -0
  156. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  157. package/dist/eve/EveComponentTypes.js.map +1 -1
  158. package/dist/eve/EveCustomMask.js +58 -27
  159. package/dist/eve/EveCustomMask.js.map +1 -1
  160. package/dist/eve/EveDistanceField.js +84 -0
  161. package/dist/eve/EveDistanceField.js.map +1 -1
  162. package/dist/eve/EveEntity.js +138 -0
  163. package/dist/eve/EveEntity.js.map +1 -0
  164. package/dist/eve/EveImpactOverlay.js +61 -0
  165. package/dist/eve/EveImpactOverlay.js.map +1 -1
  166. package/dist/eve/EveLODHelper.js +17 -13
  167. package/dist/eve/EveLODHelper.js.map +1 -1
  168. package/dist/eve/EveLineData.js +2 -0
  169. package/dist/eve/EveLineData.js.map +1 -1
  170. package/dist/eve/EveThrottleable.js +11 -0
  171. package/dist/eve/EveThrottleable.js.map +1 -1
  172. package/dist/eve/FollowASplineData.js +7 -0
  173. package/dist/eve/FollowASplineData.js.map +1 -1
  174. package/dist/eve/FormationData.js +6 -0
  175. package/dist/eve/FormationData.js.map +1 -1
  176. package/dist/eve/InertiaData.js +7 -0
  177. package/dist/eve/InertiaData.js.map +1 -1
  178. package/dist/eve/PlacementDataWithIdentifier.js +7 -0
  179. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  180. package/dist/eve/PlayFXData.js +7 -0
  181. package/dist/eve/PlayFXData.js.map +1 -1
  182. package/dist/eve/SeekTargetData.js +7 -0
  183. package/dist/eve/SeekTargetData.js.map +1 -1
  184. package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
  185. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
  186. package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
  187. package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
  188. package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
  189. package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
  190. package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
  191. package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
  192. package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
  193. package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
  194. package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
  195. package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
  196. package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
  197. package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
  198. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
  199. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
  200. package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
  201. package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
  202. package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
  203. package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
  204. package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
  205. package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
  206. package/dist/eve/attachment/itemSetBounds.js +131 -0
  207. package/dist/eve/attachment/itemSetBounds.js.map +1 -0
  208. package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
  209. package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
  210. package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
  211. package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
  212. package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
  213. package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
  214. package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
  215. package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
  216. package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
  217. package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
  218. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
  219. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
  220. package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
  221. package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
  222. package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
  223. package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
  224. package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
  225. package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
  226. package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
  227. package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
  228. package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
  229. package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
  230. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
  231. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  232. package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
  233. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  234. package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
  235. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  236. package/dist/eve/camera/EveCamera.js +644 -0
  237. package/dist/eve/camera/EveCamera.js.map +1 -0
  238. package/dist/eve/child/EveChildAudio.js +63 -0
  239. package/dist/eve/child/EveChildAudio.js.map +1 -1
  240. package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
  241. package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
  242. package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
  243. package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
  244. package/dist/eve/child/EveChildContainer.js +175 -16
  245. package/dist/eve/child/EveChildContainer.js.map +1 -1
  246. package/dist/eve/child/EveChildEffectPropagator.js +1 -1
  247. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  248. package/dist/eve/child/EveChildFogVolume.js +72 -0
  249. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  250. package/dist/eve/child/EveChildInheritProperties.js +17 -0
  251. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  252. package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
  253. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  254. package/dist/eve/child/EveChildLightingOverride.js +74 -0
  255. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  256. package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
  257. package/dist/eve/child/EveChildLink.js.map +1 -0
  258. package/dist/eve/child/EveChildMesh.js +351 -105
  259. package/dist/eve/child/EveChildMesh.js.map +1 -1
  260. package/dist/eve/child/EveChildSpherePin.js +108 -0
  261. package/dist/eve/child/EveChildSpherePin.js.map +1 -0
  262. package/dist/eve/child/EveChildTransform.js +44 -1
  263. package/dist/eve/child/EveChildTransform.js.map +1 -1
  264. package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
  265. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  266. package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
  267. package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
  268. package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
  269. package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
  270. package/dist/eve/child/behaviors/Wander.js +99 -0
  271. package/dist/eve/child/behaviors/Wander.js.map +1 -0
  272. package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
  273. package/dist/eve/child/behaviors/enums.js.map +1 -0
  274. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
  275. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
  276. package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
  277. package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
  278. package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
  279. package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
  280. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
  281. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
  282. package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
  283. package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
  284. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
  285. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  286. package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
  287. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  288. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
  289. package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
  290. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
  291. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  292. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
  293. package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
  294. package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
  295. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  296. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
  297. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  298. package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
  299. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  300. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
  301. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  302. package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
  303. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  304. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
  305. package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
  306. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
  307. package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
  308. package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
  309. package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
  310. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
  311. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
  312. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
  313. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
  314. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
  315. package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
  316. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
  317. package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
  318. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
  319. package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
  320. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
  321. package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
  322. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
  323. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
  324. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
  325. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
  326. package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
  327. package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
  328. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
  329. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
  330. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
  331. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
  332. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
  333. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
  334. package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
  335. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
  336. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
  337. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
  338. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
  339. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
  340. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
  341. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
  342. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
  343. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
  344. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
  345. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
  346. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
  347. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
  348. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
  349. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
  350. package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
  351. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
  352. package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
  353. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
  354. package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
  355. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
  356. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
  357. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
  358. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
  359. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
  360. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
  361. package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
  362. package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
  363. package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
  364. package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
  365. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
  366. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
  367. package/dist/eve/index.js +117 -47
  368. package/dist/eve/index.js.map +1 -1
  369. package/dist/eve/lights/CjsLightData.js +7 -0
  370. package/dist/eve/lights/CjsLightData.js.map +1 -1
  371. package/dist/eve/lights/Tr2Light.js +41 -0
  372. package/dist/eve/lights/Tr2Light.js.map +1 -1
  373. package/dist/eve/lights/Tr2PointLight.js +5 -0
  374. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  375. package/dist/eve/lights/Tr2SpotLight.js +5 -0
  376. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  377. package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
  378. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  379. package/dist/eve/lights/lightConversion.js +29 -27
  380. package/dist/eve/lights/lightConversion.js.map +1 -1
  381. package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
  382. package/dist/eve/locator/EveLocator2.js.map +1 -0
  383. package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
  384. package/dist/eve/locator/EveLocatorSets.js.map +1 -0
  385. package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
  386. package/dist/eve/locator/Locator.js.map +1 -0
  387. package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
  388. package/dist/eve/locator/LocatorData.js.map +1 -0
  389. package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
  390. package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
  391. package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
  392. package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
  393. package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
  394. package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
  395. package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
  396. package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
  397. package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
  398. package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
  399. package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
  400. package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
  401. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
  402. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  403. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
  404. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  405. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
  406. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  407. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
  408. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  409. package/dist/eve/renderable/stretch/EveStretch.js +158 -9
  410. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  411. package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
  412. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  413. package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
  414. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  415. package/dist/eve/scene/EveSpaceScene.js +342 -6
  416. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  417. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
  418. package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
  419. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
  420. package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
  421. package/dist/eve/scene/picking/EvePickingContext.js +61 -0
  422. package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
  423. package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
  424. package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
  425. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
  426. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
  427. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
  428. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
  429. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
  430. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
  431. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
  432. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
  433. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
  434. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
  435. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
  436. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
  437. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
  438. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
  439. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
  440. package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
  441. package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
  442. package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
  443. package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
  444. package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
  445. package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
  446. package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
  447. package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
  448. package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
  449. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  450. package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
  451. package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
  452. package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
  453. package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
  454. package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
  455. package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
  456. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
  457. package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
  458. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
  459. package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
  460. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
  461. package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
  462. package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
  463. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  464. package/dist/eve/spaceObject/EveMissile.js +49 -1
  465. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  466. package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
  467. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  468. package/dist/eve/spaceObject/EveMobile.js +104 -0
  469. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  470. package/dist/eve/spaceObject/EveRootTransform.js +17 -0
  471. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  472. package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
  473. package/dist/eve/spaceObject/EveShip2.js.map +1 -0
  474. package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
  475. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  476. package/dist/eve/spaceObject/EveTransform.js +143 -5
  477. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  478. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
  479. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
  480. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
  481. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
  482. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
  483. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
  484. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
  485. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
  486. package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
  487. package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
  488. package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
  489. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
  490. package/dist/eve/ui/EveEllipseDefinition.js +15 -0
  491. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  492. package/dist/eve/ui/EveEllipseSet.js +42 -0
  493. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  494. package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
  495. package/dist/eve/ui/EveSpherePin.js.map +1 -0
  496. package/dist/eve/ui/EveSprite2dBracket.js +5 -0
  497. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  498. package/dist/eve/ui/EveUiObject.js +11 -0
  499. package/dist/eve/ui/EveUiObject.js.map +1 -1
  500. package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
  501. package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
  502. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
  503. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
  504. package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
  505. package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
  506. package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
  507. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  508. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
  509. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  510. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
  511. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  512. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
  513. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  514. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
  515. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  516. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
  517. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  518. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
  519. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  520. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
  521. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  522. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
  523. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  524. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
  525. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  526. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
  527. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  528. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
  529. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  530. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
  531. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  532. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
  533. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  534. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
  535. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  536. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
  537. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  538. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
  539. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  540. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
  541. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  542. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
  543. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  544. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
  545. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  546. package/dist/eve/volume/EveBoxVolume.js +59 -0
  547. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  548. package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
  549. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  550. package/dist/eve/volume/EveSphereVolume.js +34 -0
  551. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  552. package/dist/generated/eve/child/EveChildCloud2.js +138 -138
  553. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  554. package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
  555. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  556. package/dist/generated/eve/child/EveChildSocket.js +1 -1
  557. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  558. package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
  559. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  560. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
  561. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  562. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
  563. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  564. package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
  565. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  566. package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
  567. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  568. package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
  569. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  570. package/dist/generated/eve/child/behaviors/index.js +0 -6
  571. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  572. package/dist/generated/eve/child/index.js +0 -23
  573. package/dist/generated/eve/child/index.js.map +1 -1
  574. package/dist/generated/eve/effect/index.js +0 -3
  575. package/dist/generated/eve/effect/index.js.map +1 -1
  576. package/dist/generated/eve/index.js +0 -88
  577. package/dist/generated/eve/index.js.map +1 -1
  578. package/dist/generated/eve/scene/index.js +0 -6
  579. package/dist/generated/eve/scene/index.js.map +1 -1
  580. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
  581. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  582. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
  583. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  584. package/dist/generated/eve/smartLights/index.js +0 -8
  585. package/dist/generated/eve/smartLights/index.js.map +1 -1
  586. package/dist/generated/eve/spaceObject/index.js +0 -4
  587. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  588. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
  589. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  590. package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
  591. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  592. package/dist/generated/eve/ui/index.js +0 -4
  593. package/dist/generated/eve/ui/index.js.map +1 -1
  594. package/dist/generated/index.js +0 -93
  595. package/dist/generated/index.js.map +1 -1
  596. package/dist/generated/trinityCore/index.js +0 -5
  597. package/dist/generated/trinityCore/index.js.map +1 -1
  598. package/dist/index.js +130 -155
  599. package/dist/index.js.map +1 -1
  600. package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
  601. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  602. package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
  603. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  604. package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
  605. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  606. package/dist/particle/Tr2ParticleDirectForce.js +7 -0
  607. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  608. package/dist/particle/Tr2ParticleDragForce.js +7 -0
  609. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  610. package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
  611. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  612. package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
  613. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  614. package/dist/particle/Tr2ParticleSpring.js +10 -0
  615. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  616. package/dist/particle/Tr2ParticleVortexForce.js +10 -0
  617. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  618. package/dist/particle/particleElementBinding.js +12 -0
  619. package/dist/particle/particleElementBinding.js.map +1 -1
  620. package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
  621. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  622. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
  623. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  624. package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
  625. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  626. package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
  627. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  628. package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
  629. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  630. package/dist/postProcess/Tr2PostProcess.js +5 -0
  631. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  632. package/dist/postProcess/Tr2PostProcess2.js +147 -0
  633. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  634. package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
  635. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  636. package/dist/renderJob/Tr2RenderJobs.js +34 -0
  637. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  638. package/dist/renderJob/TriRenderJob.js +59 -0
  639. package/dist/renderJob/TriRenderJob.js.map +1 -1
  640. package/dist/renderJob/TriRenderStep.js +20 -0
  641. package/dist/renderJob/TriRenderStep.js.map +1 -1
  642. package/dist/renderJob/TriStepClear.js +18 -0
  643. package/dist/renderJob/TriStepClear.js.map +1 -1
  644. package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
  645. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  646. package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
  647. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  648. package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
  649. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  650. package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
  651. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  652. package/dist/renderJob/TriStepPopProjection.js +6 -0
  653. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  654. package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
  655. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  656. package/dist/renderJob/TriStepPopViewTransform.js +6 -0
  657. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  658. package/dist/renderJob/TriStepPopViewport.js +6 -0
  659. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  660. package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
  661. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  662. package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
  663. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  664. package/dist/renderJob/TriStepPushProjection.js +6 -0
  665. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  666. package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
  667. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  668. package/dist/renderJob/TriStepPushViewTransform.js +6 -0
  669. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  670. package/dist/renderJob/TriStepPushViewport.js +6 -0
  671. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  672. package/dist/renderJob/TriStepRemoteSync.js +17 -0
  673. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  674. package/dist/renderJob/TriStepResolve.js +13 -0
  675. package/dist/renderJob/TriStepResolve.js.map +1 -1
  676. package/dist/renderJob/TriStepRunJob.js +12 -0
  677. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  678. package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
  679. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  680. package/dist/renderJob/TriStepSetProjection.js +14 -0
  681. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  682. package/dist/renderJob/TriStepSetRenderState.js +20 -0
  683. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  684. package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
  685. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  686. package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
  687. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  688. package/dist/renderJob/TriStepSetView.js +29 -2
  689. package/dist/renderJob/TriStepSetView.js.map +1 -1
  690. package/dist/renderJob/TriStepSetViewport.js +17 -0
  691. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  692. package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
  693. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  694. package/dist/shader/Tr2Effect.js +217 -2
  695. package/dist/shader/Tr2Effect.js.map +1 -1
  696. package/dist/shader/Tr2Material.js +41 -0
  697. package/dist/shader/Tr2Material.js.map +1 -1
  698. package/dist/shader/index.js +1 -11
  699. package/dist/shader/index.js.map +1 -1
  700. package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
  701. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  702. package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
  703. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  704. package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
  705. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  706. package/dist/shader/parameter/CjsParameter.js +94 -0
  707. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  708. package/dist/shader/parameter/CjsVectorParameter.js +20 -0
  709. package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
  710. package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
  711. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  712. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
  713. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
  715. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  716. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
  717. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  718. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
  719. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  720. package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
  721. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  722. package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
  723. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  724. package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
  725. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  726. package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
  727. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  728. package/dist/shader/parameter/TriTextureParameter.js +84 -0
  729. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  730. package/dist/shader/parameter/TriTransformParameter.js +2 -0
  731. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  732. package/dist/shader/parameter/TriVariableParameter.js +38 -0
  733. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  734. package/dist/shader/parameter/TriVector4.js +2 -0
  735. package/dist/shader/parameter/TriVector4.js.map +1 -1
  736. package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
  737. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  738. package/dist/shader/support/CjsVariableStore.js +140 -0
  739. package/dist/shader/support/CjsVariableStore.js.map +1 -1
  740. package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
  741. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  742. package/dist/trinityCore/CjsBatchManager.js +62 -2
  743. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  744. package/dist/trinityCore/GrannyBoneOffset.js +51 -0
  745. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  746. package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
  747. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  748. package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
  749. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  750. package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
  751. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  752. package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
  753. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  754. package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
  755. package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
  756. package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
  757. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  758. package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
  759. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  760. package/dist/trinityCore/Tr2Mesh.js +37 -0
  761. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  762. package/dist/trinityCore/Tr2MeshArea.js +78 -0
  763. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  764. package/dist/trinityCore/Tr2MeshBase.js +98 -2
  765. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  766. package/dist/trinityCore/Tr2PerObjectData.js +10 -0
  767. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
  768. package/dist/trinityCore/Tr2PickType.js +33 -0
  769. package/dist/trinityCore/Tr2PickType.js.map +1 -0
  770. package/dist/trinityCore/Tr2RenderBatch.js +137 -0
  771. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  772. package/dist/trinityCore/Tr2RenderContext.js +271 -0
  773. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  774. package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
  775. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  776. package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
  777. package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
  778. package/dist/trinityCore/Tr2VariableStore.js +26 -0
  779. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  780. package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
  781. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  782. package/dist/trinityCore/TriDevice.js +5 -0
  783. package/dist/trinityCore/TriDevice.js.map +1 -1
  784. package/dist/trinityCore/TriFrustum.js +21 -14
  785. package/dist/trinityCore/TriFrustum.js.map +1 -1
  786. package/dist/trinityCore/TriObserverLocal.js +43 -0
  787. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  788. package/dist/trinityCore/TriProjection.js +86 -32
  789. package/dist/trinityCore/TriProjection.js.map +1 -1
  790. package/dist/trinityCore/TriRect.js +12 -0
  791. package/dist/trinityCore/TriRect.js.map +1 -1
  792. package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
  793. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  794. package/dist/trinityCore/TriRenderBatchMap.js +39 -2
  795. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  796. package/dist/trinityCore/TriSettings.js +38 -0
  797. package/dist/trinityCore/TriSettings.js.map +1 -1
  798. package/dist/trinityCore/TriVariable.js +30 -0
  799. package/dist/trinityCore/TriVariable.js.map +1 -1
  800. package/dist/trinityCore/TriView.js +16 -1
  801. package/dist/trinityCore/TriView.js.map +1 -1
  802. package/dist/trinityCore/TriViewport.js +12 -0
  803. package/dist/trinityCore/TriViewport.js.map +1 -1
  804. package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
  805. package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
  806. package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
  807. package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
  808. package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
  809. package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
  810. package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
  811. package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
  812. package/dist/trinityCore/binding/TriValueBinding.js +648 -0
  813. package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
  814. package/dist/trinityCore/index.js +11 -4
  815. package/dist/trinityCore/index.js.map +1 -1
  816. package/dist/trinityCore/pickRay.js +84 -0
  817. package/dist/trinityCore/pickRay.js.map +1 -0
  818. package/dist/trinityCore/rawData/CjsPerFrameLayouts.js +517 -0
  819. package/dist/trinityCore/rawData/CjsPerFrameLayouts.js.map +1 -0
  820. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +790 -0
  821. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
  822. package/dist/trinityCore/rawData/RawData.js +323 -39
  823. package/dist/trinityCore/rawData/RawData.js.map +1 -1
  824. package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
  825. package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
  826. package/dist/trinityCore/rawData/constantLayout.js +175 -0
  827. package/dist/trinityCore/rawData/constantLayout.js.map +1 -0
  828. package/dist/utilities/Range.js +53 -0
  829. package/dist/utilities/Range.js.map +1 -1
  830. package/docs/README.md +88 -0
  831. package/docs/architecture.md +162 -0
  832. package/docs/concepts/eve-runtime-behavior.md +86 -0
  833. package/docs/concepts/generated-class-lifecycle.md +116 -0
  834. package/docs/reference/api.md +76 -0
  835. package/docs/reference/classes/eve-runtime.md +106 -0
  836. package/docs/reference/classes/trinity-core.md +26 -0
  837. package/docs/reference/implementation-status.md +104 -0
  838. package/docs/reference/main-semantic-extraction.md +104 -0
  839. package/package.json +34 -24
  840. package/dist/eve/DecalVSPerObjectData.js +0 -34
  841. package/dist/eve/DecalVSPerObjectData.js.map +0 -1
  842. package/dist/eve/EveBannerItem.js +0 -43
  843. package/dist/eve/EveBannerItem.js.map +0 -1
  844. package/dist/eve/EveBannerLight.js.map +0 -1
  845. package/dist/eve/EveBannerSet.js +0 -190
  846. package/dist/eve/EveBannerSet.js.map +0 -1
  847. package/dist/eve/EveBasicPerObjectData.js +0 -31
  848. package/dist/eve/EveBasicPerObjectData.js.map +0 -1
  849. package/dist/eve/EveBoosterSet2.js.map +0 -1
  850. package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
  851. package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
  852. package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
  853. package/dist/eve/EveHazeSet.js.map +0 -1
  854. package/dist/eve/EveHazeSetLight.js.map +0 -1
  855. package/dist/eve/EveLocator2.js.map +0 -1
  856. package/dist/eve/EveLocatorSets.js.map +0 -1
  857. package/dist/eve/EveParticleDirectForce.js.map +0 -1
  858. package/dist/eve/EveParticleDragForce.js.map +0 -1
  859. package/dist/eve/EveParticleSpring.js.map +0 -1
  860. package/dist/eve/EvePerObjectPSData.js +0 -29
  861. package/dist/eve/EvePerObjectPSData.js.map +0 -1
  862. package/dist/eve/EvePerObjectVSData.js +0 -29
  863. package/dist/eve/EvePerObjectVSData.js.map +0 -1
  864. package/dist/eve/EvePlaneLight.js.map +0 -1
  865. package/dist/eve/EvePlaneSet.js.map +0 -1
  866. package/dist/eve/EvePlaneSetItem.js +0 -45
  867. package/dist/eve/EvePlaneSetItem.js.map +0 -1
  868. package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
  869. package/dist/eve/EveSpaceObjectDecal.js +0 -150
  870. package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
  871. package/dist/eve/EveSpaceObjectPSData.js +0 -73
  872. package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
  873. package/dist/eve/EveSpaceObjectVSData.js +0 -79
  874. package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
  875. package/dist/eve/EveSpacePerObjectData.js +0 -97
  876. package/dist/eve/EveSpacePerObjectData.js.map +0 -1
  877. package/dist/eve/EveSpherePinPerObjectData.js +0 -37
  878. package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
  879. package/dist/eve/EveSpotlightLight.js.map +0 -1
  880. package/dist/eve/EveSpotlightSet.js.map +0 -1
  881. package/dist/eve/EveSpriteLight.js.map +0 -1
  882. package/dist/eve/EveSpriteLineSet.js.map +0 -1
  883. package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
  884. package/dist/eve/EveSpriteSet.js.map +0 -1
  885. package/dist/eve/EveTrailsSet.js.map +0 -1
  886. package/dist/eve/Locator.js.map +0 -1
  887. package/dist/eve/LocatorData.js.map +0 -1
  888. package/dist/eve/ProcessLifetimeData.js.map +0 -1
  889. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
  890. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  891. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
  892. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  893. package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
  894. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  895. package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
  896. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  897. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
  898. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
  899. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
  900. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  901. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
  902. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  903. package/dist/generated/eve/EveCamera.js +0 -264
  904. package/dist/generated/eve/EveCamera.js.map +0 -1
  905. package/dist/generated/eve/EveEntity.js +0 -81
  906. package/dist/generated/eve/EveEntity.js.map +0 -1
  907. package/dist/generated/eve/attachment/decal/index.js +0 -2
  908. package/dist/generated/eve/attachment/decal/index.js.map +0 -1
  909. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
  910. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
  911. package/dist/generated/eve/attachment/haze/index.js +0 -2
  912. package/dist/generated/eve/attachment/haze/index.js.map +0 -1
  913. package/dist/generated/eve/attachment/index.js +0 -5
  914. package/dist/generated/eve/attachment/index.js.map +0 -1
  915. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
  916. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
  917. package/dist/generated/eve/attachment/spotlights/index.js +0 -2
  918. package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
  919. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
  920. package/dist/generated/eve/attachment/sprites/index.js +0 -2
  921. package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
  922. package/dist/generated/eve/attachment/turrets/enums.js +0 -32
  923. package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
  924. package/dist/generated/eve/attachment/turrets/index.js +0 -2
  925. package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
  926. package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
  927. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
  928. package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
  929. package/dist/generated/eve/child/EveChildLink.js.map +0 -1
  930. package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
  931. package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
  932. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
  933. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
  934. package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
  935. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
  936. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
  937. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
  938. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
  939. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
  940. package/dist/generated/eve/child/behaviors/Wander.js +0 -92
  941. package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
  942. package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
  943. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
  944. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
  945. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
  946. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
  947. package/dist/generated/eve/child/modifiers/index.js +0 -5
  948. package/dist/generated/eve/child/modifiers/index.js.map +0 -1
  949. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
  950. package/dist/generated/eve/child/procedural/index.js +0 -10
  951. package/dist/generated/eve/child/procedural/index.js.map +0 -1
  952. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
  953. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
  954. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
  955. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
  956. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
  957. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
  958. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
  959. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
  960. package/dist/generated/eve/child/procedural/selection/index.js +0 -9
  961. package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
  962. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
  963. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
  964. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
  965. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
  966. package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
  967. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
  968. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
  969. package/dist/generated/eve/distribution/index.js +0 -19
  970. package/dist/generated/eve/distribution/index.js.map +0 -1
  971. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
  972. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
  973. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
  974. package/dist/generated/eve/distribution/placement/index.js +0 -4
  975. package/dist/generated/eve/distribution/placement/index.js.map +0 -1
  976. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
  977. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
  978. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
  979. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
  980. package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
  981. package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
  982. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
  983. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
  984. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
  985. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
  986. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
  987. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
  988. package/dist/generated/eve/distribution/spawners/index.js +0 -7
  989. package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
  990. package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
  991. package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
  992. package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
  993. package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
  994. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
  995. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
  996. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
  997. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
  998. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
  999. package/dist/generated/eve/fxAttributes/index.js +0 -3
  1000. package/dist/generated/eve/fxAttributes/index.js.map +0 -1
  1001. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
  1002. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
  1003. package/dist/generated/eve/overlays/index.js +0 -2
  1004. package/dist/generated/eve/overlays/index.js.map +0 -1
  1005. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
  1006. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
  1007. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
  1008. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
  1009. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
  1010. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
  1011. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
  1012. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
  1013. package/dist/generated/eve/perObjectData/index.js +0 -5
  1014. package/dist/generated/eve/perObjectData/index.js.map +0 -1
  1015. package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
  1016. package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
  1017. package/dist/generated/eve/scene/EvePickingContext.js +0 -43
  1018. package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
  1019. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
  1020. package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
  1021. package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
  1022. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
  1023. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
  1024. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
  1025. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
  1026. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
  1027. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
  1028. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
  1029. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
  1030. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
  1031. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
  1032. package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
  1033. package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
  1034. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
  1035. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
  1036. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
  1037. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
  1038. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
  1039. package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
  1040. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
  1041. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
  1042. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
  1043. package/dist/generated/eve/socket/index.js +0 -10
  1044. package/dist/generated/eve/socket/index.js.map +0 -1
  1045. package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
  1046. package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
  1047. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
  1048. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
  1049. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
  1050. package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
  1051. package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
  1052. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
  1053. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
  1054. package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
  1055. package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
  1056. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
  1057. package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
  1058. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
  1059. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
  1060. package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
  1061. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
  1062. package/dist/generated/trinityCore/TriValueBinding.js +0 -249
  1063. package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
  1064. package/dist/shader/Tr2Shader.js +0 -150
  1065. package/dist/shader/Tr2Shader.js.map +0 -1
  1066. package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
  1067. package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
  1068. package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
  1069. package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
  1070. package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
  1071. package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
  1072. package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
  1073. package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
  1074. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
  1075. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
  1076. package/dist/shader/reflection/Tr2EffectResource.js +0 -63
  1077. package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
  1078. package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
  1079. package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
  1080. package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
  1081. package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
  1082. package/dist/shader/reflection/Tr2Pass.js +0 -46
  1083. package/dist/shader/reflection/Tr2Pass.js.map +0 -1
  1084. package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
  1085. package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
  1086. package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
  1087. package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
  1088. package/dist/trinityCore/rawData/RawDataStore.js +0 -232
  1089. package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
  1090. /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
  1091. /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
@@ -7,13 +7,21 @@ import { vec4 } from '@carbonenginejs/runtime-utils/vec4';
7
7
  import { io, type, carbon, impl, schema } from '@carbonenginejs/runtime-utils/schema';
8
8
  import { TriBatchType } from '@carbonenginejs/runtime-utils/graphics';
9
9
  import { Tr2Transform as _Tr2Transform } from '../../generated/trinityCore/Tr2Transform.js';
10
- import { Tr2Lod, EveLODHelper } from '../EveLODHelper.js';
10
+ import { EveLODHelper } from '../EveLODHelper.js';
11
+ import { TR2_PICK_TYPE_DEFAULT, Tr2PickType } from '../../trinityCore/Tr2PickType.js';
12
+ import { Tr2Lod } from '@carbonenginejs/runtime-utils/const/trinity';
11
13
 
12
14
  let _initProto, _initClass, _init_meshLod, _init_extra_meshLod, _init_children, _init_extra_children, _init_overrideBoundsMin, _init_extra_overrideBoundsMin, _init_overrideBoundsMax, _init_extra_overrideBoundsMax, _init_particleEmitters, _init_extra_particleEmitters, _init_particleSystems, _init_extra_particleSystems, _init_lodLevel, _init_extra_lodLevel, _init_hideOnLowQuality, _init_extra_hideOnLowQuality, _init_visibilityThreshold, _init_extra_visibilityThreshold, _init_observers, _init_extra_observers, _init_useLodLevel, _init_extra_useLodLevel;
13
15
 
14
16
  // Static scratch for the singular-world patch fixup (allocation rules: hot
15
17
  // per-object path, copy-into, never allocate per call).
16
18
  const INVERSE_PATCH_SCRATCH = mat4.create();
19
+
20
+ /**
21
+ * A placeable node in an Eve scene graph: local SRT placement, an optional mesh,
22
+ * particle systems and emitters, curve sets, observers and child transforms,
23
+ * with its own frustum and LOD visibility pass.
24
+ */
17
25
  let _EveTransform;
18
26
  new class extends _identity {
19
27
  static [class EveTransform extends _Tr2Transform {
@@ -24,7 +32,7 @@ new class extends _identity {
24
32
  } = _applyDecs2311(this, [type.define({
25
33
  className: "EveTransform",
26
34
  family: "eve/spaceObject"
27
- })], [[[io, io.persist, void 0, type.model("Tr2MeshBase")], 16, "meshLod"], [[io, io.persist, void 0, type.list("IEveTransform")], 16, "children"], [[io, io.persist, type, type.vec3], 16, "overrideBoundsMin"], [[io, io.persist, type, type.vec3], 16, "overrideBoundsMax"], [[io, io.persist, void 0, type.list("ITr2GenericEmitter")], 16, "particleEmitters"], [[io, io.persist, void 0, type.list("Tr2ParticleSystem")], 16, "particleSystems"], [[io, io.read, type, type.int32, void 0, schema.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, type, type.boolean], 16, "hideOnLowQuality"], [[io, io.persist, type, type.float32], 16, "visibilityThreshold"], [[io, io.persist, void 0, type.list("TriObserverLocal")], 16, "observers"], [[io, io.persist, type, type.boolean], 16, "useLodLevel"], [[carbon, carbon.method, impl, impl.implemented], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderer-owned modifier state is supplied through the update context; standard SRT and parent composition stay in Trinity.")], 18, "UpdateViewDependentData"], [[carbon, carbon.method, impl, impl.implemented], 18, "Update"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Particle updates are forwarded through backend-neutral emitter and system contracts; device particle managers remain engine-owned.")], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Browser frustum and quality state are read from the explicit update context instead of renderer globals.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Constant-buffer layout/packing is engine-owned; Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Declared on Tr2Transform in Carbon; the generated base class stays data-only.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Declared on Tr2Transform in Carbon; the generated base class stays data-only.")], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldRotation"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLODLevel"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.implemented], 18, "PlayCurveSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "PlayCurveSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopCurveSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveSetDuration"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRangeDuration"]], 0, void 0, _Tr2Transform));
35
+ })], [[[io, io.persist, void 0, type.model("Tr2MeshBase")], 16, "meshLod"], [[io, io.persist, void 0, type.list("IEveTransform")], 16, "children"], [[io, io.persist, type, type.vec3], 16, "overrideBoundsMin"], [[io, io.persist, type, type.vec3], 16, "overrideBoundsMax"], [[io, io.persist, void 0, type.list("ITr2GenericEmitter")], 16, "particleEmitters"], [[io, io.persist, void 0, type.list("Tr2ParticleSystem")], 16, "particleSystems"], [[io, io.read, type, type.int32, void 0, schema.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, type, type.boolean], 16, "hideOnLowQuality"], [[io, io.persist, type, type.float32], 16, "visibilityThreshold"], [[io, io.persist, void 0, type.list("TriObserverLocal")], 16, "observers"], [[io, io.persist, type, type.boolean], 16, "useLodLevel"], [[carbon, carbon.method, impl, impl.implemented], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderer-owned modifier state is supplied through the update context; standard SRT and parent composition stay in Trinity.")], 18, "UpdateViewDependentData"], [[carbon, carbon.method, impl, impl.implemented], 18, "Update"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Particle updates are forwarded through backend-neutral emitter and system contracts; device particle managers remain engine-owned.")], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Browser frustum and quality state are read from the explicit update context instead of renderer globals.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Constant-buffer layout/packing is engine-owned; Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Declared on Tr2Transform in Carbon; the generated base class stays data-only.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPickingBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetID"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Declared on Tr2Transform in Carbon; the generated base class stays data-only.")], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldRotation"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLODLevel"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetDisplay"], [[carbon, carbon.method, impl, impl.implemented], 18, "PlayCurveSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "PlayCurveSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "StopCurveSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurveSetDuration"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRangeDuration"]], 0, void 0, _Tr2Transform));
28
36
  }
29
37
  /** m_meshLod (Tr2MeshBasePtr) [READWRITE, PERSIST] */
30
38
  meshLod = (_initProto(this), _init_meshLod(this, null));
@@ -61,6 +69,11 @@ new class extends _identity {
61
69
  #isVisible = (_init_extra_useLodLevel(this), true);
62
70
  #lastCurveUpdateDelta = EveLODHelper.lowUpdateRate;
63
71
  #lastWorldTransform = mat4.create();
72
+
73
+ /**
74
+ * Adopts an authored meshLod as the node's mesh when no mesh was set, so a
75
+ * graph that only authored the LOD mesh still renders.
76
+ */
64
77
  Initialize() {
65
78
  if (!this.mesh) {
66
79
  this.mesh = this.meshLod;
@@ -68,6 +81,11 @@ new class extends _identity {
68
81
  }
69
82
  return true;
70
83
  }
84
+
85
+ /**
86
+ * Rebuilds the local matrix from rotation, translation and scaling and composes it with the parent to refresh worldTransform, keeping the previous world transform for motion vectors, then pushes the new transform to the particle systems and observers.
87
+ * @returns {mat4} The node's live worldTransform, valid until the next update.
88
+ */
71
89
  UpdateViewDependentData(context, parentTransform = _EveTransform.#identity) {
72
90
  mat4.copy(this.#lastWorldTransform, this.worldTransform);
73
91
  mat4.fromRotationTranslationScale(this.localTransform, this.rotation, this.translation, this.scaling);
@@ -76,11 +94,23 @@ new class extends _identity {
76
94
  for (const observer of this.observers) observer?.Update?.(this.worldTransform);
77
95
  return this.worldTransform;
78
96
  }
97
+
98
+ /** Runs the synchronous pass then the asynchronous pass, in Carbon's order. */
79
99
  Update(context) {
80
100
  this.UpdateSyncronous(context);
81
101
  this.UpdateAsyncronous(context);
82
102
  }
103
+
104
+ /**
105
+ * Does nothing: EveTransform performs all of its per-frame work in
106
+ * UpdateAsyncronous.
107
+ */
83
108
  UpdateSyncronous(_context) {}
109
+
110
+ /**
111
+ * Advances the curve sets once the accumulated delta satisfies the LOD update rate, then updates the children, particle systems and particle emitters.
112
+ * @returns {boolean} False without doing any work when the node's update flag is off.
113
+ */
84
114
  UpdateAsyncronous(context) {
85
115
  if (!this.update) return false;
86
116
  const time = Number(context?.GetTime?.() ?? context?.currentTime ?? context?.time ?? 0);
@@ -106,6 +136,11 @@ new class extends _identity {
106
136
  }
107
137
  return true;
108
138
  }
139
+
140
+ /**
141
+ * Refreshes the world transform, then derives visibility and LOD from the mesh bounding sphere: the sphere is frustum-tested and its on-screen size in pixels is compared against the context's medium and low detail thresholds for the LOD level and against visibilityThreshold for visibility; a node with no mesh is always visible, any particle system forces high LOD, and children's LOD levels are merged in.
142
+ * @returns {boolean} Whether this node itself is visible.
143
+ */
109
144
  UpdateVisibility(context, parentTransform = _EveTransform.#identity) {
110
145
  this.lodLevel = Tr2Lod.TR2_LOD_LOW;
111
146
  this.#isVisible = false;
@@ -133,6 +168,12 @@ new class extends _identity {
133
168
  }
134
169
  return this.#isVisible;
135
170
  }
171
+
172
+ /**
173
+ * Sorts the particle systems, appends this node when it is visible and has a
174
+ * mesh, then recurses into the children; nothing is appended while display is
175
+ * off.
176
+ */
136
177
  GetRenderables(out = []) {
137
178
  if (!this.display) return out;
138
179
  for (const system of this.particleSystems) system?.SortParticles?.();
@@ -146,10 +187,15 @@ new class extends _identity {
146
187
  // name; the store (engine-supplied layout) transposes them on Set. Carbon's
147
188
  // worldInverse = Inverse(transposed world) == Transpose(Inverse(world)), so
148
189
  // it is just Set("worldInverse", Inverse(world)) - the store transposes.
190
+
191
+ /**
192
+ * Allocates an EveBasicPerObjectData record from the accumulator and fills it with the world, previous-world and inverse-world matrices, patching the first all-zero basis of a singular world matrix with a 0.1 diagonal before inverting, as Carbon does.
193
+ * @returns {object} The allocated record, owned by the accumulator.
194
+ */
149
195
  GetPerObjectData(accumulator) {
150
196
  const data = accumulator.Alloc("EveBasicPerObjectData");
151
- data.Set("world", this.worldTransform);
152
- data.Set("worldLast", this.#lastWorldTransform);
197
+ data.SetAndTranspose("world", this.worldTransform);
198
+ data.SetAndTranspose("worldLast", this.#lastWorldTransform);
153
199
  if (!mat4.invert(INVERSE_PATCH_SCRATCH, this.worldTransform)) {
154
200
  // Carbon singular fixup (EveTransform.cpp:66-75): patch the first
155
201
  // all-zero basis of the LOGICAL world (its column [0,1,2]/[4,5,6]/
@@ -160,7 +206,7 @@ new class extends _identity {
160
206
  if (patched[0] === 0 && patched[1] === 0 && patched[2] === 0) patched[0] = 0.1;else if (patched[4] === 0 && patched[5] === 0 && patched[6] === 0) patched[5] = 0.1;else if (patched[8] === 0 && patched[9] === 0 && patched[10] === 0) patched[10] = 0.1;
161
207
  if (!mat4.invert(INVERSE_PATCH_SCRATCH, patched)) mat4.identity(INVERSE_PATCH_SCRATCH);
162
208
  }
163
- data.Set("worldInverse", INVERSE_PATCH_SCRATCH);
209
+ data.SetAndTranspose("worldInverse", INVERSE_PATCH_SCRATCH);
164
210
  return data;
165
211
  }
166
212
 
@@ -174,6 +220,52 @@ new class extends _identity {
174
220
  }
175
221
  return false;
176
222
  }
223
+
224
+ /**
225
+ * Carbon EveTransform::GetPickingBatches (EveTransform.cpp:?): collects the
226
+ * geometry a pick pass should test, by mask.
227
+ *
228
+ * Simpler than the hull's version in two ways that are deliberate: there are
229
+ * no decals or overlay effects to pull into the opaque bit, and the
230
+ * transparent bit goes through this class's own `GetBatches` rather than
231
+ * reaching into the mesh's areas - so a hidden transform contributes nothing
232
+ * at all, instead of suppressing only its transparent pass.
233
+ *
234
+ * Inherited by `EveMissileWarhead` and `EveRootTransform`, which is how
235
+ * Carbon gives them a pickable surface without declaring one.
236
+ *
237
+ * @param {Object} batches - the picking accumulator
238
+ * @param {Number} pickTypes - a Tr2PickType mask
239
+ * @param {Object} perObjectData - this transform's per-object record
240
+ */
241
+ GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null) {
242
+ if (pickTypes & Tr2PickType.PICK_TYPE_PICKING) {
243
+ this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_PICKING, perObjectData);
244
+ }
245
+ if (pickTypes & Tr2PickType.PICK_TYPE_OPAQUE) {
246
+ this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_OPAQUE, perObjectData);
247
+ }
248
+ if (pickTypes & Tr2PickType.PICK_TYPE_TRANSPARENT) {
249
+ this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_TRANSPARENT, perObjectData);
250
+ this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_ADDITIVE, perObjectData);
251
+ }
252
+ return true;
253
+ }
254
+
255
+ /**
256
+ * Carbon EveTransform::GetID (EveTransform.h:83-86): a picked area resolves
257
+ * to this transform, so the area index is deliberately ignored.
258
+ * @param {Number} [_areaID] - the picked area, unused by this class
259
+ * @returns {EveTransform} this
260
+ */
261
+ GetID(_areaID = 0) {
262
+ return this;
263
+ }
264
+
265
+ /**
266
+ * Reports whether the mesh has any transparent areas, which tells the renderer
267
+ * to route this node through the sorted transparent pass.
268
+ */
177
269
  HasTransparentBatches() {
178
270
  if (this.display && this.mesh) {
179
271
  return (this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;
@@ -183,6 +275,12 @@ new class extends _identity {
183
275
 
184
276
  // Distance from the view position to the world translation, scaled by the
185
277
  // authored multiplier (used to order transparent renderables back-to-front).
278
+
279
+ /**
280
+ * Returns the distance from the render context's view position to this node's
281
+ * world translation, scaled by the authored sortValueMultiplier, used to order
282
+ * transparent renderables back-to-front.
283
+ */
186
284
  GetSortValue(renderContext = null) {
187
285
  const viewPosition = renderContext?.GetViewPosition?.();
188
286
  const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];
@@ -190,6 +288,12 @@ new class extends _identity {
190
288
  const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];
191
289
  return Math.hypot(x, y, z) * this.sortValueMultiplier;
192
290
  }
291
+
292
+ /**
293
+ * Writes the world-space bounding sphere, taken from the override bounds when they differ and otherwise from the mesh bounding box, and unions in the children's spheres when a query is passed.
294
+ * @param {vec4} out Caller-owned sphere; left untouched when no source produced one.
295
+ * @returns {boolean} Whether a sphere was written.
296
+ */
193
297
  GetBoundingSphere(out = vec4.create(), query = 0) {
194
298
  let valid = false;
195
299
  if (!vec3.equals(this.overrideBoundsMin, this.overrideBoundsMax)) {
@@ -211,21 +315,43 @@ new class extends _identity {
211
315
  }
212
316
  return valid;
213
317
  }
318
+
319
+ /**
320
+ * Returns the world translation; called without an out parameter it returns a
321
+ * live subarray view of worldTransform that changes with the next transform
322
+ * update.
323
+ */
214
324
  GetWorldPosition(out) {
215
325
  return out ? vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]) : this.worldTransform.subarray(12, 15);
216
326
  }
327
+
328
+ /**
329
+ * Returns the node's local rotation quaternion; called without an out
330
+ * parameter it returns the live field rather than a copy.
331
+ */
217
332
  GetWorldRotation(out) {
218
333
  return out ? quat.copy(out, this.rotation) : this.rotation;
219
334
  }
335
+
336
+ /** Returns the LOD level chosen by the last visibility pass. */
220
337
  GetLODLevel() {
221
338
  return this.lodLevel;
222
339
  }
340
+
341
+ /** Turns rendering of this node and its subtree on or off. */
223
342
  SetDisplay(value) {
224
343
  this.display = !!value;
225
344
  }
345
+
346
+ /** Starts playback on every curve set on this node. */
226
347
  PlayCurveSets() {
227
348
  for (const curveSet of this.curveSets) curveSet?.Play?.();
228
349
  }
350
+
351
+ /**
352
+ * Starts every curve set carrying the given name, playing a named time range
353
+ * when one is supplied and otherwise resetting to the full range first.
354
+ */
229
355
  PlayCurveSet(name, rangeName = "") {
230
356
  for (const curveSet of this.curveSets) {
231
357
  if ((curveSet?.GetName?.() ?? curveSet?.name) !== name) continue;
@@ -237,14 +363,26 @@ new class extends _identity {
237
363
  }
238
364
  }
239
365
  }
366
+
367
+ /** Stops every curve set carrying the given name. */
240
368
  StopCurveSet(name) {
241
369
  for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) curveSet.Stop?.();
242
370
  }
371
+
372
+ /**
373
+ * Returns the longest curve duration across the curve sets carrying the given
374
+ * name, or 0 when none match.
375
+ */
243
376
  GetCurveSetDuration(name) {
244
377
  let duration = 0;
245
378
  for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet.GetMaxCurveDuration?.() ?? 0));
246
379
  return duration;
247
380
  }
381
+
382
+ /**
383
+ * Returns the longest duration of a named time range across the curve sets
384
+ * carrying the given name, or 0 when none match.
385
+ */
248
386
  GetRangeDuration(name, rangeName) {
249
387
  let duration = 0;
250
388
  for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet.GetRangeDuration?.(rangeName) ?? 0));
@@ -1 +1 @@
1
- {"version":3,"file":"EveTransform.js","sources":["../../../../src/eve/spaceObject/EveTransform.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\EveTransform.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\EveTransform.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { Tr2Transform } from \"../../generated/trinityCore/Tr2Transform.js\";\nimport { EveLODHelper, Tr2Lod } from \"../EveLODHelper.js\";\n\n// Static scratch for the singular-world patch fixup (allocation rules: hot\n// per-object path, copy-into, never allocate per call).\nconst INVERSE_PATCH_SCRATCH = mat4.create();\n\n\n@type.define({ className: \"EveTransform\", family: \"eve/spaceObject\" })\nexport class EveTransform extends Tr2Transform\n{\n\n /** m_meshLod (Tr2MeshBasePtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2MeshBase\")\n meshLod = null;\n\n /** m_children (PIEveTransformVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveTransform\")\n children = [];\n\n /** m_overrideBoundsMin (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n overrideBoundsMin = vec3.create();\n\n /** m_overrideBoundsMax (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n overrideBoundsMax = vec3.create();\n\n /** m_particleEmitters (PITr2GenericEmitterVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"ITr2GenericEmitter\")\n particleEmitters = [];\n\n /** m_particleSystems (PTr2ParticleSystemVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"Tr2ParticleSystem\")\n particleSystems = [];\n\n /** m_lodLevel (Tr2Lod - enum Tr2Lod) [READ] */\n @io.read\n @type.int32\n @schema.enum(\"Tr2Lod\")\n lodLevel = Tr2Lod.TR2_LOD_LOW;\n\n /** m_hideOnLowQuality (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n hideOnLowQuality = false;\n\n /** m_visibilityThreshold (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n visibilityThreshold = 2;\n\n /** m_observers (PTriObserverLocalVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"TriObserverLocal\")\n observers = [];\n\n /** m_useLodLevel (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n useLodLevel = true;\n\n #isVisible = true;\n #lastCurveUpdateDelta = EveLODHelper.lowUpdateRate;\n #lastWorldTransform = mat4.create();\n\n @carbon.method\n @impl.implemented\n Initialize()\n {\n if (!this.mesh)\n {\n this.mesh = this.meshLod;\n this.meshLod = null;\n }\n return true;\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Renderer-owned modifier state is supplied through the update context; standard SRT and parent composition stay in Trinity.\")\n UpdateViewDependentData(context, parentTransform = EveTransform.#identity)\n {\n mat4.copy(this.#lastWorldTransform, this.worldTransform);\n mat4.fromRotationTranslationScale(this.localTransform, this.rotation, this.translation, this.scaling);\n mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\n for (const system of this.particleSystems) system?.UpdateViewDependentData?.(context?.GetFrustum?.() ?? context?.frustum ?? context, this.worldTransform);\n for (const observer of this.observers) observer?.Update?.(this.worldTransform);\n return this.worldTransform;\n }\n\n @carbon.method\n @impl.implemented\n Update(context)\n {\n this.UpdateSyncronous(context);\n this.UpdateAsyncronous(context);\n }\n\n @carbon.method\n @impl.implemented\n UpdateSyncronous(_context)\n {\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Particle updates are forwarded through backend-neutral emitter and system contracts; device particle managers remain engine-owned.\")\n UpdateAsyncronous(context)\n {\n if (!this.update) return false;\n const time = Number(context?.GetTime?.() ?? context?.currentTime ?? context?.time ?? 0);\n const deltaTime = Number(context?.GetDeltaT?.() ?? context?.deltaTime ?? context?.deltaT ?? 0);\n this.#lastCurveUpdateDelta += deltaTime;\n if (!this.useLodLevel || EveLODHelper.ShouldUpdate(this.lodLevel, this.#lastCurveUpdateDelta))\n {\n this.#lastCurveUpdateDelta = 0;\n for (const curveSet of this.curveSets) curveSet?.Update?.(time);\n }\n for (const child of this.children) child?.Update?.(context);\n for (const system of this.particleSystems)\n {\n system?.UpdateTransform?.(this.worldTransform);\n system?.Update?.(context);\n }\n const originShift = context?.GetOriginShift?.() ?? context?.originShift ?? EveTransform.#zero;\n for (const emitter of this.particleEmitters)\n {\n emitter?.Update?.({ time, transform: this.worldTransform, originShift, context });\n }\n return true;\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Browser frustum and quality state are read from the explicit update context instead of renderer globals.\")\n UpdateVisibility(context, parentTransform = EveTransform.#identity)\n {\n this.lodLevel = Tr2Lod.TR2_LOD_LOW;\n this.#isVisible = false;\n if (!this.display || (this.hideOnLowQuality && (context?.lowQuality ?? context?.device?.lowQuality))) return false;\n\n this.UpdateViewDependentData(context, parentTransform);\n const frustum = context?.GetFrustum?.() ?? context?.frustum;\n if (this.mesh)\n {\n const valid = this.GetBoundingSphere(EveTransform.#sphere);\n const visible = !valid || this.visibilityThreshold < 0 || frustum?.IsSphereVisible?.(EveTransform.#sphere) !== false;\n if (visible)\n {\n const size = Number(frustum?.GetPixelSizeAccross?.(EveTransform.#sphere) ?? Infinity);\n this.mesh.UseWithScreenSize?.(size, EveTransform.#sphere[3]);\n const medium = Number(context?.GetMediumDetailThreshold?.() ?? context?.mediumDetailThreshold ?? 0);\n const low = Number(context?.GetLowDetailThreshold?.() ?? context?.lowDetailThreshold ?? 0);\n if (size >= medium) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\n else if (size >= low) this.lodLevel = Tr2Lod.TR2_LOD_MEDIUM;\n if (size > this.visibilityThreshold) this.#isVisible = true;\n }\n }\n else\n {\n this.#isVisible = true;\n }\n if (this.particleSystems.length) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\n for (const child of this.children)\n {\n child?.UpdateVisibility?.(context, this.worldTransform);\n this.lodLevel = EveLODHelper.MergeLOD(this.lodLevel, child?.GetLODLevel?.() ?? Tr2Lod.TR2_LOD_UNSPECIFIED);\n }\n return this.#isVisible;\n }\n\n @carbon.method\n @impl.implemented\n GetRenderables(out = [])\n {\n if (!this.display) return out;\n for (const system of this.particleSystems) system?.SortParticles?.();\n if (this.#isVisible && this.mesh) out.push(this);\n for (const child of this.children) child?.GetRenderables?.(out);\n return out;\n }\n\n // Carbon EveTransform::GetPerObjectData (EveTransform.cpp:49-77): fills the\n // EveBasicPerObjectData constant record. Trinity writes LOGICAL matrices by\n // name; the store (engine-supplied layout) transposes them on Set. Carbon's\n // worldInverse = Inverse(transposed world) == Transpose(Inverse(world)), so\n // it is just Set(\"worldInverse\", Inverse(world)) - the store transposes.\n @carbon.method\n @impl.adapted\n @impl.reason(\"Constant-buffer layout/packing is engine-owned; Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).\")\n GetPerObjectData(accumulator)\n {\n const data = accumulator.Alloc(\"EveBasicPerObjectData\");\n\n data.Set(\"world\", this.worldTransform);\n data.Set(\"worldLast\", this.#lastWorldTransform);\n\n if (!mat4.invert(INVERSE_PATCH_SCRATCH, this.worldTransform))\n {\n // Carbon singular fixup (EveTransform.cpp:66-75): patch the first\n // all-zero basis of the LOGICAL world (its column [0,1,2]/[4,5,6]/\n // [8,9,10] equals Carbon's transposed-world row test on the shared\n // layout) with a 0.1 diagonal, then invert that.\n const patched = INVERSE_PATCH_SCRATCH;\n mat4.copy(patched, this.worldTransform);\n if (patched[0] === 0 && patched[1] === 0 && patched[2] === 0) patched[0] = 0.1;\n else if (patched[4] === 0 && patched[5] === 0 && patched[6] === 0) patched[5] = 0.1;\n else if (patched[8] === 0 && patched[9] === 0 && patched[10] === 0) patched[10] = 0.1;\n if (!mat4.invert(INVERSE_PATCH_SCRATCH, patched)) mat4.identity(INVERSE_PATCH_SCRATCH);\n }\n\n data.Set(\"worldInverse\", INVERSE_PATCH_SCRATCH);\n return data;\n }\n\n /** Carbon declares the renderable batch contract on Tr2Transform\n * (Tr2Transform.cpp:250-276); the generated base stays data-only, so the\n * maintained renderable carries the behavior. */\n // Returns whether any batch was committed (JS addition; Carbon returns void).\n @carbon.method\n @impl.adapted\n @impl.reason(\"Declared on Tr2Transform in Carbon; the generated base class stays data-only.\")\n GetBatches(batches, batchType, perObjectData, _reason)\n {\n if (this.display && this.mesh)\n {\n return this.mesh.GetBatches(batches, this.mesh.GetAreas(batchType), perObjectData) === true;\n }\n return false;\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Declared on Tr2Transform in Carbon; the generated base class stays data-only.\")\n HasTransparentBatches()\n {\n if (this.display && this.mesh)\n {\n return (this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\n }\n return false;\n }\n\n // Distance from the view position to the world translation, scaled by the\n // authored multiplier (used to order transparent renderables back-to-front).\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\n GetSortValue(renderContext = null)\n {\n const viewPosition = renderContext?.GetViewPosition?.();\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\n return Math.hypot(x, y, z) * this.sortValueMultiplier;\n }\n\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), query = 0)\n {\n let valid = false;\n if (!vec3.equals(this.overrideBoundsMin, this.overrideBoundsMax))\n {\n sph3.fromBounds(EveTransform.#localSphere, this.overrideBoundsMin, this.overrideBoundsMax);\n sph3.transformMat4(out, EveTransform.#localSphere, this.worldTransform);\n valid = true;\n }\n else if (this.mesh?.GetBoundingBox?.(EveTransform.#boundsMin, EveTransform.#boundsMax))\n {\n sph3.fromBounds(EveTransform.#localSphere, EveTransform.#boundsMin, EveTransform.#boundsMax);\n sph3.transformMat4(out, EveTransform.#localSphere, this.worldTransform);\n valid = true;\n }\n if (query)\n {\n for (const child of this.children)\n {\n if (child?.GetBoundingSphere?.(EveTransform.#childSphere, query))\n {\n if (valid) sph3.union(out, out, EveTransform.#childSphere);\n else vec4.copy(out, EveTransform.#childSphere);\n valid = true;\n }\n }\n }\n return valid;\n }\n\n @carbon.method\n @impl.implemented\n GetWorldPosition(out)\n {\n return out ? vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]) : this.worldTransform.subarray(12, 15);\n }\n\n @carbon.method\n @impl.implemented\n GetWorldRotation(out)\n {\n return out ? quat.copy(out, this.rotation) : this.rotation;\n }\n\n @carbon.method\n @impl.implemented\n GetLODLevel()\n {\n return this.lodLevel;\n }\n\n @carbon.method\n @impl.implemented\n SetDisplay(value)\n {\n this.display = !!value;\n }\n\n @carbon.method\n @impl.implemented\n PlayCurveSets()\n {\n for (const curveSet of this.curveSets) curveSet?.Play?.();\n }\n\n @carbon.method\n @impl.implemented\n PlayCurveSet(name, rangeName = \"\")\n {\n for (const curveSet of this.curveSets)\n {\n if ((curveSet?.GetName?.() ?? curveSet?.name) !== name) continue;\n if (rangeName)\n {\n curveSet.PlayTimeRange?.(rangeName);\n }\n else\n {\n curveSet.ResetTimeRange?.();\n curveSet.Play?.();\n }\n }\n }\n\n @carbon.method\n @impl.implemented\n StopCurveSet(name)\n {\n for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) curveSet.Stop?.();\n }\n\n @carbon.method\n @impl.implemented\n GetCurveSetDuration(name)\n {\n let duration = 0;\n for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet.GetMaxCurveDuration?.() ?? 0));\n return duration;\n }\n\n @carbon.method\n @impl.implemented\n GetRangeDuration(name, rangeName)\n {\n let duration = 0;\n for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet.GetRangeDuration?.(rangeName) ?? 0));\n return duration;\n }\n\n static Tr2Lod = Tr2Lod;\n\n static #identity = mat4.create();\n static #zero = vec3.create();\n static #sphere = vec4.create();\n static #localSphere = vec4.create();\n static #childSphere = vec4.create();\n static #boundsMin = vec3.create();\n static #boundsMax = vec3.create();\n}\n"],"names":["INVERSE_PATCH_SCRATCH","mat4","create","_EveTransform","_identity","EveTransform","Tr2Transform","e","_init_meshLod","_init_extra_meshLod","_init_children","_init_extra_children","_init_overrideBoundsMin","_init_extra_overrideBoundsMin","_init_overrideBoundsMax","_init_extra_overrideBoundsMax","_init_particleEmitters","_init_extra_particleEmitters","_init_particleSystems","_init_extra_particleSystems","_init_lodLevel","_init_extra_lodLevel","_init_hideOnLowQuality","_init_extra_hideOnLowQuality","_init_visibilityThreshold","_init_extra_visibilityThreshold","_init_observers","_init_extra_observers","_init_useLodLevel","_init_extra_useLodLevel","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","model","list","vec3","read","int32","schema","enum","boolean","float32","carbon","method","impl","implemented","adapted","reason","meshLod","children","overrideBoundsMin","overrideBoundsMax","particleEmitters","particleSystems","lodLevel","Tr2Lod","TR2_LOD_LOW","hideOnLowQuality","visibilityThreshold","observers","useLodLevel","EveLODHelper","lowUpdateRate","Initialize","mesh","UpdateViewDependentData","context","parentTransform","copy","worldTransform","fromRotationTranslationScale","localTransform","rotation","translation","scaling","multiply","system","GetFrustum","frustum","observer","Update","UpdateSyncronous","UpdateAsyncronous","_context","update","time","Number","GetTime","currentTime","deltaTime","GetDeltaT","deltaT","ShouldUpdate","curveSet","curveSets","child","UpdateTransform","originShift","GetOriginShift","emitter","transform","UpdateVisibility","display","lowQuality","device","valid","GetBoundingSphere","visible","IsSphereVisible","size","GetPixelSizeAccross","Infinity","UseWithScreenSize","medium","GetMediumDetailThreshold","mediumDetailThreshold","low","GetLowDetailThreshold","lowDetailThreshold","TR2_LOD_HIGH","TR2_LOD_MEDIUM","length","MergeLOD","GetLODLevel","TR2_LOD_UNSPECIFIED","GetRenderables","out","SortParticles","push","GetPerObjectData","accumulator","data","Alloc","Set","invert","patched","identity","GetBatches","batches","batchType","perObjectData","_reason","GetAreas","HasTransparentBatches","TriBatchType","TRIBATCHTYPE_TRANSPARENT","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","Math","hypot","sortValueMultiplier","vec4","query","equals","sph3","fromBounds","transformMat4","GetBoundingBox","union","GetWorldPosition","set","subarray","GetWorldRotation","quat","SetDisplay","value","PlayCurveSets","Play","PlayCurveSet","name","rangeName","GetName","PlayTimeRange","ResetTimeRange","StopCurveSet","Stop","GetCurveSetDuration","duration","max","GetMaxCurveDuration","GetRangeDuration","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveTransform.js","sources":["../../../../src/eve/spaceObject/EveTransform.js"],"sourcesContent":["// Source: trinity/trinity/Eve/EveTransform.h\n// Source: trinity/trinity/Eve/EveTransform.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { Tr2Transform } from \"../../generated/trinityCore/Tr2Transform.js\";\nimport { EveLODHelper, Tr2Lod } from \"../EveLODHelper.js\";\nimport { TR2_PICK_TYPE_DEFAULT, Tr2PickType } from \"../../trinityCore/Tr2PickType.js\";\n\n// Static scratch for the singular-world patch fixup (allocation rules: hot\n// per-object path, copy-into, never allocate per call).\nconst INVERSE_PATCH_SCRATCH = mat4.create();\n\n\n/**\n * A placeable node in an Eve scene graph: local SRT placement, an optional mesh,\n * particle systems and emitters, curve sets, observers and child transforms,\n * with its own frustum and LOD visibility pass.\n */\n@type.define({ className: \"EveTransform\", family: \"eve/spaceObject\" })\nexport class EveTransform extends Tr2Transform\n{\n\n /** m_meshLod (Tr2MeshBasePtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"Tr2MeshBase\")\n meshLod = null;\n\n /** m_children (PIEveTransformVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveTransform\")\n children = [];\n\n /** m_overrideBoundsMin (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n overrideBoundsMin = vec3.create();\n\n /** m_overrideBoundsMax (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n overrideBoundsMax = vec3.create();\n\n /** m_particleEmitters (PITr2GenericEmitterVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"ITr2GenericEmitter\")\n particleEmitters = [];\n\n /** m_particleSystems (PTr2ParticleSystemVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"Tr2ParticleSystem\")\n particleSystems = [];\n\n /** m_lodLevel (Tr2Lod - enum Tr2Lod) [READ] */\n @io.read\n @type.int32\n @schema.enum(\"Tr2Lod\")\n lodLevel = Tr2Lod.TR2_LOD_LOW;\n\n /** m_hideOnLowQuality (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n hideOnLowQuality = false;\n\n /** m_visibilityThreshold (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n visibilityThreshold = 2;\n\n /** m_observers (PTriObserverLocalVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"TriObserverLocal\")\n observers = [];\n\n /** m_useLodLevel (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n useLodLevel = true;\n\n #isVisible = true;\n #lastCurveUpdateDelta = EveLODHelper.lowUpdateRate;\n #lastWorldTransform = mat4.create();\n\n /**\n * Adopts an authored meshLod as the node's mesh when no mesh was set, so a\n * graph that only authored the LOD mesh still renders.\n */\n @carbon.method\n @impl.implemented\n Initialize()\n {\n if (!this.mesh)\n {\n this.mesh = this.meshLod;\n this.meshLod = null;\n }\n return true;\n }\n\n /**\n * Rebuilds the local matrix from rotation, translation and scaling and composes it with the parent to refresh worldTransform, keeping the previous world transform for motion vectors, then pushes the new transform to the particle systems and observers.\n * @returns {mat4} The node's live worldTransform, valid until the next update.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Renderer-owned modifier state is supplied through the update context; standard SRT and parent composition stay in Trinity.\")\n UpdateViewDependentData(context, parentTransform = EveTransform.#identity)\n {\n mat4.copy(this.#lastWorldTransform, this.worldTransform);\n mat4.fromRotationTranslationScale(this.localTransform, this.rotation, this.translation, this.scaling);\n mat4.multiply(this.worldTransform, parentTransform, this.localTransform);\n for (const system of this.particleSystems) system?.UpdateViewDependentData?.(context?.GetFrustum?.() ?? context?.frustum ?? context, this.worldTransform);\n for (const observer of this.observers) observer?.Update?.(this.worldTransform);\n return this.worldTransform;\n }\n\n /** Runs the synchronous pass then the asynchronous pass, in Carbon's order. */\n @carbon.method\n @impl.implemented\n Update(context)\n {\n this.UpdateSyncronous(context);\n this.UpdateAsyncronous(context);\n }\n\n /**\n * Does nothing: EveTransform performs all of its per-frame work in\n * UpdateAsyncronous.\n */\n @carbon.method\n @impl.implemented\n UpdateSyncronous(_context)\n {\n }\n\n /**\n * Advances the curve sets once the accumulated delta satisfies the LOD update rate, then updates the children, particle systems and particle emitters.\n * @returns {boolean} False without doing any work when the node's update flag is off.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Particle updates are forwarded through backend-neutral emitter and system contracts; device particle managers remain engine-owned.\")\n UpdateAsyncronous(context)\n {\n if (!this.update) return false;\n const time = Number(context?.GetTime?.() ?? context?.currentTime ?? context?.time ?? 0);\n const deltaTime = Number(context?.GetDeltaT?.() ?? context?.deltaTime ?? context?.deltaT ?? 0);\n this.#lastCurveUpdateDelta += deltaTime;\n if (!this.useLodLevel || EveLODHelper.ShouldUpdate(this.lodLevel, this.#lastCurveUpdateDelta))\n {\n this.#lastCurveUpdateDelta = 0;\n for (const curveSet of this.curveSets) curveSet?.Update?.(time);\n }\n for (const child of this.children) child?.Update?.(context);\n for (const system of this.particleSystems)\n {\n system?.UpdateTransform?.(this.worldTransform);\n system?.Update?.(context);\n }\n const originShift = context?.GetOriginShift?.() ?? context?.originShift ?? EveTransform.#zero;\n for (const emitter of this.particleEmitters)\n {\n emitter?.Update?.({ time, transform: this.worldTransform, originShift, context });\n }\n return true;\n }\n\n /**\n * Refreshes the world transform, then derives visibility and LOD from the mesh bounding sphere: the sphere is frustum-tested and its on-screen size in pixels is compared against the context's medium and low detail thresholds for the LOD level and against visibilityThreshold for visibility; a node with no mesh is always visible, any particle system forces high LOD, and children's LOD levels are merged in.\n * @returns {boolean} Whether this node itself is visible.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Browser frustum and quality state are read from the explicit update context instead of renderer globals.\")\n UpdateVisibility(context, parentTransform = EveTransform.#identity)\n {\n this.lodLevel = Tr2Lod.TR2_LOD_LOW;\n this.#isVisible = false;\n if (!this.display || (this.hideOnLowQuality && (context?.lowQuality ?? context?.device?.lowQuality))) return false;\n\n this.UpdateViewDependentData(context, parentTransform);\n const frustum = context?.GetFrustum?.() ?? context?.frustum;\n if (this.mesh)\n {\n const valid = this.GetBoundingSphere(EveTransform.#sphere);\n const visible = !valid || this.visibilityThreshold < 0 || frustum?.IsSphereVisible?.(EveTransform.#sphere) !== false;\n if (visible)\n {\n const size = Number(frustum?.GetPixelSizeAccross?.(EveTransform.#sphere) ?? Infinity);\n this.mesh.UseWithScreenSize?.(size, EveTransform.#sphere[3]);\n const medium = Number(context?.GetMediumDetailThreshold?.() ?? context?.mediumDetailThreshold ?? 0);\n const low = Number(context?.GetLowDetailThreshold?.() ?? context?.lowDetailThreshold ?? 0);\n if (size >= medium) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\n else if (size >= low) this.lodLevel = Tr2Lod.TR2_LOD_MEDIUM;\n if (size > this.visibilityThreshold) this.#isVisible = true;\n }\n }\n else\n {\n this.#isVisible = true;\n }\n if (this.particleSystems.length) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\n for (const child of this.children)\n {\n child?.UpdateVisibility?.(context, this.worldTransform);\n this.lodLevel = EveLODHelper.MergeLOD(this.lodLevel, child?.GetLODLevel?.() ?? Tr2Lod.TR2_LOD_UNSPECIFIED);\n }\n return this.#isVisible;\n }\n\n /**\n * Sorts the particle systems, appends this node when it is visible and has a\n * mesh, then recurses into the children; nothing is appended while display is\n * off.\n */\n @carbon.method\n @impl.implemented\n GetRenderables(out = [])\n {\n if (!this.display) return out;\n for (const system of this.particleSystems) system?.SortParticles?.();\n if (this.#isVisible && this.mesh) out.push(this);\n for (const child of this.children) child?.GetRenderables?.(out);\n return out;\n }\n\n // Carbon EveTransform::GetPerObjectData (EveTransform.cpp:49-77): fills the\n // EveBasicPerObjectData constant record. Trinity writes LOGICAL matrices by\n // name; the store (engine-supplied layout) transposes them on Set. Carbon's\n // worldInverse = Inverse(transposed world) == Transpose(Inverse(world)), so\n // it is just Set(\"worldInverse\", Inverse(world)) - the store transposes.\n\n /**\n * Allocates an EveBasicPerObjectData record from the accumulator and fills it with the world, previous-world and inverse-world matrices, patching the first all-zero basis of a singular world matrix with a 0.1 diagonal before inverting, as Carbon does.\n * @returns {object} The allocated record, owned by the accumulator.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Constant-buffer layout/packing is engine-owned; Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes per the engine layout).\")\n GetPerObjectData(accumulator)\n {\n const data = accumulator.Alloc(\"EveBasicPerObjectData\");\n\n data.SetAndTranspose(\"world\", this.worldTransform);\n data.SetAndTranspose(\"worldLast\", this.#lastWorldTransform);\n\n if (!mat4.invert(INVERSE_PATCH_SCRATCH, this.worldTransform))\n {\n // Carbon singular fixup (EveTransform.cpp:66-75): patch the first\n // all-zero basis of the LOGICAL world (its column [0,1,2]/[4,5,6]/\n // [8,9,10] equals Carbon's transposed-world row test on the shared\n // layout) with a 0.1 diagonal, then invert that.\n const patched = INVERSE_PATCH_SCRATCH;\n mat4.copy(patched, this.worldTransform);\n if (patched[0] === 0 && patched[1] === 0 && patched[2] === 0) patched[0] = 0.1;\n else if (patched[4] === 0 && patched[5] === 0 && patched[6] === 0) patched[5] = 0.1;\n else if (patched[8] === 0 && patched[9] === 0 && patched[10] === 0) patched[10] = 0.1;\n if (!mat4.invert(INVERSE_PATCH_SCRATCH, patched)) mat4.identity(INVERSE_PATCH_SCRATCH);\n }\n\n data.SetAndTranspose(\"worldInverse\", INVERSE_PATCH_SCRATCH);\n return data;\n }\n\n /** Carbon declares the renderable batch contract on Tr2Transform\n * (Tr2Transform.cpp:250-276); the generated base stays data-only, so the\n * maintained renderable carries the behavior. */\n // Returns whether any batch was committed (JS addition; Carbon returns void).\n @carbon.method\n @impl.adapted\n @impl.reason(\"Declared on Tr2Transform in Carbon; the generated base class stays data-only.\")\n GetBatches(batches, batchType, perObjectData, _reason)\n {\n if (this.display && this.mesh)\n {\n return this.mesh.GetBatches(batches, this.mesh.GetAreas(batchType), perObjectData) === true;\n }\n return false;\n }\n\n /**\n * Carbon EveTransform::GetPickingBatches (EveTransform.cpp:?): collects the\n * geometry a pick pass should test, by mask.\n *\n * Simpler than the hull's version in two ways that are deliberate: there are\n * no decals or overlay effects to pull into the opaque bit, and the\n * transparent bit goes through this class's own `GetBatches` rather than\n * reaching into the mesh's areas - so a hidden transform contributes nothing\n * at all, instead of suppressing only its transparent pass.\n *\n * Inherited by `EveMissileWarhead` and `EveRootTransform`, which is how\n * Carbon gives them a pickable surface without declaring one.\n *\n * @param {Object} batches - the picking accumulator\n * @param {Number} pickTypes - a Tr2PickType mask\n * @param {Object} perObjectData - this transform's per-object record\n */\n @carbon.method\n @impl.implemented\n GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null)\n {\n if (pickTypes & Tr2PickType.PICK_TYPE_PICKING)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_PICKING, perObjectData);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_OPAQUE)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_OPAQUE, perObjectData);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_TRANSPARENT)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_TRANSPARENT, perObjectData);\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_ADDITIVE, perObjectData);\n }\n\n return true;\n }\n\n /**\n * Carbon EveTransform::GetID (EveTransform.h:83-86): a picked area resolves\n * to this transform, so the area index is deliberately ignored.\n * @param {Number} [_areaID] - the picked area, unused by this class\n * @returns {EveTransform} this\n */\n @carbon.method\n @impl.implemented\n GetID(_areaID = 0)\n {\n return this;\n }\n\n /**\n * Reports whether the mesh has any transparent areas, which tells the renderer\n * to route this node through the sorted transparent pass.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Declared on Tr2Transform in Carbon; the generated base class stays data-only.\")\n HasTransparentBatches()\n {\n if (this.display && this.mesh)\n {\n return (this.mesh.GetAreas(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0;\n }\n return false;\n }\n\n // Distance from the view position to the world translation, scaled by the\n // authored multiplier (used to order transparent renderables back-to-front).\n\n /**\n * Returns the distance from the render context's view position to this node's\n * world translation, scaled by the authored sortValueMultiplier, used to order\n * transparent renderables back-to-front.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\n GetSortValue(renderContext = null)\n {\n const viewPosition = renderContext?.GetViewPosition?.();\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\n return Math.hypot(x, y, z) * this.sortValueMultiplier;\n }\n\n /**\n * Writes the world-space bounding sphere, taken from the override bounds when they differ and otherwise from the mesh bounding box, and unions in the children's spheres when a query is passed.\n * @param {vec4} out Caller-owned sphere; left untouched when no source produced one.\n * @returns {boolean} Whether a sphere was written.\n */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create(), query = 0)\n {\n let valid = false;\n if (!vec3.equals(this.overrideBoundsMin, this.overrideBoundsMax))\n {\n sph3.fromBounds(EveTransform.#localSphere, this.overrideBoundsMin, this.overrideBoundsMax);\n sph3.transformMat4(out, EveTransform.#localSphere, this.worldTransform);\n valid = true;\n }\n else if (this.mesh?.GetBoundingBox?.(EveTransform.#boundsMin, EveTransform.#boundsMax))\n {\n sph3.fromBounds(EveTransform.#localSphere, EveTransform.#boundsMin, EveTransform.#boundsMax);\n sph3.transformMat4(out, EveTransform.#localSphere, this.worldTransform);\n valid = true;\n }\n if (query)\n {\n for (const child of this.children)\n {\n if (child?.GetBoundingSphere?.(EveTransform.#childSphere, query))\n {\n if (valid) sph3.union(out, out, EveTransform.#childSphere);\n else vec4.copy(out, EveTransform.#childSphere);\n valid = true;\n }\n }\n }\n return valid;\n }\n\n /**\n * Returns the world translation; called without an out parameter it returns a\n * live subarray view of worldTransform that changes with the next transform\n * update.\n */\n @carbon.method\n @impl.implemented\n GetWorldPosition(out)\n {\n return out ? vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]) : this.worldTransform.subarray(12, 15);\n }\n\n /**\n * Returns the node's local rotation quaternion; called without an out\n * parameter it returns the live field rather than a copy.\n */\n @carbon.method\n @impl.implemented\n GetWorldRotation(out)\n {\n return out ? quat.copy(out, this.rotation) : this.rotation;\n }\n\n /** Returns the LOD level chosen by the last visibility pass. */\n @carbon.method\n @impl.implemented\n GetLODLevel()\n {\n return this.lodLevel;\n }\n\n /** Turns rendering of this node and its subtree on or off. */\n @carbon.method\n @impl.implemented\n SetDisplay(value)\n {\n this.display = !!value;\n }\n\n /** Starts playback on every curve set on this node. */\n @carbon.method\n @impl.implemented\n PlayCurveSets()\n {\n for (const curveSet of this.curveSets) curveSet?.Play?.();\n }\n\n /**\n * Starts every curve set carrying the given name, playing a named time range\n * when one is supplied and otherwise resetting to the full range first.\n */\n @carbon.method\n @impl.implemented\n PlayCurveSet(name, rangeName = \"\")\n {\n for (const curveSet of this.curveSets)\n {\n if ((curveSet?.GetName?.() ?? curveSet?.name) !== name) continue;\n if (rangeName)\n {\n curveSet.PlayTimeRange?.(rangeName);\n }\n else\n {\n curveSet.ResetTimeRange?.();\n curveSet.Play?.();\n }\n }\n }\n\n /** Stops every curve set carrying the given name. */\n @carbon.method\n @impl.implemented\n StopCurveSet(name)\n {\n for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) curveSet.Stop?.();\n }\n\n /**\n * Returns the longest curve duration across the curve sets carrying the given\n * name, or 0 when none match.\n */\n @carbon.method\n @impl.implemented\n GetCurveSetDuration(name)\n {\n let duration = 0;\n for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet.GetMaxCurveDuration?.() ?? 0));\n return duration;\n }\n\n /**\n * Returns the longest duration of a named time range across the curve sets\n * carrying the given name, or 0 when none match.\n */\n @carbon.method\n @impl.implemented\n GetRangeDuration(name, rangeName)\n {\n let duration = 0;\n for (const curveSet of this.curveSets) if ((curveSet?.GetName?.() ?? curveSet?.name) === name) duration = Math.max(duration, Number(curveSet.GetRangeDuration?.(rangeName) ?? 0));\n return duration;\n }\n\n static Tr2Lod = Tr2Lod;\n\n static #identity = mat4.create();\n static #zero = vec3.create();\n static #sphere = vec4.create();\n static #localSphere = vec4.create();\n static #childSphere = vec4.create();\n static #boundsMin = vec3.create();\n static #boundsMax = vec3.create();\n}\n"],"names":["INVERSE_PATCH_SCRATCH","mat4","create","_EveTransform","_identity","EveTransform","Tr2Transform","e","_init_meshLod","_init_extra_meshLod","_init_children","_init_extra_children","_init_overrideBoundsMin","_init_extra_overrideBoundsMin","_init_overrideBoundsMax","_init_extra_overrideBoundsMax","_init_particleEmitters","_init_extra_particleEmitters","_init_particleSystems","_init_extra_particleSystems","_init_lodLevel","_init_extra_lodLevel","_init_hideOnLowQuality","_init_extra_hideOnLowQuality","_init_visibilityThreshold","_init_extra_visibilityThreshold","_init_observers","_init_extra_observers","_init_useLodLevel","_init_extra_useLodLevel","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","model","list","vec3","read","int32","schema","enum","boolean","float32","carbon","method","impl","implemented","adapted","reason","meshLod","children","overrideBoundsMin","overrideBoundsMax","particleEmitters","particleSystems","lodLevel","Tr2Lod","TR2_LOD_LOW","hideOnLowQuality","visibilityThreshold","observers","useLodLevel","EveLODHelper","lowUpdateRate","Initialize","mesh","UpdateViewDependentData","context","parentTransform","copy","worldTransform","fromRotationTranslationScale","localTransform","rotation","translation","scaling","multiply","system","GetFrustum","frustum","observer","Update","UpdateSyncronous","UpdateAsyncronous","_context","update","time","Number","GetTime","currentTime","deltaTime","GetDeltaT","deltaT","ShouldUpdate","curveSet","curveSets","child","UpdateTransform","originShift","GetOriginShift","emitter","transform","UpdateVisibility","display","lowQuality","device","valid","GetBoundingSphere","visible","IsSphereVisible","size","GetPixelSizeAccross","Infinity","UseWithScreenSize","medium","GetMediumDetailThreshold","mediumDetailThreshold","low","GetLowDetailThreshold","lowDetailThreshold","TR2_LOD_HIGH","TR2_LOD_MEDIUM","length","MergeLOD","GetLODLevel","TR2_LOD_UNSPECIFIED","GetRenderables","out","SortParticles","push","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","invert","patched","identity","GetBatches","batches","batchType","perObjectData","_reason","GetAreas","GetPickingBatches","pickTypes","TR2_PICK_TYPE_DEFAULT","Tr2PickType","PICK_TYPE_PICKING","TriBatchType","TRIBATCHTYPE_PICKING","PICK_TYPE_OPAQUE","TRIBATCHTYPE_OPAQUE","PICK_TYPE_TRANSPARENT","TRIBATCHTYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","GetID","_areaID","HasTransparentBatches","GetSortValue","renderContext","viewPosition","GetViewPosition","x","y","z","Math","hypot","sortValueMultiplier","vec4","query","equals","sph3","fromBounds","transformMat4","GetBoundingBox","union","GetWorldPosition","set","subarray","GetWorldRotation","quat","SetDisplay","value","PlayCurveSets","Play","PlayCurveSet","name","rangeName","GetName","PlayTimeRange","ResetTimeRange","StopCurveSet","Stop","GetCurveSetDuration","duration","max","GetMaxCurveDuration","GetRangeDuration","constructor"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { CjsModel } from '@carbonenginejs/runtime-utils/model';
3
+ import { mat4 } from '@carbonenginejs/runtime-utils/mat4';
4
+ import { type } from '@carbonenginejs/runtime-utils/schema';
5
+ import { vec3 } from '@carbonenginejs/runtime-utils/vec3';
6
+ import { vec4 } from '@carbonenginejs/runtime-utils/vec4';
7
+
8
+ let _initClass, _init_transform, _init_extra_transform, _init_killCount, _init_extra_killCount, _init_shipData, _init_extra_shipData, _init_clipSphereCenter, _init_extra_clipSphereCenter, _init_clipRadiusSq, _init_extra_clipRadiusSq, _init_clipRadius2Sq, _init_extra_clipRadius2Sq, _init_clipFactor, _init_extra_clipFactor, _init_clipFactor2, _init_extra_clipFactor2, _init_customData, _init_extra_customData;
9
+
10
+ /** The per-frame parent state a space object hands to its attachments. */
11
+ let _IEveSpaceObject2Pare;
12
+ new class extends _identity {
13
+ static [class IEveSpaceObject2ParentData extends CjsModel {
14
+ static {
15
+ ({
16
+ e: [_init_transform, _init_extra_transform, _init_killCount, _init_extra_killCount, _init_shipData, _init_extra_shipData, _init_clipSphereCenter, _init_extra_clipSphereCenter, _init_clipRadiusSq, _init_extra_clipRadiusSq, _init_clipRadius2Sq, _init_extra_clipRadius2Sq, _init_clipFactor, _init_extra_clipFactor, _init_clipFactor2, _init_extra_clipFactor2, _init_customData, _init_extra_customData],
17
+ c: [_IEveSpaceObject2Pare, _initClass]
18
+ } = _applyDecs2311(this, [type.define({
19
+ className: "IEveSpaceObject2ParentData",
20
+ family: "eve/spaceObject"
21
+ })], [[[type, type.mat4], 16, "transform"], [[type, type.uint32], 16, "killCount"], [[type, type.vec4], 16, "shipData"], [[type, type.vec3], 16, "clipSphereCenter"], [[type, type.float32], 16, "clipRadiusSq"], [[type, type.float32], 16, "clipRadius2Sq"], [[type, type.float32], 16, "clipFactor"], [[type, type.float32], 16, "clipFactor2"], [[type, type.vec4], 16, "customData"]], 0, void 0, CjsModel));
22
+ }
23
+ /** transform (Matrix) - the parent's world transform. */
24
+ transform = _init_transform(this, mat4.create());
25
+
26
+ /** killCount (uint32_t) - EveSpaceObject2::GetParentData never assigns it,
27
+ * so it stays zero through that path (EveSpaceObject2.cpp:1874). */
28
+ killCount = (_init_extra_transform(this), _init_killCount(this, 0));
29
+
30
+ /** shipData (Vector4) - m_spaceObjectShipData. */
31
+ shipData = (_init_extra_killCount(this), _init_shipData(this, vec4.create()));
32
+
33
+ /** clipSphereCenter (Vector3). */
34
+ clipSphereCenter = (_init_extra_shipData(this), _init_clipSphereCenter(this, vec3.create()));
35
+
36
+ /** clipRadiusSq (float). */
37
+ clipRadiusSq = (_init_extra_clipSphereCenter(this), _init_clipRadiusSq(this, 0));
38
+
39
+ /** clipRadius2Sq (float). */
40
+ clipRadius2Sq = (_init_extra_clipRadiusSq(this), _init_clipRadius2Sq(this, 0));
41
+
42
+ /** clipFactor (float) - the parent's clipSphereFactor. */
43
+ clipFactor = (_init_extra_clipRadius2Sq(this), _init_clipFactor(this, 0));
44
+
45
+ /** clipFactor2 (float) - the parent's clipSphereFactor2. */
46
+ clipFactor2 = (_init_extra_clipFactor(this), _init_clipFactor2(this, 0));
47
+
48
+ /** customData (Vector4). */
49
+ customData = (_init_extra_clipFactor2(this), _init_customData(this, vec4.create()));
50
+
51
+ /**
52
+ * shLighting (const Vector4*) - Carbon borrows a pointer to the parent's
53
+ * seven packed spherical-harmonic coefficients and copies them at fill time,
54
+ * zeroing when the pointer is null (EveSpaceObjectDecal.cpp:376-383). The
55
+ * port holds the parent's array by reference with the same null contract; it
56
+ * is runtime state, so it carries no persistence.
57
+ */
58
+ shLighting = (_init_extra_customData(this), null);
59
+
60
+ /** Carbon's packed spherical-harmonic coefficient count
61
+ * (Tr2ShLightingManager::PACKED_COEFFICIENT_COUNT). */
62
+ }];
63
+ SH_COEFFICIENT_COUNT = 7;
64
+ constructor() {
65
+ super(_IEveSpaceObject2Pare), _initClass();
66
+ }
67
+ }();
68
+
69
+ export { _IEveSpaceObject2Pare as IEveSpaceObject2ParentData };
70
+ //# sourceMappingURL=IEveSpaceObject2ParentData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEveSpaceObject2ParentData.js","sources":["../../../../src/eve/spaceObject/IEveSpaceObject2ParentData.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// Source: trinity/trinity/Eve/IEveSpaceObject2.h (IEveSpaceObject2::ParentData)\n// Hand-maintained. Carbon nests this struct inside the IEveSpaceObject2\n// interface; the JS identity concatenates owner and inner name\n// (IEveSpaceObject2 + ParentData) because a bare inner name is not unique\n// across the corpus - fifteen inner names are claimed by several owners and\n// thirteen collide with a top-level class.\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\n\n\n/** The per-frame parent state a space object hands to its attachments. */\n@type.define({ className: \"IEveSpaceObject2ParentData\", family: \"eve/spaceObject\" })\nexport class IEveSpaceObject2ParentData extends CjsModel\n{\n\n /** transform (Matrix) - the parent's world transform. */\n @type.mat4\n transform = mat4.create();\n\n /** killCount (uint32_t) - EveSpaceObject2::GetParentData never assigns it,\n * so it stays zero through that path (EveSpaceObject2.cpp:1874). */\n @type.uint32\n killCount = 0;\n\n /** shipData (Vector4) - m_spaceObjectShipData. */\n @type.vec4\n shipData = vec4.create();\n\n /** clipSphereCenter (Vector3). */\n @type.vec3\n clipSphereCenter = vec3.create();\n\n /** clipRadiusSq (float). */\n @type.float32\n clipRadiusSq = 0;\n\n /** clipRadius2Sq (float). */\n @type.float32\n clipRadius2Sq = 0;\n\n /** clipFactor (float) - the parent's clipSphereFactor. */\n @type.float32\n clipFactor = 0;\n\n /** clipFactor2 (float) - the parent's clipSphereFactor2. */\n @type.float32\n clipFactor2 = 0;\n\n /** customData (Vector4). */\n @type.vec4\n customData = vec4.create();\n\n /**\n * shLighting (const Vector4*) - Carbon borrows a pointer to the parent's\n * seven packed spherical-harmonic coefficients and copies them at fill time,\n * zeroing when the pointer is null (EveSpaceObjectDecal.cpp:376-383). The\n * port holds the parent's array by reference with the same null contract; it\n * is runtime state, so it carries no persistence.\n */\n shLighting = null;\n\n /** Carbon's packed spherical-harmonic coefficient count\n * (Tr2ShLightingManager::PACKED_COEFFICIENT_COUNT). */\n static SH_COEFFICIENT_COUNT = 7;\n\n}\n"],"names":["_IEveSpaceObject2Pare","_identity","IEveSpaceObject2ParentData","CjsModel","e","_init_transform","_init_extra_transform","_init_killCount","_init_extra_killCount","_init_shipData","_init_extra_shipData","_init_clipSphereCenter","_init_extra_clipSphereCenter","_init_clipRadiusSq","_init_extra_clipRadiusSq","_init_clipRadius2Sq","_init_extra_clipRadius2Sq","_init_clipFactor","_init_extra_clipFactor","_init_clipFactor2","_init_extra_clipFactor2","_init_customData","_init_extra_customData","c","_initClass","_applyDecs","type","define","className","family","mat4","uint32","vec4","vec3","float32","transform","create","killCount","shipData","clipSphereCenter","clipRadiusSq","clipRadius2Sq","clipFactor","clipFactor2","customData","shLighting","SH_COEFFICIENT_COUNT","constructor"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { RawData } from '../../trinityCore/rawData/RawData.js';
2
+
1
3
  const VS_FIELDS = Object.freeze(new Set(["worldTransform", "worldTransformLast", "invWorldTransform", "shipData", "clipData", "ellpsoidRadii", "ellpsoidCenter", "customMaskMatrix", "customMaskData", "boneOffsets", "morphTargetVertexDataOffset", "morphTargetAnimationDataOffset", "activeMorphTargetsCount", "bakedMorphTargetVertexDataOffset", "customData"]));
2
4
  const PS_FIELDS = Object.freeze(new Set(["worldTransform", "worldTransformLast", "invWorldTransform", "shipData", "clipSphereCenter", "clipRadiusSq", "clipRadius2Sq", "impactDataOffset", "clipSphereFactor2", "clipSphereFactor", "shLightingCoefficients", "customMaskMaterialIDs", "customMaskTargets", "customMaskClamps", "screenSize", "customData"]));
3
5
  const SHARED_VS_FIELDS = Object.freeze(["clipData", "ellpsoidRadii", "ellpsoidCenter", "customMaskMatrix", "customMaskData", "boneOffsets", "morphTargetVertexDataOffset", "morphTargetAnimationDataOffset", "activeMorphTargetsCount", "bakedMorphTargetVertexDataOffset", "customData"]);
@@ -44,33 +46,34 @@ function applyOverrides(source, allowed, target, owner) {
44
46
  if (value != null) target[name] = cloneNumericValue(value, `${owner}.${name}`);
45
47
  }
46
48
  }
47
- function identityMatrix() {
48
- return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
49
- }
50
- function zeroVector() {
51
- return [0, 0, 0, 0];
52
- }
53
49
  function extractCustomMasks(object) {
54
50
  const masks = object.customMasks;
55
51
  if (masks == null) return null;
56
52
  if (!Array.isArray(masks)) fail("object.customMasks must be an array");
57
53
  if (masks.length === 0) return null;
58
54
  if (masks.length > 2) fail("object.customMasks cannot contain more than two Main mask slots");
59
- const vs = {
60
- customMaskMatrix: [identityMatrix(), identityMatrix()],
61
- customMaskData: [zeroVector(), zeroVector()]
62
- };
63
- const ps = {
64
- customMaskMaterialIDs: [zeroVector(), zeroVector()],
65
- customMaskTargets: [zeroVector(), zeroVector()],
66
- customMaskClamps: zeroVector()
67
- };
55
+
56
+ // EveCustomMask writes GPU-form records, so the masks fill a scratch pair and
57
+ // the plain Main values are read back out of them. The matrix slots come back
58
+ // through GetTransposedIndex because that is how they are stored.
59
+ const vsRecord = RawData.create("EveSpaceObjectVSData");
60
+ const psRecord = RawData.create("EveSpaceObjectPSData");
68
61
  for (let index = 0; index < masks.length; index++) {
69
62
  const mask = masks[index];
70
- if (!mask || typeof mask.FillPerObjectData !== "function" || mask.FillPerObjectData(index, vs, ps) !== true) {
63
+ if (!mask || typeof mask.FillPerObjectData !== "function" || mask.FillPerObjectData(index, vsRecord, psRecord) !== true) {
71
64
  fail(`object.customMasks[${index}] could not fill Main per-object data`);
72
65
  }
73
66
  }
67
+ const slots = [0, 1];
68
+ const vs = {
69
+ customMaskMatrix: slots.map(slot => Array.from(vsRecord.GetTransposedIndex("customMaskMatrix", slot))),
70
+ customMaskData: slots.map(slot => Array.from(vsRecord.GetIndex("customMaskData", slot)))
71
+ };
72
+ const ps = {
73
+ customMaskMaterialIDs: slots.map(slot => Array.from(psRecord.GetIndex("customMaskMaterialIDs", slot))),
74
+ customMaskTargets: slots.map(slot => Array.from(psRecord.GetIndex("customMaskTargets", slot))),
75
+ customMaskClamps: Array.from(psRecord.Get("customMaskClamps"))
76
+ };
74
77
  return {
75
78
  vs,
76
79
  ps