@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CjsPerObjectLayouts.js","sources":["../../../../src/trinityCore/rawData/CjsPerObjectLayouts.js"],"sourcesContent":["// Per-object constant-data layouts.\n//\n// This catalog has no CarbonEngine counterpart, which is why it is Cjs* rather\n// than Tr2*/Tri*: C++ gets a struct's layout free from the type system\n// (`accumulator->Allocate<T>()` + placement new), so Carbon never needs to\n// declare one. JavaScript has to.\n//\n// Carbon uploads per-object data by memcpy'ing the C++ struct straight into the\n// constant buffer (EveSpaceObject2.cpp:1469-1483), so the C++ declaration order\n// IS the byte layout the shader reads. Field ORDER and field SIZE are therefore\n// the entire binding contract: renaming a field is safe, reordering or resizing\n// one silently shifts every field after it.\n//\n// The declaration vocabulary and the resolver are shared with the per-frame\n// catalog; see constantLayout.js.\n//\n// Layouts are grouped per object, with up to three buffers:\n//\n// vs - bound to the vertex stage (and cs/gs/hs/ds, per Carbon's mask)\n// ps - bound to the pixel stage\n// shared - ONE buffer bound to both stages, where Carbon uploads the same\n// bytes twice rather than declaring a pair\n//\n// Every matrix stored here is TRANSPOSED, matching Carbon's `= Transpose(m)`\n// staging fill. See the carbon-math-conventions skill.\n//\n// Defaults are frozen and are COPIED into a record's buffer on allocation,\n// never assigned by reference. Carbon's arena does not clear on Alloc, so a\n// field with no default shows the previous tenant's bytes - that reproduces\n// \"unwritten slots = allocator garbage\". Declaring a default opts a field out\n// of that.\n\n\nimport { IDENTITY, Types, ZERO4, buildLayouts, toRawLayout } from \"./constantLayout.js\";\n\n\n/** EveTransform.h:161-163 - three matrices, the simplest placeable payload. */\nexport const EveBasic = Object.freeze({\n vs: {\n struct: \"EveBasicPerObjectData\",\n fields: {\n world: { type: Types.MATRIX4, default: IDENTITY },\n worldLast: { type: Types.MATRIX4, default: IDENTITY },\n worldInverse: { type: Types.MATRIX4, default: IDENTITY }\n }\n }\n});\n\n\n/** EveMissileWarhead.h:194 */\nexport const EveMissileWarhead = Object.freeze({\n vs: {\n struct: \"EveMissileWarheadPerObjectData\",\n fields: {\n world: { type: Types.MATRIX4, default: IDENTITY },\n missileSize: { type: Types.VECTOR4 }\n }\n }\n});\n\n\n/** EveSceneStaticParticles.h:105 */\nexport const EveSceneStaticParticles = Object.freeze({\n vs: {\n struct: \"EveSceneStaticParticlesPerObjectData\",\n fields: {\n world: { type: Types.MATRIX4, default: IDENTITY },\n lastWorld: { type: Types.MATRIX4, default: IDENTITY }\n }\n }\n});\n\n\n/**\n * EveConstantBufferFormats.h:16/:11 - the generic Tr2PerObjectDataStandard\n * pair, consumed by EveLineSet / EveCurveLineSet / EveEllipseSet. Each half is\n * one WorldMat, uploaded as two separate buffers.\n */\nexport const EvePerObject = Object.freeze({\n vs: {\n struct: \"EvePerObjectVSData\",\n fields: { WorldMat: { type: Types.MATRIX4, default: IDENTITY } }\n },\n ps: {\n struct: \"EvePerObjectPSData\",\n fields: { WorldMat: { type: Types.MATRIX4, default: IDENTITY } }\n }\n});\n\n\n/**\n * EveLensflare.cpp:41-45 - same bytes bound to VS and PS. `indices[2..3]` are\n * never written in Carbon and are left as allocator garbage.\n */\nexport const EveLensflare = Object.freeze({\n shared: {\n struct: \"EveLensflarePerObjectData\",\n fields: {\n directionScale: { type: Types.VECTOR4 },\n indices: { type: Types.UINT32, count: 4 }\n }\n }\n});\n\n\n/** EveSpherePin.h:25 - the ui variant (EveSpherePin.cpp:415-425). */\nexport const EveSpherePin = Object.freeze({\n shared: {\n struct: \"EveSpherePinPerObjectData\",\n fields: {\n worldMatrix: { type: Types.MATRIX4, default: IDENTITY },\n pinPosition: { type: Types.VECTOR4 },\n pinRotation: { type: Types.VECTOR4 },\n pinColor: { type: Types.VECTOR4 },\n pinThreshold: { type: Types.VECTOR4 },\n pinRadiusPrecalc: { type: Types.VECTOR4 },\n pinUV: { type: Types.VECTOR4 }\n }\n }\n});\n\n\n/** EveChildSpherePin.h:16 - the same field run as the ui pin. */\nexport const EveChildSpherePin = Object.freeze({\n shared: {\n struct: \"EveChildSpherePinPerObjectData\",\n fields: {\n worldMatrix: { type: Types.MATRIX4, default: IDENTITY },\n pinPosition: { type: Types.VECTOR4 },\n pinRotation: { type: Types.VECTOR4 },\n pinColor: { type: Types.VECTOR4 },\n pinThreshold: { type: Types.VECTOR4 },\n pinRadiusPrecalc: { type: Types.VECTOR4 },\n pinUV: { type: Types.VECTOR4 }\n }\n }\n});\n\n\n/**\n * EveSpaceObjectDecal.h:27-45 - uploaded as two constant buffers\n * (cpp:975-976). `unused` shares clipRadius2Sq's register and is Carbon's\n * explicit pad; it is declared so the layout is right and never written.\n */\nexport const EveSpaceObjectDecal = Object.freeze({\n vs: {\n struct: \"DecalVSPerObjectData\",\n fields: {\n worldMatrix: { type: Types.MATRIX4, default: IDENTITY },\n invWorldMatrix: { type: Types.MATRIX4, default: IDENTITY },\n decalMatrix: { type: Types.MATRIX4, default: IDENTITY },\n inverseDecalMatrix: { type: Types.MATRIX4, default: IDENTITY },\n parentBoneMatrix: { type: Types.MATRIX4, default: IDENTITY },\n invParentBoneMatrix: { type: Types.MATRIX4, default: IDENTITY }\n }\n },\n ps: {\n struct: \"DecalPSPerObjectData\",\n fields: {\n // .x killCount (a uint widened to float), .y the 0..1 visibility\n // ramp, .zw reserved (cpp:369-382).\n displayData: { type: Types.VECTOR4 },\n shipData: { type: Types.VECTOR4 },\n clipData: { type: Types.VECTOR4 },\n clipRadius2Sq: { type: Types.FLOAT },\n unused: { type: Types.VECTOR3 },\n shLightingCoefficients: { type: Types.VECTOR4, count: 7, default: ZERO4 }\n }\n }\n});\n\n\n/**\n * EveBoosterSet2.h:48-71 - a VertexShaderData + PixelShaderData pair uploaded\n * as two constant buffers (cpp:1325-1329). `boosterIntensity` is declared on\n * BOTH stages and written separately for each; it is not a duplicate. The\n * padding scalars are Carbon's explicit register pads and stay unwritten.\n */\nexport const EveBoosterSet = Object.freeze({\n vs: {\n struct: \"EveBoosterSetVSData\",\n fields: {\n shipMatrix: { type: Types.MATRIX4, default: IDENTITY },\n boosterIntensity: { type: Types.FLOAT },\n shipSpeed: { type: Types.FLOAT },\n maxBoosterSize: { type: Types.FLOAT },\n padding: { type: Types.FLOAT },\n // EVE_MAX_CONTROL_POINT_COUNT (EveBoosterSet2.h:36)\n trailsControlPositions: { type: Types.VECTOR4, count: 5 },\n trailsControlNormals: { type: Types.VECTOR4, count: 5 }\n }\n },\n ps: {\n struct: \"EveBoosterSetPSData\",\n fields: {\n boosterIntensity: { type: Types.FLOAT },\n trailIntensity: { type: Types.FLOAT },\n warpIntensity: { type: Types.FLOAT },\n padding2: { type: Types.FLOAT }\n }\n }\n});\n\n\n/**\n * EveChildBulletStorm.h:20 - VS only. `targetPositionsWS` slots past the filled\n * target count stay allocator garbage (cpp:403-407); the bound is a bare\n * literal `[10]` in Carbon, not a named constant.\n */\nexport const EveChildBulletStorm = Object.freeze({\n vs: {\n struct: \"EveChildBulletStormPerObjectData\",\n fields: {\n worldTransform: { type: Types.MATRIX4, default: IDENTITY },\n effectInfo: { type: Types.VECTOR4 },\n targetPositionsWS: { type: Types.VECTOR4, count: 10 }\n }\n }\n});\n\n\n/**\n * EveStretch2.cpp:327-337 - Carbon uploads the contiguous member run\n * m_source..m_effectData[2] (EveStretch2.h:105-109) as four vec4s to VS and PS.\n */\nexport const EveStretch2 = Object.freeze({\n shared: {\n struct: \"EveStretch2PerObjectData\",\n fields: {\n sourceData: { type: Types.VECTOR4 },\n destinationData: { type: Types.VECTOR4 },\n effectData: { type: Types.VECTOR4, count: 2 }\n }\n }\n});\n\n\n/**\n * EveSpaceObject2.h:99 (vs) / :122 (ps) - the persistent pair. Unlike every\n * other entry here these live as members on the owner across frames and are\n * READ BACK (GetParentData cpp:1877-1883, GetPerObjectStructs cpp:1485-1490),\n * which is why the record exposes Get accessors at all.\n *\n * The HLSL counterpart names are from shadercompiler/tests/RayTracingTest.cpp:654-666,\n * which declares this block field-for-field.\n */\nexport const EveSpaceObject = Object.freeze({\n vs: {\n struct: \"EveSpaceObjectVSData\",\n fields: {\n worldTransform: { type: Types.MATRIX4, default: IDENTITY },\n worldTransformLast: { type: Types.MATRIX4, default: IDENTITY },\n invWorldTransform: { type: Types.MATRIX4, default: IDENTITY },\n // Four independent floats, not a bitfield: .x booster glow\n // intensity, .y activation strength, .z dirt level, .w bounding\n // sphere radius. Constructor value at cpp:195.\n shipData: { type: Types.VECTOR4, default: Object.freeze([1, 1, 0, 1]) },\n clipData: { type: Types.VECTOR4 },\n // Carbon's spelling (sic) - \"ellpsoid\" matches the source struct.\n ellpsoidRadii: { type: Types.VECTOR4 },\n ellpsoidCenter: { type: Types.VECTOR4 },\n // EVE_SPACEOBJECT_CUSTOWMASK_MAX (sic) = 2, EveSpaceObject2.h:49.\n // EveCustomMask::ZeroPerObjectData writes IDENTITY into an unused\n // slot, not zero (EveCustomMask.cpp:88-93).\n customMaskMatrix: { type: Types.MATRIX4, count: 2, default: IDENTITY },\n customMaskData: { type: Types.VECTOR4, count: 2 },\n // GPU ring offsets - engine-owned, no CPU derivation exists.\n boneOffsets: { type: Types.UINT32, count: 4 },\n morphTargetVertexDataOffset: { type: Types.UINT32 },\n morphTargetAnimationDataOffset: { type: Types.UINT32 },\n activeMorphTargetsCount: { type: Types.UINT32 },\n bakedMorphTargetVertexDataOffset: { type: Types.UINT32 },\n customData: { type: Types.VECTOR4, default: Object.freeze([0, 0, 0, 0]) }\n }\n },\n ps: {\n struct: \"EveSpaceObjectPSData\",\n fields: {\n worldTransform: { type: Types.MATRIX4, default: IDENTITY },\n worldTransformLast: { type: Types.MATRIX4, default: IDENTITY },\n invWorldTransform: { type: Types.MATRIX4, default: IDENTITY },\n shipData: { type: Types.VECTOR4, default: Object.freeze([1, 1, 0, 1]) },\n // Clipdata1.xyz / .w - a SIGNED squared radius; the sign carries\n // the inside/outside test (RayTracingTest.cpp:678-679).\n clipSphereCenter: { type: Types.VECTOR3 },\n clipRadiusSq: { type: Types.FLOAT },\n // Miscdata.xyzw - all four lanes used.\n clipRadius2Sq: { type: Types.FLOAT },\n impactDataOffset: { type: Types.FLOAT },\n clipSphereFactor2: { type: Types.FLOAT },\n clipSphereFactor: { type: Types.FLOAT },\n // Tr2ShLightingManager::PACKED_COEFFICIENT_COUNT = 7.\n shLightingCoefficients: { type: Types.VECTOR4, count: 7, default: ZERO4 },\n customMaskMaterialIDs: { type: Types.VECTOR4, count: 2 },\n customMaskTargets: { type: Types.VECTOR4, count: 2 },\n // Both slots packed into one vec4: (u0, v0, u1, v1).\n customMaskClamps: { type: Types.VECTOR4 },\n // EveSpaceObject2 never writes this; the children's literal is the\n // only documented neutral (EveChildMesh.cpp:65).\n screenSize: { type: Types.VECTOR4, default: Object.freeze([0.5, 0.5, 0.5, 1]) },\n customData: { type: Types.VECTOR4, default: Object.freeze([0, 0, 0, 0]) }\n }\n }\n});\n\n\n/**\n * EveTurretSet.h:47 (vs) / :63 (ps). The turret translation and rotation rings\n * are filled for VISIBLE turrets only; the remainder stays allocator garbage.\n */\nexport const EveTurretSet = Object.freeze({\n vs: {\n struct: \"EveTurretSetVSData\",\n fields: {\n baseCutoffData: { type: Types.VECTOR4 },\n turretSetData: { type: Types.VECTOR4 },\n shipMatrix: { type: Types.MATRIX4, default: IDENTITY },\n prevShipMatrix: { type: Types.MATRIX4, default: IDENTITY },\n // GPU bone-ring offsets - engine-owned.\n currentBoneOffset: { type: Types.UINT32 },\n prevBoneOffset: { type: Types.UINT32 },\n _unused: { type: Types.UINT32, count: 2 },\n // EVE_MAX_TURRETS_PER_SET (EveTurretSet.h:43)\n turretTranslation: { type: Types.VECTOR4, count: 24 },\n turretRotation: { type: Types.QUATERNION, count: 24 }\n }\n },\n ps: {\n struct: \"EveTurretSetPSData\",\n fields: {\n shipData: { type: Types.VECTOR4 },\n clipData1: { type: Types.VECTOR4 },\n clipRadius2Sq: { type: Types.FLOAT },\n unused: { type: Types.VECTOR3 },\n shLightingCoefficients: { type: Types.VECTOR4, count: 7, default: ZERO4 }\n }\n }\n});\n\n\n/**\n * EveSpaceObject2.h:143 - the merged VS+PS variant used by the instanced path.\n * Uploaded through a STRUCTURED BUFFER rather than a constant buffer\n * (EveInstancedMeshManager.cpp:69-77), so it carries no register.\n *\n * Field order is NOT the same as the EveSpaceObject VS/PS pair: the five clip\n * scalars sit at fields 6-10 here, before the ellipsoid. Since the upload is a\n * raw memcpy, that order is the contract.\n */\nexport const EveSpacePerObject = Object.freeze({\n shared: {\n struct: \"EveSpacePerObjectData\",\n fields: {\n worldTransform: { type: Types.MATRIX4, default: IDENTITY },\n worldTransformLast: { type: Types.MATRIX4, default: IDENTITY },\n invWorldTransform: { type: Types.MATRIX4, default: IDENTITY },\n // This struct's own initialiser is (0,0,0,0), unlike the\n // EveSpaceObject2 constructor's (1,1,0,1).\n shipData: { type: Types.VECTOR4 },\n clipSphereCenter: { type: Types.VECTOR3 },\n clipRadiusSq: { type: Types.FLOAT },\n clipRadius2Sq: { type: Types.FLOAT },\n impactDataOffset: { type: Types.FLOAT },\n clipSphereFactor2: { type: Types.FLOAT },\n clipSphereFactor: { type: Types.FLOAT },\n ellpsoidRadii: { type: Types.VECTOR4 },\n ellpsoidCenter: { type: Types.VECTOR4 },\n // EveSpaceObject2.h:160 initialises this to all-zero, contradicting\n // EveCustomMask::ZeroPerObjectData's IdentityMatrix. The zero path\n // is the live one, so identity wins; reproduced as written.\n customMaskMatrix: { type: Types.MATRIX4, count: 2, default: IDENTITY },\n customMaskData: { type: Types.VECTOR4, count: 2 },\n customMaskMaterialIDs: { type: Types.VECTOR4, count: 2 },\n customMaskTargets: { type: Types.VECTOR4, count: 2 },\n customMaskClamps: { type: Types.VECTOR4 },\n boneOffsets: { type: Types.UINT32, count: 4 },\n customData: { type: Types.VECTOR4 },\n shLighting: { type: Types.VECTOR4, count: 7, default: ZERO4 }\n }\n }\n});\n\n\n/** Tr2ConstantBufferFormats.h:35 - the generic, non-EVE per-object block. */\n/**\n * Tr2ConstantBufferFormats.h:35. Catalogued but deliberately PRODUCERLESS in\n * this package: its only Carbon filler is `Tr2InteriorPlaceable::GetPerObjectData`\n * (Interior/Tr2InteriorPlaceable.cpp:555-585), and interior placeables are not\n * runtime-trinity classes. The layout lives here because the catalog is the\n * org-wide truth, exported on the `/perobject` subpath; whichever package ports\n * the placeable consumes it from there rather than redeclaring it.\n */\nexport const Tr2PerObject = Object.freeze({\n vs: {\n struct: \"Tr2PerObjectVSData\",\n fields: {\n WorldMat: { type: Types.MATRIX4, default: IDENTITY },\n boundingCylinderLocalHeight: { type: Types.FLOAT },\n boundingCylinderLocalXZCenter: { type: Types.VECTOR2 },\n boundingCylinderRotation: { type: Types.FLOAT }\n }\n }\n});\n\n\nconst GROUPS = Object.freeze({\n EveBasic,\n EveMissileWarhead,\n EveSceneStaticParticles,\n EvePerObject,\n EveLensflare,\n EveSpherePin,\n EveChildSpherePin,\n EveSpaceObjectDecal,\n EveBoosterSet,\n EveChildBulletStorm,\n EveStretch2,\n EveSpaceObject,\n EveTurretSet,\n EveSpacePerObject,\n Tr2PerObject\n});\n\n\n/**\n * Resolved per-object layouts, keyed by struct name.\n *\n * Offsets are FLOAT offsets from the start of one record. Carbon's C++ layout\n * needs no padding here because every per-object struct is hand-padded with\n * explicit `_unused` / `padding` members so each float4-sized member already\n * lands on a register boundary; both invariants are asserted at build time.\n */\nexport class CjsPerObjectLayouts\n{\n\n static Types = Types;\n\n static Groups = GROUPS;\n\n /** Resolved layouts by struct name, built once. */\n static #layouts = null;\n\n /**\n * The layout for one struct name, or null when it is not catalogued. A\n * caller must treat null as \"not covered\" and fail rather than guess.\n */\n static Get(struct)\n {\n const layouts = CjsPerObjectLayouts.#Resolved();\n\n return layouts.get(struct) ?? null;\n }\n\n /** Every catalogued struct name. */\n static Names()\n {\n return [...CjsPerObjectLayouts.#Resolved().keys()];\n }\n\n /**\n * A layout in the shape RawData consumes: float offsets keyed by name,\n * plus the stride, stages, and the defaults to apply on allocation.\n *\n * `per-object-layouts.test.js` asserts the encodings agree with\n * `RawDataType`, which constantLayout.js deliberately does not import.\n */\n static ToRawLayout(struct)\n {\n const layout = CjsPerObjectLayouts.Get(struct);\n\n return layout ? toRawLayout(layout) : null;\n }\n\n /** The group a struct belongs to, with its stage key, or null. */\n static Find(struct)\n {\n for (const [group, buffers] of Object.entries(GROUPS))\n {\n for (const [key, buffer] of Object.entries(buffers))\n {\n if (buffer.struct === struct)\n {\n return { group, key, buffer };\n }\n }\n }\n\n return null;\n }\n\n /**\n * The resolved layout map, built once on first use and cached.\n * @returns {Map} struct name -> resolved layout\n */\n static #Resolved()\n {\n if (!CjsPerObjectLayouts.#layouts)\n {\n CjsPerObjectLayouts.#layouts = buildLayouts(GROUPS, \"CjsPerObjectLayouts\");\n }\n\n return CjsPerObjectLayouts.#layouts;\n }\n\n}\n"],"names":["EveBasic","Object","freeze","vs","struct","fields","world","type","Types","MATRIX4","default","IDENTITY","worldLast","worldInverse","EveMissileWarhead","missileSize","VECTOR4","EveSceneStaticParticles","lastWorld","EvePerObject","WorldMat","ps","EveLensflare","shared","directionScale","indices","UINT32","count","EveSpherePin","worldMatrix","pinPosition","pinRotation","pinColor","pinThreshold","pinRadiusPrecalc","pinUV","EveChildSpherePin","EveSpaceObjectDecal","invWorldMatrix","decalMatrix","inverseDecalMatrix","parentBoneMatrix","invParentBoneMatrix","displayData","shipData","clipData","clipRadius2Sq","FLOAT","unused","VECTOR3","shLightingCoefficients","ZERO4","EveBoosterSet","shipMatrix","boosterIntensity","shipSpeed","maxBoosterSize","padding","trailsControlPositions","trailsControlNormals","trailIntensity","warpIntensity","padding2","EveChildBulletStorm","worldTransform","effectInfo","targetPositionsWS","EveStretch2","sourceData","destinationData","effectData","EveSpaceObject","worldTransformLast","invWorldTransform","ellpsoidRadii","ellpsoidCenter","customMaskMatrix","customMaskData","boneOffsets","morphTargetVertexDataOffset","morphTargetAnimationDataOffset","activeMorphTargetsCount","bakedMorphTargetVertexDataOffset","customData","clipSphereCenter","clipRadiusSq","impactDataOffset","clipSphereFactor2","clipSphereFactor","customMaskMaterialIDs","customMaskTargets","customMaskClamps","screenSize","EveTurretSet","baseCutoffData","turretSetData","prevShipMatrix","currentBoneOffset","prevBoneOffset","_unused","turretTranslation","turretRotation","QUATERNION","clipData1","EveSpacePerObject","shLighting","Tr2PerObject","boundingCylinderLocalHeight","boundingCylinderLocalXZCenter","VECTOR2","boundingCylinderRotation","GROUPS","CjsPerObjectLayouts","Groups","Get","layouts","get","Names","keys","ToRawLayout","layout","toRawLayout","Find","group","buffers","entries","key","buffer","#Resolved","buildLayouts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAMA;MACaA,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAC;AAClCC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,uBAAuB;AAC/BC,IAAAA,MAAM,EAAE;AACJC,MAAAA,KAAK,EAAE;QAAEC,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACjDC,MAAAA,SAAS,EAAE;QAAEL,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACrDE,MAAAA,YAAY,EAAE;QAAEN,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;AAAS;AAC3D;AACJ;AACJ,CAAC;;AAGD;MACaG,iBAAiB,GAAGb,MAAM,CAACC,MAAM,CAAC;AAC3CC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,gCAAgC;AACxCC,IAAAA,MAAM,EAAE;AACJC,MAAAA,KAAK,EAAE;QAAEC,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACjDI,MAAAA,WAAW,EAAE;QAAER,IAAI,EAAEC,KAAK,CAACQ;AAAQ;AACvC;AACJ;AACJ,CAAC;;AAGD;MACaC,uBAAuB,GAAGhB,MAAM,CAACC,MAAM,CAAC;AACjDC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,sCAAsC;AAC9CC,IAAAA,MAAM,EAAE;AACJC,MAAAA,KAAK,EAAE;QAAEC,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACjDO,MAAAA,SAAS,EAAE;QAAEX,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;AAAS;AACxD;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;AACA;MACaQ,YAAY,GAAGlB,MAAM,CAACC,MAAM,CAAC;AACtCC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,oBAAoB;AAC5BC,IAAAA,MAAM,EAAE;AAAEe,MAAAA,QAAQ,EAAE;QAAEb,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;AAAS;AAAE;GAClE;AACDU,EAAAA,EAAE,EAAE;AACAjB,IAAAA,MAAM,EAAE,oBAAoB;AAC5BC,IAAAA,MAAM,EAAE;AAAEe,MAAAA,QAAQ,EAAE;QAAEb,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;AAAS;AAAE;AACnE;AACJ,CAAC;;AAGD;AACA;AACA;AACA;MACaW,YAAY,GAAGrB,MAAM,CAACC,MAAM,CAAC;AACtCqB,EAAAA,MAAM,EAAE;AACJnB,IAAAA,MAAM,EAAE,2BAA2B;AACnCC,IAAAA,MAAM,EAAE;AACJmB,MAAAA,cAAc,EAAE;QAAEjB,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACvCS,MAAAA,OAAO,EAAE;QAAElB,IAAI,EAAEC,KAAK,CAACkB,MAAM;AAAEC,QAAAA,KAAK,EAAE;AAAE;AAC5C;AACJ;AACJ,CAAC;;AAGD;MACaC,YAAY,GAAG3B,MAAM,CAACC,MAAM,CAAC;AACtCqB,EAAAA,MAAM,EAAE;AACJnB,IAAAA,MAAM,EAAE,2BAA2B;AACnCC,IAAAA,MAAM,EAAE;AACJwB,MAAAA,WAAW,EAAE;QAAEtB,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACvDmB,MAAAA,WAAW,EAAE;QAAEvB,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACpCe,MAAAA,WAAW,EAAE;QAAExB,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACpCgB,MAAAA,QAAQ,EAAE;QAAEzB,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACjCiB,MAAAA,YAAY,EAAE;QAAE1B,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACrCkB,MAAAA,gBAAgB,EAAE;QAAE3B,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACzCmB,MAAAA,KAAK,EAAE;QAAE5B,IAAI,EAAEC,KAAK,CAACQ;AAAQ;AACjC;AACJ;AACJ,CAAC;;AAGD;MACaoB,iBAAiB,GAAGnC,MAAM,CAACC,MAAM,CAAC;AAC3CqB,EAAAA,MAAM,EAAE;AACJnB,IAAAA,MAAM,EAAE,gCAAgC;AACxCC,IAAAA,MAAM,EAAE;AACJwB,MAAAA,WAAW,EAAE;QAAEtB,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACvDmB,MAAAA,WAAW,EAAE;QAAEvB,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACpCe,MAAAA,WAAW,EAAE;QAAExB,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACpCgB,MAAAA,QAAQ,EAAE;QAAEzB,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACjCiB,MAAAA,YAAY,EAAE;QAAE1B,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACrCkB,MAAAA,gBAAgB,EAAE;QAAE3B,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACzCmB,MAAAA,KAAK,EAAE;QAAE5B,IAAI,EAAEC,KAAK,CAACQ;AAAQ;AACjC;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;AACA;MACaqB,mBAAmB,GAAGpC,MAAM,CAACC,MAAM,CAAC;AAC7CC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,sBAAsB;AAC9BC,IAAAA,MAAM,EAAE;AACJwB,MAAAA,WAAW,EAAE;QAAEtB,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACvD2B,MAAAA,cAAc,EAAE;QAAE/B,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC1D4B,MAAAA,WAAW,EAAE;QAAEhC,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACvD6B,MAAAA,kBAAkB,EAAE;QAAEjC,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC9D8B,MAAAA,gBAAgB,EAAE;QAAElC,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC5D+B,MAAAA,mBAAmB,EAAE;QAAEnC,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;AAAS;AAClE;GACH;AACDU,EAAAA,EAAE,EAAE;AACAjB,IAAAA,MAAM,EAAE,sBAAsB;AAC9BC,IAAAA,MAAM,EAAE;AACJ;AACA;AACAsC,MAAAA,WAAW,EAAE;QAAEpC,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACpC4B,MAAAA,QAAQ,EAAE;QAAErC,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACjC6B,MAAAA,QAAQ,EAAE;QAAEtC,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACjC8B,MAAAA,aAAa,EAAE;QAAEvC,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACpCC,MAAAA,MAAM,EAAE;QAAEzC,IAAI,EAAEC,KAAK,CAACyC;OAAS;AAC/BC,MAAAA,sBAAsB,EAAE;QAAE3C,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE,CAAC;AAAEjB,QAAAA,OAAO,EAAEyC;AAAM;AAC5E;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;AACA;AACA;MACaC,aAAa,GAAGnD,MAAM,CAACC,MAAM,CAAC;AACvCC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,qBAAqB;AAC7BC,IAAAA,MAAM,EAAE;AACJgD,MAAAA,UAAU,EAAE;QAAE9C,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACtD2C,MAAAA,gBAAgB,EAAE;QAAE/C,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACvCQ,MAAAA,SAAS,EAAE;QAAEhD,IAAI,EAAEC,KAAK,CAACuC;OAAO;AAChCS,MAAAA,cAAc,EAAE;QAAEjD,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACrCU,MAAAA,OAAO,EAAE;QAAElD,IAAI,EAAEC,KAAK,CAACuC;OAAO;AAC9B;AACAW,MAAAA,sBAAsB,EAAE;QAAEnD,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAG;AACzDgC,MAAAA,oBAAoB,EAAE;QAAEpD,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;AAAE;AAC1D;GACH;AACDN,EAAAA,EAAE,EAAE;AACAjB,IAAAA,MAAM,EAAE,qBAAqB;AAC7BC,IAAAA,MAAM,EAAE;AACJiD,MAAAA,gBAAgB,EAAE;QAAE/C,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACvCa,MAAAA,cAAc,EAAE;QAAErD,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACrCc,MAAAA,aAAa,EAAE;QAAEtD,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACpCe,MAAAA,QAAQ,EAAE;QAAEvD,IAAI,EAAEC,KAAK,CAACuC;AAAM;AAClC;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;AACA;MACagB,mBAAmB,GAAG9D,MAAM,CAACC,MAAM,CAAC;AAC7CC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,kCAAkC;AAC1CC,IAAAA,MAAM,EAAE;AACJ2D,MAAAA,cAAc,EAAE;QAAEzD,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC1DsD,MAAAA,UAAU,EAAE;QAAE1D,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACnCkD,MAAAA,iBAAiB,EAAE;QAAE3D,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;AAAG;AACxD;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;MACawC,WAAW,GAAGlE,MAAM,CAACC,MAAM,CAAC;AACrCqB,EAAAA,MAAM,EAAE;AACJnB,IAAAA,MAAM,EAAE,0BAA0B;AAClCC,IAAAA,MAAM,EAAE;AACJ+D,MAAAA,UAAU,EAAE;QAAE7D,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACnCqD,MAAAA,eAAe,EAAE;QAAE9D,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACxCsD,MAAAA,UAAU,EAAE;QAAE/D,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;AAAE;AAChD;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACa4C,cAAc,GAAGtE,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,sBAAsB;AAC9BC,IAAAA,MAAM,EAAE;AACJ2D,MAAAA,cAAc,EAAE;QAAEzD,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC1D6D,MAAAA,kBAAkB,EAAE;QAAEjE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC9D8D,MAAAA,iBAAiB,EAAE;QAAElE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC7D;AACA;AACA;AACAiC,MAAAA,QAAQ,EAAE;QAAErC,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEN,QAAAA,OAAO,EAAET,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;OAAG;AACvE2C,MAAAA,QAAQ,EAAE;QAAEtC,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACjC;AACA0D,MAAAA,aAAa,EAAE;QAAEnE,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACtC2D,MAAAA,cAAc,EAAE;QAAEpE,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACvC;AACA;AACA;AACA4D,MAAAA,gBAAgB,EAAE;QAAErE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEkB,QAAAA,KAAK,EAAE,CAAC;AAAEjB,QAAAA,OAAO,EAAEC;OAAU;AACtEkE,MAAAA,cAAc,EAAE;QAAEtE,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAG;AACjD;AACAmD,MAAAA,WAAW,EAAE;QAAEvE,IAAI,EAAEC,KAAK,CAACkB,MAAM;AAAEC,QAAAA,KAAK,EAAE;OAAG;AAC7CoD,MAAAA,2BAA2B,EAAE;QAAExE,IAAI,EAAEC,KAAK,CAACkB;OAAQ;AACnDsD,MAAAA,8BAA8B,EAAE;QAAEzE,IAAI,EAAEC,KAAK,CAACkB;OAAQ;AACtDuD,MAAAA,uBAAuB,EAAE;QAAE1E,IAAI,EAAEC,KAAK,CAACkB;OAAQ;AAC/CwD,MAAAA,gCAAgC,EAAE;QAAE3E,IAAI,EAAEC,KAAK,CAACkB;OAAQ;AACxDyD,MAAAA,UAAU,EAAE;QAAE5E,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEN,QAAAA,OAAO,EAAET,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAAE;AAC5E;GACH;AACDmB,EAAAA,EAAE,EAAE;AACAjB,IAAAA,MAAM,EAAE,sBAAsB;AAC9BC,IAAAA,MAAM,EAAE;AACJ2D,MAAAA,cAAc,EAAE;QAAEzD,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC1D6D,MAAAA,kBAAkB,EAAE;QAAEjE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC9D8D,MAAAA,iBAAiB,EAAE;QAAElE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC7DiC,MAAAA,QAAQ,EAAE;QAAErC,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEN,QAAAA,OAAO,EAAET,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;OAAG;AACvE;AACA;AACAkF,MAAAA,gBAAgB,EAAE;QAAE7E,IAAI,EAAEC,KAAK,CAACyC;OAAS;AACzCoC,MAAAA,YAAY,EAAE;QAAE9E,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACnC;AACAD,MAAAA,aAAa,EAAE;QAAEvC,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACpCuC,MAAAA,gBAAgB,EAAE;QAAE/E,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACvCwC,MAAAA,iBAAiB,EAAE;QAAEhF,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACxCyC,MAAAA,gBAAgB,EAAE;QAAEjF,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACvC;AACAG,MAAAA,sBAAsB,EAAE;QAAE3C,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE,CAAC;AAAEjB,QAAAA,OAAO,EAAEyC;OAAO;AACzEsC,MAAAA,qBAAqB,EAAE;QAAElF,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAG;AACxD+D,MAAAA,iBAAiB,EAAE;QAAEnF,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAG;AACpD;AACAgE,MAAAA,gBAAgB,EAAE;QAAEpF,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACzC;AACA;AACA4E,MAAAA,UAAU,EAAE;QAAErF,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEN,QAAAA,OAAO,EAAET,MAAM,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;OAAG;AAC/EiF,MAAAA,UAAU,EAAE;QAAE5E,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEN,QAAAA,OAAO,EAAET,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAAE;AAC5E;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;MACa2F,YAAY,GAAG5F,MAAM,CAACC,MAAM,CAAC;AACtCC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,oBAAoB;AAC5BC,IAAAA,MAAM,EAAE;AACJyF,MAAAA,cAAc,EAAE;QAAEvF,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACvC+E,MAAAA,aAAa,EAAE;QAAExF,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACtCqC,MAAAA,UAAU,EAAE;QAAE9C,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACtDqF,MAAAA,cAAc,EAAE;QAAEzF,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC1D;AACAsF,MAAAA,iBAAiB,EAAE;QAAE1F,IAAI,EAAEC,KAAK,CAACkB;OAAQ;AACzCwE,MAAAA,cAAc,EAAE;QAAE3F,IAAI,EAAEC,KAAK,CAACkB;OAAQ;AACtCyE,MAAAA,OAAO,EAAE;QAAE5F,IAAI,EAAEC,KAAK,CAACkB,MAAM;AAAEC,QAAAA,KAAK,EAAE;OAAG;AACzC;AACAyE,MAAAA,iBAAiB,EAAE;QAAE7F,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAI;AACrD0E,MAAAA,cAAc,EAAE;QAAE9F,IAAI,EAAEC,KAAK,CAAC8F,UAAU;AAAE3E,QAAAA,KAAK,EAAE;AAAG;AACxD;GACH;AACDN,EAAAA,EAAE,EAAE;AACAjB,IAAAA,MAAM,EAAE,oBAAoB;AAC5BC,IAAAA,MAAM,EAAE;AACJuC,MAAAA,QAAQ,EAAE;QAAErC,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACjCuF,MAAAA,SAAS,EAAE;QAAEhG,IAAI,EAAEC,KAAK,CAACQ;OAAS;AAClC8B,MAAAA,aAAa,EAAE;QAAEvC,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACpCC,MAAAA,MAAM,EAAE;QAAEzC,IAAI,EAAEC,KAAK,CAACyC;OAAS;AAC/BC,MAAAA,sBAAsB,EAAE;QAAE3C,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE,CAAC;AAAEjB,QAAAA,OAAO,EAAEyC;AAAM;AAC5E;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaqD,iBAAiB,GAAGvG,MAAM,CAACC,MAAM,CAAC;AAC3CqB,EAAAA,MAAM,EAAE;AACJnB,IAAAA,MAAM,EAAE,uBAAuB;AAC/BC,IAAAA,MAAM,EAAE;AACJ2D,MAAAA,cAAc,EAAE;QAAEzD,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC1D6D,MAAAA,kBAAkB,EAAE;QAAEjE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC9D8D,MAAAA,iBAAiB,EAAE;QAAElE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AAC7D;AACA;AACAiC,MAAAA,QAAQ,EAAE;QAAErC,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACjCoE,MAAAA,gBAAgB,EAAE;QAAE7E,IAAI,EAAEC,KAAK,CAACyC;OAAS;AACzCoC,MAAAA,YAAY,EAAE;QAAE9E,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACnCD,MAAAA,aAAa,EAAE;QAAEvC,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACpCuC,MAAAA,gBAAgB,EAAE;QAAE/E,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACvCwC,MAAAA,iBAAiB,EAAE;QAAEhF,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACxCyC,MAAAA,gBAAgB,EAAE;QAAEjF,IAAI,EAAEC,KAAK,CAACuC;OAAO;AACvC2B,MAAAA,aAAa,EAAE;QAAEnE,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACtC2D,MAAAA,cAAc,EAAE;QAAEpE,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACvC;AACA;AACA;AACA4D,MAAAA,gBAAgB,EAAE;QAAErE,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEkB,QAAAA,KAAK,EAAE,CAAC;AAAEjB,QAAAA,OAAO,EAAEC;OAAU;AACtEkE,MAAAA,cAAc,EAAE;QAAEtE,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAG;AACjD8D,MAAAA,qBAAqB,EAAE;QAAElF,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAG;AACxD+D,MAAAA,iBAAiB,EAAE;QAAEnF,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE;OAAG;AACpDgE,MAAAA,gBAAgB,EAAE;QAAEpF,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACzC8D,MAAAA,WAAW,EAAE;QAAEvE,IAAI,EAAEC,KAAK,CAACkB,MAAM;AAAEC,QAAAA,KAAK,EAAE;OAAG;AAC7CwD,MAAAA,UAAU,EAAE;QAAE5E,IAAI,EAAEC,KAAK,CAACQ;OAAS;AACnCyF,MAAAA,UAAU,EAAE;QAAElG,IAAI,EAAEC,KAAK,CAACQ,OAAO;AAAEW,QAAAA,KAAK,EAAE,CAAC;AAAEjB,QAAAA,OAAO,EAAEyC;AAAM;AAChE;AACJ;AACJ,CAAC;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACauD,YAAY,GAAGzG,MAAM,CAACC,MAAM,CAAC;AACtCC,EAAAA,EAAE,EAAE;AACAC,IAAAA,MAAM,EAAE,oBAAoB;AAC5BC,IAAAA,MAAM,EAAE;AACJe,MAAAA,QAAQ,EAAE;QAAEb,IAAI,EAAEC,KAAK,CAACC,OAAO;AAAEC,QAAAA,OAAO,EAAEC;OAAU;AACpDgG,MAAAA,2BAA2B,EAAE;QAAEpG,IAAI,EAAEC,KAAK,CAACuC;OAAO;AAClD6D,MAAAA,6BAA6B,EAAE;QAAErG,IAAI,EAAEC,KAAK,CAACqG;OAAS;AACtDC,MAAAA,wBAAwB,EAAE;QAAEvG,IAAI,EAAEC,KAAK,CAACuC;AAAM;AAClD;AACJ;AACJ,CAAC;AAGD,MAAMgE,MAAM,GAAG9G,MAAM,CAACC,MAAM,CAAC;EACzBF,QAAQ;EACRc,iBAAiB;EACjBG,uBAAuB;EACvBE,YAAY;EACZG,YAAY;EACZM,YAAY;EACZQ,iBAAiB;EACjBC,mBAAmB;EACnBe,aAAa;EACbW,mBAAmB;EACnBI,WAAW;EACXI,cAAc;EACdsB,YAAY;EACZW,iBAAiB;AACjBE,EAAAA;AACJ,CAAC,CAAC;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,mBAAmB,CAChC;EAEI,OAAOxG,KAAK,GAAGA,KAAK;EAEpB,OAAOyG,MAAM,GAAGF,MAAM;;AAEtB;EACA,OAAO,QAAQ,GAAG,IAAI;;AAEtB;AACJ;AACA;AACA;EACI,OAAOG,GAAGA,CAAC9G,MAAM,EACjB;AACI,IAAA,MAAM+G,OAAO,GAAGH,mBAAmB,CAAC,SAAS,EAAE;AAE/C,IAAA,OAAOG,OAAO,CAACC,GAAG,CAAChH,MAAM,CAAC,IAAI,IAAI;AACtC,EAAA;;AAEA;EACA,OAAOiH,KAAKA,GACZ;AACI,IAAA,OAAO,CAAC,GAAGL,mBAAmB,CAAC,SAAS,EAAE,CAACM,IAAI,EAAE,CAAC;AACtD,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOC,WAAWA,CAACnH,MAAM,EACzB;AACI,IAAA,MAAMoH,MAAM,GAAGR,mBAAmB,CAACE,GAAG,CAAC9G,MAAM,CAAC;AAE9C,IAAA,OAAOoH,MAAM,GAAGC,WAAW,CAACD,MAAM,CAAC,GAAG,IAAI;AAC9C,EAAA;;AAEA;EACA,OAAOE,IAAIA,CAACtH,MAAM,EAClB;AACI,IAAA,KAAK,MAAM,CAACuH,KAAK,EAAEC,OAAO,CAAC,IAAI3H,MAAM,CAAC4H,OAAO,CAACd,MAAM,CAAC,EACrD;AACI,MAAA,KAAK,MAAM,CAACe,GAAG,EAAEC,MAAM,CAAC,IAAI9H,MAAM,CAAC4H,OAAO,CAACD,OAAO,CAAC,EACnD;AACI,QAAA,IAAIG,MAAM,CAAC3H,MAAM,KAAKA,MAAM,EAC5B;UACI,OAAO;YAAEuH,KAAK;YAAEG,GAAG;AAAEC,YAAAA;WAAQ;AACjC,QAAA;AACJ,MAAA;AACJ,IAAA;AAEA,IAAA,OAAO,IAAI;AACf,EAAA;;AAEA;AACJ;AACA;AACA;EACI,OAAO,SAASC,GAChB;AACI,IAAA,IAAI,CAAChB,mBAAmB,CAAC,QAAQ,EACjC;MACIA,mBAAmB,CAAC,QAAQ,GAAGiB,YAAY,CAAClB,MAAM,EAAE,qBAAqB,CAAC;AAC9E,IAAA;IAEA,OAAOC,mBAAmB,CAAC,QAAQ;AACvC,EAAA;AAEJ;;;;"}
@@ -1,21 +1,51 @@
1
+ import { CjsPerFrameLayouts } from './CjsPerFrameLayouts.js';
2
+ import { CjsPerObjectLayouts } from './CjsPerObjectLayouts.js';
3
+
1
4
  // GPU-free per-object / per-frame constant data.
