@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
@@ -52,19 +52,42 @@ class Tr2EffectPassParameters extends CjsModel {
52
52
 
53
53
  /** m_usedTexturesDirty (bool) */
54
54
  usedTexturesDirty = (_init_extra_compatibleWithGdr(this), _init_usedTexturesDirty(this, false));
55
+
56
+ /** Records a resource this pass binds and marks the used-texture list stale. */
55
57
  AddUsedResource(resource) {
56
58
  this.usedResources.push(resource);
57
59
  this.usedTexturesDirty = true;
58
60
  }
61
+
62
+ /**
63
+ * Records a parameter whose value destination has been rerouted into this
64
+ * pass's storage.
65
+ */
59
66
  AddReroutable(reroutable) {
60
67
  this.reroutedParameters.push(reroutable);
61
68
  }
69
+
70
+ /**
71
+ * Allocates the CPU-side constant mirror for one shader stage of this pass.
72
+ * @param type stage index into stageInput
73
+ * @param size mirror size in bytes, rounded up to 16 by the stage
74
+ */
62
75
  AllocateConstantMirror(type, size) {
63
76
  this.#stage(type).AllocateConstants(size);
64
77
  }
78
+
79
+ /**
80
+ * Fills one stage's constant mirror from already-built shared buffer contents and clears that stage's dirty flag.
81
+ * @param type stage index into stageInput
82
+ */
65
83
  GetSharedConstantBuffer(type, contents, size) {
66
84
  this.#stage(type).GetSharedConstantBuffer(contents, size);
67
85
  }
86
+
87
+ /**
88
+ * The stage input at the given index, created on demand; negative or
89
+ * non-numeric indices clamp to 0.
90
+ */
68
91
  #stage(type) {
69
92
  const index = Math.max(0, Number(type) || 0);
70
93
  this.stageInput[index] ??= new _Tr2MaterialStageInpu();
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2EffectPassParameters.js","sources":["../../../../src/shader/material/Tr2EffectPassParameters.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Shader/Tr2Material.h\n// Generated by format-carbon carbon-class --emit. Verify against shader/Tr2EffectPassParameters.json.\nimport { type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { Tr2MaterialStageInput } from \"./Tr2MaterialStageInput.js\";\n\n/** Tr2EffectPassParameters (shader) - generated from schema shapeHash 5e017ea9.... */\n@type.define({ className: \"Tr2EffectPassParameters\", family: \"shader\" })\nexport class Tr2EffectPassParameters extends CjsModel\n{\n\n /** m_stageInput (Tr2MaterialStageInput) */\n @type.rawStruct(\"Tr2MaterialStageInput\")\n stageInput = Array.from({ length: 6 }, () => new Tr2MaterialStageInput());\n\n /** m_reroutedParameters (std::vector<ITriReroutable*>) */\n @type.list(\"ITriReroutable\")\n reroutedParameters = [];\n\n /** m_resourceSetDesc (Tr2ResourceSetDescriptionAL) */\n @type.rawStruct(\"Tr2ResourceSetDescriptionAL\")\n resourceSetDesc = null;\n\n /** m_resourceSet (Tr2ResourceSetAL) */\n @type.rawStruct(\"Tr2ResourceSetAL\")\n resourceSet = null;\n\n /** m_usedResources (std::vector<ITr2EffectValuePtr>) */\n @type.list(\"ITr2EffectValue\")\n usedResources = [];\n\n /** m_usedTextures (Tr2BindlessResourcesAL) */\n @type.rawStruct(\"Tr2BindlessResourcesAL\")\n usedTextures = null;\n\n /** m_resourceSetHash (uint32_t) */\n @type.uint32\n resourceSetHash = 0;\n\n /** m_resourceSetDirty (bool) */\n @type.boolean\n resourceSetDirty = true;\n\n /** m_compatibleWithGdr (bool) */\n @type.boolean\n compatibleWithGdr = true;\n\n /** m_usedTexturesDirty (bool) */\n @type.boolean\n usedTexturesDirty = false;\n\n AddUsedResource(resource)\n {\n this.usedResources.push(resource);\n this.usedTexturesDirty = true;\n }\n\n AddReroutable(reroutable)\n {\n this.reroutedParameters.push(reroutable);\n }\n\n AllocateConstantMirror(type, size)\n {\n this.#stage(type).AllocateConstants(size);\n }\n\n GetSharedConstantBuffer(type, contents, size)\n {\n this.#stage(type).GetSharedConstantBuffer(contents, size);\n }\n\n #stage(type)\n {\n const index = Math.max(0, Number(type) || 0);\n this.stageInput[index] ??= new Tr2MaterialStageInput();\n return this.stageInput[index];\n }\n\n}\n"],"names":["_Tr2EffectPassParamet","Tr2EffectPassParameters","CjsModel","e","_init_stageInput","_init_extra_stageInput","_init_reroutedParameters","_init_extra_reroutedParameters","_init_resourceSetDesc","_init_extra_resourceSetDesc","_init_resourceSet","_init_extra_resourceSet","_init_usedResources","_init_extra_usedResources","_init_usedTextures","_init_extra_usedTextures","_init_resourceSetHash","_init_extra_resourceSetHash","_init_resourceSetDirty","_init_extra_resourceSetDirty","_init_compatibleWithGdr","_init_extra_compatibleWithGdr","_init_usedTexturesDirty","_init_extra_usedTexturesDirty","c","_initClass","_applyDecs","type","define","className","family","rawStruct","list","uint32","boolean","constructor","args","stageInput","Array","from","length","Tr2MaterialStageInput","reroutedParameters","resourceSetDesc","resourceSet","usedResources","usedTextures","resourceSetHash","resourceSetDirty","compatibleWithGdr","usedTexturesDirty","AddUsedResource","resource","push","AddReroutable","reroutable","AllocateConstantMirror","size","AllocateConstants","GetSharedConstantBuffer","contents","#stage","index","Math","max","Number"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2EffectPassParameters.js","sources":["../../../../src/shader/material/Tr2EffectPassParameters.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Shader/Tr2Material.h\n// Generated by format-carbon carbon-class --emit. Verify against shader/Tr2EffectPassParameters.json.\nimport { type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { Tr2MaterialStageInput } from \"./Tr2MaterialStageInput.js\";\n\n/** Tr2EffectPassParameters (shader) - generated from schema shapeHash 5e017ea9.... */\n@type.define({ className: \"Tr2EffectPassParameters\", family: \"shader\" })\nexport class Tr2EffectPassParameters extends CjsModel\n{\n\n /** m_stageInput (Tr2MaterialStageInput) */\n @type.rawStruct(\"Tr2MaterialStageInput\")\n stageInput = Array.from({ length: 6 }, () => new Tr2MaterialStageInput());\n\n /** m_reroutedParameters (std::vector<ITriReroutable*>) */\n @type.list(\"ITriReroutable\")\n reroutedParameters = [];\n\n /** m_resourceSetDesc (Tr2ResourceSetDescriptionAL) */\n @type.rawStruct(\"Tr2ResourceSetDescriptionAL\")\n resourceSetDesc = null;\n\n /** m_resourceSet (Tr2ResourceSetAL) */\n @type.rawStruct(\"Tr2ResourceSetAL\")\n resourceSet = null;\n\n /** m_usedResources (std::vector<ITr2EffectValuePtr>) */\n @type.list(\"ITr2EffectValue\")\n usedResources = [];\n\n /** m_usedTextures (Tr2BindlessResourcesAL) */\n @type.rawStruct(\"Tr2BindlessResourcesAL\")\n usedTextures = null;\n\n /** m_resourceSetHash (uint32_t) */\n @type.uint32\n resourceSetHash = 0;\n\n /** m_resourceSetDirty (bool) */\n @type.boolean\n resourceSetDirty = true;\n\n /** m_compatibleWithGdr (bool) */\n @type.boolean\n compatibleWithGdr = true;\n\n /** m_usedTexturesDirty (bool) */\n @type.boolean\n usedTexturesDirty = false;\n\n /** Records a resource this pass binds and marks the used-texture list stale. */\n AddUsedResource(resource)\n {\n this.usedResources.push(resource);\n this.usedTexturesDirty = true;\n }\n\n /**\n * Records a parameter whose value destination has been rerouted into this\n * pass's storage.\n */\n AddReroutable(reroutable)\n {\n this.reroutedParameters.push(reroutable);\n }\n\n /**\n * Allocates the CPU-side constant mirror for one shader stage of this pass.\n * @param type stage index into stageInput\n * @param size mirror size in bytes, rounded up to 16 by the stage\n */\n AllocateConstantMirror(type, size)\n {\n this.#stage(type).AllocateConstants(size);\n }\n\n /**\n * Fills one stage's constant mirror from already-built shared buffer contents and clears that stage's dirty flag.\n * @param type stage index into stageInput\n */\n GetSharedConstantBuffer(type, contents, size)\n {\n this.#stage(type).GetSharedConstantBuffer(contents, size);\n }\n\n /**\n * The stage input at the given index, created on demand; negative or\n * non-numeric indices clamp to 0.\n */\n #stage(type)\n {\n const index = Math.max(0, Number(type) || 0);\n this.stageInput[index] ??= new Tr2MaterialStageInput();\n return this.stageInput[index];\n }\n\n}\n"],"names":["_Tr2EffectPassParamet","Tr2EffectPassParameters","CjsModel","e","_init_stageInput","_init_extra_stageInput","_init_reroutedParameters","_init_extra_reroutedParameters","_init_resourceSetDesc","_init_extra_resourceSetDesc","_init_resourceSet","_init_extra_resourceSet","_init_usedResources","_init_extra_usedResources","_init_usedTextures","_init_extra_usedTextures","_init_resourceSetHash","_init_extra_resourceSetHash","_init_resourceSetDirty","_init_extra_resourceSetDirty","_init_compatibleWithGdr","_init_extra_compatibleWithGdr","_init_usedTexturesDirty","_init_extra_usedTexturesDirty","c","_initClass","_applyDecs","type","define","className","family","rawStruct","list","uint32","boolean","constructor","args","stageInput","Array","from","length","Tr2MaterialStageInput","reroutedParameters","resourceSetDesc","resourceSet","usedResources","usedTextures","resourceSetHash","resourceSetDirty","compatibleWithGdr","usedTexturesDirty","AddUsedResource","resource","push","AddReroutable","reroutable","AllocateConstantMirror","size","AllocateConstants","GetSharedConstantBuffer","contents","#stage","index","Math","max","Number"],"mappings":"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"}
@@ -43,17 +43,32 @@ class Tr2MaterialStageInput extends CjsModel {
43
43
 
44
44
  /** m_constantMirror (CcpMallocBuffer) */
45
45
  constantMirror = (_init_extra_constantBuffer(this), _init_constantMirror(this, null));
46
+
47
+ /**
48
+ * Allocates the CPU-side constant mirror rounded up to a 16-byte multiple and marks it dirty; a zero size clears the mirror instead. No GPU buffer is created.
49
+ * @param size requested mirror size in bytes
50
+ */
46
51
  AllocateConstants(size = 0) {
47
52
  const byteSize = Math.max(0, Number(size) || 0);
48
53
  const alignedSize = byteSize % 16 ? byteSize + 16 - byteSize % 16 : byteSize;
49
54
  this.constantMirror = alignedSize ? new Uint8Array(alignedSize) : null;
50
55
  this.constantBufferDirty = alignedSize > 0;
51
56
  }
57
+
58
+ /**
59
+ * Replaces the constant mirror with a copy of already-built buffer contents and clears the dirty flag; a zero size clears the mirror instead.
60
+ * @param size byte count to copy, defaulting to the contents' own byte length
61
+ */
52
62
  GetSharedConstantBuffer(contents, size = contents?.byteLength ?? contents?.length ?? 0) {
53
63
  const byteSize = Math.max(0, Number(size) || 0);
54
64
  this.constantMirror = byteSize ? _Tr2MaterialStageInpu.copyBytes(contents, byteSize) : null;
55
65
  this.constantBufferDirty = false;
56
66
  }
67
+
68
+ /**
69
+ * Copies up to `size` bytes out of an ArrayBuffer, typed-array view or
70
+ * array-like into a new zero-padded Uint8Array the caller owns.
71
+ */
57
72
  static copyBytes(contents, size) {
58
73
  const out = new Uint8Array(size);
59
74
  if (contents instanceof ArrayBuffer) {
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2MaterialStageInput.js","sources":["../../../../src/shader/material/Tr2MaterialStageInput.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Shader/Tr2Material.h\n// Generated by format-carbon carbon-class --emit. Verify against shader/Tr2MaterialStageInput.json.\nimport { type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\n\n/** Tr2MaterialStageInput (shader) - generated from schema shapeHash 8bae330e.... */\n@type.define({ className: \"Tr2MaterialStageInput\", family: \"shader\" })\nexport class Tr2MaterialStageInput extends CjsModel\n{\n\n /** m_constantBufferDirty (bool) */\n @type.boolean\n constantBufferDirty = false;\n\n /** m_sharedBufferKey (Tr2SharedConstantBuffers::Key) */\n @type.rawStruct(\"Tr2SharedConstantBuffers::Key\")\n sharedBufferKey = null;\n\n /** m_shaderParameters (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n shaderParameters = [];\n\n /** m_shaderParametersWithNotification (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n shaderParametersWithNotification = [];\n\n /** m_textures (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n textures = [];\n\n /** m_uavs (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n uavs = [];\n\n /** m_constantBuffer (Tr2ConstantBufferAL) */\n @type.rawStruct(\"Tr2ConstantBufferAL\")\n constantBuffer = null;\n\n /** m_constantMirror (CcpMallocBuffer) */\n @type.rawStruct(\"CcpMallocBuffer\")\n constantMirror = null;\n\n AllocateConstants(size = 0)\n {\n const byteSize = Math.max(0, Number(size) || 0);\n const alignedSize = byteSize % 16 ? byteSize + 16 - byteSize % 16 : byteSize;\n this.constantMirror = alignedSize ? new Uint8Array(alignedSize) : null;\n this.constantBufferDirty = alignedSize > 0;\n }\n\n GetSharedConstantBuffer(contents, size = contents?.byteLength ?? contents?.length ?? 0)\n {\n const byteSize = Math.max(0, Number(size) || 0);\n this.constantMirror = byteSize ? Tr2MaterialStageInput.copyBytes(contents, byteSize) : null;\n this.constantBufferDirty = false;\n }\n\n static copyBytes(contents, size)\n {\n const out = new Uint8Array(size);\n if (contents instanceof ArrayBuffer)\n {\n out.set(new Uint8Array(contents, 0, Math.min(size, contents.byteLength)));\n }\n else if (ArrayBuffer.isView(contents))\n {\n out.set(new Uint8Array(contents.buffer, contents.byteOffset, Math.min(size, contents.byteLength)));\n }\n else if (contents && typeof contents.length === \"number\")\n {\n out.set(Array.from(contents).slice(0, size));\n }\n return out;\n }\n\n}\n"],"names":["_Tr2MaterialStageInpu","Tr2MaterialStageInput","CjsModel","e","_init_constantBufferDirty","_init_extra_constantBufferDirty","_init_sharedBufferKey","_init_extra_sharedBufferKey","_init_shaderParameters","_init_extra_shaderParameters","_init_shaderParametersWithNotification","_init_extra_shaderParametersWithNotification","_init_textures","_init_extra_textures","_init_uavs","_init_extra_uavs","_init_constantBuffer","_init_extra_constantBuffer","_init_constantMirror","_init_extra_constantMirror","c","_initClass","_applyDecs","type","define","className","family","boolean","rawStruct","list","constructor","args","constantBufferDirty","sharedBufferKey","shaderParameters","shaderParametersWithNotification","textures","uavs","constantBuffer","constantMirror","AllocateConstants","size","byteSize","Math","max","Number","alignedSize","Uint8Array","GetSharedConstantBuffer","contents","byteLength","length","copyBytes","out","ArrayBuffer","set","min","isView","buffer","byteOffset","Array","from","slice"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2MaterialStageInput.js","sources":["../../../../src/shader/material/Tr2MaterialStageInput.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Shader/Tr2Material.h\n// Generated by format-carbon carbon-class --emit. Verify against shader/Tr2MaterialStageInput.json.\nimport { type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\n\n/** Tr2MaterialStageInput (shader) - generated from schema shapeHash 8bae330e.... */\n@type.define({ className: \"Tr2MaterialStageInput\", family: \"shader\" })\nexport class Tr2MaterialStageInput extends CjsModel\n{\n\n /** m_constantBufferDirty (bool) */\n @type.boolean\n constantBufferDirty = false;\n\n /** m_sharedBufferKey (Tr2SharedConstantBuffers::Key) */\n @type.rawStruct(\"Tr2SharedConstantBuffers::Key\")\n sharedBufferKey = null;\n\n /** m_shaderParameters (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n shaderParameters = [];\n\n /** m_shaderParametersWithNotification (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n shaderParametersWithNotification = [];\n\n /** m_textures (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n textures = [];\n\n /** m_uavs (Tr2EffectParamVector) */\n @type.list(\"Tr2EffectParam\")\n uavs = [];\n\n /** m_constantBuffer (Tr2ConstantBufferAL) */\n @type.rawStruct(\"Tr2ConstantBufferAL\")\n constantBuffer = null;\n\n /** m_constantMirror (CcpMallocBuffer) */\n @type.rawStruct(\"CcpMallocBuffer\")\n constantMirror = null;\n\n /**\n * Allocates the CPU-side constant mirror rounded up to a 16-byte multiple and marks it dirty; a zero size clears the mirror instead. No GPU buffer is created.\n * @param size requested mirror size in bytes\n */\n AllocateConstants(size = 0)\n {\n const byteSize = Math.max(0, Number(size) || 0);\n const alignedSize = byteSize % 16 ? byteSize + 16 - byteSize % 16 : byteSize;\n this.constantMirror = alignedSize ? new Uint8Array(alignedSize) : null;\n this.constantBufferDirty = alignedSize > 0;\n }\n\n /**\n * Replaces the constant mirror with a copy of already-built buffer contents and clears the dirty flag; a zero size clears the mirror instead.\n * @param size byte count to copy, defaulting to the contents' own byte length\n */\n GetSharedConstantBuffer(contents, size = contents?.byteLength ?? contents?.length ?? 0)\n {\n const byteSize = Math.max(0, Number(size) || 0);\n this.constantMirror = byteSize ? Tr2MaterialStageInput.copyBytes(contents, byteSize) : null;\n this.constantBufferDirty = false;\n }\n\n /**\n * Copies up to `size` bytes out of an ArrayBuffer, typed-array view or\n * array-like into a new zero-padded Uint8Array the caller owns.\n */\n static copyBytes(contents, size)\n {\n const out = new Uint8Array(size);\n if (contents instanceof ArrayBuffer)\n {\n out.set(new Uint8Array(contents, 0, Math.min(size, contents.byteLength)));\n }\n else if (ArrayBuffer.isView(contents))\n {\n out.set(new Uint8Array(contents.buffer, contents.byteOffset, Math.min(size, contents.byteLength)));\n }\n else if (contents && typeof contents.length === \"number\")\n {\n out.set(Array.from(contents).slice(0, size));\n }\n return out;\n }\n\n}\n"],"names":["_Tr2MaterialStageInpu","Tr2MaterialStageInput","CjsModel","e","_init_constantBufferDirty","_init_extra_constantBufferDirty","_init_sharedBufferKey","_init_extra_sharedBufferKey","_init_shaderParameters","_init_extra_shaderParameters","_init_shaderParametersWithNotification","_init_extra_shaderParametersWithNotification","_init_textures","_init_extra_textures","_init_uavs","_init_extra_uavs","_init_constantBuffer","_init_extra_constantBuffer","_init_constantMirror","_init_extra_constantMirror","c","_initClass","_applyDecs","type","define","className","family","boolean","rawStruct","list","constructor","args","constantBufferDirty","sharedBufferKey","shaderParameters","shaderParametersWithNotification","textures","uavs","constantBuffer","constantMirror","AllocateConstants","size","byteSize","Math","max","Number","alignedSize","Uint8Array","GetSharedConstantBuffer","contents","byteLength","length","copyBytes","out","ArrayBuffer","set","min","isView","buffer","byteOffset","Array","from","slice"],"mappings":";;;;;;AAMA;AAAA,IAAAA;AACA,MAAAC,qBAAA,SAC2CC,QAAQ,CACnD;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,EAAA,CAAAC,yBAAA,EAAAC,+BAAA,EAAAC,qBAAA,EAAAC,2BAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,sCAAA,EAAAC,4CAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,oBAAA,EAAAC,0BAAA,CAAA;MAAAC,CAAA,EAAA,CAAApB,qBAAA,EAAAqB,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,uBAAuB;AAAEC,MAAAA,MAAM,EAAE;KAAU,CAAC,CAAA,EAAA,CAAA,CAAA,CAKnEH,IAAI,EAAJA,IAAI,CAACI,OAAO,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAIZJ,IAAI,CAACK,SAAS,CAAC,+BAA+B,CAAC,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAI/CL,IAAI,CAACM,IAAI,CAAC,gBAAgB,CAAC,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAI3BN,IAAI,CAACM,IAAI,CAAC,gBAAgB,CAAC,2CAI3BN,IAAI,CAACM,IAAI,CAAC,gBAAgB,CAAC,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAI3BN,IAAI,CAACM,IAAI,CAAC,gBAAgB,CAAC,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAI3BN,IAAI,CAACK,SAAS,CAAC,qBAAqB,CAAC,EAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAIrCL,IAAI,CAACK,SAAS,CAAC,iBAAiB,CAAC,EAAA,CAAA,EAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAhCO1B,QAAQ,CAAA;AAAA;AAAA4B,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAZ,0BAAA,CAAA,IAAA,CAAA;AAAA,EAAA;AAGjD;EAEAa,mBAAmB,GAAA5B,yBAAA,CAAA,IAAA,EAAG,KAAK,CAAA;;AAE3B;AAEA6B,EAAAA,eAAe,IAAA5B,+BAAA,CAAA,IAAA,CAAA,EAAAC,qBAAA,OAAG,IAAI,CAAA;;AAEtB;AAEA4B,EAAAA,gBAAgB,IAAA3B,2BAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAG,EAAE,CAAA;;AAErB;AAEA2B,EAAAA,gCAAgC,IAAA1B,4BAAA,CAAA,IAAA,CAAA,EAAAC,sCAAA,OAAG,EAAE,CAAA;;AAErC;AAEA0B,EAAAA,QAAQ,IAAAzB,4CAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAG,EAAE,CAAA;;AAEb;AAEAyB,EAAAA,IAAI,IAAAxB,oBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;;AAET;AAEAwB,EAAAA,cAAc,IAAAvB,gBAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,IAAI,CAAA;;AAErB;AAEAuB,EAAAA,cAAc,IAAAtB,0BAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,IAAI,CAAA;;AAErB;AACF;AACA;AACA;AACEsB,EAAAA,iBAAiBA,CAACC,IAAI,GAAG,CAAC,EAC1B;AACE,IAAA,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEC,MAAM,CAACJ,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAA,MAAMK,WAAW,GAAGJ,QAAQ,GAAG,EAAE,GAAGA,QAAQ,GAAG,EAAE,GAAGA,QAAQ,GAAG,EAAE,GAAGA,QAAQ;IAC5E,IAAI,CAACH,cAAc,GAAGO,WAAW,GAAG,IAAIC,UAAU,CAACD,WAAW,CAAC,GAAG,IAAI;AACtE,IAAA,IAAI,CAACd,mBAAmB,GAAGc,WAAW,GAAG,CAAC;AAC5C,EAAA;;AAEA;AACF;AACA;AACA;AACEE,EAAAA,uBAAuBA,CAACC,QAAQ,EAAER,IAAI,GAAGQ,QAAQ,EAAEC,UAAU,IAAID,QAAQ,EAAEE,MAAM,IAAI,CAAC,EACtF;AACE,IAAA,MAAMT,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEC,MAAM,CAACJ,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAA,IAAI,CAACF,cAAc,GAAGG,QAAQ,GAAGzC,qBAAqB,CAACmD,SAAS,CAACH,QAAQ,EAAEP,QAAQ,CAAC,GAAG,IAAI;IAC3F,IAAI,CAACV,mBAAmB,GAAG,KAAK;AAClC,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,OAAOoB,SAASA,CAACH,QAAQ,EAAER,IAAI,EAC/B;AACE,IAAA,MAAMY,GAAG,GAAG,IAAIN,UAAU,CAACN,IAAI,CAAC;IAChC,IAAIQ,QAAQ,YAAYK,WAAW,EACnC;MACED,GAAG,CAACE,GAAG,CAAC,IAAIR,UAAU,CAACE,QAAQ,EAAE,CAAC,EAAEN,IAAI,CAACa,GAAG,CAACf,IAAI,EAAEQ,QAAQ,CAACC,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC,MACI,IAAII,WAAW,CAACG,MAAM,CAACR,QAAQ,CAAC,EACrC;MACEI,GAAG,CAACE,GAAG,CAAC,IAAIR,UAAU,CAACE,QAAQ,CAACS,MAAM,EAAET,QAAQ,CAACU,UAAU,EAAEhB,IAAI,CAACa,GAAG,CAACf,IAAI,EAAEQ,QAAQ,CAACC,UAAU,CAAC,CAAC,CAAC;IACpG,CAAC,MACI,IAAID,QAAQ,IAAI,OAAOA,QAAQ,CAACE,MAAM,KAAK,QAAQ,EACxD;AACEE,MAAAA,GAAG,CAACE,GAAG,CAACK,KAAK,CAACC,IAAI,CAACZ,QAAQ,CAAC,CAACa,KAAK,CAAC,CAAC,EAAErB,IAAI,CAAC,CAAC;AAC9C,IAAA;AACA,IAAA,OAAOY,GAAG;AACZ,EAAA;AAAC,EAAA;IAAAhC,UAAA,EAAA;AAAA;AAEH;;;;"}
@@ -1,9 +1,22 @@
1
1
  import { CjsModel } from '@carbonenginejs/runtime-utils/model';
2
2
 
3
+ /**
4
+ * Shared base for the shader parameter models: destination-reroute plumbing,
5
+ * effect-reflection lookups and Carbon's FNV1 content hashing.
6
+ */
3
7
  class CjsParameter extends CjsModel {
8
+ /**
9
+ * Whether a value can receive a scalar write - a setter function, a `{ value:
10
+ * number }` holder, or a writable number array.
11
+ */
4
12
  static isScalarDestination(value) {
5
13
  return typeof value === "function" || CjsParameter.isNumberHolder(value) || CjsParameter.isWritableNumberArray(value, 1);
6
14
  }
15
+
16
+ /**
17
+ * Reads a scalar back out of whichever destination form was supplied.
18
+ * @param fallback returned for function destinations, which are write-only
19
+ */
7
20
  static readScalarDestination(destination, fallback) {
8
21
  if (typeof destination === "function") {
9
22
  return fallback;
@@ -13,6 +26,11 @@ class CjsParameter extends CjsModel {
13
26
  }
14
27
  return Number(destination[0]);
15
28
  }
29
+
30
+ /**
31
+ * Writes a scalar through whichever destination form was supplied - calling a
32
+ * function, assigning `.value`, or writing element 0.
33
+ */
16
34
  static writeScalarDestination(destination, value) {
17
35
  if (typeof destination === "function") {
18
36
  destination(value);
@@ -24,6 +42,11 @@ class CjsParameter extends CjsModel {
24
42
  }
25
43
  destination[0] = value;
26
44
  }
45
+
46
+ /**
47
+ * Tells every registered binding the parameter's destination moved, calling
48
+ * function bindings directly and object bindings through RerouteDestination.
49
+ */
27
50
  static notifyBindings(bindings, destination) {
28
51
  for (const binding of bindings) {
29
52
  if (typeof binding === "function") {
@@ -33,50 +56,106 @@ class CjsParameter extends CjsModel {
33
56
  }
34
57
  }
35
58
  }
59
+
60
+ /**
61
+ * Appends a binding to a parameter's binding list unless it is already
62
+ * present.
63
+ */
36
64
  static registerBinding(bindings, binding) {
37
65
  if (!bindings.includes(binding)) {
38
66
  bindings.push(binding);
39
67
  }
40
68
  }
69
+
70
+ /**
71
+ * Removes a binding from a parameter's binding list; unknown bindings are
72
+ * ignored.
73
+ */
41
74
  static unregisterBinding(bindings, binding) {
42
75
  const index = bindings.indexOf(binding);
43
76
  if (index >= 0) {
44
77
  bindings.splice(index, 1);
45
78
  }
46
79
  }
80
+
81
+ /** Whether the shader reflects a constant of this name. */
47
82
  static hasEffectConstant(effectRes, name) {
48
83
  return !!CjsParameter.getEffectConstant(effectRes, name);
49
84
  }
85
+
86
+ /**
87
+ * The reflected constant description for a name, accepting either casing of
88
+ * the accessor; null when absent. Reflection metadata only - never a GPU
89
+ * handle.
90
+ */
50
91
  static getEffectConstant(effectRes, name) {
51
92
  const reader = effectRes;
52
93
  return reader?.GetConstant?.(name) ?? reader?.getConstant?.(name) ?? null;
53
94
  }
95
+
96
+ /** Whether the shader reflects a resource of this name. */
54
97
  static hasEffectResource(effectRes, name) {
55
98
  const reader = effectRes;
56
99
  return !!(reader?.GetResource?.(name) ?? reader?.getResource?.(name));
57
100
  }
101
+
102
+ /**
103
+ * The reflected resource description for a name, accepting either casing of
104
+ * the accessor; null when absent.
105
+ */
58
106
  static getEffectResource(effectRes, name) {
59
107
  const reader = effectRes;
60
108
  return reader?.GetResource?.(name) ?? reader?.getResource?.(name) ?? null;
61
109
  }
110
+
111
+ /**
112
+ * The annotation container the shader authored for a parameter name, in
113
+ * whatever shape the reflection source uses; null when absent.
114
+ */
62
115
  static getEffectAnnotations(effectRes, name) {
63
116
  const reader = effectRes;
64
117
  return reader?.GetParameterAnnotations?.(name) ?? reader?.getParameterAnnotations?.(name) ?? null;
65
118
  }
119
+
120
+ /**
121
+ * A parameter's shader name, preferring GetParameterName over a raw `name`
122
+ * field; the empty string when neither exists.
123
+ */
66
124
  static getNamedValue(value) {
67
125
  return value?.GetParameterName?.() ?? value?.getParameterName?.() ?? value?.name ?? "";
68
126
  }
127
+
128
+ /**
129
+ * The name of a collection entry that may be a bare string, a named model, or
130
+ * a `{ key }` pair.
131
+ */
69
132
  static getArrayItemName(value) {
70
133
  return typeof value === "string" ? value : value?.name ?? value?.key ?? "";
71
134
  }
135
+
136
+ /**
137
+ * First array entry whose item name or parameter name matches; null for a
138
+ * non-array.
139
+ */
72
140
  static findByName(values, name) {
73
141
  return Array.isArray(values) ? values.find(value => CjsParameter.getArrayItemName(value) === name || CjsParameter.getNamedValue(value) === name) ?? null : null;
74
142
  }
143
+
144
+ /**
145
+ * Invalidates a material's resource sets and constant buffers after one of its
146
+ * resources changed; every call is optional-chained, so non-material owners
147
+ * are tolerated.
148
+ */
75
149
  static markMaterialResourcesDirty(material) {
76
150
  material?.InvalidateResourceSets?.();
77
151
  material?.ResourceChanged?.();
78
152
  material?.MarkConstantBuffersDirty?.();
79
153
  }
154
+
155
+ /**
156
+ * Reads the sRGB flag off a reflected constant, accepting the
157
+ * isSRGB/isSrgb/srgb spellings different reflection sources emit.
158
+ */
80
159
  static getConstantIsSrgb(constant) {
81
160
  const data = constant;
82
161
  return !!(data?.isSRGB ?? data?.isSrgb ?? data?.srgb);
@@ -136,12 +215,27 @@ class CjsParameter extends CjsModel {
136
215
  static #hashScratch = new DataView(new ArrayBuffer(4));
137
216
  static #identities = new WeakMap();
138
217
  static #nextIdentity = 1;
218
+
219
+ /**
220
+ * Whether a value is an object with a numeric `value` property - the
221
+ * boxed-scalar destination form.
222
+ */
139
223
  static isNumberHolder(value) {
140
224
  return typeof value === "object" && value !== null && "value" in value && typeof value.value === "number";
141
225
  }
226
+
227
+ /**
228
+ * Whether a value is an object with a `length` of at least `length`; element
229
+ * types are deliberately not checked, so uninitialized out-parameters pass.
230
+ */
142
231
  static isWritableNumberArray(value, length) {
143
232
  return !!value && typeof value === "object" && "length" in value && Number(value.length) >= length;
144
233
  }
234
+
235
+ /**
236
+ * Whether a value is an array or typed array of exactly `length` numbers - the
237
+ * strict test used to infer a parameter class from a raw map-form value.
238
+ */
145
239
  static isNumberArrayValue(value, length) {
146
240
  if (!value || typeof value !== "object" || Number(value.length) !== length) return false;
147
241
  if (!Array.isArray(value) && !ArrayBuffer.isView(value)) return false;
@@ -1 +1 @@
1
- {"version":3,"file":"CjsParameter.js","sources":["../../../../src/shader/parameter/CjsParameter.js"],"sourcesContent":["import { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\n\r\n\r\nexport class CjsParameter extends CjsModel\r\n{\r\n\r\n static isScalarDestination(value)\r\n {\r\n return typeof value === \"function\" || CjsParameter.isNumberHolder(value) || CjsParameter.isWritableNumberArray(value, 1);\r\n }\r\n\r\n static readScalarDestination(destination, fallback)\r\n {\r\n if (typeof destination === \"function\")\r\n {\r\n return fallback;\r\n }\r\n if (CjsParameter.isNumberHolder(destination))\r\n {\r\n return Number(destination.value);\r\n }\r\n return Number(destination[0]);\r\n }\r\n\r\n static writeScalarDestination(destination, value)\r\n {\r\n if (typeof destination === \"function\")\r\n {\r\n destination(value);\r\n return;\r\n }\r\n if (CjsParameter.isNumberHolder(destination))\r\n {\r\n destination.value = value;\r\n return;\r\n }\r\n destination[0] = value;\r\n }\r\n\r\n static notifyBindings(bindings, destination)\r\n {\r\n for (const binding of bindings)\r\n {\r\n if (typeof binding === \"function\")\r\n {\r\n binding(destination);\r\n }\r\n else\r\n {\r\n binding.RerouteDestination?.(destination);\r\n }\r\n }\r\n }\r\n\r\n static registerBinding(bindings, binding)\r\n {\r\n if (!bindings.includes(binding))\r\n {\r\n bindings.push(binding);\r\n }\r\n }\r\n\r\n static unregisterBinding(bindings, binding)\r\n {\r\n const index = bindings.indexOf(binding);\r\n if (index >= 0)\r\n {\r\n bindings.splice(index, 1);\r\n }\r\n }\r\n\r\n static hasEffectConstant(effectRes, name)\r\n {\r\n return !!CjsParameter.getEffectConstant(effectRes, name);\r\n }\r\n\r\n static getEffectConstant(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return reader?.GetConstant?.(name) ?? reader?.getConstant?.(name) ?? null;\r\n }\r\n\r\n static hasEffectResource(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return !!(reader?.GetResource?.(name) ?? reader?.getResource?.(name));\r\n }\r\n\r\n static getEffectResource(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return reader?.GetResource?.(name) ?? reader?.getResource?.(name) ?? null;\r\n }\r\n\r\n static getEffectAnnotations(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return reader?.GetParameterAnnotations?.(name) ?? reader?.getParameterAnnotations?.(name) ?? null;\r\n }\r\n\r\n static getNamedValue(value)\r\n {\r\n return value?.GetParameterName?.() ?? value?.getParameterName?.() ?? value?.name ?? \"\";\r\n }\r\n\r\n static getArrayItemName(value)\r\n {\r\n return typeof value === \"string\" ? value : value?.name ?? value?.key ?? \"\";\r\n }\r\n\r\n static findByName(values, name)\r\n {\r\n return Array.isArray(values) ? values.find(value => CjsParameter.getArrayItemName(value) === name || CjsParameter.getNamedValue(value) === name) ?? null : null;\r\n }\r\n\r\n static markMaterialResourcesDirty(material)\r\n {\r\n material?.InvalidateResourceSets?.();\r\n material?.ResourceChanged?.();\r\n material?.MarkConstantBuffersDirty?.();\r\n }\r\n\r\n static getConstantIsSrgb(constant)\r\n {\r\n const data = constant;\r\n return !!(data?.isSRGB ?? data?.isSrgb ?? data?.srgb);\r\n }\r\n\r\n // --- Content hashing (Carbon CcpHashFNV1) -------------------------------\r\n // Carbon hashes interned name POINTERS and value struct bytes; JS hashes\r\n // the name characters and float32 value bytes instead. The dedup contract\r\n // (equal content -> equal hash within a session) is preserved; the numeric\r\n // hashes intentionally differ from Carbon's, which are address-dependent.\r\n\r\n static FNV1_INITIAL = 2166136261;\r\n\r\n /** FNV1 over a string's UTF-16 code units, two bytes each, little-endian. */\r\n static hashFnv1String(text, hash = CjsParameter.FNV1_INITIAL)\r\n {\r\n const value = String(text ?? \"\");\r\n for (let index = 0; index < value.length; index++)\r\n {\r\n const code = value.charCodeAt(index);\r\n hash = (Math.imul(hash, 16777619) ^ (code & 0xff)) >>> 0;\r\n hash = (Math.imul(hash, 16777619) ^ (code >>> 8)) >>> 0;\r\n }\r\n return hash >>> 0;\r\n }\r\n\r\n /** FNV1 over numbers encoded as little-endian float32 bytes. */\r\n static hashFnv1Floats(values, hash = CjsParameter.FNV1_INITIAL)\r\n {\r\n const view = CjsParameter.#hashScratch;\r\n for (const value of values)\r\n {\r\n view.setFloat32(0, Number(value) || 0, true);\r\n for (let byte = 0; byte < 4; byte++)\r\n {\r\n hash = (Math.imul(hash, 16777619) ^ view.getUint8(byte)) >>> 0;\r\n }\r\n }\r\n return hash >>> 0;\r\n }\r\n\r\n /**\r\n * FNV1 over a stable per-object identity - the JS stand-in for Carbon\r\n * hashing a smart-pointer address. Null hashes as identity 0.\r\n */\r\n static hashFnv1Identity(object, hash = CjsParameter.FNV1_INITIAL)\r\n {\r\n let id = 0;\r\n if (object !== null && object !== undefined)\r\n {\r\n id = CjsParameter.#identities.get(object);\r\n if (id === undefined)\r\n {\r\n id = CjsParameter.#nextIdentity++;\r\n CjsParameter.#identities.set(object, id);\r\n }\r\n }\r\n const view = CjsParameter.#hashScratch;\r\n view.setUint32(0, id >>> 0, true);\r\n for (let byte = 0; byte < 4; byte++)\r\n {\r\n hash = (Math.imul(hash, 16777619) ^ view.getUint8(byte)) >>> 0;\r\n }\r\n return hash >>> 0;\r\n }\r\n\r\n static #hashScratch = new DataView(new ArrayBuffer(4));\r\n\r\n static #identities = new WeakMap();\r\n\r\n static #nextIdentity = 1;\r\n\r\n static isNumberHolder(value)\r\n {\r\n return typeof value === \"object\" && value !== null && \"value\" in value && typeof value.value === \"number\";\r\n }\r\n\r\n static isWritableNumberArray(value, length)\r\n {\r\n return !!value && typeof value === \"object\" && \"length\" in value && Number(value.length) >= length;\r\n }\r\n\r\n static isNumberArrayValue(value, length)\r\n {\r\n if (!value || typeof value !== \"object\" || Number(value.length) !== length) return false;\r\n if (!Array.isArray(value) && !ArrayBuffer.isView(value)) return false;\r\n for (let index = 0; index < length; index++)\r\n {\r\n if (typeof value[index] !== \"number\") return false;\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n"],"names":["CjsParameter","CjsModel","isScalarDestination","value","isNumberHolder","isWritableNumberArray","readScalarDestination","destination","fallback","Number","writeScalarDestination","notifyBindings","bindings","binding","RerouteDestination","registerBinding","includes","push","unregisterBinding","index","indexOf","splice","hasEffectConstant","effectRes","name","getEffectConstant","reader","GetConstant","getConstant","hasEffectResource","GetResource","getResource","getEffectResource","getEffectAnnotations","GetParameterAnnotations","getParameterAnnotations","getNamedValue","GetParameterName","getParameterName","getArrayItemName","key","findByName","values","Array","isArray","find","markMaterialResourcesDirty","material","InvalidateResourceSets","ResourceChanged","MarkConstantBuffersDirty","getConstantIsSrgb","constant","data","isSRGB","isSrgb","srgb","FNV1_INITIAL","hashFnv1String","text","hash","String","length","code","charCodeAt","Math","imul","hashFnv1Floats","view","setFloat32","byte","getUint8","hashFnv1Identity","object","id","undefined","get","set","setUint32","DataView","ArrayBuffer","WeakMap","isNumberArrayValue","isView"],"mappings":"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"}
1
+ {"version":3,"file":"CjsParameter.js","sources":["../../../../src/shader/parameter/CjsParameter.js"],"sourcesContent":["import { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\n\r\n\r\n/**\r\n * Shared base for the shader parameter models: destination-reroute plumbing,\r\n * effect-reflection lookups and Carbon's FNV1 content hashing.\r\n */\r\nexport class CjsParameter extends CjsModel\r\n{\r\n\r\n /**\r\n * Whether a value can receive a scalar write - a setter function, a `{ value:\r\n * number }` holder, or a writable number array.\r\n */\r\n static isScalarDestination(value)\r\n {\r\n return typeof value === \"function\" || CjsParameter.isNumberHolder(value) || CjsParameter.isWritableNumberArray(value, 1);\r\n }\r\n\r\n /**\r\n * Reads a scalar back out of whichever destination form was supplied.\r\n * @param fallback returned for function destinations, which are write-only\r\n */\r\n static readScalarDestination(destination, fallback)\r\n {\r\n if (typeof destination === \"function\")\r\n {\r\n return fallback;\r\n }\r\n if (CjsParameter.isNumberHolder(destination))\r\n {\r\n return Number(destination.value);\r\n }\r\n return Number(destination[0]);\r\n }\r\n\r\n /**\r\n * Writes a scalar through whichever destination form was supplied - calling a\r\n * function, assigning `.value`, or writing element 0.\r\n */\r\n static writeScalarDestination(destination, value)\r\n {\r\n if (typeof destination === \"function\")\r\n {\r\n destination(value);\r\n return;\r\n }\r\n if (CjsParameter.isNumberHolder(destination))\r\n {\r\n destination.value = value;\r\n return;\r\n }\r\n destination[0] = value;\r\n }\r\n\r\n /**\r\n * Tells every registered binding the parameter's destination moved, calling\r\n * function bindings directly and object bindings through RerouteDestination.\r\n */\r\n static notifyBindings(bindings, destination)\r\n {\r\n for (const binding of bindings)\r\n {\r\n if (typeof binding === \"function\")\r\n {\r\n binding(destination);\r\n }\r\n else\r\n {\r\n binding.RerouteDestination?.(destination);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Appends a binding to a parameter's binding list unless it is already\r\n * present.\r\n */\r\n static registerBinding(bindings, binding)\r\n {\r\n if (!bindings.includes(binding))\r\n {\r\n bindings.push(binding);\r\n }\r\n }\r\n\r\n /**\r\n * Removes a binding from a parameter's binding list; unknown bindings are\r\n * ignored.\r\n */\r\n static unregisterBinding(bindings, binding)\r\n {\r\n const index = bindings.indexOf(binding);\r\n if (index >= 0)\r\n {\r\n bindings.splice(index, 1);\r\n }\r\n }\r\n\r\n /** Whether the shader reflects a constant of this name. */\r\n static hasEffectConstant(effectRes, name)\r\n {\r\n return !!CjsParameter.getEffectConstant(effectRes, name);\r\n }\r\n\r\n /**\r\n * The reflected constant description for a name, accepting either casing of\r\n * the accessor; null when absent. Reflection metadata only - never a GPU\r\n * handle.\r\n */\r\n static getEffectConstant(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return reader?.GetConstant?.(name) ?? reader?.getConstant?.(name) ?? null;\r\n }\r\n\r\n /** Whether the shader reflects a resource of this name. */\r\n static hasEffectResource(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return !!(reader?.GetResource?.(name) ?? reader?.getResource?.(name));\r\n }\r\n\r\n /**\r\n * The reflected resource description for a name, accepting either casing of\r\n * the accessor; null when absent.\r\n */\r\n static getEffectResource(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return reader?.GetResource?.(name) ?? reader?.getResource?.(name) ?? null;\r\n }\r\n\r\n /**\r\n * The annotation container the shader authored for a parameter name, in\r\n * whatever shape the reflection source uses; null when absent.\r\n */\r\n static getEffectAnnotations(effectRes, name)\r\n {\r\n const reader = effectRes;\r\n return reader?.GetParameterAnnotations?.(name) ?? reader?.getParameterAnnotations?.(name) ?? null;\r\n }\r\n\r\n /**\r\n * A parameter's shader name, preferring GetParameterName over a raw `name`\r\n * field; the empty string when neither exists.\r\n */\r\n static getNamedValue(value)\r\n {\r\n return value?.GetParameterName?.() ?? value?.getParameterName?.() ?? value?.name ?? \"\";\r\n }\r\n\r\n /**\r\n * The name of a collection entry that may be a bare string, a named model, or\r\n * a `{ key }` pair.\r\n */\r\n static getArrayItemName(value)\r\n {\r\n return typeof value === \"string\" ? value : value?.name ?? value?.key ?? \"\";\r\n }\r\n\r\n /**\r\n * First array entry whose item name or parameter name matches; null for a\r\n * non-array.\r\n */\r\n static findByName(values, name)\r\n {\r\n return Array.isArray(values) ? values.find(value => CjsParameter.getArrayItemName(value) === name || CjsParameter.getNamedValue(value) === name) ?? null : null;\r\n }\r\n\r\n /**\r\n * Invalidates a material's resource sets and constant buffers after one of its\r\n * resources changed; every call is optional-chained, so non-material owners\r\n * are tolerated.\r\n */\r\n static markMaterialResourcesDirty(material)\r\n {\r\n material?.InvalidateResourceSets?.();\r\n material?.ResourceChanged?.();\r\n material?.MarkConstantBuffersDirty?.();\r\n }\r\n\r\n /**\r\n * Reads the sRGB flag off a reflected constant, accepting the\r\n * isSRGB/isSrgb/srgb spellings different reflection sources emit.\r\n */\r\n static getConstantIsSrgb(constant)\r\n {\r\n const data = constant;\r\n return !!(data?.isSRGB ?? data?.isSrgb ?? data?.srgb);\r\n }\r\n\r\n // --- Content hashing (Carbon CcpHashFNV1) -------------------------------\r\n // Carbon hashes interned name POINTERS and value struct bytes; JS hashes\r\n // the name characters and float32 value bytes instead. The dedup contract\r\n // (equal content -> equal hash within a session) is preserved; the numeric\r\n // hashes intentionally differ from Carbon's, which are address-dependent.\r\n\r\n static FNV1_INITIAL = 2166136261;\r\n\r\n /** FNV1 over a string's UTF-16 code units, two bytes each, little-endian. */\r\n static hashFnv1String(text, hash = CjsParameter.FNV1_INITIAL)\r\n {\r\n const value = String(text ?? \"\");\r\n for (let index = 0; index < value.length; index++)\r\n {\r\n const code = value.charCodeAt(index);\r\n hash = (Math.imul(hash, 16777619) ^ (code & 0xff)) >>> 0;\r\n hash = (Math.imul(hash, 16777619) ^ (code >>> 8)) >>> 0;\r\n }\r\n return hash >>> 0;\r\n }\r\n\r\n /** FNV1 over numbers encoded as little-endian float32 bytes. */\r\n static hashFnv1Floats(values, hash = CjsParameter.FNV1_INITIAL)\r\n {\r\n const view = CjsParameter.#hashScratch;\r\n for (const value of values)\r\n {\r\n view.setFloat32(0, Number(value) || 0, true);\r\n for (let byte = 0; byte < 4; byte++)\r\n {\r\n hash = (Math.imul(hash, 16777619) ^ view.getUint8(byte)) >>> 0;\r\n }\r\n }\r\n return hash >>> 0;\r\n }\r\n\r\n /**\r\n * FNV1 over a stable per-object identity - the JS stand-in for Carbon\r\n * hashing a smart-pointer address. Null hashes as identity 0.\r\n */\r\n static hashFnv1Identity(object, hash = CjsParameter.FNV1_INITIAL)\r\n {\r\n let id = 0;\r\n if (object !== null && object !== undefined)\r\n {\r\n id = CjsParameter.#identities.get(object);\r\n if (id === undefined)\r\n {\r\n id = CjsParameter.#nextIdentity++;\r\n CjsParameter.#identities.set(object, id);\r\n }\r\n }\r\n const view = CjsParameter.#hashScratch;\r\n view.setUint32(0, id >>> 0, true);\r\n for (let byte = 0; byte < 4; byte++)\r\n {\r\n hash = (Math.imul(hash, 16777619) ^ view.getUint8(byte)) >>> 0;\r\n }\r\n return hash >>> 0;\r\n }\r\n\r\n static #hashScratch = new DataView(new ArrayBuffer(4));\r\n\r\n static #identities = new WeakMap();\r\n\r\n static #nextIdentity = 1;\r\n\r\n /**\r\n * Whether a value is an object with a numeric `value` property - the\r\n * boxed-scalar destination form.\r\n */\r\n static isNumberHolder(value)\r\n {\r\n return typeof value === \"object\" && value !== null && \"value\" in value && typeof value.value === \"number\";\r\n }\r\n\r\n /**\r\n * Whether a value is an object with a `length` of at least `length`; element\r\n * types are deliberately not checked, so uninitialized out-parameters pass.\r\n */\r\n static isWritableNumberArray(value, length)\r\n {\r\n return !!value && typeof value === \"object\" && \"length\" in value && Number(value.length) >= length;\r\n }\r\n\r\n /**\r\n * Whether a value is an array or typed array of exactly `length` numbers - the\r\n * strict test used to infer a parameter class from a raw map-form value.\r\n */\r\n static isNumberArrayValue(value, length)\r\n {\r\n if (!value || typeof value !== \"object\" || Number(value.length) !== length) return false;\r\n if (!Array.isArray(value) && !ArrayBuffer.isView(value)) return false;\r\n for (let index = 0; index < length; index++)\r\n {\r\n if (typeof value[index] !== \"number\") return false;\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n"],"names":["CjsParameter","CjsModel","isScalarDestination","value","isNumberHolder","isWritableNumberArray","readScalarDestination","destination","fallback","Number","writeScalarDestination","notifyBindings","bindings","binding","RerouteDestination","registerBinding","includes","push","unregisterBinding","index","indexOf","splice","hasEffectConstant","effectRes","name","getEffectConstant","reader","GetConstant","getConstant","hasEffectResource","GetResource","getResource","getEffectResource","getEffectAnnotations","GetParameterAnnotations","getParameterAnnotations","getNamedValue","GetParameterName","getParameterName","getArrayItemName","key","findByName","values","Array","isArray","find","markMaterialResourcesDirty","material","InvalidateResourceSets","ResourceChanged","MarkConstantBuffersDirty","getConstantIsSrgb","constant","data","isSRGB","isSrgb","srgb","FNV1_INITIAL","hashFnv1String","text","hash","String","length","code","charCodeAt","Math","imul","hashFnv1Floats","view","setFloat32","byte","getUint8","hashFnv1Identity","object","id","undefined","get","set","setUint32","DataView","ArrayBuffer","WeakMap","isNumberArrayValue","isView"],"mappings":"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"}
@@ -1,20 +1,40 @@
1
1
  import { CjsParameter } from './CjsParameter.js';
2
2
 
3
+ /**
4
+ * Base for the multi-component shader parameters, adding fixed-length
5
+ * destination reads and writes on top of CjsParameter.
6
+ */
3
7
  class CjsVectorParameter extends CjsParameter {
8
+ /** Whether a value can receive `length` components written into it. */
4
9
  static isVectorDestination(value, length) {
5
10
  return CjsVectorParameter.isWritableNumberArray(value, length);
6
11
  }
12
+
13
+ /**
14
+ * Copies `length` components out of a destination into `out` in place; returns
15
+ * `out`.
16
+ */
7
17
  static readVectorDestination(destination, out, length) {
8
18
  for (let i = 0; i < length; i++) {
9
19
  out[i] = destination[i];
10
20
  }
11
21
  return out;
12
22
  }
23
+
24
+ /**
25
+ * Copies `length` components into a destination in place; the destination is
26
+ * assumed to be large enough.
27
+ */
13
28
  static writeVectorDestination(destination, value, length) {
14
29
  for (let i = 0; i < length; i++) {
15
30
  destination[i] = value[i];
16
31
  }
17
32
  }
33
+
34
+ /**
35
+ * Copies `length` components from `value` into `out` in place; returns `out`
36
+ * so callers can hand it straight back.
37
+ */
18
38
  static copyNumberArray(out, value, length) {
19
39
  for (let i = 0; i < length; i++) {
20
40
  out[i] = value[i];
@@ -1 +1 @@
1
- {"version":3,"file":"CjsVectorParameter.js","sources":["../../../../src/shader/parameter/CjsVectorParameter.js"],"sourcesContent":["import { CjsParameter } from \"./CjsParameter.js\";\r\n\r\n\r\nexport class CjsVectorParameter extends CjsParameter\r\n{\r\n\r\n static isVectorDestination(value, length)\r\n {\r\n return CjsVectorParameter.isWritableNumberArray(value, length);\r\n }\r\n\r\n static readVectorDestination(destination, out, length)\r\n {\r\n for (let i = 0; i < length; i++)\r\n {\r\n out[i] = destination[i];\r\n }\r\n return out;\r\n }\r\n\r\n static writeVectorDestination(destination, value, length)\r\n {\r\n for (let i = 0; i < length; i++)\r\n {\r\n destination[i] = value[i];\r\n }\r\n }\r\n\r\n static copyNumberArray(out, value, length)\r\n {\r\n for (let i = 0; i < length; i++)\r\n {\r\n out[i] = value[i];\r\n }\r\n return out;\r\n }\r\n\r\n}\r\n"],"names":["CjsVectorParameter","CjsParameter","isVectorDestination","value","length","isWritableNumberArray","readVectorDestination","destination","out","i","writeVectorDestination","copyNumberArray"],"mappings":";;AAGO,MAAMA,kBAAkB,SAASC,YAAY,CACpD;AAEE,EAAA,OAAOC,mBAAmBA,CAACC,KAAK,EAAEC,MAAM,EACxC;AACE,IAAA,OAAOJ,kBAAkB,CAACK,qBAAqB,CAACF,KAAK,EAAEC,MAAM,CAAC;AAChE,EAAA;AAEA,EAAA,OAAOE,qBAAqBA,CAACC,WAAW,EAAEC,GAAG,EAAEJ,MAAM,EACrD;IACE,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAC/B;AACED,MAAAA,GAAG,CAACC,CAAC,CAAC,GAAGF,WAAW,CAACE,CAAC,CAAC;AACzB,IAAA;AACA,IAAA,OAAOD,GAAG;AACZ,EAAA;AAEA,EAAA,OAAOE,sBAAsBA,CAACH,WAAW,EAAEJ,KAAK,EAAEC,MAAM,EACxD;IACE,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAC/B;AACEF,MAAAA,WAAW,CAACE,CAAC,CAAC,GAAGN,KAAK,CAACM,CAAC,CAAC;AAC3B,IAAA;AACF,EAAA;AAEA,EAAA,OAAOE,eAAeA,CAACH,GAAG,EAAEL,KAAK,EAAEC,MAAM,EACzC;IACE,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAC/B;AACED,MAAAA,GAAG,CAACC,CAAC,CAAC,GAAGN,KAAK,CAACM,CAAC,CAAC;AACnB,IAAA;AACA,IAAA,OAAOD,GAAG;AACZ,EAAA;AAEF;;;;"}
1
+ {"version":3,"file":"CjsVectorParameter.js","sources":["../../../../src/shader/parameter/CjsVectorParameter.js"],"sourcesContent":["import { CjsParameter } from \"./CjsParameter.js\";\r\n\r\n\r\n/**\r\n * Base for the multi-component shader parameters, adding fixed-length\r\n * destination reads and writes on top of CjsParameter.\r\n */\r\nexport class CjsVectorParameter extends CjsParameter\r\n{\r\n\r\n /** Whether a value can receive `length` components written into it. */\r\n static isVectorDestination(value, length)\r\n {\r\n return CjsVectorParameter.isWritableNumberArray(value, length);\r\n }\r\n\r\n /**\r\n * Copies `length` components out of a destination into `out` in place; returns\r\n * `out`.\r\n */\r\n static readVectorDestination(destination, out, length)\r\n {\r\n for (let i = 0; i < length; i++)\r\n {\r\n out[i] = destination[i];\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Copies `length` components into a destination in place; the destination is\r\n * assumed to be large enough.\r\n */\r\n static writeVectorDestination(destination, value, length)\r\n {\r\n for (let i = 0; i < length; i++)\r\n {\r\n destination[i] = value[i];\r\n }\r\n }\r\n\r\n /**\r\n * Copies `length` components from `value` into `out` in place; returns `out`\r\n * so callers can hand it straight back.\r\n */\r\n static copyNumberArray(out, value, length)\r\n {\r\n for (let i = 0; i < length; i++)\r\n {\r\n out[i] = value[i];\r\n }\r\n return out;\r\n }\r\n\r\n}\r\n"],"names":["CjsVectorParameter","CjsParameter","isVectorDestination","value","length","isWritableNumberArray","readVectorDestination","destination","out","i","writeVectorDestination","copyNumberArray"],"mappings":";;AAGA;AACA;AACA;AACA;AACO,MAAMA,kBAAkB,SAASC,YAAY,CACpD;AAEE;AACA,EAAA,OAAOC,mBAAmBA,CAACC,KAAK,EAAEC,MAAM,EACxC;AACE,IAAA,OAAOJ,kBAAkB,CAACK,qBAAqB,CAACF,KAAK,EAAEC,MAAM,CAAC;AAChE,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,OAAOE,qBAAqBA,CAACC,WAAW,EAAEC,GAAG,EAAEJ,MAAM,EACrD;IACE,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAC/B;AACED,MAAAA,GAAG,CAACC,CAAC,CAAC,GAAGF,WAAW,CAACE,CAAC,CAAC;AACzB,IAAA;AACA,IAAA,OAAOD,GAAG;AACZ,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,OAAOE,sBAAsBA,CAACH,WAAW,EAAEJ,KAAK,EAAEC,MAAM,EACxD;IACE,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAC/B;AACEF,MAAAA,WAAW,CAACE,CAAC,CAAC,GAAGN,KAAK,CAACM,CAAC,CAAC;AAC3B,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,OAAOE,eAAeA,CAACH,GAAG,EAAEL,KAAK,EAAEC,MAAM,EACzC;IACE,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAC/B;AACED,MAAAA,GAAG,CAACC,CAAC,CAAC,GAAGN,KAAK,CAACM,CAAC,CAAC;AACnB,IAAA;AACA,IAAA,OAAOD,GAAG;AACZ,EAAA;AAEF;;;;"}
@@ -3,6 +3,11 @@ import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
3
3
  import { CjsParameter } from './CjsParameter.js';
4
4
 
5
5
  let _initProto, _initClass, _init_value, _init_extra_value, _init_name, _init_extra_name, _init_usedByCurrentEffect, _init_extra_usedByCurrentEffect;
6
+
7
+ /**
8
+ * Single float value for a named shader constant, with optional rerouting into
9
+ * an external scalar destination.
10
+ */
6
11
  let _Tr2FloatParameter;
7
12
  class Tr2FloatParameter extends CjsParameter {
8
13
  static {
@@ -22,6 +27,8 @@ class Tr2FloatParameter extends CjsParameter {
22
27
  #valueRef = {
23
28
  value: this.value
24
29
  };
30
+
31
+ /** The shader constant name this value binds to; empty until authored. */
25
32
  GetParameterName() {
26
33
  return this.name;
27
34
  }
@@ -30,6 +37,11 @@ class Tr2FloatParameter extends CjsParameter {
30
37
  GetHashValue(startingHash = CjsParameter.FNV1_INITIAL) {
31
38
  return CjsParameter.hashFnv1String(this.name, CjsParameter.hashFnv1Floats([this.value], startingHash));
32
39
  }
40
+
41
+ /**
42
+ * Reads back through the reroute destination when one is set, so the result
43
+ * reflects writes made by whoever owns that destination.
44
+ */
33
45
  GetValue() {
34
46
  if (this.#reroutedValue) {
35
47
  this.value = CjsParameter.readScalarDestination(this.#reroutedValue, this.value);
@@ -37,6 +49,11 @@ class Tr2FloatParameter extends CjsParameter {
37
49
  }
38
50
  return this.value;
39
51
  }
52
+
53
+ /**
54
+ * Coerces to a number, refreshes the boxed reference GetDestination hands out,
55
+ * and writes through to the reroute destination when one is set.
56
+ */
40
57
  SetValue(value) {
41
58
  this.value = Number(value);
42
59
  this.#valueRef.value = this.value;
@@ -44,9 +61,16 @@ class Tr2FloatParameter extends CjsParameter {
44
61
  CjsParameter.writeScalarDestination(this.#reroutedValue, this.value);
45
62
  }
46
63
  }
64
+
65
+ /** Whether reads and writes currently go through an external destination. */
47
66
  IsRerouted() {
48
67
  return this.#reroutedValue !== null;
49
68
  }
69
+
70
+ /**
71
+ * Points the parameter at an external scalar destination and seeds it with the current value; a target under 4 bytes or of an unusable shape clears the reroute instead. Bindings are notified of the effective destination either way.
72
+ * @param size destination capacity in bytes
73
+ */
50
74
  SetDestination(dest, size = 4) {
51
75
  if (size >= 4 && CjsParameter.isScalarDestination(dest)) {
52
76
  this.#reroutedValue = dest;
@@ -56,24 +80,48 @@ class Tr2FloatParameter extends CjsParameter {
56
80
  }
57
81
  CjsParameter.notifyBindings(this.#bindings, this.GetDestination().dest);
58
82
  }
83
+
84
+ /**
85
+ * The scalar an upload should read - the reroute target, or the parameter's
86
+ * own boxed `{ value }` holder - with its 4-byte size. The boxed holder is a
87
+ * stable object that survives SetValue calls.
88
+ */
59
89
  GetDestination() {
60
90
  return {
61
91
  dest: this.#reroutedValue ?? this.#valueRef,
62
92
  size: 4
63
93
  };
64
94
  }
95
+
96
+ /**
97
+ * Adds a binding to be notified whenever the destination is repointed;
98
+ * duplicates are ignored.
99
+ */
65
100
  RegisterBinding(binding) {
66
101
  CjsParameter.registerBinding(this.#bindings, binding);
67
102
  }
103
+
104
+ /** Stops notifying a binding; unknown bindings are ignored. */
68
105
  UnregisterBinding(binding) {
69
106
  CjsParameter.unregisterBinding(this.#bindings, binding);
70
107
  }
108
+
109
+ /**
110
+ * Records whether the shader reflects a constant of this name and drops a
111
+ * stale reroute when the shader is gone; reflection metadata only, no GPU
112
+ * handle.
113
+ */
71
114
  RebuildEffectHandles(effectRes) {
72
115
  if (!effectRes && this.#reroutedValue) {
73
116
  this.SetDestination(null, 0);
74
117
  }
75
118
  this.usedByCurrentEffect = !!this.name && CjsParameter.hasEffectConstant(effectRes, this.name);
76
119
  }
120
+
121
+ /**
122
+ * Syncs the boxed reference and any reroute destination with the current
123
+ * value; always returns true.
124
+ */
77
125
  Initialize() {
78
126
  this.#valueRef.value = this.value;
79
127
  if (this.#reroutedValue) {
@@ -81,6 +129,11 @@ class Tr2FloatParameter extends CjsParameter {
81
129
  }
82
130
  return true;
83
131
  }
132
+
133
+ /**
134
+ * Writes the current value - read back through the reroute first when one is
135
+ * active - into the caller's destination.
136
+ */
84
137
  CopyValueToEffect(_inputType, out) {
85
138
  CjsParameter.writeScalarDestination(out, this.GetValue());
86
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2FloatParameter.js","sources":["../../../../src/shader/parameter/Tr2FloatParameter.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Shader\\Parameter\\Tr2FloatParameter.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Shader\\Parameter\\Tr2FloatParameter.cpp\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { CjsParameter } from \"./CjsParameter.js\";\r\n\r\n\r\n@type.define({className: \"Tr2FloatParameter\", family: \"shader\"})\r\nexport class Tr2FloatParameter extends CjsParameter\r\n{\r\n @io.persistOnly\r\n @type.float32\r\n value = 1;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.boolean\r\n usedByCurrentEffect = false;\r\n\r\n #bindings = [];\r\n #reroutedValue = null;\r\n #valueRef = { value: this.value };\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetParameterName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Content hash: value bytes then name (Carbon hashes the interned name pointer). */\r\n @carbon.method\r\n @impl.adapted\r\n GetHashValue(startingHash = CjsParameter.FNV1_INITIAL)\r\n {\r\n return CjsParameter.hashFnv1String(this.name, CjsParameter.hashFnv1Floats([this.value], startingHash));\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetValue()\r\n {\r\n if (this.#reroutedValue)\r\n {\r\n this.value = CjsParameter.readScalarDestination(this.#reroutedValue, this.value);\r\n this.#valueRef.value = this.value;\r\n }\r\n return this.value;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetValue(value)\r\n {\r\n this.value = Number(value);\r\n this.#valueRef.value = this.value;\r\n if (this.#reroutedValue)\r\n {\r\n CjsParameter.writeScalarDestination(this.#reroutedValue, this.value);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n IsRerouted()\r\n {\r\n return this.#reroutedValue !== null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetDestination(dest, size = 4)\r\n {\r\n if (size >= 4 && CjsParameter.isScalarDestination(dest))\r\n {\r\n this.#reroutedValue = dest;\r\n CjsParameter.writeScalarDestination(dest, this.value);\r\n }\r\n else\r\n {\r\n this.#reroutedValue = null;\r\n }\r\n CjsParameter.notifyBindings(this.#bindings, this.GetDestination().dest);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n GetDestination()\r\n {\r\n return {\r\n dest: this.#reroutedValue ?? this.#valueRef,\r\n size: 4\r\n };\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n RegisterBinding(binding)\r\n {\r\n CjsParameter.registerBinding(this.#bindings, binding);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UnregisterBinding(binding)\r\n {\r\n CjsParameter.unregisterBinding(this.#bindings, binding);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n RebuildEffectHandles(effectRes)\r\n {\r\n if (!effectRes && this.#reroutedValue)\r\n {\r\n this.SetDestination(null, 0);\r\n }\r\n this.usedByCurrentEffect = !!this.name && CjsParameter.hasEffectConstant(effectRes, this.name);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n this.#valueRef.value = this.value;\r\n if (this.#reroutedValue)\r\n {\r\n CjsParameter.writeScalarDestination(this.#reroutedValue, this.value);\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n CopyValueToEffect(_inputType, out)\r\n {\r\n CjsParameter.writeScalarDestination(out, this.GetValue());\r\n }\r\n\r\n /** JS convenience: raw values this parameter class claims for map-form inference. */\r\n static isValue(value)\r\n {\r\n return typeof value === \"number\";\r\n }\r\n\r\n}\r\n"],"names":["_Tr2FloatParameter","Tr2FloatParameter","CjsParameter","e","_init_value","_init_extra_value","_init_name","_init_extra_name","_init_usedByCurrentEffect","_init_extra_usedByCurrentEffect","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","float32","notify","persist","string","read","boolean","carbon","method","impl","implemented","adapted","value","name","usedByCurrentEffect","GetParameterName","GetHashValue","startingHash","FNV1_INITIAL","hashFnv1String","hashFnv1Floats","GetValue","readScalarDestination","SetValue","Number","writeScalarDestination","IsRerouted","SetDestination","dest","size","isScalarDestination","notifyBindings","GetDestination","RegisterBinding","binding","registerBinding","UnregisterBinding","unregisterBinding","RebuildEffectHandles","effectRes","hasEffectConstant","Initialize","CopyValueToEffect","_inputType","out","isValue"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2FloatParameter.js","sources":["../../../../src/shader/parameter/Tr2FloatParameter.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Shader\\Parameter\\Tr2FloatParameter.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Shader\\Parameter\\Tr2FloatParameter.cpp\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { CjsParameter } from \"./CjsParameter.js\";\r\n\r\n\r\n/**\r\n * Single float value for a named shader constant, with optional rerouting into\r\n * an external scalar destination.\r\n */\r\n@type.define({className: \"Tr2FloatParameter\", family: \"shader\"})\r\nexport class Tr2FloatParameter extends CjsParameter\r\n{\r\n @io.persistOnly\r\n @type.float32\r\n value = 1;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.boolean\r\n usedByCurrentEffect = false;\r\n\r\n #bindings = [];\r\n #reroutedValue = null;\r\n #valueRef = { value: this.value };\r\n\r\n /** The shader constant name this value binds to; empty until authored. */\r\n @carbon.method\r\n @impl.implemented\r\n GetParameterName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Content hash: value bytes then name (Carbon hashes the interned name pointer). */\r\n @carbon.method\r\n @impl.adapted\r\n GetHashValue(startingHash = CjsParameter.FNV1_INITIAL)\r\n {\r\n return CjsParameter.hashFnv1String(this.name, CjsParameter.hashFnv1Floats([this.value], startingHash));\r\n }\r\n\r\n /**\r\n * Reads back through the reroute destination when one is set, so the result\r\n * reflects writes made by whoever owns that destination.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetValue()\r\n {\r\n if (this.#reroutedValue)\r\n {\r\n this.value = CjsParameter.readScalarDestination(this.#reroutedValue, this.value);\r\n this.#valueRef.value = this.value;\r\n }\r\n return this.value;\r\n }\r\n\r\n /**\r\n * Coerces to a number, refreshes the boxed reference GetDestination hands out,\r\n * and writes through to the reroute destination when one is set.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetValue(value)\r\n {\r\n this.value = Number(value);\r\n this.#valueRef.value = this.value;\r\n if (this.#reroutedValue)\r\n {\r\n CjsParameter.writeScalarDestination(this.#reroutedValue, this.value);\r\n }\r\n }\r\n\r\n /** Whether reads and writes currently go through an external destination. */\r\n @carbon.method\r\n @impl.implemented\r\n IsRerouted()\r\n {\r\n return this.#reroutedValue !== null;\r\n }\r\n\r\n /**\r\n * Points the parameter at an external scalar destination and seeds it with the current value; a target under 4 bytes or of an unusable shape clears the reroute instead. Bindings are notified of the effective destination either way.\r\n * @param size destination capacity in bytes\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetDestination(dest, size = 4)\r\n {\r\n if (size >= 4 && CjsParameter.isScalarDestination(dest))\r\n {\r\n this.#reroutedValue = dest;\r\n CjsParameter.writeScalarDestination(dest, this.value);\r\n }\r\n else\r\n {\r\n this.#reroutedValue = null;\r\n }\r\n CjsParameter.notifyBindings(this.#bindings, this.GetDestination().dest);\r\n }\r\n\r\n /**\r\n * The scalar an upload should read - the reroute target, or the parameter's\r\n * own boxed `{ value }` holder - with its 4-byte size. The boxed holder is a\r\n * stable object that survives SetValue calls.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetDestination()\r\n {\r\n return {\r\n dest: this.#reroutedValue ?? this.#valueRef,\r\n size: 4\r\n };\r\n }\r\n\r\n /**\r\n * Adds a binding to be notified whenever the destination is repointed;\r\n * duplicates are ignored.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RegisterBinding(binding)\r\n {\r\n CjsParameter.registerBinding(this.#bindings, binding);\r\n }\r\n\r\n /** Stops notifying a binding; unknown bindings are ignored. */\r\n @carbon.method\r\n @impl.adapted\r\n UnregisterBinding(binding)\r\n {\r\n CjsParameter.unregisterBinding(this.#bindings, binding);\r\n }\r\n\r\n /**\r\n * Records whether the shader reflects a constant of this name and drops a\r\n * stale reroute when the shader is gone; reflection metadata only, no GPU\r\n * handle.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildEffectHandles(effectRes)\r\n {\r\n if (!effectRes && this.#reroutedValue)\r\n {\r\n this.SetDestination(null, 0);\r\n }\r\n this.usedByCurrentEffect = !!this.name && CjsParameter.hasEffectConstant(effectRes, this.name);\r\n }\r\n\r\n /**\r\n * Syncs the boxed reference and any reroute destination with the current\r\n * value; always returns true.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n this.#valueRef.value = this.value;\r\n if (this.#reroutedValue)\r\n {\r\n CjsParameter.writeScalarDestination(this.#reroutedValue, this.value);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Writes the current value - read back through the reroute first when one is\r\n * active - into the caller's destination.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CopyValueToEffect(_inputType, out)\r\n {\r\n CjsParameter.writeScalarDestination(out, this.GetValue());\r\n }\r\n\r\n /** JS convenience: raw values this parameter class claims for map-form inference. */\r\n static isValue(value)\r\n {\r\n return typeof value === \"number\";\r\n }\r\n\r\n}\r\n"],"names":["_Tr2FloatParameter","Tr2FloatParameter","CjsParameter","e","_init_value","_init_extra_value","_init_name","_init_extra_name","_init_usedByCurrentEffect","_init_extra_usedByCurrentEffect","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","float32","notify","persist","string","read","boolean","carbon","method","impl","implemented","adapted","value","name","usedByCurrentEffect","GetParameterName","GetHashValue","startingHash","FNV1_INITIAL","hashFnv1String","hashFnv1Floats","GetValue","readScalarDestination","SetValue","Number","writeScalarDestination","IsRerouted","SetDestination","dest","size","isScalarDestination","notifyBindings","GetDestination","RegisterBinding","binding","registerBinding","UnregisterBinding","unregisterBinding","RebuildEffectHandles","effectRes","hasEffectConstant","Initialize","CopyValueToEffect","_inputType","out","isValue"],"mappings":"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"}