@carbonenginejs/runtime-trinity 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1087) hide show
  1. package/README.md +35 -243
  2. package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
  3. package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
  4. package/dist/controllers/ITr2ControllerAction.js +57 -0
  5. package/dist/controllers/ITr2ControllerAction.js.map +1 -1
  6. package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
  7. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  8. package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
  9. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  10. package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
  11. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  12. package/dist/controllers/Tr2ActionCallback.js +5 -0
  13. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  14. package/dist/controllers/Tr2ActionChildEffect.js +63 -0
  15. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  16. package/dist/controllers/Tr2ActionOverlay.js +68 -0
  17. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  18. package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
  19. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  20. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
  21. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  22. package/dist/controllers/Tr2ActionPlaySound.js +11 -0
  23. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  24. package/dist/controllers/Tr2ActionPython.js +11 -0
  25. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  26. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
  27. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  28. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
  29. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  30. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
  31. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  32. package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
  33. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  34. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
  35. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  36. package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
  37. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  38. package/dist/controllers/Tr2ActionSetValue.js +35 -0
  39. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  40. package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
  41. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  42. package/dist/controllers/Tr2BindingPoint.js +67 -0
  43. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  44. package/dist/controllers/Tr2Controller.js +37 -0
  45. package/dist/controllers/Tr2Controller.js.map +1 -1
  46. package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
  47. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  48. package/dist/controllers/Tr2ControllerExpression.js +17 -0
  49. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  50. package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
  51. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  52. package/dist/controllers/Tr2ControllerReference.js +11 -0
  53. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  54. package/dist/controllers/Tr2StateMachine.js +17 -0
  55. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  56. package/dist/controllers/Tr2StateMachineState.js +47 -0
  57. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  58. package/dist/controllers/Tr2StateMachineTransition.js +29 -0
  59. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  60. package/dist/controllers/Tr2SyncToAnimation.js +5 -0
  61. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  62. package/dist/controllers/Tr2TimelineController.js +61 -0
  63. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  64. package/dist/controllers/contracts.js +24 -1
  65. package/dist/controllers/contracts.js.map +1 -1
  66. package/dist/controllers/index.js +1 -1
  67. package/dist/curves/CjsGrannyCurves.js +150 -0
  68. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  69. package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
  70. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  71. package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
  72. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  73. package/dist/curves/Tr2CurveColor.js +6 -0
  74. package/dist/curves/Tr2CurveColor.js.map +1 -1
  75. package/dist/curves/Tr2CurveColorMixer.js +6 -0
  76. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  77. package/dist/curves/Tr2CurveCombiner.js +5 -0
  78. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  79. package/dist/curves/Tr2CurveConstant.js +16 -0
  80. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  81. package/dist/curves/Tr2CurveEulerRotation.js +5 -0
  82. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  83. package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
  84. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  85. package/dist/curves/Tr2CurveQuaternion.js +5 -0
  86. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  87. package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
  88. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  89. package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
  90. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  91. package/dist/curves/Tr2CurveScalar.js +35 -0
  92. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  93. package/dist/curves/Tr2CurveScalarExpression.js +11 -0
  94. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  95. package/dist/curves/Tr2CurveScalarKey.js +6 -0
  96. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  97. package/dist/curves/Tr2CurveSetRange.js +5 -0
  98. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  99. package/dist/curves/Tr2CurveVector2.js +5 -0
  100. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  101. package/dist/curves/Tr2CurveVector3.js +5 -0
  102. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  103. package/dist/curves/Tr2CurveVector3Expression.js +71 -0
  104. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  105. package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
  106. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  107. package/dist/curves/Tr2DistanceTracker.js +6 -0
  108. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  109. package/dist/curves/Tr2FollowCurve.js +6 -0
  110. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  111. package/dist/curves/Tr2GrannyEventTrack.js +5 -0
  112. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  113. package/dist/curves/Tr2GrannyTrack.js +6 -0
  114. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  115. package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
  116. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  117. package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
  118. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  119. package/dist/curves/Tr2MatrixKey.js +5 -0
  120. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  121. package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
  122. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  123. package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
  124. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  125. package/dist/curves/Tr2RotationAdapter.js +6 -0
  126. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  127. package/dist/curves/Tr2ScalarExprKey.js +18 -0
  128. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  129. package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
  130. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  131. package/dist/curves/Tr2ScalarFader.js +11 -0
  132. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  133. package/dist/curves/Tr2TranslationAdapter.js +6 -0
  134. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  135. package/dist/curves/TriColorSequencer.js +6 -0
  136. package/dist/curves/TriColorSequencer.js.map +1 -1
  137. package/dist/curves/TriCurveSet.js +23 -0
  138. package/dist/curves/TriCurveSet.js.map +1 -1
  139. package/dist/curves/TriEventCurve.js +23 -0
  140. package/dist/curves/TriEventCurve.js.map +1 -1
  141. package/dist/curves/TriEventKey.js +5 -0
  142. package/dist/curves/TriEventKey.js.map +1 -1
  143. package/dist/curves/TriPerlinCurve.js +30 -0
  144. package/dist/curves/TriPerlinCurve.js.map +1 -1
  145. package/dist/curves/TriVectorSequencer.js +6 -0
  146. package/dist/curves/TriVectorSequencer.js.map +1 -1
  147. package/dist/eve/AudioGameObject.js +89 -1
  148. package/dist/eve/AudioGameObject.js.map +1 -1
  149. package/dist/eve/BackAndForthData.js +7 -0
  150. package/dist/eve/BackAndForthData.js.map +1 -1
  151. package/dist/eve/CjsDistributionRandom.js +6 -0
  152. package/dist/eve/CjsDistributionRandom.js.map +1 -1
  153. package/dist/eve/CjsEveThrottleableState.js +11 -0
  154. package/dist/eve/CjsEveThrottleableState.js.map +1 -1
  155. package/dist/eve/EveChildUpdateParams.js +7 -0
  156. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  157. package/dist/eve/EveComponentTypes.js.map +1 -1
  158. package/dist/eve/EveCustomMask.js +58 -27
  159. package/dist/eve/EveCustomMask.js.map +1 -1
  160. package/dist/eve/EveDistanceField.js +84 -0
  161. package/dist/eve/EveDistanceField.js.map +1 -1
  162. package/dist/eve/EveEntity.js +138 -0
  163. package/dist/eve/EveEntity.js.map +1 -0
  164. package/dist/eve/EveImpactOverlay.js +61 -0
  165. package/dist/eve/EveImpactOverlay.js.map +1 -1
  166. package/dist/eve/EveLODHelper.js +17 -13
  167. package/dist/eve/EveLODHelper.js.map +1 -1
  168. package/dist/eve/EveLineData.js +2 -0
  169. package/dist/eve/EveLineData.js.map +1 -1
  170. package/dist/eve/EveThrottleable.js +11 -0
  171. package/dist/eve/EveThrottleable.js.map +1 -1
  172. package/dist/eve/FollowASplineData.js +7 -0
  173. package/dist/eve/FollowASplineData.js.map +1 -1
  174. package/dist/eve/FormationData.js +6 -0
  175. package/dist/eve/FormationData.js.map +1 -1
  176. package/dist/eve/InertiaData.js +7 -0
  177. package/dist/eve/InertiaData.js.map +1 -1
  178. package/dist/eve/PlacementDataWithIdentifier.js +7 -0
  179. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  180. package/dist/eve/PlayFXData.js +7 -0
  181. package/dist/eve/PlayFXData.js.map +1 -1
  182. package/dist/eve/SeekTargetData.js +7 -0
  183. package/dist/eve/SeekTargetData.js.map +1 -1
  184. package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
  185. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
  186. package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
  187. package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
  188. package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
  189. package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
  190. package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
  191. package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
  192. package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
  193. package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
  194. package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
  195. package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
  196. package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
  197. package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
  198. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
  199. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
  200. package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
  201. package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
  202. package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
  203. package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
  204. package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
  205. package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
  206. package/dist/eve/attachment/itemSetBounds.js +131 -0
  207. package/dist/eve/attachment/itemSetBounds.js.map +1 -0
  208. package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
  209. package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
  210. package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
  211. package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
  212. package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
  213. package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
  214. package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
  215. package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
  216. package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
  217. package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
  218. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
  219. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
  220. package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
  221. package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
  222. package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
  223. package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
  224. package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
  225. package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
  226. package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
  227. package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
  228. package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
  229. package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
  230. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
  231. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  232. package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
  233. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  234. package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
  235. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  236. package/dist/eve/camera/EveCamera.js +644 -0
  237. package/dist/eve/camera/EveCamera.js.map +1 -0
  238. package/dist/eve/child/EveChildAudio.js +63 -0
  239. package/dist/eve/child/EveChildAudio.js.map +1 -1
  240. package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
  241. package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
  242. package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
  243. package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
  244. package/dist/eve/child/EveChildContainer.js +175 -16
  245. package/dist/eve/child/EveChildContainer.js.map +1 -1
  246. package/dist/eve/child/EveChildEffectPropagator.js +1 -1
  247. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  248. package/dist/eve/child/EveChildFogVolume.js +72 -0
  249. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  250. package/dist/eve/child/EveChildInheritProperties.js +17 -0
  251. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  252. package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
  253. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  254. package/dist/eve/child/EveChildLightingOverride.js +74 -0
  255. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  256. package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
  257. package/dist/eve/child/EveChildLink.js.map +1 -0
  258. package/dist/eve/child/EveChildMesh.js +351 -105
  259. package/dist/eve/child/EveChildMesh.js.map +1 -1
  260. package/dist/eve/child/EveChildSpherePin.js +108 -0
  261. package/dist/eve/child/EveChildSpherePin.js.map +1 -0
  262. package/dist/eve/child/EveChildTransform.js +44 -1
  263. package/dist/eve/child/EveChildTransform.js.map +1 -1
  264. package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
  265. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  266. package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
  267. package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
  268. package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
  269. package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
  270. package/dist/eve/child/behaviors/Wander.js +99 -0
  271. package/dist/eve/child/behaviors/Wander.js.map +1 -0
  272. package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
  273. package/dist/eve/child/behaviors/enums.js.map +1 -0
  274. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
  275. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
  276. package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
  277. package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
  278. package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
  279. package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
  280. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
  281. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
  282. package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
  283. package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
  284. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
  285. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  286. package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
  287. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  288. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
  289. package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
  290. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
  291. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  292. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
  293. package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
  294. package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
  295. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  296. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
  297. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  298. package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
  299. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  300. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
  301. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  302. package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
  303. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  304. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
  305. package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
  306. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
  307. package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
  308. package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
  309. package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
  310. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
  311. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
  312. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
  313. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
  314. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
  315. package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
  316. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
  317. package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
  318. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
  319. package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
  320. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
  321. package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
  322. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
  323. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
  324. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
  325. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
  326. package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
  327. package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
  328. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
  329. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
  330. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
  331. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
  332. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
  333. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
  334. package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
  335. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
  336. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
  337. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
  338. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
  339. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
  340. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
  341. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
  342. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
  343. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
  344. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
  345. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
  346. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
  347. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
  348. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
  349. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
  350. package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
  351. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
  352. package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
  353. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
  354. package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
  355. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
  356. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
  357. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
  358. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
  359. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
  360. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
  361. package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
  362. package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
  363. package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
  364. package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
  365. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
  366. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
  367. package/dist/eve/index.js +117 -47
  368. package/dist/eve/index.js.map +1 -1
  369. package/dist/eve/lights/CjsLightData.js +7 -0
  370. package/dist/eve/lights/CjsLightData.js.map +1 -1
  371. package/dist/eve/lights/Tr2Light.js +41 -0
  372. package/dist/eve/lights/Tr2Light.js.map +1 -1
  373. package/dist/eve/lights/Tr2PointLight.js +5 -0
  374. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  375. package/dist/eve/lights/Tr2SpotLight.js +5 -0
  376. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  377. package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
  378. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  379. package/dist/eve/lights/lightConversion.js +29 -27
  380. package/dist/eve/lights/lightConversion.js.map +1 -1
  381. package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
  382. package/dist/eve/locator/EveLocator2.js.map +1 -0
  383. package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
  384. package/dist/eve/locator/EveLocatorSets.js.map +1 -0
  385. package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
  386. package/dist/eve/locator/Locator.js.map +1 -0
  387. package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
  388. package/dist/eve/locator/LocatorData.js.map +1 -0
  389. package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
  390. package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
  391. package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
  392. package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
  393. package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
  394. package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
  395. package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
  396. package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
  397. package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
  398. package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
  399. package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
  400. package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
  401. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
  402. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  403. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
  404. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  405. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
  406. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  407. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
  408. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  409. package/dist/eve/renderable/stretch/EveStretch.js +158 -9
  410. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  411. package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
  412. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  413. package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
  414. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  415. package/dist/eve/scene/EveSpaceScene.js +56 -6
  416. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  417. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
  418. package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
  419. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
  420. package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
  421. package/dist/eve/scene/picking/EvePickingContext.js +61 -0
  422. package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
  423. package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
  424. package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
  425. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
  426. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
  427. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
  428. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
  429. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
  430. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
  431. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
  432. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
  433. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
  434. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
  435. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
  436. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
  437. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
  438. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
  439. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
  440. package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
  441. package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
  442. package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
  443. package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
  444. package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
  445. package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
  446. package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
  447. package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
  448. package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
  449. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  450. package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
  451. package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
  452. package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
  453. package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
  454. package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
  455. package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
  456. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
  457. package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
  458. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
  459. package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
  460. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
  461. package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
  462. package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
  463. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  464. package/dist/eve/spaceObject/EveMissile.js +49 -1
  465. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  466. package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
  467. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  468. package/dist/eve/spaceObject/EveMobile.js +104 -0
  469. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  470. package/dist/eve/spaceObject/EveRootTransform.js +17 -0
  471. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  472. package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
  473. package/dist/eve/spaceObject/EveShip2.js.map +1 -0
  474. package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
  475. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  476. package/dist/eve/spaceObject/EveTransform.js +100 -4
  477. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  478. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
  479. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
  480. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
  481. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
  482. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
  483. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
  484. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
  485. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
  486. package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
  487. package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
  488. package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
  489. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
  490. package/dist/eve/ui/EveEllipseDefinition.js +15 -0
  491. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  492. package/dist/eve/ui/EveEllipseSet.js +42 -0
  493. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  494. package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
  495. package/dist/eve/ui/EveSpherePin.js.map +1 -0
  496. package/dist/eve/ui/EveSprite2dBracket.js +5 -0
  497. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  498. package/dist/eve/ui/EveUiObject.js +11 -0
  499. package/dist/eve/ui/EveUiObject.js.map +1 -1
  500. package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
  501. package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
  502. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
  503. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
  504. package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
  505. package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
  506. package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
  507. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  508. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
  509. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  510. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
  511. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  512. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
  513. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  514. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
  515. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  516. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
  517. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  518. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
  519. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  520. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
  521. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  522. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
  523. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  524. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
  525. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  526. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
  527. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  528. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
  529. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  530. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
  531. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  532. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
  533. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  534. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
  535. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  536. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
  537. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  538. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
  539. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  540. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
  541. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  542. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
  543. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  544. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
  545. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  546. package/dist/eve/volume/EveBoxVolume.js +59 -0
  547. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  548. package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
  549. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  550. package/dist/eve/volume/EveSphereVolume.js +34 -0
  551. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  552. package/dist/generated/eve/child/EveChildCloud2.js +138 -138
  553. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  554. package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
  555. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  556. package/dist/generated/eve/child/EveChildSocket.js +1 -1
  557. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  558. package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
  559. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  560. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
  561. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  562. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
  563. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  564. package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
  565. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  566. package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
  567. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  568. package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
  569. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  570. package/dist/generated/eve/child/behaviors/index.js +0 -6
  571. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  572. package/dist/generated/eve/child/index.js +0 -23
  573. package/dist/generated/eve/child/index.js.map +1 -1
  574. package/dist/generated/eve/effect/index.js +0 -3
  575. package/dist/generated/eve/effect/index.js.map +1 -1
  576. package/dist/generated/eve/index.js +0 -88
  577. package/dist/generated/eve/index.js.map +1 -1
  578. package/dist/generated/eve/scene/index.js +0 -6
  579. package/dist/generated/eve/scene/index.js.map +1 -1
  580. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
  581. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  582. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
  583. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  584. package/dist/generated/eve/smartLights/index.js +0 -8
  585. package/dist/generated/eve/smartLights/index.js.map +1 -1
  586. package/dist/generated/eve/spaceObject/index.js +0 -4
  587. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  588. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
  589. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  590. package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
  591. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  592. package/dist/generated/eve/ui/index.js +0 -4
  593. package/dist/generated/eve/ui/index.js.map +1 -1
  594. package/dist/generated/index.js +0 -93
  595. package/dist/generated/index.js.map +1 -1
  596. package/dist/generated/trinityCore/index.js +0 -5
  597. package/dist/generated/trinityCore/index.js.map +1 -1
  598. package/dist/index.js +130 -155
  599. package/dist/index.js.map +1 -1
  600. package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
  601. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  602. package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
  603. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  604. package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
  605. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  606. package/dist/particle/Tr2ParticleDirectForce.js +7 -0
  607. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  608. package/dist/particle/Tr2ParticleDragForce.js +7 -0
  609. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  610. package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
  611. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  612. package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
  613. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  614. package/dist/particle/Tr2ParticleSpring.js +10 -0
  615. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  616. package/dist/particle/Tr2ParticleVortexForce.js +10 -0
  617. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  618. package/dist/particle/particleElementBinding.js +12 -0
  619. package/dist/particle/particleElementBinding.js.map +1 -1
  620. package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
  621. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  622. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
  623. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  624. package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
  625. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  626. package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
  627. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  628. package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
  629. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  630. package/dist/postProcess/Tr2PostProcess.js +5 -0
  631. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  632. package/dist/postProcess/Tr2PostProcess2.js +147 -0
  633. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  634. package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
  635. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  636. package/dist/renderJob/Tr2RenderJobs.js +34 -0
  637. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  638. package/dist/renderJob/TriRenderJob.js +59 -0
  639. package/dist/renderJob/TriRenderJob.js.map +1 -1
  640. package/dist/renderJob/TriRenderStep.js +20 -0
  641. package/dist/renderJob/TriRenderStep.js.map +1 -1
  642. package/dist/renderJob/TriStepClear.js +18 -0
  643. package/dist/renderJob/TriStepClear.js.map +1 -1
  644. package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
  645. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  646. package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
  647. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  648. package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
  649. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  650. package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
  651. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  652. package/dist/renderJob/TriStepPopProjection.js +6 -0
  653. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  654. package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
  655. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  656. package/dist/renderJob/TriStepPopViewTransform.js +6 -0
  657. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  658. package/dist/renderJob/TriStepPopViewport.js +6 -0
  659. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  660. package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
  661. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  662. package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
  663. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  664. package/dist/renderJob/TriStepPushProjection.js +6 -0
  665. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  666. package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
  667. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  668. package/dist/renderJob/TriStepPushViewTransform.js +6 -0
  669. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  670. package/dist/renderJob/TriStepPushViewport.js +6 -0
  671. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  672. package/dist/renderJob/TriStepRemoteSync.js +17 -0
  673. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  674. package/dist/renderJob/TriStepResolve.js +13 -0
  675. package/dist/renderJob/TriStepResolve.js.map +1 -1
  676. package/dist/renderJob/TriStepRunJob.js +12 -0
  677. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  678. package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
  679. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  680. package/dist/renderJob/TriStepSetProjection.js +14 -0
  681. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  682. package/dist/renderJob/TriStepSetRenderState.js +20 -0
  683. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  684. package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
  685. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  686. package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
  687. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  688. package/dist/renderJob/TriStepSetView.js +29 -2
  689. package/dist/renderJob/TriStepSetView.js.map +1 -1
  690. package/dist/renderJob/TriStepSetViewport.js +17 -0
  691. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  692. package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
  693. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  694. package/dist/shader/Tr2Effect.js +217 -2
  695. package/dist/shader/Tr2Effect.js.map +1 -1
  696. package/dist/shader/Tr2Material.js +41 -0
  697. package/dist/shader/Tr2Material.js.map +1 -1
  698. package/dist/shader/index.js +1 -11
  699. package/dist/shader/index.js.map +1 -1
  700. package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
  701. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  702. package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
  703. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  704. package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
  705. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  706. package/dist/shader/parameter/CjsParameter.js +94 -0
  707. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  708. package/dist/shader/parameter/CjsVectorParameter.js +20 -0
  709. package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
  710. package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
  711. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  712. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
  713. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
  715. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  716. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
  717. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  718. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
  719. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  720. package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
  721. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  722. package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
  723. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  724. package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
  725. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  726. package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
  727. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  728. package/dist/shader/parameter/TriTextureParameter.js +84 -0
  729. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  730. package/dist/shader/parameter/TriTransformParameter.js +2 -0
  731. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  732. package/dist/shader/parameter/TriVariableParameter.js +38 -0
  733. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  734. package/dist/shader/parameter/TriVector4.js +2 -0
  735. package/dist/shader/parameter/TriVector4.js.map +1 -1
  736. package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
  737. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  738. package/dist/shader/support/CjsVariableStore.js +140 -0
  739. package/dist/shader/support/CjsVariableStore.js.map +1 -1
  740. package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
  741. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  742. package/dist/trinityCore/CjsBatchManager.js +62 -2
  743. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  744. package/dist/trinityCore/GrannyBoneOffset.js +51 -0
  745. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  746. package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
  747. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  748. package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
  749. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  750. package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
  751. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  752. package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
  753. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  754. package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
  755. package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
  756. package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
  757. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  758. package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
  759. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  760. package/dist/trinityCore/Tr2Mesh.js +37 -0
  761. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  762. package/dist/trinityCore/Tr2MeshArea.js +78 -0
  763. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  764. package/dist/trinityCore/Tr2MeshBase.js +98 -2
  765. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  766. package/dist/trinityCore/Tr2PerObjectData.js +10 -0
  767. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
  768. package/dist/trinityCore/Tr2PickType.js +33 -0
  769. package/dist/trinityCore/Tr2PickType.js.map +1 -0
  770. package/dist/trinityCore/Tr2RenderBatch.js +137 -0
  771. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  772. package/dist/trinityCore/Tr2RenderContext.js +271 -0
  773. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  774. package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
  775. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  776. package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
  777. package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
  778. package/dist/trinityCore/Tr2VariableStore.js +26 -0
  779. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  780. package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
  781. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  782. package/dist/trinityCore/TriDevice.js +5 -0
  783. package/dist/trinityCore/TriDevice.js.map +1 -1
  784. package/dist/trinityCore/TriFrustum.js +21 -14
  785. package/dist/trinityCore/TriFrustum.js.map +1 -1
  786. package/dist/trinityCore/TriObserverLocal.js +43 -0
  787. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  788. package/dist/trinityCore/TriProjection.js +86 -32
  789. package/dist/trinityCore/TriProjection.js.map +1 -1
  790. package/dist/trinityCore/TriRect.js +12 -0
  791. package/dist/trinityCore/TriRect.js.map +1 -1
  792. package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
  793. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  794. package/dist/trinityCore/TriRenderBatchMap.js +39 -2
  795. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  796. package/dist/trinityCore/TriSettings.js +38 -0
  797. package/dist/trinityCore/TriSettings.js.map +1 -1
  798. package/dist/trinityCore/TriVariable.js +30 -0
  799. package/dist/trinityCore/TriVariable.js.map +1 -1
  800. package/dist/trinityCore/TriView.js +16 -1
  801. package/dist/trinityCore/TriView.js.map +1 -1
  802. package/dist/trinityCore/TriViewport.js +12 -0
  803. package/dist/trinityCore/TriViewport.js.map +1 -1
  804. package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
  805. package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
  806. package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
  807. package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
  808. package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
  809. package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
  810. package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
  811. package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
  812. package/dist/trinityCore/binding/TriValueBinding.js +648 -0
  813. package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
  814. package/dist/trinityCore/index.js +11 -4
  815. package/dist/trinityCore/index.js.map +1 -1
  816. package/dist/trinityCore/pickRay.js +84 -0
  817. package/dist/trinityCore/pickRay.js.map +1 -0
  818. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +931 -0
  819. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
  820. package/dist/trinityCore/rawData/RawData.js +294 -38
  821. package/dist/trinityCore/rawData/RawData.js.map +1 -1
  822. package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
  823. package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
  824. package/dist/utilities/Range.js +53 -0
  825. package/dist/utilities/Range.js.map +1 -1
  826. package/docs/README.md +88 -0
  827. package/docs/architecture.md +162 -0
  828. package/docs/concepts/eve-runtime-behavior.md +86 -0
  829. package/docs/concepts/generated-class-lifecycle.md +116 -0
  830. package/docs/reference/api.md +76 -0
  831. package/docs/reference/classes/eve-runtime.md +106 -0
  832. package/docs/reference/classes/trinity-core.md +26 -0
  833. package/docs/reference/implementation-status.md +104 -0
  834. package/docs/reference/main-semantic-extraction.md +104 -0
  835. package/package.json +33 -24
  836. package/dist/eve/DecalVSPerObjectData.js +0 -34
  837. package/dist/eve/DecalVSPerObjectData.js.map +0 -1
  838. package/dist/eve/EveBannerItem.js +0 -43
  839. package/dist/eve/EveBannerItem.js.map +0 -1
  840. package/dist/eve/EveBannerLight.js.map +0 -1
  841. package/dist/eve/EveBannerSet.js +0 -190
  842. package/dist/eve/EveBannerSet.js.map +0 -1
  843. package/dist/eve/EveBasicPerObjectData.js +0 -31
  844. package/dist/eve/EveBasicPerObjectData.js.map +0 -1
  845. package/dist/eve/EveBoosterSet2.js.map +0 -1
  846. package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
  847. package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
  848. package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
  849. package/dist/eve/EveHazeSet.js.map +0 -1
  850. package/dist/eve/EveHazeSetLight.js.map +0 -1
  851. package/dist/eve/EveLocator2.js.map +0 -1
  852. package/dist/eve/EveLocatorSets.js.map +0 -1
  853. package/dist/eve/EveParticleDirectForce.js.map +0 -1
  854. package/dist/eve/EveParticleDragForce.js.map +0 -1
  855. package/dist/eve/EveParticleSpring.js.map +0 -1
  856. package/dist/eve/EvePerObjectPSData.js +0 -29
  857. package/dist/eve/EvePerObjectPSData.js.map +0 -1
  858. package/dist/eve/EvePerObjectVSData.js +0 -29
  859. package/dist/eve/EvePerObjectVSData.js.map +0 -1
  860. package/dist/eve/EvePlaneLight.js.map +0 -1
  861. package/dist/eve/EvePlaneSet.js.map +0 -1
  862. package/dist/eve/EvePlaneSetItem.js +0 -45
  863. package/dist/eve/EvePlaneSetItem.js.map +0 -1
  864. package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
  865. package/dist/eve/EveSpaceObjectDecal.js +0 -150
  866. package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
  867. package/dist/eve/EveSpaceObjectPSData.js +0 -73
  868. package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
  869. package/dist/eve/EveSpaceObjectVSData.js +0 -79
  870. package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
  871. package/dist/eve/EveSpacePerObjectData.js +0 -97
  872. package/dist/eve/EveSpacePerObjectData.js.map +0 -1
  873. package/dist/eve/EveSpherePinPerObjectData.js +0 -37
  874. package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
  875. package/dist/eve/EveSpotlightLight.js.map +0 -1
  876. package/dist/eve/EveSpotlightSet.js.map +0 -1
  877. package/dist/eve/EveSpriteLight.js.map +0 -1
  878. package/dist/eve/EveSpriteLineSet.js.map +0 -1
  879. package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
  880. package/dist/eve/EveSpriteSet.js.map +0 -1
  881. package/dist/eve/EveTrailsSet.js.map +0 -1
  882. package/dist/eve/Locator.js.map +0 -1
  883. package/dist/eve/LocatorData.js.map +0 -1
  884. package/dist/eve/ProcessLifetimeData.js.map +0 -1
  885. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
  886. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  887. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
  888. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  889. package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
  890. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  891. package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
  892. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  893. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
  894. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
  895. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
  896. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  897. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
  898. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  899. package/dist/generated/eve/EveCamera.js +0 -264
  900. package/dist/generated/eve/EveCamera.js.map +0 -1
  901. package/dist/generated/eve/EveEntity.js +0 -81
  902. package/dist/generated/eve/EveEntity.js.map +0 -1
  903. package/dist/generated/eve/attachment/decal/index.js +0 -2
  904. package/dist/generated/eve/attachment/decal/index.js.map +0 -1
  905. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
  906. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
  907. package/dist/generated/eve/attachment/haze/index.js +0 -2
  908. package/dist/generated/eve/attachment/haze/index.js.map +0 -1
  909. package/dist/generated/eve/attachment/index.js +0 -5
  910. package/dist/generated/eve/attachment/index.js.map +0 -1
  911. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
  912. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
  913. package/dist/generated/eve/attachment/spotlights/index.js +0 -2
  914. package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
  915. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
  916. package/dist/generated/eve/attachment/sprites/index.js +0 -2
  917. package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
  918. package/dist/generated/eve/attachment/turrets/enums.js +0 -32
  919. package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
  920. package/dist/generated/eve/attachment/turrets/index.js +0 -2
  921. package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
  922. package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
  923. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
  924. package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
  925. package/dist/generated/eve/child/EveChildLink.js.map +0 -1
  926. package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
  927. package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
  928. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
  929. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
  930. package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
  931. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
  932. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
  933. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
  934. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
  935. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
  936. package/dist/generated/eve/child/behaviors/Wander.js +0 -92
  937. package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
  938. package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
  939. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
  940. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
  941. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
  942. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
  943. package/dist/generated/eve/child/modifiers/index.js +0 -5
  944. package/dist/generated/eve/child/modifiers/index.js.map +0 -1
  945. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
  946. package/dist/generated/eve/child/procedural/index.js +0 -10
  947. package/dist/generated/eve/child/procedural/index.js.map +0 -1
  948. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
  949. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
  950. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
  951. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
  952. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
  953. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
  954. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
  955. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
  956. package/dist/generated/eve/child/procedural/selection/index.js +0 -9
  957. package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
  958. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
  959. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
  960. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
  961. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
  962. package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
  963. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
  964. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
  965. package/dist/generated/eve/distribution/index.js +0 -19
  966. package/dist/generated/eve/distribution/index.js.map +0 -1
  967. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
  968. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
  969. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
  970. package/dist/generated/eve/distribution/placement/index.js +0 -4
  971. package/dist/generated/eve/distribution/placement/index.js.map +0 -1
  972. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
  973. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
  974. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
  975. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
  976. package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
  977. package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
  978. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
  979. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
  980. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
  981. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
  982. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
  983. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
  984. package/dist/generated/eve/distribution/spawners/index.js +0 -7
  985. package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
  986. package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
  987. package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
  988. package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
  989. package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
  990. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
  991. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
  992. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
  993. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
  994. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
  995. package/dist/generated/eve/fxAttributes/index.js +0 -3
  996. package/dist/generated/eve/fxAttributes/index.js.map +0 -1
  997. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
  998. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
  999. package/dist/generated/eve/overlays/index.js +0 -2
  1000. package/dist/generated/eve/overlays/index.js.map +0 -1
  1001. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
  1002. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
  1003. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
  1004. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
  1005. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
  1006. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
  1007. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
  1008. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
  1009. package/dist/generated/eve/perObjectData/index.js +0 -5
  1010. package/dist/generated/eve/perObjectData/index.js.map +0 -1
  1011. package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
  1012. package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
  1013. package/dist/generated/eve/scene/EvePickingContext.js +0 -43
  1014. package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
  1015. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
  1016. package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
  1017. package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
  1018. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
  1019. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
  1020. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
  1021. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
  1022. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
  1023. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
  1024. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
  1025. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
  1026. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
  1027. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
  1028. package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
  1029. package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
  1030. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
  1031. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
  1032. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
  1033. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
  1034. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
  1035. package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
  1036. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
  1037. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
  1038. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
  1039. package/dist/generated/eve/socket/index.js +0 -10
  1040. package/dist/generated/eve/socket/index.js.map +0 -1
  1041. package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
  1042. package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
  1043. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
  1044. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
  1045. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
  1046. package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
  1047. package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
  1048. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
  1049. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
  1050. package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
  1051. package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
  1052. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
  1053. package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
  1054. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
  1055. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
  1056. package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
  1057. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
  1058. package/dist/generated/trinityCore/TriValueBinding.js +0 -249
  1059. package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
  1060. package/dist/shader/Tr2Shader.js +0 -150
  1061. package/dist/shader/Tr2Shader.js.map +0 -1
  1062. package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
  1063. package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
  1064. package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
  1065. package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
  1066. package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
  1067. package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
  1068. package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
  1069. package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
  1070. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
  1071. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
  1072. package/dist/shader/reflection/Tr2EffectResource.js +0 -63
  1073. package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
  1074. package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
  1075. package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
  1076. package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
  1077. package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
  1078. package/dist/shader/reflection/Tr2Pass.js +0 -46
  1079. package/dist/shader/reflection/Tr2Pass.js.map +0 -1
  1080. package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
  1081. package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
  1082. package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
  1083. package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
  1084. package/dist/trinityCore/rawData/RawDataStore.js +0 -232
  1085. package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
  1086. /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
  1087. /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"CjsVariableStore.js","sources":["../../../../src/shader/support/CjsVariableStore.js"],"sourcesContent":["export class CjsVariableStore\n{\n\n static #global = null;\n\n #variables = new Map();\n\n constructor(values = null)\n {\n if (values)\n {\n this.SetValues(values);\n }\n }\n\n Set(name, value, Type = null)\n {\n return this.SetVariable(name, value, Type);\n }\n\n Get(name)\n {\n return this.GetVariable(name);\n }\n\n Has(name)\n {\n return this.HasVariable(name);\n }\n\n SetValues(values)\n {\n const entries = values instanceof Map ? values.entries() : Object.entries(values);\n for (const [name, value] of entries)\n {\n this.SetVariable(name, value);\n }\n return this;\n }\n\n SetVariable(name, value, Type = null)\n {\n const key = String(name);\n const variable = CjsVariableStore.isVariable(value) ? value : this.CreateVariable(key, value, Type);\n if (variable && typeof variable === \"object\" && \"name\" in variable && !variable.name)\n {\n variable.name = key;\n }\n this.#variables.set(key, variable);\n return variable;\n }\n\n CreateVariable(name, value = undefined, Type = null)\n {\n if (typeof Type === \"function\")\n {\n return new Type(name, value);\n }\n return new CjsStoredVariable(name, value, Type);\n }\n\n GetVariable(name)\n {\n return this.#variables.get(String(name)) ?? null;\n }\n\n getVariable(name)\n {\n return this.GetVariable(name);\n }\n\n HasVariable(name)\n {\n return this.#variables.has(String(name));\n }\n\n hasVariable(name)\n {\n return this.HasVariable(name);\n }\n\n DeleteVariable(name)\n {\n return this.#variables.delete(String(name));\n }\n\n Clear()\n {\n this.#variables.clear();\n }\n\n GetVariableValue(name, out = undefined)\n {\n const variable = this.GetVariable(name);\n return variable?.GetValue?.(out) ?? variable?.getValue?.(out) ?? variable?.value ?? undefined;\n }\n\n getVariableValue(name, out = undefined)\n {\n return this.GetVariableValue(name, out);\n }\n\n SetVariableValue(name, value, options = undefined)\n {\n const variable = this.GetVariable(name) ?? this.SetVariable(name, value);\n variable?.SetValue?.(value, options) ?? variable?.setValue?.(value, options);\n if (variable && typeof variable === \"object\" && !variable.SetValue && !variable.setValue)\n {\n variable.value = value;\n }\n return variable;\n }\n\n setVariableValue(name, value, options = undefined)\n {\n return this.SetVariableValue(name, value, options);\n }\n\n Entries()\n {\n return [...this.#variables.entries()];\n }\n\n Values()\n {\n return [...this.#variables.values()];\n }\n\n static isVariable(value)\n {\n return !!value && typeof value === \"object\" && (typeof value.GetValue === \"function\" || typeof value.SetValue === \"function\" || typeof value.CopyValueToEffect === \"function\" || typeof value.CopyToResourceSet === \"function\" || typeof value.ApplyUav === \"function\");\n }\n\n static GetGlobalStore()\n {\n if (!CjsVariableStore.#global)\n {\n CjsVariableStore.#global = new CjsVariableStore();\n }\n return CjsVariableStore.#global;\n }\n\n static SetGlobalStore(store)\n {\n CjsVariableStore.#global = store ?? new CjsVariableStore();\n return CjsVariableStore.#global;\n }\n\n}\n\n\nexport class CjsStoredVariable\n{\n\n name = \"\";\n\n value = undefined;\n\n type = \"value\";\n\n constructor(name = \"\", value = undefined, type = null)\n {\n this.name = String(name);\n this.value = value;\n this.type = type ?? CjsStoredVariable.inferType(value);\n }\n\n GetName()\n {\n return this.name;\n }\n\n GetType()\n {\n return this.type;\n }\n\n GetValue(out = undefined)\n {\n if (out && this.value && typeof this.value.length === \"number\" && typeof out.length === \"number\")\n {\n const count = Math.min(out.length, this.value.length);\n for (let i = 0; i < count; i++)\n {\n out[i] = this.value[i];\n }\n return out;\n }\n return this.value;\n }\n\n SetValue(value)\n {\n this.value = value;\n this.type = CjsStoredVariable.inferType(value);\n return true;\n }\n\n CopyValueToEffect(_inputType, destination, size = Number.POSITIVE_INFINITY)\n {\n if (!destination || typeof destination.length !== \"number\")\n {\n return false;\n }\n const source = this.value;\n if (typeof source === \"number\")\n {\n destination[0] = source;\n return true;\n }\n if (!source || typeof source.length !== \"number\")\n {\n return false;\n }\n const byteLimit = Number.isFinite(size) ? Math.max(0, size) : Infinity;\n const count = Math.min(destination.length, source.length, Math.floor(byteLimit / 4));\n for (let i = 0; i < count; i++)\n {\n destination[i] = source[i];\n }\n return count > 0;\n }\n\n static inferType(value)\n {\n if (typeof value === \"number\")\n {\n return \"float\";\n }\n if (typeof value === \"string\")\n {\n return \"texture\";\n }\n if (value && typeof value.length === \"number\")\n {\n return value.length === 16 ? \"matrix4\" : `vector${value.length}`;\n }\n return \"value\";\n }\n\n}\n"],"names":["CjsVariableStore","Map","constructor","values","SetValues","Set","name","value","Type","SetVariable","Get","GetVariable","Has","HasVariable","entries","Object","key","String","variable","isVariable","CreateVariable","set","undefined","CjsStoredVariable","get","getVariable","has","hasVariable","DeleteVariable","delete","Clear","clear","GetVariableValue","out","GetValue","getValue","getVariableValue","SetVariableValue","options","SetValue","setValue","setVariableValue","Entries","Values","CopyValueToEffect","CopyToResourceSet","ApplyUav","GetGlobalStore","SetGlobalStore","store","type","inferType","GetName","GetType","length","count","Math","min","i","_inputType","destination","size","Number","POSITIVE_INFINITY","source","byteLimit","isFinite","max","Infinity","floor"],"mappings":"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"}