2
5
  //
3
6
  // A RawData is a thin, write-mostly view over a slice of a packed constant
4
7
  // buffer: name -> encoded bytes. It is NOT a CjsModel (no persistence, no
5
- // reactivity) - it is transient GPU staging, produced fresh each frame and
6
- // consumed by the engine's uploader.
8
+ // reactivity) - it is GPU staging. Most records are leased per frame from the
9
+ // arena and consumed by the engine's uploader; a few are PERSISTENT, owned by
10
+ // an object across frames via RawData.create and marked with Invalidate.
7
11
  //
8
- // Design + rationale: runtime-trinity/agents/PER-OBJECT-DATA-DESIGN-2026-07-24.md
9
- // Transpose contract (why matrices are stored transposed): the
10
- // carbon-math-conventions skill, "GPU upload: the transpose contract".
12
+ // Why matrices are stored transposed: Carbon transposes every per-object matrix
13
+ // on its way to the GPU (`m_vsData.worldTransform = Transpose( m_worldTransform )`
14
+ // and every other PopulatePerObjectData), because HLSL constant buffers pack
15
+ // column_major by default while Carbon's Matrix is row-major. The requirement is
16
+ // the shader's, not a math-library artifact, so the port pays it identically.
11
17
  //
12
18
  // Verbs (name ALWAYS first - a keyed store, not a math op):