1
+ {"version":3,"file":"CjsVariableStore.js","sources":["../../../../src/shader/support/CjsVariableStore.js"],"sourcesContent":["/**\n * A named-variable table that TriVariableParameter values resolve against, plus\n * the lazily created process-wide global instance effects fall back to.\n */\nexport class CjsVariableStore\n{\n\n static #global = null;\n\n #variables = new Map();\n\n /**\n * Creates an empty store, optionally seeded.\n * @param values optional name-to-value Map or object routed through SetValues\n */\n constructor(values = null)\n {\n if (values)\n {\n this.SetValues(values);\n }\n }\n\n /** Short alias for SetVariable. */\n Set(name, value, Type = null)\n {\n return this.SetVariable(name, value, Type);\n }\n\n /** Short alias for GetVariable - returns the variable object, not its value. */\n Get(name)\n {\n return this.GetVariable(name);\n }\n\n /** Short alias for HasVariable. */\n Has(name)\n {\n return this.HasVariable(name);\n }\n\n /**\n * Seeds many variables at once from a Map or plain object; returns this store\n * for chaining.\n */\n SetValues(values)\n {\n const entries = values instanceof Map ? values.entries() : Object.entries(values);\n for (const [name, value] of entries)\n {\n this.SetVariable(name, value);\n }\n return this;\n }\n\n /**\n * Stores a value under a name, wrapping raw values in a CjsStoredVariable and\n * naming an unnamed variable object after its key. Values that already\n * implement the variable protocol are stored by reference, not copied.\n */\n SetVariable(name, value, Type = null)\n {\n const key = String(name);\n const variable = CjsVariableStore.isVariable(value) ? value : this.CreateVariable(key, value, Type);\n if (variable && typeof variable === \"object\" && \"name\" in variable && !variable.name)\n {\n variable.name = key;\n }\n this.#variables.set(key, variable);\n return variable;\n }\n\n /**\n * Constructs the wrapper object for a name/value pair, using the supplied\n * constructor when one is given and CjsStoredVariable otherwise.\n */\n CreateVariable(name, value = undefined, Type = null)\n {\n if (typeof Type === \"function\")\n {\n return new Type(name, value);\n }\n return new CjsStoredVariable(name, value, Type);\n }\n\n /**\n * The stored variable object, or null; parameters hold on to this reference\n * until they re-Initialize.\n */\n GetVariable(name)\n {\n return this.#variables.get(String(name)) ?? null;\n }\n\n /**\n * camelCase alias for GetVariable, accepted because parameters probe both\n * spellings.\n */\n getVariable(name)\n {\n return this.GetVariable(name);\n }\n\n /** Whether a variable is stored under this name. */\n HasVariable(name)\n {\n return this.#variables.has(String(name));\n }\n\n /** camelCase alias for HasVariable. */\n hasVariable(name)\n {\n return this.HasVariable(name);\n }\n\n /**\n * Removes the named variable; returns whether it was present. Parameters\n * already holding the variable keep working until they re-Initialize.\n */\n DeleteVariable(name)\n {\n return this.#variables.delete(String(name));\n }\n\n /**\n * Empties the table; parameters already holding a variable reference keep it\n * until they re-Initialize.\n */\n Clear()\n {\n this.#variables.clear();\n }\n\n /**\n * The variable's current value, or undefined when the name is unknown.\n * @param out optional array the variable may fill in instead of returning its own storage\n */\n GetVariableValue(name, out = undefined)\n {\n const variable = this.GetVariable(name);\n return variable?.GetValue?.(out) ?? variable?.getValue?.(out) ?? variable?.value ?? undefined;\n }\n\n /** camelCase alias for GetVariableValue. */\n getVariableValue(name, out = undefined)\n {\n return this.GetVariableValue(name, out);\n }\n\n /**\n * Writes a value through the named variable, creating the variable when absent\n * and assigning `.value` directly for holders with no setter; returns the\n * variable.\n */\n SetVariableValue(name, value, options = undefined)\n {\n const variable = this.GetVariable(name) ?? this.SetVariable(name, value);\n variable?.SetValue?.(value, options) ?? variable?.setValue?.(value, options);\n if (variable && typeof variable === \"object\" && !variable.SetValue && !variable.setValue)\n {\n variable.value = value;\n }\n return variable;\n }\n\n /** camelCase alias for SetVariableValue. */\n setVariableValue(name, value, options = undefined)\n {\n return this.SetVariableValue(name, value, options);\n }\n\n /**\n * Snapshot array of [name, variable] pairs; mutating the array does not affect\n * the store.\n */\n Entries()\n {\n return [...this.#variables.entries()];\n }\n\n /**\n * Snapshot array of the stored variable objects; the objects themselves are\n * live references.\n */\n Values()\n {\n return [...this.#variables.values()];\n }\n\n /**\n * Whether a value already implements the variable protocol - any of GetValue,\n * SetValue, CopyValueToEffect, CopyToResourceSet or ApplyUav - and so should\n * be stored unwrapped.\n */\n static isVariable(value)\n {\n return !!value && typeof value === \"object\" && (typeof value.GetValue === \"function\" || typeof value.SetValue === \"function\" || typeof value.CopyValueToEffect === \"function\" || typeof value.CopyToResourceSet === \"function\" || typeof value.ApplyUav === \"function\");\n }\n\n /**\n * The process-wide fallback store, created on first use; effects with no store\n * of their own read through it.\n */\n static GetGlobalStore()\n {\n if (!CjsVariableStore.#global)\n {\n CjsVariableStore.#global = new CjsVariableStore();\n }\n return CjsVariableStore.#global;\n }\n\n /**\n * Replaces the global store, installing a fresh empty one when passed null;\n * existing effects see the swap because they resolve the global at call time\n * rather than capturing it.\n */\n static SetGlobalStore(store)\n {\n CjsVariableStore.#global = store ?? new CjsVariableStore();\n return CjsVariableStore.#global;\n }\n\n}\n\n\n/**\n * The default variable wrapper: a name, a value and an inferred type tag, able\n * to copy itself into an effect constant destination.\n */\nexport class CjsStoredVariable\n{\n\n name = \"\";\n\n value = undefined;\n\n type = \"value\";\n\n /**\n * Creates a variable holding a raw value.\n * @param type overrides the type tag that would otherwise be inferred from the value\n */\n constructor(name = \"\", value = undefined, type = null)\n {\n this.name = String(name);\n this.value = value;\n this.type = type ?? CjsStoredVariable.inferType(value);\n }\n\n /**\n * The variable's name, which the store fills in from the key when it was\n * constructed without one.\n */\n GetName()\n {\n return this.name;\n }\n\n /**\n * The type tag TriVariableParameter uses to decide whether the name binds to a\n * shader constant or a shader resource.\n */\n GetType()\n {\n return this.type;\n }\n\n /**\n * Reads the value.\n * @param out optional array filled with min(out.length, value.length) components\n * @returns `out` when it was filled, otherwise the variable's own value by reference\n */\n GetValue(out = undefined)\n {\n if (out && this.value && typeof this.value.length === \"number\" && typeof out.length === \"number\")\n {\n const count = Math.min(out.length, this.value.length);\n for (let i = 0; i < count; i++)\n {\n out[i] = this.value[i];\n }\n return out;\n }\n return this.value;\n }\n\n /**\n * Replaces the value by reference and re-infers the type tag; always returns\n * true.\n */\n SetValue(value)\n {\n this.value = value;\n this.type = CjsStoredVariable.inferType(value);\n return true;\n }\n\n /**\n * Copies the value into an effect constant destination, clamped to the destination length, the source length and `size` bytes at four bytes per float; a scalar value writes one component.\n * @param size byte budget in the destination, not a component count\n * @returns {boolean} whether anything was written\n */\n CopyValueToEffect(_inputType, destination, size = Number.POSITIVE_INFINITY)\n {\n if (!destination || typeof destination.length !== \"number\")\n {\n return false;\n }\n const source = this.value;\n if (typeof source === \"number\")\n {\n destination[0] = source;\n return true;\n }\n if (!source || typeof source.length !== \"number\")\n {\n return false;\n }\n const byteLimit = Number.isFinite(size) ? Math.max(0, size) : Infinity;\n const count = Math.min(destination.length, source.length, Math.floor(byteLimit / 4));\n for (let i = 0; i < count; i++)\n {\n destination[i] = source[i];\n }\n return count > 0;\n }\n\n /**\n * Derives a type tag from a raw value: numbers are float, strings texture,\n * 16-length array-likes matrix4, other array-likes vectorN, everything else\n * value.\n */\n static inferType(value)\n {\n if (typeof value === \"number\")\n {\n return \"float\";\n }\n if (typeof value === \"string\")\n {\n return \"texture\";\n }\n if (value && typeof value.length === \"number\")\n {\n return value.length === 16 ? \"matrix4\" : `vector${value.length}`;\n }\n return \"value\";\n }\n\n}\n"],"names":["CjsVariableStore","Map","constructor","values","SetValues","Set","name","value","Type","SetVariable","Get","GetVariable","Has","HasVariable","entries","Object","key","String","variable","isVariable","CreateVariable","set","undefined","CjsStoredVariable","get","getVariable","has","hasVariable","DeleteVariable","delete","Clear","clear","GetVariableValue","out","GetValue","getValue","getVariableValue","SetVariableValue","options","SetValue","setValue","setVariableValue","Entries","Values","CopyValueToEffect","CopyToResourceSet","ApplyUav","GetGlobalStore","SetGlobalStore","store","type","inferType","GetName","GetType","length","count","Math","min","i","_inputType","destination","size","Number","POSITIVE_INFINITY","source","byteLimit","isFinite","max","Infinity","floor"],"mappings":"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"}
@@ -32,12 +32,27 @@ class Tr2ShaderBuffer extends CjsModel {
32
32
  this.data = _Tr2ShaderBuffer.copyBytes(data, byteSize);
33
33
  this.size = byteSize;
34
34
  }
35
+
36
+ /**
37
+ * Sets which shader stage this buffer belongs to; a non-numeric value becomes
38
+ * 0.
39
+ */
35
40
  SetShaderType(shaderType) {
36
41
  this.shaderType = Number(shaderType) || 0;
37
42
  }
43
+
44
+ /**
45
+ * Always false - binding the buffer to a device is outside this GPU-free
46
+ * package.
47
+ */
38
48
  ApplyBuffer() {
39
49
  return false;
40
50
  }
51
+
52
+ /**
53
+ * Copies up to `size` bytes out of an ArrayBuffer, typed-array view, latin-1
54
+ * string or array-like into a new zero-padded Uint8Array the caller owns.
55
+ */
41
56
  static copyBytes(data, size) {
42
57
  const out = new Uint8Array(size);
43
58
  if (data instanceof ArrayBuffer) {
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2ShaderBuffer.js","sources":["../../../../src/shader/support/Tr2ShaderBuffer.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Shader/Tr2ShaderBuffer.h\n// Generated by format-carbon carbon-class --emit. Verify against shader/Tr2ShaderBuffer.json.\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\n\n/** Tr2ShaderBuffer (shader) - generated from schema shapeHash 977c582f.... */\n@type.define({ className: \"Tr2ShaderBuffer\", family: \"shader\" })\nexport class Tr2ShaderBuffer extends CjsModel\n{\n\n /** m_size (int) [READ] */\n @io.read\n @type.int32\n size = 0;\n\n data = null;\n\n shaderType = 1;\n\n /** Carbon method SetData -> SetDataFromScript (MAP_METHOD_AND_WRAP). */\n @carbon.method\n @impl.implemented\n SetData(data, size = data?.byteLength ?? data?.length ?? 0)\n {\n const byteSize = Math.max(0, Number(size) || 0);\n if (!byteSize)\n {\n this.data = null;\n this.size = 0;\n return;\n }\n this.data = Tr2ShaderBuffer.copyBytes(data, byteSize);\n this.size = byteSize;\n }\n\n SetShaderType(shaderType)\n {\n this.shaderType = Number(shaderType) || 0;\n }\n\n ApplyBuffer()\n {\n return false;\n }\n\n static copyBytes(data, size)\n {\n const out = new Uint8Array(size);\n if (data instanceof ArrayBuffer)\n {\n out.set(new Uint8Array(data, 0, Math.min(size, data.byteLength)));\n }\n else if (ArrayBuffer.isView(data))\n {\n out.set(new Uint8Array(data.buffer, data.byteOffset, Math.min(size, data.byteLength)));\n }\n else if (typeof data === \"string\")\n {\n for (let i = 0; i < Math.min(size, data.length); i++)\n {\n out[i] = data.charCodeAt(i) & 0xff;\n }\n }\n else if (data && typeof data.length === \"number\")\n {\n out.set(Array.from(data).slice(0, size));\n }\n return out;\n }\n\n}\n"],"names":["_Tr2ShaderBuffer","Tr2ShaderBuffer","CjsModel","e","_init_size","_init_extra_size","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","int32","carbon","method","impl","implemented","size","data","shaderType","SetData","byteLength","length","byteSize","Math","max","Number","copyBytes","SetShaderType","ApplyBuffer","out","Uint8Array","ArrayBuffer","set","min","isView","buffer","byteOffset","i","charCodeAt","Array","from","slice"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2ShaderBuffer.js","sources":["../../../../src/shader/support/Tr2ShaderBuffer.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Shader/Tr2ShaderBuffer.h\n// Generated by format-carbon carbon-class --emit. Verify against shader/Tr2ShaderBuffer.json.\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\n\n/** Tr2ShaderBuffer (shader) - generated from schema shapeHash 977c582f.... */\n@type.define({ className: \"Tr2ShaderBuffer\", family: \"shader\" })\nexport class Tr2ShaderBuffer extends CjsModel\n{\n\n /** m_size (int) [READ] */\n @io.read\n @type.int32\n size = 0;\n\n data = null;\n\n shaderType = 1;\n\n /** Carbon method SetData -> SetDataFromScript (MAP_METHOD_AND_WRAP). */\n @carbon.method\n @impl.implemented\n SetData(data, size = data?.byteLength ?? data?.length ?? 0)\n {\n const byteSize = Math.max(0, Number(size) || 0);\n if (!byteSize)\n {\n this.data = null;\n this.size = 0;\n return;\n }\n this.data = Tr2ShaderBuffer.copyBytes(data, byteSize);\n this.size = byteSize;\n }\n\n /**\n * Sets which shader stage this buffer belongs to; a non-numeric value becomes\n * 0.\n */\n SetShaderType(shaderType)\n {\n this.shaderType = Number(shaderType) || 0;\n }\n\n /**\n * Always false - binding the buffer to a device is outside this GPU-free\n * package.\n */\n ApplyBuffer()\n {\n return false;\n }\n\n /**\n * Copies up to `size` bytes out of an ArrayBuffer, typed-array view, latin-1\n * string or array-like into a new zero-padded Uint8Array the caller owns.\n */\n static copyBytes(data, size)\n {\n const out = new Uint8Array(size);\n if (data instanceof ArrayBuffer)\n {\n out.set(new Uint8Array(data, 0, Math.min(size, data.byteLength)));\n }\n else if (ArrayBuffer.isView(data))\n {\n out.set(new Uint8Array(data.buffer, data.byteOffset, Math.min(size, data.byteLength)));\n }\n else if (typeof data === \"string\")\n {\n for (let i = 0; i < Math.min(size, data.length); i++)\n {\n out[i] = data.charCodeAt(i) & 0xff;\n }\n }\n else if (data && typeof data.length === \"number\")\n {\n out.set(Array.from(data).slice(0, size));\n }\n return out;\n }\n\n}\n"],"names":["_Tr2ShaderBuffer","Tr2ShaderBuffer","CjsModel","e","_init_size","_init_extra_size","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","int32","carbon","method","impl","implemented","size","data","shaderType","SetData","byteLength","length","byteSize","Math","max","Number","copyBytes","SetShaderType","ApplyBuffer","out","Uint8Array","ArrayBuffer","set","min","isView","buffer","byteOffset","i","charCodeAt","Array","from","slice"],"mappings":"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"}
@@ -22,6 +22,12 @@ const DEFAULT_BATCH_TYPES = [TriBatchType.TRIBATCHTYPE_OPAQUE, TriBatchType.TRIB
22
22
  function fail(message) {
23
23
  throw new Error(`CjsBatchManager: ${message}`);
24
24
  }
25
+
26
+ /**
27
+ * Owns the per-library render-batch producer and collector registry and drives
28
+ * the GPU-free per-frame flow of realize, build, finalize into one accumulator
29
+ * per batch type.
30
+ */
25
31
  class CjsBatchManager {
26
32
  #producers = new Map();
27
33
  #collectors = new Map();
@@ -35,6 +41,12 @@ class CjsBatchManager {
35
41
  // producer type names that MUST be registered before Initialize succeeds.
36
42
  // createAccumulator: optional (batchType) => accumulator factory forwarded to
37
43
  // the TriRenderBatchMap (e.g. an order-preserving accumulator for TRANSPARENT).
44
+
45
+ /**
46
+ * Configures which TriBatchType values are collected, which producer types
47
+ * Initialize must find registered, and an optional per-batch-type accumulator
48
+ * factory.
49
+ */
38
50
  constructor({
39
51
  batchTypes = DEFAULT_BATCH_TYPES,
40
52
  requiredTypes = [],
@@ -49,6 +61,12 @@ class CjsBatchManager {
49
61
  // batchMap, perObjectData, reason) emits data batches; Realize(renderable) is
50
62
  // the engine's pull-realization (consumes __state.rebuild tokens, fast-exits
51
63
  // when current). Registration is closed once Initialize has run.
64
+
65
+ /**
66
+ * Registers producer hooks given as { type, Build, Realize? } entries,
67
+ * rejecting duplicates and malformed entries; registration closes once
68
+ * Initialize has run. Returns this for chaining.
69
+ */
52
70
  Register(entries) {
53
71
  if (this.#initialized) fail("Register must be called before Initialize");
54
72
  if (!Array.isArray(entries)) fail("Register expects an array of { type, Build, Realize? } entries");
@@ -71,6 +89,11 @@ class CjsBatchManager {
71
89
  // Registers a scene-global collector (e.g. the quad or instanced-mesh family):
72
90
  // Collect(renderables, batchMap, reason) runs once per frame after the
73
91
  // per-renderable pass (Carbon precedent: Tr2QuadRenderer, EveInstancedMeshManager).
92
+
93
+ /**
94
+ * Registers a scene-global collector whose Collect runs once per frame after
95
+ * the per-renderable pass; must also be called before Initialize.
96
+ */
74
97
  RegisterCollector(name, collector) {
75
98
  if (this.#initialized) fail("RegisterCollector must be called before Initialize");
76
99
  if (typeof name !== "string" || !name) fail("collector requires a non-empty string name");
@@ -82,6 +105,11 @@ class CjsBatchManager {
82
105
 
83
106
  // Fail-closed gate: throws if a required producer type has no registration.
84
107
  // Creates the per-TriBatchType accumulator map and closes the registry.
108
+
109
+ /**
110
+ * Fail-closed gate: throws when any required producer type is unregistered,
111
+ * then creates the per-batch-type accumulator map and closes the registry.
112
+ */
85
113
  Initialize() {
86
114
  if (this.#initialized) fail("Initialize was already called");
87
115
  const missing = this.#requiredTypes.filter(type => !this.#producers.has(type));
@@ -92,6 +120,8 @@ class CjsBatchManager {
92
120
  this.#initialized = true;
93
121
  return this;
94
122
  }
123
+
124
+ /** Whether Initialize has run and the batch map exists. */
95
125
  IsInitialized() {
96
126
  return this.#initialized;
97
127
  }
@@ -113,6 +143,13 @@ class CjsBatchManager {
113
143
  // Scene-global collectors run after; Finalize sorts/group-counts every
114
144
  // accumulator. renderContext supplies the relocated view position (Carbon
115
145
  // reads a renderer global). Returns the finalized batch map.
146
+
147
+ /**
148
+ * Runs the per-frame CPU collection over pre-culled renderables - realize,
149
+ * per-renderable build into every non-transparent type, then a back-to-front
150
+ * transparent pass, then the scene-global collectors - and returns the
151
+ * finalized batch map.
152
+ */
116
153
  Collect(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL, renderContext = null) {
117
154
  if (!this.#initialized) fail("Collect requires Initialize");
118
155
  const TRANSPARENT = TriBatchType.TRIBATCHTYPE_TRANSPARENT;
@@ -122,8 +159,8 @@ class CjsBatchManager {
122
159
  // Bind the per-object-data store from the render context (built once from
123
160
  // the engine at scene setup). GetPerObjectData Allocs pooled records from
124
161
  // it; without a store, an eager-fill renderable throws (setup error).
125
- const store = renderContext?.GetRawDataStore?.();
126
- if (store) batchMap.SetRawDataStore(store);
162
+ const store = renderContext?.GetTriPoolAllocator?.();
163
+ if (store) batchMap.SetTriPoolAllocator(store);
127
164
  const collectsTransparent = this.#batchTypes.includes(TRANSPARENT);
128
165
  const transparents = [];
129
166
  if (renderables) {
@@ -164,12 +201,18 @@ class CjsBatchManager {
164
201
  batchMap.Finalize();
165
202
  return batchMap;
166
203
  }
204
+
205
+ /** The batch map created by Initialize, or null before it has run. */
167
206
  GetBatchMap() {
168
207
  return this.#batchMap;
169
208
  }
209
+
210
+ /** The accumulator for one batch type, or null when that type is not collected. */
170
211
  GetAccumulator(batchType) {
171
212
  return this.#batchMap?.GetAccumulator(batchType) ?? null;
172
213
  }
214
+
215
+ /** A copy of the collected batch-type list. */
173
216
  GetBatchTypes() {
174
217
  return Array.from(this.#batchTypes);
175
218
  }
@@ -177,6 +220,12 @@ class CjsBatchManager {
177
220
  // A renderable DECLARES its producer type (method or plain property); it never
178
221
  // owns builder code. Returns null when undeclared (duck-typed GetBatches
179
222
  // fallback applies).
223
+
224
+ /**
225
+ * Looks up the producer a renderable declares through GetBatchProducerType or
226
+ * a batchProducerType property; null means the duck-typed GetBatches fallback
227
+ * applies.
228
+ */
180
229
  #ProducerFor(renderable) {
181
230
  const type = renderable.GetBatchProducerType?.() ?? renderable.batchProducerType ?? null;
182
231
  return type ? this.#producers.get(type) ?? null : null;
@@ -185,6 +234,11 @@ class CjsBatchManager {
185
234
  // True when the object advertises pending scheduled GPU work via the shared
186
235
  // __state.rebuild token set (kb section 8). Realizers use this (plus their own
187
236
  // per-token checks) to fast-exit when current.
237
+
238
+ /**
239
+ * Whether an object advertises pending scheduled GPU work through its shared
240
+ * __state.rebuild token set.
241
+ */
188
242
  static HasRebuildWork(object) {
189
243
  return (object?.__state?.rebuild?.size ?? 0) > 0;
190
244
  }
@@ -195,6 +249,12 @@ class CjsBatchManager {
195
249
  // child tokens alongside the owner's - no upward token copying is performed.
196
250
  // This helper answers "does the owner or any child advertise work"; the
197
251
  // realizer still clears each consumed token where it lives.
252
+
253
+ /**
254
+ * Whether the owner or any listed child advertises rebuild work; child tokens
255
+ * stay where they live, and the realizer still clears each consumed token
256
+ * there.
257
+ */
198
258
  static AnyRebuildWork(object, children = null) {
199
259
  if (CjsBatchManager.HasRebuildWork(object)) return true;
200
260
  if (!children) return false;
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBatchManager.js","sources":["../../../src/trinityCore/CjsBatchManager.js"],"sourcesContent":["// CarbonEngineJS composition class (no Carbon counterpart) - see\n// .agents/BATCH-PIPELINE-PLAN.md and DECISIONS.md 2026-07-23.\n//\n// Library-level batch orchestrator: one per backend/CjsLibrary, GPU-free. Owns\n// the producer registry ({ type -> { Build, Realize } } plus scene-global\n// collectors) and the neutral per-frame collection flow:\n//\n// realize-if-stale -> build data batches -> finalize -> expose accumulators\n//\n// The engine registers its concrete hooks at composition time (fail-closed via\n// Initialize). Realizers own GPU state and the staleness policy (they consume\n// __state.rebuild tokens and fast-exit when current); Build hooks emit neutral\n// Tr2RenderBatch DATA into the per-TriBatchType accumulators; dispatch of the\n// finalized accumulators is engine work and never lives here. The manager holds\n// a reference DOWN to the engine hooks - it is not a device member, and no GPU\n// handle ever enters this class.\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { Tr2RenderReason } from \"../generated/trinityCore/enums.js\";\nimport { TriRenderBatchMap } from \"./TriRenderBatchMap.js\";\n\nconst DEFAULT_BATCH_TYPES = [\n TriBatchType.TRIBATCHTYPE_OPAQUE,\n TriBatchType.TRIBATCHTYPE_DECAL,\n TriBatchType.TRIBATCHTYPE_TRANSPARENT,\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\n TriBatchType.TRIBATCHTYPE_DEPTH\n];\n\nfunction fail(message)\n{\n throw new Error(`CjsBatchManager: ${message}`);\n}\n\nexport class CjsBatchManager\n{\n #producers = new Map();\n\n #collectors = new Map();\n\n #batchTypes;\n\n #requiredTypes;\n\n #createAccumulator;\n\n #batchMap = null;\n\n #initialized = false;\n\n // batchTypes: TriBatchType values collected each frame. requiredTypes:\n // producer type names that MUST be registered before Initialize succeeds.\n // createAccumulator: optional (batchType) => accumulator factory forwarded to\n // the TriRenderBatchMap (e.g. an order-preserving accumulator for TRANSPARENT).\n constructor({ batchTypes = DEFAULT_BATCH_TYPES, requiredTypes = [], createAccumulator = null } = {})\n {\n this.#batchTypes = Array.from(batchTypes);\n this.#requiredTypes = Array.from(requiredTypes);\n this.#createAccumulator = createAccumulator;\n }\n\n // Registers producer hooks: [{ type, Build, Realize? }]. Build(renderable,\n // batchMap, perObjectData, reason) emits data batches; Realize(renderable) is\n // the engine's pull-realization (consumes __state.rebuild tokens, fast-exits\n // when current). Registration is closed once Initialize has run.\n Register(entries)\n {\n if (this.#initialized) fail(\"Register must be called before Initialize\");\n if (!Array.isArray(entries)) fail(\"Register expects an array of { type, Build, Realize? } entries\");\n\n for (const entry of entries)\n {\n const type = entry?.type;\n if (typeof type !== \"string\" || !type) fail(\"producer entry requires a non-empty string type\");\n if (this.#producers.has(type)) fail(`producer type \"${type}\" is already registered`);\n if (typeof entry.Build !== \"function\") fail(`producer \"${type}\" requires a Build function`);\n if (entry.Realize !== undefined && typeof entry.Realize !== \"function\")\n {\n fail(`producer \"${type}\" Realize must be a function when provided`);\n }\n this.#producers.set(type, { Build: entry.Build, Realize: entry.Realize ?? null });\n }\n return this;\n }\n\n // Registers a scene-global collector (e.g. the quad or instanced-mesh family):\n // Collect(renderables, batchMap, reason) runs once per frame after the\n // per-renderable pass (Carbon precedent: Tr2QuadRenderer, EveInstancedMeshManager).\n RegisterCollector(name, collector)\n {\n if (this.#initialized) fail(\"RegisterCollector must be called before Initialize\");\n if (typeof name !== \"string\" || !name) fail(\"collector requires a non-empty string name\");\n if (this.#collectors.has(name)) fail(`collector \"${name}\" is already registered`);\n if (typeof collector?.Collect !== \"function\") fail(`collector \"${name}\" requires a Collect function`);\n this.#collectors.set(name, collector);\n return this;\n }\n\n // Fail-closed gate: throws if a required producer type has no registration.\n // Creates the per-TriBatchType accumulator map and closes the registry.\n Initialize()\n {\n if (this.#initialized) fail(\"Initialize was already called\");\n\n const missing = this.#requiredTypes.filter(type => !this.#producers.has(type));\n if (missing.length)\n {\n fail(`required producer type(s) not registered: ${missing.join(\", \")}`);\n }\n\n this.#batchMap = new TriRenderBatchMap(this.#batchTypes, this.#createAccumulator);\n this.#initialized = true;\n return this;\n }\n\n IsInitialized()\n {\n return this.#initialized;\n }\n\n // The neutral per-frame CPU collection. Renderables are expected pre-culled\n // (visibility is a scene concern). Faithful to Carbon's two-phase flow\n // (EveSpaceScene.cpp GetBatchesFromRenderables + PrepareTransparentBatch):\n //\n // 1. Per renderable: run the engine's Realize hook when its producer\n // registered one (the realizer fast-exits when current), obtain per-object\n // data once (pool = OPAQUE accumulator), then dispatch the registered Build\n // hook or fall back to the duck-typed GetBatches per NON-TRANSPARENT batch\n // type. Renderables reporting HasTransparentBatches are gathered with\n // their GetSortValue distance.\n // 2. Transparent pass: sort front-to-back, iterate back-to-front, allocating\n // fresh per-object data from the TRANSPARENT accumulator per renderable -\n // insertion order IS the draw order (order-preserving accumulator).\n //\n // Scene-global collectors run after; Finalize sorts/group-counts every\n // accumulator. renderContext supplies the relocated view position (Carbon\n // reads a renderer global). Returns the finalized batch map.\n Collect(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL, renderContext = null)\n {\n if (!this.#initialized) fail(\"Collect requires Initialize\");\n\n const TRANSPARENT = TriBatchType.TRIBATCHTYPE_TRANSPARENT;\n const batchMap = this.#batchMap;\n batchMap.Clear();\n\n // Bind the per-object-data store from the render context (built once from\n // the engine at scene setup). GetPerObjectData Allocs pooled records from\n // it; without a store, an eager-fill renderable throws (setup error).\n const store = renderContext?.GetRawDataStore?.();\n if (store) batchMap.SetRawDataStore(store);\n\n const collectsTransparent = this.#batchTypes.includes(TRANSPARENT);\n const transparents = [];\n\n if (renderables)\n {\n const poolAccumulator = batchMap.GetAccumulator(TriBatchType.TRIBATCHTYPE_OPAQUE)\n ?? batchMap.GetAccumulator(this.#batchTypes[0]);\n\n for (const renderable of renderables)\n {\n if (!renderable) continue;\n\n const producer = this.#ProducerFor(renderable);\n if (producer?.Realize) producer.Realize(renderable);\n\n const perObjectData = renderable.GetPerObjectData?.(poolAccumulator) ?? null;\n\n if (producer)\n {\n producer.Build(renderable, batchMap, perObjectData, reason);\n }\n else if (typeof renderable.GetBatches === \"function\")\n {\n for (const batchType of this.#batchTypes)\n {\n if (batchType === TRANSPARENT) continue;\n renderable.GetBatches(\n batchMap.GetAccumulator(batchType), batchType, perObjectData, reason, renderContext);\n }\n }\n\n if (collectsTransparent && renderable.HasTransparentBatches?.())\n {\n transparents.push({\n renderable,\n distance: renderable.GetSortValue?.(renderContext) ?? 0\n });\n }\n }\n }\n\n if (transparents.length)\n {\n const transparentAccumulator = batchMap.GetAccumulator(TRANSPARENT);\n transparents.sort((a, b) => a.distance - b.distance);\n for (let index = transparents.length - 1; index >= 0; index--)\n {\n const renderable = transparents[index].renderable;\n const perObjectData = renderable.GetPerObjectData?.(transparentAccumulator) ?? null;\n renderable.GetBatches?.(transparentAccumulator, TRANSPARENT, perObjectData, reason, renderContext);\n }\n }\n\n for (const collector of this.#collectors.values())\n {\n collector.Collect(renderables ?? [], batchMap, reason);\n }\n\n batchMap.Finalize();\n return batchMap;\n }\n\n GetBatchMap()\n {\n return this.#batchMap;\n }\n\n GetAccumulator(batchType)\n {\n return this.#batchMap?.GetAccumulator(batchType) ?? null;\n }\n\n GetBatchTypes()\n {\n return Array.from(this.#batchTypes);\n }\n\n // A renderable DECLARES its producer type (method or plain property); it never\n // owns builder code. Returns null when undeclared (duck-typed GetBatches\n // fallback applies).\n #ProducerFor(renderable)\n {\n const type = renderable.GetBatchProducerType?.() ?? renderable.batchProducerType ?? null;\n return type ? this.#producers.get(type) ?? null : null;\n }\n\n // True when the object advertises pending scheduled GPU work via the shared\n // __state.rebuild token set (kb section 8). Realizers use this (plus their own\n // per-token checks) to fast-exit when current.\n static HasRebuildWork(object)\n {\n return (object?.__state?.rebuild?.size ?? 0) > 0;\n }\n\n // Owner-propagation convention (BATCH-PIPELINE-PLAN / runtime-trinity\n // DECORATOR-TODOS): child records (mesh areas, set items, effect children)\n // carry their OWN declared rebuild tokens, and the OWNING realizer consumes\n // child tokens alongside the owner's - no upward token copying is performed.\n // This helper answers \"does the owner or any child advertise work\"; the\n // realizer still clears each consumed token where it lives.\n static AnyRebuildWork(object, children = null)\n {\n if (CjsBatchManager.HasRebuildWork(object)) return true;\n if (!children) return false;\n for (const child of children)\n {\n if (CjsBatchManager.HasRebuildWork(child)) return true;\n }\n return false;\n }\n}\n"],"names":["DEFAULT_BATCH_TYPES","TriBatchType","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","TRIBATCHTYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","TRIBATCHTYPE_DEPTH","fail","message","Error","CjsBatchManager","Map","constructor","batchTypes","requiredTypes","createAccumulator","Array","from","Register","entries","isArray","entry","type","has","Build","Realize","undefined","set","RegisterCollector","name","collector","Collect","Initialize","missing","filter","length","join","TriRenderBatchMap","IsInitialized","renderables","reason","Tr2RenderReason","TR2RENDERREASON_NORMAL","renderContext","TRANSPARENT","batchMap","Clear","store","GetRawDataStore","SetRawDataStore","collectsTransparent","includes","transparents","poolAccumulator","GetAccumulator","renderable","producer","perObjectData","GetPerObjectData","GetBatches","batchType","HasTransparentBatches","push","distance","GetSortValue","transparentAccumulator","sort","a","b","index","values","Finalize","GetBatchMap","GetBatchTypes","#ProducerFor","GetBatchProducerType","batchProducerType","get","HasRebuildWork","object","__state","rebuild","size","AnyRebuildWork","children","child"],"mappings":"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"}
1
+ {"version":3,"file":"CjsBatchManager.js","sources":["../../../src/trinityCore/CjsBatchManager.js"],"sourcesContent":["// CarbonEngineJS composition class (no Carbon counterpart) - see\n// .agents/BATCH-PIPELINE-PLAN.md and DECISIONS.md 2026-07-23.\n//\n// Library-level batch orchestrator: one per backend/CjsLibrary, GPU-free. Owns\n// the producer registry ({ type -> { Build, Realize } } plus scene-global\n// collectors) and the neutral per-frame collection flow:\n//\n// realize-if-stale -> build data batches -> finalize -> expose accumulators\n//\n// The engine registers its concrete hooks at composition time (fail-closed via\n// Initialize). Realizers own GPU state and the staleness policy (they consume\n// __state.rebuild tokens and fast-exit when current); Build hooks emit neutral\n// Tr2RenderBatch DATA into the per-TriBatchType accumulators; dispatch of the\n// finalized accumulators is engine work and never lives here. The manager holds\n// a reference DOWN to the engine hooks - it is not a device member, and no GPU\n// handle ever enters this class.\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { Tr2RenderReason } from \"../generated/trinityCore/enums.js\";\nimport { TriRenderBatchMap } from \"./TriRenderBatchMap.js\";\n\nconst DEFAULT_BATCH_TYPES = [\n TriBatchType.TRIBATCHTYPE_OPAQUE,\n TriBatchType.TRIBATCHTYPE_DECAL,\n TriBatchType.TRIBATCHTYPE_TRANSPARENT,\n TriBatchType.TRIBATCHTYPE_ADDITIVE,\n TriBatchType.TRIBATCHTYPE_DEPTH\n];\n\nfunction fail(message)\n{\n throw new Error(`CjsBatchManager: ${message}`);\n}\n\n/**\n * Owns the per-library render-batch producer and collector registry and drives\n * the GPU-free per-frame flow of realize, build, finalize into one accumulator\n * per batch type.\n */\nexport class CjsBatchManager\n{\n #producers = new Map();\n\n #collectors = new Map();\n\n #batchTypes;\n\n #requiredTypes;\n\n #createAccumulator;\n\n #batchMap = null;\n\n #initialized = false;\n\n // batchTypes: TriBatchType values collected each frame. requiredTypes:\n // producer type names that MUST be registered before Initialize succeeds.\n // createAccumulator: optional (batchType) => accumulator factory forwarded to\n // the TriRenderBatchMap (e.g. an order-preserving accumulator for TRANSPARENT).\n\n /**\n * Configures which TriBatchType values are collected, which producer types\n * Initialize must find registered, and an optional per-batch-type accumulator\n * factory.\n */\n constructor({ batchTypes = DEFAULT_BATCH_TYPES, requiredTypes = [], createAccumulator = null } = {})\n {\n this.#batchTypes = Array.from(batchTypes);\n this.#requiredTypes = Array.from(requiredTypes);\n this.#createAccumulator = createAccumulator;\n }\n\n // Registers producer hooks: [{ type, Build, Realize? }]. Build(renderable,\n // batchMap, perObjectData, reason) emits data batches; Realize(renderable) is\n // the engine's pull-realization (consumes __state.rebuild tokens, fast-exits\n // when current). Registration is closed once Initialize has run.\n\n /**\n * Registers producer hooks given as { type, Build, Realize? } entries,\n * rejecting duplicates and malformed entries; registration closes once\n * Initialize has run. Returns this for chaining.\n */\n Register(entries)\n {\n if (this.#initialized) fail(\"Register must be called before Initialize\");\n if (!Array.isArray(entries)) fail(\"Register expects an array of { type, Build, Realize? } entries\");\n\n for (const entry of entries)\n {\n const type = entry?.type;\n if (typeof type !== \"string\" || !type) fail(\"producer entry requires a non-empty string type\");\n if (this.#producers.has(type)) fail(`producer type \"${type}\" is already registered`);\n if (typeof entry.Build !== \"function\") fail(`producer \"${type}\" requires a Build function`);\n if (entry.Realize !== undefined && typeof entry.Realize !== \"function\")\n {\n fail(`producer \"${type}\" Realize must be a function when provided`);\n }\n this.#producers.set(type, { Build: entry.Build, Realize: entry.Realize ?? null });\n }\n return this;\n }\n\n // Registers a scene-global collector (e.g. the quad or instanced-mesh family):\n // Collect(renderables, batchMap, reason) runs once per frame after the\n // per-renderable pass (Carbon precedent: Tr2QuadRenderer, EveInstancedMeshManager).\n\n /**\n * Registers a scene-global collector whose Collect runs once per frame after\n * the per-renderable pass; must also be called before Initialize.\n */\n RegisterCollector(name, collector)\n {\n if (this.#initialized) fail(\"RegisterCollector must be called before Initialize\");\n if (typeof name !== \"string\" || !name) fail(\"collector requires a non-empty string name\");\n if (this.#collectors.has(name)) fail(`collector \"${name}\" is already registered`);\n if (typeof collector?.Collect !== \"function\") fail(`collector \"${name}\" requires a Collect function`);\n this.#collectors.set(name, collector);\n return this;\n }\n\n // Fail-closed gate: throws if a required producer type has no registration.\n // Creates the per-TriBatchType accumulator map and closes the registry.\n\n /**\n * Fail-closed gate: throws when any required producer type is unregistered,\n * then creates the per-batch-type accumulator map and closes the registry.\n */\n Initialize()\n {\n if (this.#initialized) fail(\"Initialize was already called\");\n\n const missing = this.#requiredTypes.filter(type => !this.#producers.has(type));\n if (missing.length)\n {\n fail(`required producer type(s) not registered: ${missing.join(\", \")}`);\n }\n\n this.#batchMap = new TriRenderBatchMap(this.#batchTypes, this.#createAccumulator);\n this.#initialized = true;\n return this;\n }\n\n /** Whether Initialize has run and the batch map exists. */\n IsInitialized()\n {\n return this.#initialized;\n }\n\n // The neutral per-frame CPU collection. Renderables are expected pre-culled\n // (visibility is a scene concern). Faithful to Carbon's two-phase flow\n // (EveSpaceScene.cpp GetBatchesFromRenderables + PrepareTransparentBatch):\n //\n // 1. Per renderable: run the engine's Realize hook when its producer\n // registered one (the realizer fast-exits when current), obtain per-object\n // data once (pool = OPAQUE accumulator), then dispatch the registered Build\n // hook or fall back to the duck-typed GetBatches per NON-TRANSPARENT batch\n // type. Renderables reporting HasTransparentBatches are gathered with\n // their GetSortValue distance.\n // 2. Transparent pass: sort front-to-back, iterate back-to-front, allocating\n // fresh per-object data from the TRANSPARENT accumulator per renderable -\n // insertion order IS the draw order (order-preserving accumulator).\n //\n // Scene-global collectors run after; Finalize sorts/group-counts every\n // accumulator. renderContext supplies the relocated view position (Carbon\n // reads a renderer global). Returns the finalized batch map.\n\n /**\n * Runs the per-frame CPU collection over pre-culled renderables - realize,\n * per-renderable build into every non-transparent type, then a back-to-front\n * transparent pass, then the scene-global collectors - and returns the\n * finalized batch map.\n */\n Collect(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL, renderContext = null)\n {\n if (!this.#initialized) fail(\"Collect requires Initialize\");\n\n const TRANSPARENT = TriBatchType.TRIBATCHTYPE_TRANSPARENT;\n const batchMap = this.#batchMap;\n batchMap.Clear();\n\n // Bind the per-object-data store from the render context (built once from\n // the engine at scene setup). GetPerObjectData Allocs pooled records from\n // it; without a store, an eager-fill renderable throws (setup error).\n const store = renderContext?.GetTriPoolAllocator?.();\n if (store) batchMap.SetTriPoolAllocator(store);\n\n const collectsTransparent = this.#batchTypes.includes(TRANSPARENT);\n const transparents = [];\n\n if (renderables)\n {\n const poolAccumulator = batchMap.GetAccumulator(TriBatchType.TRIBATCHTYPE_OPAQUE)\n ?? batchMap.GetAccumulator(this.#batchTypes[0]);\n\n for (const renderable of renderables)\n {\n if (!renderable) continue;\n\n const producer = this.#ProducerFor(renderable);\n if (producer?.Realize) producer.Realize(renderable);\n\n const perObjectData = renderable.GetPerObjectData?.(poolAccumulator) ?? null;\n\n if (producer)\n {\n producer.Build(renderable, batchMap, perObjectData, reason);\n }\n else if (typeof renderable.GetBatches === \"function\")\n {\n for (const batchType of this.#batchTypes)\n {\n if (batchType === TRANSPARENT) continue;\n renderable.GetBatches(\n batchMap.GetAccumulator(batchType), batchType, perObjectData, reason, renderContext);\n }\n }\n\n if (collectsTransparent && renderable.HasTransparentBatches?.())\n {\n transparents.push({\n renderable,\n distance: renderable.GetSortValue?.(renderContext) ?? 0\n });\n }\n }\n }\n\n if (transparents.length)\n {\n const transparentAccumulator = batchMap.GetAccumulator(TRANSPARENT);\n transparents.sort((a, b) => a.distance - b.distance);\n for (let index = transparents.length - 1; index >= 0; index--)\n {\n const renderable = transparents[index].renderable;\n const perObjectData = renderable.GetPerObjectData?.(transparentAccumulator) ?? null;\n renderable.GetBatches?.(transparentAccumulator, TRANSPARENT, perObjectData, reason, renderContext);\n }\n }\n\n for (const collector of this.#collectors.values())\n {\n collector.Collect(renderables ?? [], batchMap, reason);\n }\n\n batchMap.Finalize();\n return batchMap;\n }\n\n /** The batch map created by Initialize, or null before it has run. */\n GetBatchMap()\n {\n return this.#batchMap;\n }\n\n /** The accumulator for one batch type, or null when that type is not collected. */\n GetAccumulator(batchType)\n {\n return this.#batchMap?.GetAccumulator(batchType) ?? null;\n }\n\n /** A copy of the collected batch-type list. */\n GetBatchTypes()\n {\n return Array.from(this.#batchTypes);\n }\n\n // A renderable DECLARES its producer type (method or plain property); it never\n // owns builder code. Returns null when undeclared (duck-typed GetBatches\n // fallback applies).\n\n /**\n * Looks up the producer a renderable declares through GetBatchProducerType or\n * a batchProducerType property; null means the duck-typed GetBatches fallback\n * applies.\n */\n #ProducerFor(renderable)\n {\n const type = renderable.GetBatchProducerType?.() ?? renderable.batchProducerType ?? null;\n return type ? this.#producers.get(type) ?? null : null;\n }\n\n // True when the object advertises pending scheduled GPU work via the shared\n // __state.rebuild token set (kb section 8). Realizers use this (plus their own\n // per-token checks) to fast-exit when current.\n\n /**\n * Whether an object advertises pending scheduled GPU work through its shared\n * __state.rebuild token set.\n */\n static HasRebuildWork(object)\n {\n return (object?.__state?.rebuild?.size ?? 0) > 0;\n }\n\n // Owner-propagation convention (BATCH-PIPELINE-PLAN / runtime-trinity\n // DECORATOR-TODOS): child records (mesh areas, set items, effect children)\n // carry their OWN declared rebuild tokens, and the OWNING realizer consumes\n // child tokens alongside the owner's - no upward token copying is performed.\n // This helper answers \"does the owner or any child advertise work\"; the\n // realizer still clears each consumed token where it lives.\n\n /**\n * Whether the owner or any listed child advertises rebuild work; child tokens\n * stay where they live, and the realizer still clears each consumed token\n * there.\n */\n static AnyRebuildWork(object, children = null)\n {\n if (CjsBatchManager.HasRebuildWork(object)) return true;\n if (!children) return false;\n for (const child of children)\n {\n if (CjsBatchManager.HasRebuildWork(child)) return true;\n }\n return false;\n }\n}\n"],"names":["DEFAULT_BATCH_TYPES","TriBatchType","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","TRIBATCHTYPE_TRANSPARENT","TRIBATCHTYPE_ADDITIVE","TRIBATCHTYPE_DEPTH","fail","message","Error","CjsBatchManager","Map","constructor","batchTypes","requiredTypes","createAccumulator","Array","from","Register","entries","isArray","entry","type","has","Build","Realize","undefined","set","RegisterCollector","name","collector","Collect","Initialize","missing","filter","length","join","TriRenderBatchMap","IsInitialized","renderables","reason","Tr2RenderReason","TR2RENDERREASON_NORMAL","renderContext","TRANSPARENT","batchMap","Clear","store","GetTriPoolAllocator","SetTriPoolAllocator","collectsTransparent","includes","transparents","poolAccumulator","GetAccumulator","renderable","producer","perObjectData","GetPerObjectData","GetBatches","batchType","HasTransparentBatches","push","distance","GetSortValue","transparentAccumulator","sort","a","b","index","values","Finalize","GetBatchMap","GetBatchTypes","#ProducerFor","GetBatchProducerType","batchProducerType","get","HasRebuildWork","object","__state","rebuild","size","AnyRebuildWork","children","child"],"mappings":"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"}
@@ -6,6 +6,11 @@ import { CjsModel } from '@carbonenginejs/runtime-utils/model';
6
6
  import { carbon, impl, type } from '@carbonenginejs/runtime-utils/schema';
7
7
 
8
8
  let _initProto, _initClass;
9
+
10
+ /**
11
+ * Per-bone rotation and translation offsets layered on top of an animated rig,
12
+ * keyed by bone name until bound into the rig's joint order.
13
+ */
9
14
  let _GrannyBoneOffset;
10
15
  class GrannyBoneOffset extends CjsModel {
11
16
  static {
@@ -19,28 +24,55 @@ class GrannyBoneOffset extends CjsModel {
19
24
  }
20
25
  #transforms = (_initProto(this), new Map());
21
26
  #riggedTransforms = [];
27
+
28
+ /** Nothing to prepare; always succeeds. */
22
29
  Initialize() {
23
30
  return true;
24
31
  }
32
+
33
+ /** Whether any bone offset has been set. */
25
34
  HaveTransforms() {
26
35
  return this.#transforms.size !== 0;
27
36
  }
37
+
38
+ /**
39
+ * True when offsets exist but the cached rig binding does not cover the given
40
+ * bone count, so BindToRig must run again.
41
+ */
28
42
  NeedRebind(numBones) {
29
43
  return this.HaveTransforms() && this.#riggedTransforms.length !== numBones;
30
44
  }
45
+
46
+ /**
47
+ * Drops the joint-order cache, forcing the next BindToRig to rebuild it; the
48
+ * named offsets are kept.
49
+ */
31
50
  ClearRigBindings() {
32
51
  this.#riggedTransforms.length = 0;
33
52
  }
53
+
54
+ /** Drops every named bone offset along with the rig binding. */
34
55
  ClearTransforms() {
35
56
  this.#transforms.clear();
36
57
  this.ClearRigBindings();
37
58
  }
59
+
60
+ /**
61
+ * Replaces a bone's offset with one built from the quaternion components,
62
+ * discarding any translation previously set for that bone, and invalidates the
63
+ * rig binding.
64
+ */
38
65
  SetRotation(bone, r, i, j, k) {
39
66
  if (!bone) return;
40
67
  const transform = mat4.fromQuat(mat4.create(), quat.fromValues(r, i, j, k));
41
68
  this.#transforms.set(String(bone), transform);
42
69
  this.ClearRigBindings();
43
70
  }
71
+
72
+ /**
73
+ * Sets a bone's offset translation in place, keeping any rotation already
74
+ * stored for it, and invalidates the rig binding.
75
+ */
44
76
  SetOffset(bone, x, y, z) {
45
77
  if (!bone) return;
46
78
  const key = String(bone);
@@ -51,12 +83,25 @@ class GrannyBoneOffset extends CjsModel {
51
83
  this.#transforms.set(key, transform);
52
84
  this.ClearRigBindings();
53
85
  }
86
+
87
+ /**
88
+ * Caches the named offsets in the rig's bone order so Apply can index them by
89
+ * joint; bones with no offset get a null slot.
90
+ */
54
91
  BindToRig(bones, numBones = bones?.length ?? 0) {
55
92
  if (!bones || !numBones) return;
56
93
  this.#riggedTransforms = Array.from({
57
94
  length: numBones
58
95
  }, (_, index) => this.#transforms.get(String(bones[index])) ?? null);
59
96
  }
97
+
98
+ /**
99
+ * Composes the joint's offset into its bone transform and multiplies by the
100
+ * parent, writing the result into out; returns false when that joint has no
101
+ * offset. Carbon's row-vector `(offset * bone) * parent` becomes `parent *
102
+ * (bone * offset)` here, and the translation is added component-wise rather
103
+ * than transformed.
104
+ */
60
105
  Apply(out, joint, boneMatrix, parentMatrix) {
61
106
  const offset = this.#riggedTransforms[joint];
62
107
  if (!offset) return false;
@@ -71,6 +116,12 @@ class GrannyBoneOffset extends CjsModel {
71
116
  mat4.multiply(out, parentMatrix, local);
72
117
  return true;
73
118
  }
119
+
120
+ /**
121
+ * Applies the joint's offset to a local rotation and position in place -
122
+ * offset rotation composed first, translation added - and returns false when
123
+ * that joint has no offset.
124
+ */
74
125
  ApplyToLocal(joint, rotation, position) {
75
126
  const offset = this.#riggedTransforms[joint];
76
127
  if (!offset) return false;
@@ -1 +1 @@
1
- {"version":3,"file":"GrannyBoneOffset.js","sources":["../../../src/trinityCore/GrannyBoneOffset.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/GrannyBoneOffset.h\n// trinity/trinity/GrannyBoneOffset.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { carbon, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\n\n\n@type.define({ className: \"GrannyBoneOffset\", family: \"trinityCore\" })\nexport class GrannyBoneOffset extends CjsModel\n{\n #transforms = new Map();\n #riggedTransforms = [];\n\n Initialize()\n {\n return true;\n }\n\n HaveTransforms()\n {\n return this.#transforms.size !== 0;\n }\n\n NeedRebind(numBones)\n {\n return this.HaveTransforms() && this.#riggedTransforms.length !== numBones;\n }\n\n ClearRigBindings()\n {\n this.#riggedTransforms.length = 0;\n }\n\n @carbon.method\n @impl.implemented\n ClearTransforms()\n {\n this.#transforms.clear();\n this.ClearRigBindings();\n }\n\n @carbon.method\n @impl.adapted\n SetRotation(bone, r, i, j, k)\n {\n if (!bone) return;\n const transform = mat4.fromQuat(mat4.create(), quat.fromValues(r, i, j, k));\n this.#transforms.set(String(bone), transform);\n this.ClearRigBindings();\n }\n\n @carbon.method\n @impl.implemented\n SetOffset(bone, x, y, z)\n {\n if (!bone) return;\n const key = String(bone);\n const transform = this.#transforms.get(key) ?? mat4.create();\n transform[12] = x;\n transform[13] = y;\n transform[14] = z;\n this.#transforms.set(key, transform);\n this.ClearRigBindings();\n }\n\n BindToRig(bones, numBones = bones?.length ?? 0)\n {\n if (!bones || !numBones) return;\n this.#riggedTransforms = Array.from({ length: numBones }, (_, index) =>\n this.#transforms.get(String(bones[index])) ?? null);\n }\n\n Apply(out, joint, boneMatrix, parentMatrix)\n {\n const offset = this.#riggedTransforms[joint];\n if (!offset) return false;\n\n // Carbon stores row-major matrices. Runtime matrices are column-major, so\n // Carbon's `(offset * bone) * parent` becomes `parent * (bone * offset)`.\n const local = mat4.multiply(mat4.create(), boneMatrix, offset);\n local[12] = boneMatrix[12] + offset[12];\n local[13] = boneMatrix[13] + offset[13];\n local[14] = boneMatrix[14] + offset[14];\n local[15] = 1;\n mat4.multiply(out, parentMatrix, local);\n return true;\n }\n\n ApplyToLocal(joint, rotation, position)\n {\n const offset = this.#riggedTransforms[joint];\n if (!offset) return false;\n const offsetRotation = mat4.getRotation(quat.create(), offset);\n // Carbon (row-vector): rotation = offsetRotation * rotation - offset first.\n quat.multiply(rotation, rotation, offsetRotation);\n vec3.add(position, position, mat4.getTranslation(vec3.create(), offset));\n return true;\n }\n}\n"],"names":["_GrannyBoneOffset","GrannyBoneOffset","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","Map","Initialize","HaveTransforms","size","NeedRebind","numBones","length","ClearRigBindings","ClearTransforms","clear","SetRotation","bone","r","i","j","k","transform","mat4","fromQuat","create","quat","fromValues","set","String","SetOffset","x","y","z","key","get","BindToRig","bones","Array","from","_","index","Apply","out","joint","boneMatrix","parentMatrix","offset","local","multiply","ApplyToLocal","rotation","position","offsetRotation","getRotation","vec3","add","getTranslation"],"mappings":";;;;;;;;AAO0E,IAAAA;AAG1E,MAAAC,gBAAA,SACsCC,QAAQ,CAC9C;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,GAAAC,UAAA,CAAA;MAAAC,CAAA,EAAA,CAAAL,iBAAA,EAAAM,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,kBAAkB;AAAEC,MAAAA,MAAM,EAAE;AAAc,KAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CA0BnEC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,6BAOhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CASZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,iCA5CmBb,QAAQ,CAAA;AAAA;AAE5C,EAAA,WAAW,IAAAE,UAAA,QAAG,IAAIa,GAAG,EAAE;EACvB,iBAAiB,GAAG,EAAE;AAEtBC,EAAAA,UAAUA,GACV;AACE,IAAA,OAAO,IAAI;AACb,EAAA;AAEAC,EAAAA,cAAcA,GACd;AACE,IAAA,OAAO,IAAI,CAAC,WAAW,CAACC,IAAI,KAAK,CAAC;AACpC,EAAA;EAEAC,UAAUA,CAACC,QAAQ,EACnB;AACE,IAAA,OAAO,IAAI,CAACH,cAAc,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAACI,MAAM,KAAKD,QAAQ;AAC5E,EAAA;AAEAE,EAAAA,gBAAgBA,GAChB;AACE,IAAA,IAAI,CAAC,iBAAiB,CAACD,MAAM,GAAG,CAAC;AACnC,EAAA;AAIAE,EAAAA,eAAeA,GACf;AACE,IAAA,IAAI,CAAC,WAAW,CAACC,KAAK,EAAE;IACxB,IAAI,CAACF,gBAAgB,EAAE;AACzB,EAAA;EAIAG,WAAWA,CAACC,IAAI,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAC5B;IACE,IAAI,CAACJ,IAAI,EAAE;IACX,MAAMK,SAAS,GAAGC,IAAI,CAACC,QAAQ,CAACD,IAAI,CAACE,MAAM,EAAE,EAAEC,IAAI,CAACC,UAAU,CAACT,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,CAAC;AAC3E,IAAA,IAAI,CAAC,WAAW,CAACO,GAAG,CAACC,MAAM,CAACZ,IAAI,CAAC,EAAEK,SAAS,CAAC;IAC7C,IAAI,CAACT,gBAAgB,EAAE;AACzB,EAAA;EAIAiB,SAASA,CAACb,IAAI,EAAEc,CAAC,EAAEC,CAAC,EAAEC,CAAC,EACvB;IACE,IAAI,CAAChB,IAAI,EAAE;AACX,IAAA,MAAMiB,GAAG,GAAGL,MAAM,CAACZ,IAAI,CAAC;AACxB,IAAA,MAAMK,SAAS,GAAG,IAAI,CAAC,WAAW,CAACa,GAAG,CAACD,GAAG,CAAC,IAAIX,IAAI,CAACE,MAAM,EAAE;AAC5DH,IAAAA,SAAS,CAAC,EAAE,CAAC,GAAGS,CAAC;AACjBT,IAAAA,SAAS,CAAC,EAAE,CAAC,GAAGU,CAAC;AACjBV,IAAAA,SAAS,CAAC,EAAE,CAAC,GAAGW,CAAC;IACjB,IAAI,CAAC,WAAW,CAACL,GAAG,CAACM,GAAG,EAAEZ,SAAS,CAAC;IACpC,IAAI,CAACT,gBAAgB,EAAE;AACzB,EAAA;EAEAuB,SAASA,CAACC,KAAK,EAAE1B,QAAQ,GAAG0B,KAAK,EAAEzB,MAAM,IAAI,CAAC,EAC9C;AACE,IAAA,IAAI,CAACyB,KAAK,IAAI,CAAC1B,QAAQ,EAAE;AACzB,IAAA,IAAI,CAAC,iBAAiB,GAAG2B,KAAK,CAACC,IAAI,CAAC;AAAE3B,MAAAA,MAAM,EAAED;KAAU,EAAE,CAAC6B,CAAC,EAAEC,KAAK,KACjE,IAAI,CAAC,WAAW,CAACN,GAAG,CAACN,MAAM,CAACQ,KAAK,CAACI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACvD,EAAA;EAEAC,KAAKA,CAACC,GAAG,EAAEC,KAAK,EAAEC,UAAU,EAAEC,YAAY,EAC1C;IACE,MAAMC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAACH,KAAK,CAAC;AAC5C,IAAA,IAAI,CAACG,MAAM,EAAE,OAAO,KAAK;;AAEzB;AACA;AACA,IAAA,MAAMC,KAAK,GAAGzB,IAAI,CAAC0B,QAAQ,CAAC1B,IAAI,CAACE,MAAM,EAAE,EAAEoB,UAAU,EAAEE,MAAM,CAAC;AAC9DC,IAAAA,KAAK,CAAC,EAAE,CAAC,GAAGH,UAAU,CAAC,EAAE,CAAC,GAAGE,MAAM,CAAC,EAAE,CAAC;AACvCC,IAAAA,KAAK,CAAC,EAAE,CAAC,GAAGH,UAAU,CAAC,EAAE,CAAC,GAAGE,MAAM,CAAC,EAAE,CAAC;AACvCC,IAAAA,KAAK,CAAC,EAAE,CAAC,GAAGH,UAAU,CAAC,EAAE,CAAC,GAAGE,MAAM,CAAC,EAAE,CAAC;AACvCC,IAAAA,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;IACbzB,IAAI,CAAC0B,QAAQ,CAACN,GAAG,EAAEG,YAAY,EAAEE,KAAK,CAAC;AACvC,IAAA,OAAO,IAAI;AACb,EAAA;AAEAE,EAAAA,YAAYA,CAACN,KAAK,EAAEO,QAAQ,EAAEC,QAAQ,EACtC;IACE,MAAML,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAACH,KAAK,CAAC;AAC5C,IAAA,IAAI,CAACG,MAAM,EAAE,OAAO,KAAK;AACzB,IAAA,MAAMM,cAAc,GAAG9B,IAAI,CAAC+B,WAAW,CAAC5B,IAAI,CAACD,MAAM,EAAE,EAAEsB,MAAM,CAAC;AAC9D;IACArB,IAAI,CAACuB,QAAQ,CAACE,QAAQ,EAAEA,QAAQ,EAAEE,cAAc,CAAC;AACjDE,IAAAA,IAAI,CAACC,GAAG,CAACJ,QAAQ,EAAEA,QAAQ,EAAE7B,IAAI,CAACkC,cAAc,CAACF,IAAI,CAAC9B,MAAM,EAAE,EAAEsB,MAAM,CAAC,CAAC;AACxE,IAAA,OAAO,IAAI;AACb,EAAA;AAAC,EAAA;IAAApD,UAAA,EAAA;AAAA;AACH;;;;"}
1
+ {"version":3,"file":"GrannyBoneOffset.js","sources":["../../../src/trinityCore/GrannyBoneOffset.js"],"sourcesContent":["// Ported/adapted from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/GrannyBoneOffset.h\n// trinity/trinity/GrannyBoneOffset.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { carbon, impl, type } from \"@carbonenginejs/runtime-utils/schema\";\n\n\n/**\n * Per-bone rotation and translation offsets layered on top of an animated rig,\n * keyed by bone name until bound into the rig's joint order.\n */\n@type.define({ className: \"GrannyBoneOffset\", family: \"trinityCore\" })\nexport class GrannyBoneOffset extends CjsModel\n{\n #transforms = new Map();\n #riggedTransforms = [];\n\n /** Nothing to prepare; always succeeds. */\n Initialize()\n {\n return true;\n }\n\n /** Whether any bone offset has been set. */\n HaveTransforms()\n {\n return this.#transforms.size !== 0;\n }\n\n /**\n * True when offsets exist but the cached rig binding does not cover the given\n * bone count, so BindToRig must run again.\n */\n NeedRebind(numBones)\n {\n return this.HaveTransforms() && this.#riggedTransforms.length !== numBones;\n }\n\n /**\n * Drops the joint-order cache, forcing the next BindToRig to rebuild it; the\n * named offsets are kept.\n */\n ClearRigBindings()\n {\n this.#riggedTransforms.length = 0;\n }\n\n /** Drops every named bone offset along with the rig binding. */\n @carbon.method\n @impl.implemented\n ClearTransforms()\n {\n this.#transforms.clear();\n this.ClearRigBindings();\n }\n\n /**\n * Replaces a bone's offset with one built from the quaternion components,\n * discarding any translation previously set for that bone, and invalidates the\n * rig binding.\n */\n @carbon.method\n @impl.adapted\n SetRotation(bone, r, i, j, k)\n {\n if (!bone) return;\n const transform = mat4.fromQuat(mat4.create(), quat.fromValues(r, i, j, k));\n this.#transforms.set(String(bone), transform);\n this.ClearRigBindings();\n }\n\n /**\n * Sets a bone's offset translation in place, keeping any rotation already\n * stored for it, and invalidates the rig binding.\n */\n @carbon.method\n @impl.implemented\n SetOffset(bone, x, y, z)\n {\n if (!bone) return;\n const key = String(bone);\n const transform = this.#transforms.get(key) ?? mat4.create();\n transform[12] = x;\n transform[13] = y;\n transform[14] = z;\n this.#transforms.set(key, transform);\n this.ClearRigBindings();\n }\n\n /**\n * Caches the named offsets in the rig's bone order so Apply can index them by\n * joint; bones with no offset get a null slot.\n */\n BindToRig(bones, numBones = bones?.length ?? 0)\n {\n if (!bones || !numBones) return;\n this.#riggedTransforms = Array.from({ length: numBones }, (_, index) =>\n this.#transforms.get(String(bones[index])) ?? null);\n }\n\n /**\n * Composes the joint's offset into its bone transform and multiplies by the\n * parent, writing the result into out; returns false when that joint has no\n * offset. Carbon's row-vector `(offset * bone) * parent` becomes `parent *\n * (bone * offset)` here, and the translation is added component-wise rather\n * than transformed.\n */\n Apply(out, joint, boneMatrix, parentMatrix)\n {\n const offset = this.#riggedTransforms[joint];\n if (!offset) return false;\n\n // Carbon stores row-major matrices. Runtime matrices are column-major, so\n // Carbon's `(offset * bone) * parent` becomes `parent * (bone * offset)`.\n const local = mat4.multiply(mat4.create(), boneMatrix, offset);\n local[12] = boneMatrix[12] + offset[12];\n local[13] = boneMatrix[13] + offset[13];\n local[14] = boneMatrix[14] + offset[14];\n local[15] = 1;\n mat4.multiply(out, parentMatrix, local);\n return true;\n }\n\n /**\n * Applies the joint's offset to a local rotation and position in place -\n * offset rotation composed first, translation added - and returns false when\n * that joint has no offset.\n */\n ApplyToLocal(joint, rotation, position)\n {\n const offset = this.#riggedTransforms[joint];\n if (!offset) return false;\n const offsetRotation = mat4.getRotation(quat.create(), offset);\n // Carbon (row-vector): rotation = offsetRotation * rotation - offset first.\n quat.multiply(rotation, rotation, offsetRotation);\n vec3.add(position, position, mat4.getTranslation(vec3.create(), offset));\n return true;\n }\n}\n"],"names":["_GrannyBoneOffset","GrannyBoneOffset","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","Map","Initialize","HaveTransforms","size","NeedRebind","numBones","length","ClearRigBindings","ClearTransforms","clear","SetRotation","bone","r","i","j","k","transform","mat4","fromQuat","create","quat","fromValues","set","String","SetOffset","x","y","z","key","get","BindToRig","bones","Array","from","_","index","Apply","out","joint","boneMatrix","parentMatrix","offset","local","multiply","ApplyToLocal","rotation","position","offsetRotation","getRotation","vec3","add","getTranslation"],"mappings":"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"}