13
- // Set(name, value) logical value in, ENCODED into the buffer
14
- // SetRaw(name, value) bytes in, NO encoding (value is already GPU-form)
15
- // Copy(name, out) bytes OUT into a caller buffer - never a reference
16
- // There is intentionally no Get: the payload is write-only from Trinity's
17
- // side (every field derives from logical inputs the fill already holds), and
18
- // the uploader reads the whole packed slice via GetData().
19
+ // SetAndTranspose(name, value) a MATRIX4 field; PERFORMS the transpose
20
+ // GetTransposed(name) a MATRIX4 field; returns what is stored
21
+ // Set(name, value) / Get(name) everything else; both throw on a matrix
22
+ // Copy(name, out) bytes OUT into a caller-owned buffer
23
+ // ...Index(name, index, ...) one element of an array field
24
+ //
25
+ // Every matrix is stored TRANSPOSED, so Set/Get refuse matrix fields and name
26
+ // the pair to use instead. The orientation is stated at the call site and
27
+ // checked at runtime rather than remembered. There is no SetRaw: its only two
28
+ // uses computed Inverse(Transpose(M)), which equals Transpose(Inverse(M)), so
29
+ // inverting the logical matrix gives the same bytes. See the
30
+ // carbon-math-conventions skill, F6.
31
+ //
32
+ // The indexed forms exist because Carbon fills arrays PARTIALLY - it writes
33
+ // m_turretTranslation[i] for VISIBLE turrets only, and the unwritten tail keeps
34
+ // whatever the arena held. A whole-array write would destroy that parity.
35
+ //
36
+ // Get returns a LIVE reference into the buffer, so writing through it is a
37
+ // zero-copy write. That is deliberate: Carbon hands out a raw pointer into
38
+ // m_psData for exactly this (EveSpaceObject2.cpp:1877-1883).
39
+ //
40
+ // MULTI-PAYLOAD RENDERABLES: Carbon's dominant composite shape is a distinct
41
+ // VS struct + PS struct uploaded as TWO constant buffers (turret, decal,
42
+ // booster, the Tr2PerObjectDataWithPersistentBuffers family). That is TWO
43
+ // Allocs here, returned from GetPerObjectData as a plain record:
44
+ // { vs: store.Alloc("DecalVSPerObjectData"), ps: store.Alloc("DecalPSPerObjectData") }
45
+ // The batch pipeline threads the record through untouched. A payload bound to
46
+ // more than one stage from the SAME bytes (sphere pin, lensflare) stays ONE
47
+ // RawData whose struct is registered with stages: ["vs", "ps"] - the engine
48
+ // reads the binding from GetLayout().stages.
19
49
 
20
50
  /**
21
51
  * The encoding KIND of a struct field - a packing directive, not a math type.
@@ -29,7 +59,23 @@ const RawDataType = Object.freeze({
29
59
  VECTOR: "vector",
30
60
  /** Integer bit-cast into the float buffer's Uint32 lanes (e.g. bone offsets). */
31
61
  UINT: "uint",
32
- /** mat4 packed column-stride into 12 floats (Carbon Float4x3; skill gotcha 7). */
62
+ /**
63
+ * SIGNED integer bit-cast (two's complement) - e.g. the interior lightCount.
64
+ * Same bytes as UINT for non-negatives; kept distinct so a reflection-based
65
+ * packer can type the lane i32 vs u32.
66
+ */
67
+ INT: "int",
68
+ /**
69
+ * mat4 packed column-stride into 12 floats (Carbon Float4x3; skill gotcha 7).
70
+ *
71
+ * No CATALOGUED struct has a Float4x3 field - Carbon's per-object structs
72
+ * carry bone ring OFFSETS, not the palette itself - so this encoder is
73
+ * currently exercised only by `test/raw-data.test.js`. It is kept rather than
74
+ * removed because the packing rule it encodes is the one that shipped wrong
75
+ * once already (row-stride instead of column-stride, invisible for identity
76
+ * bones), and `Tr2GrannyAnimation` maintains exactly such a palette. If a
77
+ * struct ever declares a Float4x3, this is the encoder it needs.
78
+ */
33
79
  MATRIX_3X4: "matrix3x4"
34
80
  });
35
81
 
@@ -39,6 +85,13 @@ const RawDataType = Object.freeze({
39
85
  * the slice start (the views are already sliced to this struct's slot).
40
86
  * `size` is the DESTINATION footprint in floats per element.
41
87
  */
88
+ // Module scratch for wrapping a scalar write. Written and consumed inside one
89
+ // synchronous encoder call, so it never outlives the statement that filled it.
90
+ const SCALAR_SCRATCH = [0];
91
+ function SCALAR_SCRATCH_SET(value) {
92
+ SCALAR_SCRATCH[0] = value;
93
+ return SCALAR_SCRATCH;
94
+ }
42
95
  const RawDataEncoders = Object.freeze({
43
96
  [RawDataType.MATRIX](floats, _uints, field, value) {
44
97
  const n = Math.sqrt(field.size);
@@ -67,6 +120,15 @@ const RawDataEncoders = Object.freeze({
67
120
  uints[field.offset + index] = value[index] >>> 0;
68
121
  }
69
122
  },
123
+ [RawDataType.INT](_floats, uints, field, value) {
124
+ const total = field.size * field.elements;
125
+
126
+ // Uint32 assignment stores the two's-complement bit pattern, which is
127
+ // exactly what a signed lane needs (-1 -> 0xFFFFFFFF).
128
+ for (let index = 0; index < total; index++) {
129
+ uints[field.offset + index] = value[index] | 0;
130
+ }
131
+ },
70
132
  [RawDataType.MATRIX_3X4](floats, _uints, field, value) {
71
133
  // Column-stride pack of a 16-float mat4 into 12 floats (size must be 12):
72
134
  // rows come from (v0,v4,v8,v12) / (v1,v5,v9,v13) / (v2,v6,v10,v14).
@@ -85,7 +147,7 @@ const RawDataEncoders = Object.freeze({
85
147
 
86
148
  /**
87
149
  * A packed constant-data slice bound to a resolved layout. Instances are
88
- * handed out by a RawDataStore (transient, arena-backed) or constructed
150
+ * handed out by a TriPoolAllocator (transient, arena-backed) or constructed
89
151
  * directly by an object that owns a persistent buffer.
90
152
  */
91
153
  class RawData {
@@ -98,15 +160,28 @@ class RawData {
98
160
  /** Uint32 view over the SAME bytes, for UINT lanes. */
99
161
  #uints = null;
100
162
 
163
+ /** Whether the payload has changed since an uploader last matched it. */
164
+ #dirty = true;
165
+
166
+ /** Catalogued struct name, when this record was built from one. */
167
+ #struct = null;
168
+
101
169
  /**
102
170
  * @param {object} layout - resolved layout for one struct
103
171
  * @param {Float32Array} floats - the slice (start = struct slot)
104
172
  * @param {Uint32Array} uints - Uint32 view over the same slice
173
+ * @param {String} [struct] - catalogued struct name, when there is one
105
174
  */
106
- constructor(layout, floats, uints) {
175
+ constructor(layout, floats, uints, struct = null) {
107
176
  this.#layout = layout;
108
177
  this.#floats = floats;
109
178
  this.#uints = uints;
179
+ this.#struct = struct;
180
+ }
181
+
182
+ /** The catalogued struct name, or null for an ad-hoc record. */
183
+ GetStruct() {
184
+ return this.#struct;
110
185
  }
111
186
 
112
187
  /** Whether a field exists in the layout. */
@@ -115,47 +190,47 @@ class RawData {
115
190
  }
116
191
 
117
192
  /**
118
- * Write a LOGICAL value, encoded per the field's kind (MATRIX transposes,
119
- * UINT bit-casts, MATRIX_3X4 column-stride packs, VECTOR copies).
193
+ * Resolve a field, optionally narrowed to ONE element of an array field.
194
+ * The narrowed view shifts the offset by element * size and clamps
195
+ * elements to 1, so every verb writes exactly one slot and the unwritten
196
+ * tail keeps its arena bytes (Carbon's visible-turrets-only fill).
120
197
  */
121
- Set(name, value) {
198
+ #Field(name, element) {
122
199
  const field = this.#layout.fields[name];
123
200
  if (!field) {
124
201
  throw new Error(`RawData: unknown field "${name}"`);
125
202
  }
126
- const encoder = RawDataEncoders[field.encoding];
127
- if (!encoder) {
128
- throw new Error(`RawData: no encoder for encoding "${field.encoding}" (field "${name}")`);
203
+ if (element === undefined) {
204
+ return field;
129
205
  }
130
- encoder(this.#floats, this.#uints, field, value);
206
+ if (!Number.isInteger(element) || element < 0 || element >= field.elements) {
207
+ throw new Error(`RawData: element ${element} is out of range for field "${name}" (elements: ${field.elements})`);
208
+ }
209
+ return {
210
+ offset: field.offset + element * field.size,
211
+ size: field.size,
212
+ elements: 1,
213
+ encoding: field.encoding
214
+ };
131
215
  }
132
216
 
133
217
  /**
134
- * Write bytes that are ALREADY in GPU form - no encoding. Mirrors Carbon's
135
- * direct member write (e.g. worldInverse computed from an already-transposed
136
- * world). Copies up to the field's footprint.
218
+ * Write a LOGICAL value, encoded per the field's kind (MATRIX transposes,
219
+ * UINT/INT bit-cast, MATRIX_3X4 column-stride packs, VECTOR copies). Pass
220
+ * `element` to write one slot of an array field.
137
221
  */
138
- SetRaw(name, value) {
139
- const field = this.#layout.fields[name];
140
- if (!field) {
141
- throw new Error(`RawData: unknown field "${name}"`);
142
- }
143
- const total = Math.min(field.size * field.elements, value.length);
144
- for (let index = 0; index < total; index++) {
145
- this.#floats[field.offset + index] = value[index];
146
- }
222
+ Set(name, value, element) {
223
+ this.#NotMatrix(name, "Set");
224
+ this.#Write(this.#Field(name, element), name, value);
147
225
  }
148
226
 
149
227
  /**
150
228
  * Copy a field's packed bytes OUT into a caller-owned buffer. Never returns
151
229
  * a reference into the payload. Debug / inspection only - the render path is
152
- * write-only.
230
+ * write-only. Pass `element` to copy one slot of an array field.
153
231
  */
154
- Copy(name, out) {
155
- const field = this.#layout.fields[name];
156
- if (!field) {
157
- throw new Error(`RawData: unknown field "${name}"`);
158
- }
232
+ Copy(name, out, element) {
233
+ const field = this.#Field(name, element);
159
234
  const total = field.size * field.elements;
160
235
  for (let index = 0; index < total; index++) {
161
236
  out[index] = this.#floats[field.offset + index];
@@ -163,6 +238,215 @@ class RawData {
163
238
  return out;
164
239
  }
165
240
 
241
+ /**
242
+ * Write a matrix, transposing it into the buffer.
243
+ *
244
+ * Carbon stores every per-object matrix transposed (`m_vsData.worldTransform
245
+ * = Transpose( m_worldTransform )`), so the record is GPU-form and terminal.
246
+ * This method performs the transpose, which means a producer passes its
247
+ * LOGICAL matrix and cannot forget the step; it also transposes straight into
248
+ * the destination, so no scratch matrix is needed.
249
+ *
250
+ * Matrix fields only. See carbon-math-conventions F1/F6.
251
+ */
252
+ SetAndTranspose(name, value) {
253
+ this.#AssertMatrix(name);
254
+ this.#Write(this.#Field(name, undefined), name, value);
255
+ }
256
+
257
+ /** SetAndTranspose for one element of an array field, e.g. customMaskMatrix. */
258
+ SetAndTransposeIndex(name, index, value) {
259
+ this.#AssertMatrix(name);
260
+ this.#Write(this.#Field(name, index), name, value);
261
+ }
262
+
263
+ /** Write one element of an array field. Non-matrix fields only. */
264
+ SetIndex(name, index, value) {
265
+ this.#NotMatrix(name, "SetIndex");
266
+ this.#Write(this.#Field(name, index), name, value);
267
+ }
268
+
269
+ /** Encodes one value into a resolved field. */
270
+ #Write(field, name, value) {
271
+ const encoder = RawDataEncoders[field.encoding];
272
+ if (!encoder) {
273
+ throw new Error(`RawData: no encoder for encoding "${field.encoding}" (field "${name}")`);
274
+ }
275
+ encoder(this.#floats, this.#uints, field, this.#Normalize(field, name, value));
276
+ }
277
+
278
+ /**
279
+ * Every encoder reads `value[index]`, so a bare number would write NaN into
280
+ * each lane instead of failing. A single-lane field - a float, a uint, an
281
+ * int - is unambiguous, so accept the scalar and wrap it; anything wider
282
+ * must be indexable, and says so rather than silently filling with NaN.
283
+ */
284
+ #Normalize(field, name, value) {
285
+ if (typeof value === "number") {
286
+ if (field.size * field.elements !== 1) {
287
+ throw new Error(`RawData: field "${name}" is ${field.size * field.elements} lanes wide ` + "and needs an indexable value, not a number");
288
+ }
289
+ return SCALAR_SCRATCH_SET(value);
290
+ }
291
+ return value;
292
+ }
293
+
294
+ /**
295
+ * A live reference into the buffer for one field - writing through it is a
296
+ * zero-copy write, which is deliberate: Carbon hands out a raw pointer into
297
+ * `m_psData` for exactly this (GetParentData, cpp:1877-1883).
298
+ *
299
+ * Non-matrix fields only; a matrix is transposed and indistinguishable from a
300
+ * logical one, so it must be read through GetTransposed.
301
+ */
302
+ Get(name) {
303
+ this.#NotMatrix(name, "Get");
304
+ return this.#View(this.#Field(name, undefined));
305
+ }
306
+
307
+ /** Get for one element of an array field. Non-matrix fields only. */
308
+ GetIndex(name, index) {
309
+ this.#NotMatrix(name, "GetIndex");
310
+ return this.#View(this.#Field(name, index));
311
+ }
312
+
313
+ /**
314
+ * A live reference to a stored matrix. The value IS transposed - the name
315
+ * says so at the call site, because doing maths with it as though it were
316
+ * logical is silently wrong.
317
+ */
318
+ GetTransposed(name) {
319
+ this.#AssertMatrix(name);
320
+ return this.#View(this.#Field(name, undefined));
321
+ }
322
+
323
+ /** GetTransposed for one element of an array field. */
324
+ GetTransposedIndex(name, index) {
325
+ this.#AssertMatrix(name);
326
+ return this.#View(this.#Field(name, index));
327
+ }
328
+
329
+ /** Copy one element of an array field out into a caller-owned buffer. */
330
+ CopyIndex(name, index, out) {
331
+ return this.Copy(name, out, index);
332
+ }
333
+
334
+ /**
335
+ * Zero every byte - Carbon's `memset( &data, 0, sizeof(data) )`. Declared
336
+ * defaults are NOT re-applied: memset does not respect them either, and a
337
+ * caller that wants them writes them back explicitly, as Carbon does.
338
+ */
339
+ Zero() {
340
+ this.#floats.fill(0);
341
+ this.#dirty = true;
342
+ return this;
343
+ }
344
+
345
+ /**
346
+ * Copy another record's bytes into this one wholesale - Carbon's by-value
347
+ * struct assignment (`vsData = m_vsData`, cpp:1487). Both records must carry
348
+ * the SAME layout: the bytes are copied without re-encoding, so a mismatched
349
+ * stride would silently reinterpret every field after the first difference.
350
+ */
351
+ CopyFrom(other) {
352
+ const source = other?.GetLayout?.();
353
+
354
+ // A store-registered layout and a RawData.create layout are distinct
355
+ // objects for the same struct, so identity cannot be the only test - but
356
+ // the STRIDE cannot stand in for it either: EveSpaceObjectVSData and
357
+ // EveSpaceObjectPSData are both 116 floats and share nothing else. The
358
+ // struct name is the test; an unnamed ad-hoc record needs the same layout
359
+ // object.
360
+ const sameStruct = this.#struct !== null && other.GetStruct?.() === this.#struct;
361
+ if (!source || !sameStruct && source !== this.#layout) {
362
+ throw new Error(`RawData: CopyFrom requires a record of the same struct (this "${this.#struct}", other "${other?.GetStruct?.() ?? "unknown"}")`);
363
+ }
364
+ this.#floats.set(other.GetData());
365
+ this.#dirty = true;
366
+ return this;
367
+ }
368
+
369
+ /** A Float32 view over one field's lanes, sharing the record's bytes. */
370
+ #View(field) {
371
+ const total = field.size * field.elements;
372
+ return this.#floats.subarray(field.offset, field.offset + total);
373
+ }
374
+
375
+ /** Asserts a field IS a matrix. */
376
+ #AssertMatrix(name) {
377
+ const field = this.#Field(name, undefined);
378
+ if (field.encoding !== RawDataType.MATRIX) {
379
+ throw new Error(`RawData: field "${name}" is "${field.encoding}", not a matrix - use Set/Get, not the transposed pair`);
380
+ }
381
+ }
382
+
383
+ /** Asserts a field is NOT a matrix, so the orientation cannot be lost. */
384
+ #NotMatrix(name, verb) {
385
+ const field = this.#Field(name, undefined);
386
+ if (field.encoding === RawDataType.MATRIX) {
387
+ throw new Error(`RawData: field "${name}" is a matrix and is stored TRANSPOSED - ` + `use ${verb.startsWith("Set") ? "SetAndTranspose" : "GetTransposed"}, not ${verb}`);
388
+ }
389
+ }
390
+
391
+ /**
392
+ * Marks the payload as changed since the engine last uploaded it.
393
+ *
394
+ * Only meaningful for a PERSISTENT record - one owned by an object across
395
+ * frames rather than leased from the arena. Carbon's equivalent is
396
+ * `Tr2PersistentPerObjectData::InvalidateBufferData`, called once per frame
397
+ * from the owner's async update (EveSpaceObject2.cpp:626-627); when the flag
398
+ * is clear the engine rebinds the existing GPU buffer with no lock and no
399
+ * memcpy (Tr2PersistentPerObjectData.h:118-124).
400
+ *
401
+ * A transient arena record needs none of this - it is filled and consumed
402
+ * within the frame - so the flag simply stays true there.
403
+ */
404
+ Invalidate() {
405
+ this.#dirty = true;
406
+ return this;
407
+ }
408
+
409
+ /** Whether the payload has changed since ClearDirty. */
410
+ IsDirty() {
411
+ return this.#dirty;
412
+ }
413
+
414
+ /** Called by an uploader once the GPU buffer matches this payload. */
415
+ ClearDirty() {
416
+ this.#dirty = false;
417
+ return this;
418
+ }
419
+
420
+ /**
421
+ * A PERSISTENT record: one this object owns across frames, with its own
422
+ * buffer, outside the arena.
423
+ *
424
+ * This is Carbon's second per-object shape. Most payloads are leased from the
425
+ * frame pool and die at Reset, but five types keep theirs as members because
426
+ * the values are stable across a frame AND are read back - EveSpaceObject2
427
+ * reads its own stored matrices (cpp:3747) and hands shLighting to
428
+ * attachments as a live pointer (cpp:1877-1883). Those are the records that
429
+ * want Get/GetTransposed.
430
+ *
431
+ * Defaults are applied once here rather than per allocation.
432
+ *
433
+ * Both catalogs are consulted. Per-frame buffers are only ever persistent -
434
+ * the scene owns them across the frame and reads them back - so they have no
435
+ * transient counterpart and never appear in an arena lease.
436
+ */
437
+ static create(struct) {
438
+ const layout = CjsPerObjectLayouts.ToRawLayout(struct) ?? CjsPerFrameLayouts.ToRawLayout(struct);
439
+ if (!layout) {
440
+ throw new Error(`RawData: struct "${struct}" is in neither CjsPerObjectLayouts nor CjsPerFrameLayouts`);
441
+ }
442
+ const floats = new Float32Array(layout.stride);
443
+ const uints = new Uint32Array(floats.buffer);
444
+ for (const preset of layout.defaults) {
445
+ floats.set(preset.values, preset.offset);
446
+ }
447
+ return new RawData(layout, floats, uints, struct);
448
+ }
449
+
166
450
  /** The packed Float32 slice - what the engine uploader memcpys/binds. */
167
451
  GetData() {
168
452
  return this.#floats;
@@ -1 +1 @@
1
- {"version":3,"file":"RawData.js","sources":["../../../../src/trinityCore/rawData/RawData.js"],"sourcesContent":["// GPU-free per-object / per-frame constant data.\n//\n// A RawData is a thin, write-mostly view over a slice of a packed constant\n// buffer: name -> encoded bytes. It is NOT a CjsModel (no persistence, no\n// reactivity) - it is transient GPU staging, produced fresh each frame and\n// consumed by the engine's uploader.\n//\n// Design + rationale: runtime-trinity/agents/PER-OBJECT-DATA-DESIGN-2026-07-24.md\n// Transpose contract (why matrices are stored transposed): the\n// carbon-math-conventions skill, \"GPU upload: the transpose contract\".\n//\n// Verbs (name ALWAYS first - a keyed store, not a math op):\n// Set(name, value) logical value in, ENCODED into the buffer\n// SetRaw(name, value) bytes in, NO encoding (value is already GPU-form)\n// Copy(name, out) bytes OUT into a caller buffer - never a reference\n// There is intentionally no Get: the payload is write-only from Trinity's\n// side (every field derives from logical inputs the fill already holds), and\n// the uploader reads the whole packed slice via GetData().\n\n/**\n * The encoding KIND of a struct field - a packing directive, not a math type.\n * Selects which encoder writes the bytes. Constants (not bare strings) so a\n * typo throws at the lookup instead of silently packing wrong.\n */\nexport const RawDataType = Object.freeze({\n /** Square matrix, stored TRANSPOSED (HLSL column_major). N inferred from size. */\n MATRIX: \"matrix\",\n /** Straight copy - float / vec2 / vec3 / vec4. */\n VECTOR: \"vector\",\n /** Integer bit-cast into the float buffer's Uint32 lanes (e.g. bone offsets). */\n UINT: \"uint\",\n /** mat4 packed column-stride into 12 floats (Carbon Float4x3; skill gotcha 7). */\n MATRIX_3X4: \"matrix3x4\"\n});\n\n/**\n * Encoders: (floats, uints, field, value) -> void. `field` is the resolved\n * layout entry { offset, size, elements, encoding } with offset RELATIVE to\n * the slice start (the views are already sliced to this struct's slot).\n * `size` is the DESTINATION footprint in floats per element.\n */\nexport const RawDataEncoders = Object.freeze({\n [RawDataType.MATRIX](floats, _uints, field, value)\n {\n const n = Math.sqrt(field.size);\n\n for (let element = 0; element < field.elements; element++)\n {\n const source = element * field.size;\n const destination = field.offset + element * field.size;\n\n // Transpose on the shared byte layout: buffer(r,c) = value(c,r). This is\n // exactly Carbon's `= Transpose(m)` staging fill.\n for (let row = 0; row < n; row++)\n {\n for (let column = 0; column < n; column++)\n {\n floats[destination + row * n + column] = value[source + column * n + row];\n }\n }\n }\n },\n\n [RawDataType.VECTOR](floats, _uints, field, value)\n {\n const total = field.size * field.elements;\n\n for (let index = 0; index < total; index++)\n {\n floats[field.offset + index] = value[index];\n }\n },\n\n [RawDataType.UINT](_floats, uints, field, value)\n {\n const total = field.size * field.elements;\n\n for (let index = 0; index < total; index++)\n {\n uints[field.offset + index] = value[index] >>> 0;\n }\n },\n\n [RawDataType.MATRIX_3X4](floats, _uints, field, value)\n {\n // Column-stride pack of a 16-float mat4 into 12 floats (size must be 12):\n // rows come from (v0,v4,v8,v12) / (v1,v5,v9,v13) / (v2,v6,v10,v14).\n for (let element = 0; element < field.elements; element++)\n {\n const source = element * 16;\n const destination = field.offset + element * field.size;\n\n for (let row = 0; row < 3; row++)\n {\n floats[destination + row * 4 + 0] = value[source + row + 0];\n floats[destination + row * 4 + 1] = value[source + row + 4];\n floats[destination + row * 4 + 2] = value[source + row + 8];\n floats[destination + row * 4 + 3] = value[source + row + 12];\n }\n }\n }\n});\n\n/**\n * A packed constant-data slice bound to a resolved layout. Instances are\n * handed out by a RawDataStore (transient, arena-backed) or constructed\n * directly by an object that owns a persistent buffer.\n */\nexport class RawData\n{\n /** Resolved layout: { fields: { name -> { offset, size, elements, encoding } }, stride }. */\n #layout = null;\n\n /** Float32 view of this struct's slot (offsets are relative to its start). */\n #floats = null;\n\n /** Uint32 view over the SAME bytes, for UINT lanes. */\n #uints = null;\n\n /**\n * @param {object} layout - resolved layout for one struct\n * @param {Float32Array} floats - the slice (start = struct slot)\n * @param {Uint32Array} uints - Uint32 view over the same slice\n */\n constructor(layout, floats, uints)\n {\n this.#layout = layout;\n this.#floats = floats;\n this.#uints = uints;\n }\n\n /** Whether a field exists in the layout. */\n Has(name)\n {\n return Object.prototype.hasOwnProperty.call(this.#layout.fields, name);\n }\n\n /**\n * Write a LOGICAL value, encoded per the field's kind (MATRIX transposes,\n * UINT bit-casts, MATRIX_3X4 column-stride packs, VECTOR copies).\n */\n Set(name, value)\n {\n const field = this.#layout.fields[name];\n\n if (!field)\n {\n throw new Error(`RawData: unknown field \"${name}\"`);\n }\n\n const encoder = RawDataEncoders[field.encoding];\n\n if (!encoder)\n {\n throw new Error(`RawData: no encoder for encoding \"${field.encoding}\" (field \"${name}\")`);\n }\n\n encoder(this.#floats, this.#uints, field, value);\n }\n\n /**\n * Write bytes that are ALREADY in GPU form - no encoding. Mirrors Carbon's\n * direct member write (e.g. worldInverse computed from an already-transposed\n * world). Copies up to the field's footprint.\n */\n SetRaw(name, value)\n {\n const field = this.#layout.fields[name];\n\n if (!field)\n {\n throw new Error(`RawData: unknown field \"${name}\"`);\n }\n\n const total = Math.min(field.size * field.elements, value.length);\n\n for (let index = 0; index < total; index++)\n {\n this.#floats[field.offset + index] = value[index];\n }\n }\n\n /**\n * Copy a field's packed bytes OUT into a caller-owned buffer. Never returns\n * a reference into the payload. Debug / inspection only - the render path is\n * write-only.\n */\n Copy(name, out)\n {\n const field = this.#layout.fields[name];\n\n if (!field)\n {\n throw new Error(`RawData: unknown field \"${name}\"`);\n }\n\n const total = field.size * field.elements;\n\n for (let index = 0; index < total; index++)\n {\n out[index] = this.#floats[field.offset + index];\n }\n\n return out;\n }\n\n /** The packed Float32 slice - what the engine uploader memcpys/binds. */\n GetData()\n {\n return this.#floats;\n }\n\n /** The resolved layout (offsets/sizes/encodings) - the engine's bind map. */\n GetLayout()\n {\n return this.#layout;\n }\n}\n"],"names":["RawDataType","Object","freeze","MATRIX","VECTOR","UINT","MATRIX_3X4","RawDataEncoders","floats","_uints","field","value","n","Math","sqrt","size","element","elements","source","destination","offset","row","column","total","index","_floats","uints","RawData","constructor","layout","Has","name","prototype","hasOwnProperty","call","fields","Set","Error","encoder","encoding","SetRaw","min","length","Copy","out","GetData","GetLayout"],"mappings":"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"}
1
+ {"version":3,"file":"RawData.js","sources":["../../../../src/trinityCore/rawData/RawData.js"],"sourcesContent":["import { CjsPerFrameLayouts } from \"./CjsPerFrameLayouts.js\";\nimport { CjsPerObjectLayouts } from \"./CjsPerObjectLayouts.js\";\n\n\n// GPU-free per-object / per-frame constant data.\n//\n// A RawData is a thin, write-mostly view over a slice of a packed constant\n// buffer: name -> encoded bytes. It is NOT a CjsModel (no persistence, no\n// reactivity) - it is GPU staging. Most records are leased per frame from the\n// arena and consumed by the engine's uploader; a few are PERSISTENT, owned by\n// an object across frames via RawData.create and marked with Invalidate.\n//\n// Why matrices are stored transposed: Carbon transposes every per-object matrix\n// on its way to the GPU (`m_vsData.worldTransform = Transpose( m_worldTransform )`\n// and every other PopulatePerObjectData), because HLSL constant buffers pack\n// column_major by default while Carbon's Matrix is row-major. The requirement is\n// the shader's, not a math-library artifact, so the port pays it identically.\n//\n// Verbs (name ALWAYS first - a keyed store, not a math op):\n// SetAndTranspose(name, value) a MATRIX4 field; PERFORMS the transpose\n// GetTransposed(name) a MATRIX4 field; returns what is stored\n// Set(name, value) / Get(name) everything else; both throw on a matrix\n// Copy(name, out) bytes OUT into a caller-owned buffer\n// ...Index(name, index, ...) one element of an array field\n//\n// Every matrix is stored TRANSPOSED, so Set/Get refuse matrix fields and name\n// the pair to use instead. The orientation is stated at the call site and\n// checked at runtime rather than remembered. There is no SetRaw: its only two\n// uses computed Inverse(Transpose(M)), which equals Transpose(Inverse(M)), so\n// inverting the logical matrix gives the same bytes. See the\n// carbon-math-conventions skill, F6.\n//\n// The indexed forms exist because Carbon fills arrays PARTIALLY - it writes\n// m_turretTranslation[i] for VISIBLE turrets only, and the unwritten tail keeps\n// whatever the arena held. A whole-array write would destroy that parity.\n//\n// Get returns a LIVE reference into the buffer, so writing through it is a\n// zero-copy write. That is deliberate: Carbon hands out a raw pointer into\n// m_psData for exactly this (EveSpaceObject2.cpp:1877-1883).\n//\n// MULTI-PAYLOAD RENDERABLES: Carbon's dominant composite shape is a distinct\n// VS struct + PS struct uploaded as TWO constant buffers (turret, decal,\n// booster, the Tr2PerObjectDataWithPersistentBuffers family). That is TWO\n// Allocs here, returned from GetPerObjectData as a plain record:\n// { vs: store.Alloc(\"DecalVSPerObjectData\"), ps: store.Alloc(\"DecalPSPerObjectData\") }\n// The batch pipeline threads the record through untouched. A payload bound to\n// more than one stage from the SAME bytes (sphere pin, lensflare) stays ONE\n// RawData whose struct is registered with stages: [\"vs\", \"ps\"] - the engine\n// reads the binding from GetLayout().stages.\n\n/**\n * The encoding KIND of a struct field - a packing directive, not a math type.\n * Selects which encoder writes the bytes. Constants (not bare strings) so a\n * typo throws at the lookup instead of silently packing wrong.\n */\nexport const RawDataType = Object.freeze({\n /** Square matrix, stored TRANSPOSED (HLSL column_major). N inferred from size. */\n MATRIX: \"matrix\",\n\n /** Straight copy - float / vec2 / vec3 / vec4. */\n VECTOR: \"vector\",\n\n /** Integer bit-cast into the float buffer's Uint32 lanes (e.g. bone offsets). */\n UINT: \"uint\",\n\n /**\n * SIGNED integer bit-cast (two's complement) - e.g. the interior lightCount.\n * Same bytes as UINT for non-negatives; kept distinct so a reflection-based\n * packer can type the lane i32 vs u32.\n */\n INT: \"int\",\n\n /**\n * mat4 packed column-stride into 12 floats (Carbon Float4x3; skill gotcha 7).\n *\n * No CATALOGUED struct has a Float4x3 field - Carbon's per-object structs\n * carry bone ring OFFSETS, not the palette itself - so this encoder is\n * currently exercised only by `test/raw-data.test.js`. It is kept rather than\n * removed because the packing rule it encodes is the one that shipped wrong\n * once already (row-stride instead of column-stride, invisible for identity\n * bones), and `Tr2GrannyAnimation` maintains exactly such a palette. If a\n * struct ever declares a Float4x3, this is the encoder it needs.\n */\n MATRIX_3X4: \"matrix3x4\"\n});\n\n/**\n * Encoders: (floats, uints, field, value) -> void. `field` is the resolved\n * layout entry { offset, size, elements, encoding } with offset RELATIVE to\n * the slice start (the views are already sliced to this struct's slot).\n * `size` is the DESTINATION footprint in floats per element.\n */\n// Module scratch for wrapping a scalar write. Written and consumed inside one\n// synchronous encoder call, so it never outlives the statement that filled it.\nconst SCALAR_SCRATCH = [0];\n\n\nfunction SCALAR_SCRATCH_SET(value)\n{\n SCALAR_SCRATCH[0] = value;\n\n return SCALAR_SCRATCH;\n}\n\n\nexport const RawDataEncoders = Object.freeze({\n [RawDataType.MATRIX](floats, _uints, field, value)\n {\n const n = Math.sqrt(field.size);\n\n for (let element = 0; element < field.elements; element++)\n {\n const source = element * field.size;\n const destination = field.offset + element * field.size;\n\n // Transpose on the shared byte layout: buffer(r,c) = value(c,r). This is\n // exactly Carbon's `= Transpose(m)` staging fill.\n for (let row = 0; row < n; row++)\n {\n for (let column = 0; column < n; column++)\n {\n floats[destination + row * n + column] = value[source + column * n + row];\n }\n }\n }\n },\n\n [RawDataType.VECTOR](floats, _uints, field, value)\n {\n const total = field.size * field.elements;\n\n for (let index = 0; index < total; index++)\n {\n floats[field.offset + index] = value[index];\n }\n },\n\n [RawDataType.UINT](_floats, uints, field, value)\n {\n const total = field.size * field.elements;\n\n for (let index = 0; index < total; index++)\n {\n uints[field.offset + index] = value[index] >>> 0;\n }\n },\n\n [RawDataType.INT](_floats, uints, field, value)\n {\n const total = field.size * field.elements;\n\n // Uint32 assignment stores the two's-complement bit pattern, which is\n // exactly what a signed lane needs (-1 -> 0xFFFFFFFF).\n for (let index = 0; index < total; index++)\n {\n uints[field.offset + index] = value[index] | 0;\n }\n },\n\n [RawDataType.MATRIX_3X4](floats, _uints, field, value)\n {\n // Column-stride pack of a 16-float mat4 into 12 floats (size must be 12):\n // rows come from (v0,v4,v8,v12) / (v1,v5,v9,v13) / (v2,v6,v10,v14).\n for (let element = 0; element < field.elements; element++)\n {\n const source = element * 16;\n const destination = field.offset + element * field.size;\n\n for (let row = 0; row < 3; row++)\n {\n floats[destination + row * 4 + 0] = value[source + row + 0];\n floats[destination + row * 4 + 1] = value[source + row + 4];\n floats[destination + row * 4 + 2] = value[source + row + 8];\n floats[destination + row * 4 + 3] = value[source + row + 12];\n }\n }\n }\n});\n\n/**\n * A packed constant-data slice bound to a resolved layout. Instances are\n * handed out by a TriPoolAllocator (transient, arena-backed) or constructed\n * directly by an object that owns a persistent buffer.\n */\nexport class RawData\n{\n /** Resolved layout: { fields: { name -> { offset, size, elements, encoding } }, stride }. */\n #layout = null;\n\n /** Float32 view of this struct's slot (offsets are relative to its start). */\n #floats = null;\n\n /** Uint32 view over the SAME bytes, for UINT lanes. */\n #uints = null;\n\n /** Whether the payload has changed since an uploader last matched it. */\n #dirty = true;\n\n /** Catalogued struct name, when this record was built from one. */\n #struct = null;\n\n /**\n * @param {object} layout - resolved layout for one struct\n * @param {Float32Array} floats - the slice (start = struct slot)\n * @param {Uint32Array} uints - Uint32 view over the same slice\n * @param {String} [struct] - catalogued struct name, when there is one\n */\n constructor(layout, floats, uints, struct = null)\n {\n this.#layout = layout;\n this.#floats = floats;\n this.#uints = uints;\n this.#struct = struct;\n }\n\n /** The catalogued struct name, or null for an ad-hoc record. */\n GetStruct()\n {\n return this.#struct;\n }\n\n /** Whether a field exists in the layout. */\n Has(name)\n {\n return Object.prototype.hasOwnProperty.call(this.#layout.fields, name);\n }\n\n /**\n * Resolve a field, optionally narrowed to ONE element of an array field.\n * The narrowed view shifts the offset by element * size and clamps\n * elements to 1, so every verb writes exactly one slot and the unwritten\n * tail keeps its arena bytes (Carbon's visible-turrets-only fill).\n */\n #Field(name, element)\n {\n const field = this.#layout.fields[name];\n\n if (!field)\n {\n throw new Error(`RawData: unknown field \"${name}\"`);\n }\n\n if (element === undefined)\n {\n return field;\n }\n\n if (!Number.isInteger(element) || element < 0 || element >= field.elements)\n {\n throw new Error(`RawData: element ${element} is out of range for field \"${name}\" (elements: ${field.elements})`);\n }\n\n return {\n offset: field.offset + element * field.size,\n size: field.size,\n elements: 1,\n encoding: field.encoding\n };\n }\n\n /**\n * Write a LOGICAL value, encoded per the field's kind (MATRIX transposes,\n * UINT/INT bit-cast, MATRIX_3X4 column-stride packs, VECTOR copies). Pass\n * `element` to write one slot of an array field.\n */\n Set(name, value, element)\n {\n this.#NotMatrix(name, \"Set\");\n this.#Write(this.#Field(name, element), name, value);\n }\n\n /**\n * Copy a field's packed bytes OUT into a caller-owned buffer. Never returns\n * a reference into the payload. Debug / inspection only - the render path is\n * write-only. Pass `element` to copy one slot of an array field.\n */\n Copy(name, out, element)\n {\n const field = this.#Field(name, element);\n const total = field.size * field.elements;\n\n for (let index = 0; index < total; index++)\n {\n out[index] = this.#floats[field.offset + index];\n }\n\n return out;\n }\n\n /**\n * Write a matrix, transposing it into the buffer.\n *\n * Carbon stores every per-object matrix transposed (`m_vsData.worldTransform\n * = Transpose( m_worldTransform )`), so the record is GPU-form and terminal.\n * This method performs the transpose, which means a producer passes its\n * LOGICAL matrix and cannot forget the step; it also transposes straight into\n * the destination, so no scratch matrix is needed.\n *\n * Matrix fields only. See carbon-math-conventions F1/F6.\n */\n SetAndTranspose(name, value)\n {\n this.#AssertMatrix(name);\n this.#Write(this.#Field(name, undefined), name, value);\n }\n\n /** SetAndTranspose for one element of an array field, e.g. customMaskMatrix. */\n SetAndTransposeIndex(name, index, value)\n {\n this.#AssertMatrix(name);\n this.#Write(this.#Field(name, index), name, value);\n }\n\n /** Write one element of an array field. Non-matrix fields only. */\n SetIndex(name, index, value)\n {\n this.#NotMatrix(name, \"SetIndex\");\n this.#Write(this.#Field(name, index), name, value);\n }\n\n /** Encodes one value into a resolved field. */\n #Write(field, name, value)\n {\n const encoder = RawDataEncoders[field.encoding];\n\n if (!encoder)\n {\n throw new Error(`RawData: no encoder for encoding \"${field.encoding}\" (field \"${name}\")`);\n }\n\n encoder(this.#floats, this.#uints, field, this.#Normalize(field, name, value));\n }\n\n /**\n * Every encoder reads `value[index]`, so a bare number would write NaN into\n * each lane instead of failing. A single-lane field - a float, a uint, an\n * int - is unambiguous, so accept the scalar and wrap it; anything wider\n * must be indexable, and says so rather than silently filling with NaN.\n */\n #Normalize(field, name, value)\n {\n if (typeof value === \"number\")\n {\n if (field.size * field.elements !== 1)\n {\n throw new Error(\n `RawData: field \"${name}\" is ${field.size * field.elements} lanes wide `\n + \"and needs an indexable value, not a number\"\n );\n }\n\n return SCALAR_SCRATCH_SET(value);\n }\n\n return value;\n }\n\n /**\n * A live reference into the buffer for one field - writing through it is a\n * zero-copy write, which is deliberate: Carbon hands out a raw pointer into\n * `m_psData` for exactly this (GetParentData, cpp:1877-1883).\n *\n * Non-matrix fields only; a matrix is transposed and indistinguishable from a\n * logical one, so it must be read through GetTransposed.\n */\n Get(name)\n {\n this.#NotMatrix(name, \"Get\");\n\n return this.#View(this.#Field(name, undefined));\n }\n\n /** Get for one element of an array field. Non-matrix fields only. */\n GetIndex(name, index)\n {\n this.#NotMatrix(name, \"GetIndex\");\n\n return this.#View(this.#Field(name, index));\n }\n\n /**\n * A live reference to a stored matrix. The value IS transposed - the name\n * says so at the call site, because doing maths with it as though it were\n * logical is silently wrong.\n */\n GetTransposed(name)\n {\n this.#AssertMatrix(name);\n\n return this.#View(this.#Field(name, undefined));\n }\n\n /** GetTransposed for one element of an array field. */\n GetTransposedIndex(name, index)\n {\n this.#AssertMatrix(name);\n\n return this.#View(this.#Field(name, index));\n }\n\n /** Copy one element of an array field out into a caller-owned buffer. */\n CopyIndex(name, index, out)\n {\n return this.Copy(name, out, index);\n }\n\n /**\n * Zero every byte - Carbon's `memset( &data, 0, sizeof(data) )`. Declared\n * defaults are NOT re-applied: memset does not respect them either, and a\n * caller that wants them writes them back explicitly, as Carbon does.\n */\n Zero()\n {\n this.#floats.fill(0);\n this.#dirty = true;\n\n return this;\n }\n\n /**\n * Copy another record's bytes into this one wholesale - Carbon's by-value\n * struct assignment (`vsData = m_vsData`, cpp:1487). Both records must carry\n * the SAME layout: the bytes are copied without re-encoding, so a mismatched\n * stride would silently reinterpret every field after the first difference.\n */\n CopyFrom(other)\n {\n const source = other?.GetLayout?.();\n\n // A store-registered layout and a RawData.create layout are distinct\n // objects for the same struct, so identity cannot be the only test - but\n // the STRIDE cannot stand in for it either: EveSpaceObjectVSData and\n // EveSpaceObjectPSData are both 116 floats and share nothing else. The\n // struct name is the test; an unnamed ad-hoc record needs the same layout\n // object.\n const sameStruct = this.#struct !== null && other.GetStruct?.() === this.#struct;\n\n if (!source || (!sameStruct && source !== this.#layout))\n {\n throw new Error(\n `RawData: CopyFrom requires a record of the same struct (this \"${this.#struct}\", other \"${other?.GetStruct?.() ?? \"unknown\"}\")`\n );\n }\n\n this.#floats.set(other.GetData());\n this.#dirty = true;\n\n return this;\n }\n\n /** A Float32 view over one field's lanes, sharing the record's bytes. */\n #View(field)\n {\n const total = field.size * field.elements;\n\n return this.#floats.subarray(field.offset, field.offset + total);\n }\n\n /** Asserts a field IS a matrix. */\n #AssertMatrix(name)\n {\n const field = this.#Field(name, undefined);\n\n if (field.encoding !== RawDataType.MATRIX)\n {\n throw new Error(\n `RawData: field \"${name}\" is \"${field.encoding}\", not a matrix - use Set/Get, not the transposed pair`\n );\n }\n }\n\n /** Asserts a field is NOT a matrix, so the orientation cannot be lost. */\n #NotMatrix(name, verb)\n {\n const field = this.#Field(name, undefined);\n\n if (field.encoding === RawDataType.MATRIX)\n {\n throw new Error(\n `RawData: field \"${name}\" is a matrix and is stored TRANSPOSED - `\n + `use ${verb.startsWith(\"Set\") ? \"SetAndTranspose\" : \"GetTransposed\"}, not ${verb}`\n );\n }\n }\n\n /**\n * Marks the payload as changed since the engine last uploaded it.\n *\n * Only meaningful for a PERSISTENT record - one owned by an object across\n * frames rather than leased from the arena. Carbon's equivalent is\n * `Tr2PersistentPerObjectData::InvalidateBufferData`, called once per frame\n * from the owner's async update (EveSpaceObject2.cpp:626-627); when the flag\n * is clear the engine rebinds the existing GPU buffer with no lock and no\n * memcpy (Tr2PersistentPerObjectData.h:118-124).\n *\n * A transient arena record needs none of this - it is filled and consumed\n * within the frame - so the flag simply stays true there.\n */\n Invalidate()\n {\n this.#dirty = true;\n\n return this;\n }\n\n /** Whether the payload has changed since ClearDirty. */\n IsDirty()\n {\n return this.#dirty;\n }\n\n /** Called by an uploader once the GPU buffer matches this payload. */\n ClearDirty()\n {\n this.#dirty = false;\n\n return this;\n }\n\n /**\n * A PERSISTENT record: one this object owns across frames, with its own\n * buffer, outside the arena.\n *\n * This is Carbon's second per-object shape. Most payloads are leased from the\n * frame pool and die at Reset, but five types keep theirs as members because\n * the values are stable across a frame AND are read back - EveSpaceObject2\n * reads its own stored matrices (cpp:3747) and hands shLighting to\n * attachments as a live pointer (cpp:1877-1883). Those are the records that\n * want Get/GetTransposed.\n *\n * Defaults are applied once here rather than per allocation.\n *\n * Both catalogs are consulted. Per-frame buffers are only ever persistent -\n * the scene owns them across the frame and reads them back - so they have no\n * transient counterpart and never appear in an arena lease.\n */\n static create(struct)\n {\n const layout = CjsPerObjectLayouts.ToRawLayout(struct)\n ?? CjsPerFrameLayouts.ToRawLayout(struct);\n\n if (!layout)\n {\n throw new Error(`RawData: struct \"${struct}\" is in neither CjsPerObjectLayouts nor CjsPerFrameLayouts`);\n }\n\n const floats = new Float32Array(layout.stride);\n const uints = new Uint32Array(floats.buffer);\n\n for (const preset of layout.defaults)\n {\n floats.set(preset.values, preset.offset);\n }\n\n return new RawData(layout, floats, uints, struct);\n }\n\n /** The packed Float32 slice - what the engine uploader memcpys/binds. */\n GetData()\n {\n return this.#floats;\n }\n\n /** The resolved layout (offsets/sizes/encodings) - the engine's bind map. */\n GetLayout()\n {\n return this.#layout;\n }\n}\n"],"names":["RawDataType","Object","freeze","MATRIX","VECTOR","UINT","INT","MATRIX_3X4","SCALAR_SCRATCH","SCALAR_SCRATCH_SET","value","RawDataEncoders","floats","_uints","field","n","Math","sqrt","size","element","elements","source","destination","offset","row","column","total","index","_floats","uints","RawData","constructor","layout","struct","GetStruct","Has","name","prototype","hasOwnProperty","call","fields","#Field","Error","undefined","Number","isInteger","encoding","Set","Copy","out","SetAndTranspose","SetAndTransposeIndex","SetIndex","#Write","encoder","#Normalize","Get","GetIndex","GetTransposed","GetTransposedIndex","CopyIndex","Zero","fill","CopyFrom","other","GetLayout","sameStruct","set","GetData","#View","subarray","#AssertMatrix","#NotMatrix","verb","startsWith","Invalidate","IsDirty","ClearDirty","create","CjsPerObjectLayouts","ToRawLayout","CjsPerFrameLayouts","Float32Array","stride","Uint32Array","buffer","preset","defaults","values"],"mappings":"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"}