@carbonenginejs/runtime-trinity 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1087) hide show
  1. package/README.md +35 -243
  2. package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
  3. package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
  4. package/dist/controllers/ITr2ControllerAction.js +57 -0
  5. package/dist/controllers/ITr2ControllerAction.js.map +1 -1
  6. package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
  7. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  8. package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
  9. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  10. package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
  11. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  12. package/dist/controllers/Tr2ActionCallback.js +5 -0
  13. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  14. package/dist/controllers/Tr2ActionChildEffect.js +63 -0
  15. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  16. package/dist/controllers/Tr2ActionOverlay.js +68 -0
  17. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  18. package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
  19. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  20. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
  21. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  22. package/dist/controllers/Tr2ActionPlaySound.js +11 -0
  23. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  24. package/dist/controllers/Tr2ActionPython.js +11 -0
  25. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  26. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
  27. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  28. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
  29. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  30. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
  31. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  32. package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
  33. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  34. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
  35. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  36. package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
  37. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  38. package/dist/controllers/Tr2ActionSetValue.js +35 -0
  39. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  40. package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
  41. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  42. package/dist/controllers/Tr2BindingPoint.js +67 -0
  43. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  44. package/dist/controllers/Tr2Controller.js +37 -0
  45. package/dist/controllers/Tr2Controller.js.map +1 -1
  46. package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
  47. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  48. package/dist/controllers/Tr2ControllerExpression.js +17 -0
  49. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  50. package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
  51. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  52. package/dist/controllers/Tr2ControllerReference.js +11 -0
  53. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  54. package/dist/controllers/Tr2StateMachine.js +17 -0
  55. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  56. package/dist/controllers/Tr2StateMachineState.js +47 -0
  57. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  58. package/dist/controllers/Tr2StateMachineTransition.js +29 -0
  59. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  60. package/dist/controllers/Tr2SyncToAnimation.js +5 -0
  61. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  62. package/dist/controllers/Tr2TimelineController.js +61 -0
  63. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  64. package/dist/controllers/contracts.js +24 -1
  65. package/dist/controllers/contracts.js.map +1 -1
  66. package/dist/controllers/index.js +1 -1
  67. package/dist/curves/CjsGrannyCurves.js +150 -0
  68. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  69. package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
  70. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  71. package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
  72. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  73. package/dist/curves/Tr2CurveColor.js +6 -0
  74. package/dist/curves/Tr2CurveColor.js.map +1 -1
  75. package/dist/curves/Tr2CurveColorMixer.js +6 -0
  76. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  77. package/dist/curves/Tr2CurveCombiner.js +5 -0
  78. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  79. package/dist/curves/Tr2CurveConstant.js +16 -0
  80. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  81. package/dist/curves/Tr2CurveEulerRotation.js +5 -0
  82. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  83. package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
  84. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  85. package/dist/curves/Tr2CurveQuaternion.js +5 -0
  86. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  87. package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
  88. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  89. package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
  90. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  91. package/dist/curves/Tr2CurveScalar.js +35 -0
  92. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  93. package/dist/curves/Tr2CurveScalarExpression.js +11 -0
  94. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  95. package/dist/curves/Tr2CurveScalarKey.js +6 -0
  96. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  97. package/dist/curves/Tr2CurveSetRange.js +5 -0
  98. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  99. package/dist/curves/Tr2CurveVector2.js +5 -0
  100. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  101. package/dist/curves/Tr2CurveVector3.js +5 -0
  102. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  103. package/dist/curves/Tr2CurveVector3Expression.js +71 -0
  104. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  105. package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
  106. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  107. package/dist/curves/Tr2DistanceTracker.js +6 -0
  108. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  109. package/dist/curves/Tr2FollowCurve.js +6 -0
  110. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  111. package/dist/curves/Tr2GrannyEventTrack.js +5 -0
  112. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  113. package/dist/curves/Tr2GrannyTrack.js +6 -0
  114. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  115. package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
  116. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  117. package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
  118. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  119. package/dist/curves/Tr2MatrixKey.js +5 -0
  120. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  121. package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
  122. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  123. package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
  124. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  125. package/dist/curves/Tr2RotationAdapter.js +6 -0
  126. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  127. package/dist/curves/Tr2ScalarExprKey.js +18 -0
  128. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  129. package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
  130. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  131. package/dist/curves/Tr2ScalarFader.js +11 -0
  132. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  133. package/dist/curves/Tr2TranslationAdapter.js +6 -0
  134. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  135. package/dist/curves/TriColorSequencer.js +6 -0
  136. package/dist/curves/TriColorSequencer.js.map +1 -1
  137. package/dist/curves/TriCurveSet.js +23 -0
  138. package/dist/curves/TriCurveSet.js.map +1 -1
  139. package/dist/curves/TriEventCurve.js +23 -0
  140. package/dist/curves/TriEventCurve.js.map +1 -1
  141. package/dist/curves/TriEventKey.js +5 -0
  142. package/dist/curves/TriEventKey.js.map +1 -1
  143. package/dist/curves/TriPerlinCurve.js +30 -0
  144. package/dist/curves/TriPerlinCurve.js.map +1 -1
  145. package/dist/curves/TriVectorSequencer.js +6 -0
  146. package/dist/curves/TriVectorSequencer.js.map +1 -1
  147. package/dist/eve/AudioGameObject.js +89 -1
  148. package/dist/eve/AudioGameObject.js.map +1 -1
  149. package/dist/eve/BackAndForthData.js +7 -0
  150. package/dist/eve/BackAndForthData.js.map +1 -1
  151. package/dist/eve/CjsDistributionRandom.js +6 -0
  152. package/dist/eve/CjsDistributionRandom.js.map +1 -1
  153. package/dist/eve/CjsEveThrottleableState.js +11 -0
  154. package/dist/eve/CjsEveThrottleableState.js.map +1 -1
  155. package/dist/eve/EveChildUpdateParams.js +7 -0
  156. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  157. package/dist/eve/EveComponentTypes.js.map +1 -1
  158. package/dist/eve/EveCustomMask.js +58 -27
  159. package/dist/eve/EveCustomMask.js.map +1 -1
  160. package/dist/eve/EveDistanceField.js +84 -0
  161. package/dist/eve/EveDistanceField.js.map +1 -1
  162. package/dist/eve/EveEntity.js +138 -0
  163. package/dist/eve/EveEntity.js.map +1 -0
  164. package/dist/eve/EveImpactOverlay.js +61 -0
  165. package/dist/eve/EveImpactOverlay.js.map +1 -1
  166. package/dist/eve/EveLODHelper.js +17 -13
  167. package/dist/eve/EveLODHelper.js.map +1 -1
  168. package/dist/eve/EveLineData.js +2 -0
  169. package/dist/eve/EveLineData.js.map +1 -1
  170. package/dist/eve/EveThrottleable.js +11 -0
  171. package/dist/eve/EveThrottleable.js.map +1 -1
  172. package/dist/eve/FollowASplineData.js +7 -0
  173. package/dist/eve/FollowASplineData.js.map +1 -1
  174. package/dist/eve/FormationData.js +6 -0
  175. package/dist/eve/FormationData.js.map +1 -1
  176. package/dist/eve/InertiaData.js +7 -0
  177. package/dist/eve/InertiaData.js.map +1 -1
  178. package/dist/eve/PlacementDataWithIdentifier.js +7 -0
  179. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  180. package/dist/eve/PlayFXData.js +7 -0
  181. package/dist/eve/PlayFXData.js.map +1 -1
  182. package/dist/eve/SeekTargetData.js +7 -0
  183. package/dist/eve/SeekTargetData.js.map +1 -1
  184. package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
  185. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
  186. package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
  187. package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
  188. package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
  189. package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
  190. package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
  191. package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
  192. package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
  193. package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
  194. package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
  195. package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
  196. package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
  197. package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
  198. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
  199. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
  200. package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
  201. package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
  202. package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
  203. package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
  204. package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
  205. package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
  206. package/dist/eve/attachment/itemSetBounds.js +131 -0
  207. package/dist/eve/attachment/itemSetBounds.js.map +1 -0
  208. package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
  209. package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
  210. package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
  211. package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
  212. package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
  213. package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
  214. package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
  215. package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
  216. package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
  217. package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
  218. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
  219. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
  220. package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
  221. package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
  222. package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
  223. package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
  224. package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
  225. package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
  226. package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
  227. package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
  228. package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
  229. package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
  230. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
  231. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  232. package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
  233. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  234. package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
  235. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  236. package/dist/eve/camera/EveCamera.js +644 -0
  237. package/dist/eve/camera/EveCamera.js.map +1 -0
  238. package/dist/eve/child/EveChildAudio.js +63 -0
  239. package/dist/eve/child/EveChildAudio.js.map +1 -1
  240. package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
  241. package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
  242. package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
  243. package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
  244. package/dist/eve/child/EveChildContainer.js +175 -16
  245. package/dist/eve/child/EveChildContainer.js.map +1 -1
  246. package/dist/eve/child/EveChildEffectPropagator.js +1 -1
  247. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  248. package/dist/eve/child/EveChildFogVolume.js +72 -0
  249. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  250. package/dist/eve/child/EveChildInheritProperties.js +17 -0
  251. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  252. package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
  253. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  254. package/dist/eve/child/EveChildLightingOverride.js +74 -0
  255. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  256. package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
  257. package/dist/eve/child/EveChildLink.js.map +1 -0
  258. package/dist/eve/child/EveChildMesh.js +351 -105
  259. package/dist/eve/child/EveChildMesh.js.map +1 -1
  260. package/dist/eve/child/EveChildSpherePin.js +108 -0
  261. package/dist/eve/child/EveChildSpherePin.js.map +1 -0
  262. package/dist/eve/child/EveChildTransform.js +44 -1
  263. package/dist/eve/child/EveChildTransform.js.map +1 -1
  264. package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
  265. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  266. package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
  267. package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
  268. package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
  269. package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
  270. package/dist/eve/child/behaviors/Wander.js +99 -0
  271. package/dist/eve/child/behaviors/Wander.js.map +1 -0
  272. package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
  273. package/dist/eve/child/behaviors/enums.js.map +1 -0
  274. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
  275. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
  276. package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
  277. package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
  278. package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
  279. package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
  280. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
  281. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
  282. package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
  283. package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
  284. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
  285. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  286. package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
  287. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  288. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
  289. package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
  290. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
  291. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  292. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
  293. package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
  294. package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
  295. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  296. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
  297. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  298. package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
  299. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  300. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
  301. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  302. package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
  303. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  304. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
  305. package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
  306. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
  307. package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
  308. package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
  309. package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
  310. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
  311. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
  312. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
  313. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
  314. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
  315. package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
  316. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
  317. package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
  318. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
  319. package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
  320. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
  321. package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
  322. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
  323. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
  324. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
  325. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
  326. package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
  327. package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
  328. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
  329. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
  330. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
  331. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
  332. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
  333. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
  334. package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
  335. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
  336. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
  337. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
  338. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
  339. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
  340. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
  341. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
  342. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
  343. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
  344. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
  345. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
  346. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
  347. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
  348. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
  349. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
  350. package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
  351. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
  352. package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
  353. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
  354. package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
  355. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
  356. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
  357. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
  358. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
  359. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
  360. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
  361. package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
  362. package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
  363. package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
  364. package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
  365. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
  366. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
  367. package/dist/eve/index.js +117 -47
  368. package/dist/eve/index.js.map +1 -1
  369. package/dist/eve/lights/CjsLightData.js +7 -0
  370. package/dist/eve/lights/CjsLightData.js.map +1 -1
  371. package/dist/eve/lights/Tr2Light.js +41 -0
  372. package/dist/eve/lights/Tr2Light.js.map +1 -1
  373. package/dist/eve/lights/Tr2PointLight.js +5 -0
  374. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  375. package/dist/eve/lights/Tr2SpotLight.js +5 -0
  376. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  377. package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
  378. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  379. package/dist/eve/lights/lightConversion.js +29 -27
  380. package/dist/eve/lights/lightConversion.js.map +1 -1
  381. package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
  382. package/dist/eve/locator/EveLocator2.js.map +1 -0
  383. package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
  384. package/dist/eve/locator/EveLocatorSets.js.map +1 -0
  385. package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
  386. package/dist/eve/locator/Locator.js.map +1 -0
  387. package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
  388. package/dist/eve/locator/LocatorData.js.map +1 -0
  389. package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
  390. package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
  391. package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
  392. package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
  393. package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
  394. package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
  395. package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
  396. package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
  397. package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
  398. package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
  399. package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
  400. package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
  401. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
  402. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  403. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
  404. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  405. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
  406. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  407. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
  408. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  409. package/dist/eve/renderable/stretch/EveStretch.js +158 -9
  410. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  411. package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
  412. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  413. package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
  414. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  415. package/dist/eve/scene/EveSpaceScene.js +56 -6
  416. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  417. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
  418. package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
  419. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
  420. package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
  421. package/dist/eve/scene/picking/EvePickingContext.js +61 -0
  422. package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
  423. package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
  424. package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
  425. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
  426. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
  427. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
  428. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
  429. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
  430. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
  431. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
  432. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
  433. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
  434. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
  435. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
  436. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
  437. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
  438. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
  439. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
  440. package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
  441. package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
  442. package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
  443. package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
  444. package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
  445. package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
  446. package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
  447. package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
  448. package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
  449. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  450. package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
  451. package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
  452. package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
  453. package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
  454. package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
  455. package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
  456. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
  457. package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
  458. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
  459. package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
  460. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
  461. package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
  462. package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
  463. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  464. package/dist/eve/spaceObject/EveMissile.js +49 -1
  465. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  466. package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
  467. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  468. package/dist/eve/spaceObject/EveMobile.js +104 -0
  469. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  470. package/dist/eve/spaceObject/EveRootTransform.js +17 -0
  471. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  472. package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
  473. package/dist/eve/spaceObject/EveShip2.js.map +1 -0
  474. package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
  475. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  476. package/dist/eve/spaceObject/EveTransform.js +100 -4
  477. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  478. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
  479. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
  480. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
  481. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
  482. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
  483. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
  484. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
  485. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
  486. package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
  487. package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
  488. package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
  489. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
  490. package/dist/eve/ui/EveEllipseDefinition.js +15 -0
  491. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  492. package/dist/eve/ui/EveEllipseSet.js +42 -0
  493. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  494. package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
  495. package/dist/eve/ui/EveSpherePin.js.map +1 -0
  496. package/dist/eve/ui/EveSprite2dBracket.js +5 -0
  497. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  498. package/dist/eve/ui/EveUiObject.js +11 -0
  499. package/dist/eve/ui/EveUiObject.js.map +1 -1
  500. package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
  501. package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
  502. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
  503. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
  504. package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
  505. package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
  506. package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
  507. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  508. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
  509. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  510. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
  511. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  512. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
  513. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  514. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
  515. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  516. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
  517. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  518. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
  519. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  520. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
  521. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  522. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
  523. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  524. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
  525. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  526. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
  527. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  528. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
  529. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  530. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
  531. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  532. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
  533. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  534. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
  535. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  536. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
  537. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  538. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
  539. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  540. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
  541. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  542. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
  543. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  544. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
  545. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  546. package/dist/eve/volume/EveBoxVolume.js +59 -0
  547. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  548. package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
  549. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  550. package/dist/eve/volume/EveSphereVolume.js +34 -0
  551. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  552. package/dist/generated/eve/child/EveChildCloud2.js +138 -138
  553. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  554. package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
  555. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  556. package/dist/generated/eve/child/EveChildSocket.js +1 -1
  557. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  558. package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
  559. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  560. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
  561. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  562. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
  563. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  564. package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
  565. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  566. package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
  567. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  568. package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
  569. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  570. package/dist/generated/eve/child/behaviors/index.js +0 -6
  571. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  572. package/dist/generated/eve/child/index.js +0 -23
  573. package/dist/generated/eve/child/index.js.map +1 -1
  574. package/dist/generated/eve/effect/index.js +0 -3
  575. package/dist/generated/eve/effect/index.js.map +1 -1
  576. package/dist/generated/eve/index.js +0 -88
  577. package/dist/generated/eve/index.js.map +1 -1
  578. package/dist/generated/eve/scene/index.js +0 -6
  579. package/dist/generated/eve/scene/index.js.map +1 -1
  580. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
  581. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  582. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
  583. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  584. package/dist/generated/eve/smartLights/index.js +0 -8
  585. package/dist/generated/eve/smartLights/index.js.map +1 -1
  586. package/dist/generated/eve/spaceObject/index.js +0 -4
  587. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  588. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
  589. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  590. package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
  591. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  592. package/dist/generated/eve/ui/index.js +0 -4
  593. package/dist/generated/eve/ui/index.js.map +1 -1
  594. package/dist/generated/index.js +0 -93
  595. package/dist/generated/index.js.map +1 -1
  596. package/dist/generated/trinityCore/index.js +0 -5
  597. package/dist/generated/trinityCore/index.js.map +1 -1
  598. package/dist/index.js +130 -155
  599. package/dist/index.js.map +1 -1
  600. package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
  601. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  602. package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
  603. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  604. package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
  605. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  606. package/dist/particle/Tr2ParticleDirectForce.js +7 -0
  607. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  608. package/dist/particle/Tr2ParticleDragForce.js +7 -0
  609. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  610. package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
  611. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  612. package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
  613. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  614. package/dist/particle/Tr2ParticleSpring.js +10 -0
  615. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  616. package/dist/particle/Tr2ParticleVortexForce.js +10 -0
  617. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  618. package/dist/particle/particleElementBinding.js +12 -0
  619. package/dist/particle/particleElementBinding.js.map +1 -1
  620. package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
  621. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  622. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
  623. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  624. package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
  625. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  626. package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
  627. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  628. package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
  629. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  630. package/dist/postProcess/Tr2PostProcess.js +5 -0
  631. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  632. package/dist/postProcess/Tr2PostProcess2.js +147 -0
  633. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  634. package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
  635. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  636. package/dist/renderJob/Tr2RenderJobs.js +34 -0
  637. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  638. package/dist/renderJob/TriRenderJob.js +59 -0
  639. package/dist/renderJob/TriRenderJob.js.map +1 -1
  640. package/dist/renderJob/TriRenderStep.js +20 -0
  641. package/dist/renderJob/TriRenderStep.js.map +1 -1
  642. package/dist/renderJob/TriStepClear.js +18 -0
  643. package/dist/renderJob/TriStepClear.js.map +1 -1
  644. package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
  645. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  646. package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
  647. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  648. package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
  649. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  650. package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
  651. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  652. package/dist/renderJob/TriStepPopProjection.js +6 -0
  653. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  654. package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
  655. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  656. package/dist/renderJob/TriStepPopViewTransform.js +6 -0
  657. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  658. package/dist/renderJob/TriStepPopViewport.js +6 -0
  659. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  660. package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
  661. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  662. package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
  663. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  664. package/dist/renderJob/TriStepPushProjection.js +6 -0
  665. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  666. package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
  667. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  668. package/dist/renderJob/TriStepPushViewTransform.js +6 -0
  669. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  670. package/dist/renderJob/TriStepPushViewport.js +6 -0
  671. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  672. package/dist/renderJob/TriStepRemoteSync.js +17 -0
  673. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  674. package/dist/renderJob/TriStepResolve.js +13 -0
  675. package/dist/renderJob/TriStepResolve.js.map +1 -1
  676. package/dist/renderJob/TriStepRunJob.js +12 -0
  677. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  678. package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
  679. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  680. package/dist/renderJob/TriStepSetProjection.js +14 -0
  681. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  682. package/dist/renderJob/TriStepSetRenderState.js +20 -0
  683. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  684. package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
  685. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  686. package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
  687. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  688. package/dist/renderJob/TriStepSetView.js +29 -2
  689. package/dist/renderJob/TriStepSetView.js.map +1 -1
  690. package/dist/renderJob/TriStepSetViewport.js +17 -0
  691. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  692. package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
  693. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  694. package/dist/shader/Tr2Effect.js +217 -2
  695. package/dist/shader/Tr2Effect.js.map +1 -1
  696. package/dist/shader/Tr2Material.js +41 -0
  697. package/dist/shader/Tr2Material.js.map +1 -1
  698. package/dist/shader/index.js +1 -11
  699. package/dist/shader/index.js.map +1 -1
  700. package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
  701. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  702. package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
  703. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  704. package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
  705. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  706. package/dist/shader/parameter/CjsParameter.js +94 -0
  707. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  708. package/dist/shader/parameter/CjsVectorParameter.js +20 -0
  709. package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
  710. package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
  711. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  712. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
  713. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
  715. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  716. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
  717. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  718. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
  719. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  720. package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
  721. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  722. package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
  723. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  724. package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
  725. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  726. package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
  727. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  728. package/dist/shader/parameter/TriTextureParameter.js +84 -0
  729. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  730. package/dist/shader/parameter/TriTransformParameter.js +2 -0
  731. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  732. package/dist/shader/parameter/TriVariableParameter.js +38 -0
  733. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  734. package/dist/shader/parameter/TriVector4.js +2 -0
  735. package/dist/shader/parameter/TriVector4.js.map +1 -1
  736. package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
  737. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  738. package/dist/shader/support/CjsVariableStore.js +140 -0
  739. package/dist/shader/support/CjsVariableStore.js.map +1 -1
  740. package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
  741. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  742. package/dist/trinityCore/CjsBatchManager.js +62 -2
  743. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  744. package/dist/trinityCore/GrannyBoneOffset.js +51 -0
  745. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  746. package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
  747. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  748. package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
  749. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  750. package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
  751. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  752. package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
  753. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  754. package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
  755. package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
  756. package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
  757. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  758. package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
  759. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  760. package/dist/trinityCore/Tr2Mesh.js +37 -0
  761. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  762. package/dist/trinityCore/Tr2MeshArea.js +78 -0
  763. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  764. package/dist/trinityCore/Tr2MeshBase.js +98 -2
  765. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  766. package/dist/trinityCore/Tr2PerObjectData.js +10 -0
  767. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
  768. package/dist/trinityCore/Tr2PickType.js +33 -0
  769. package/dist/trinityCore/Tr2PickType.js.map +1 -0
  770. package/dist/trinityCore/Tr2RenderBatch.js +137 -0
  771. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  772. package/dist/trinityCore/Tr2RenderContext.js +271 -0
  773. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  774. package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
  775. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  776. package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
  777. package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
  778. package/dist/trinityCore/Tr2VariableStore.js +26 -0
  779. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  780. package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
  781. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  782. package/dist/trinityCore/TriDevice.js +5 -0
  783. package/dist/trinityCore/TriDevice.js.map +1 -1
  784. package/dist/trinityCore/TriFrustum.js +21 -14
  785. package/dist/trinityCore/TriFrustum.js.map +1 -1
  786. package/dist/trinityCore/TriObserverLocal.js +43 -0
  787. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  788. package/dist/trinityCore/TriProjection.js +86 -32
  789. package/dist/trinityCore/TriProjection.js.map +1 -1
  790. package/dist/trinityCore/TriRect.js +12 -0
  791. package/dist/trinityCore/TriRect.js.map +1 -1
  792. package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
  793. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  794. package/dist/trinityCore/TriRenderBatchMap.js +39 -2
  795. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  796. package/dist/trinityCore/TriSettings.js +38 -0
  797. package/dist/trinityCore/TriSettings.js.map +1 -1
  798. package/dist/trinityCore/TriVariable.js +30 -0
  799. package/dist/trinityCore/TriVariable.js.map +1 -1
  800. package/dist/trinityCore/TriView.js +16 -1
  801. package/dist/trinityCore/TriView.js.map +1 -1
  802. package/dist/trinityCore/TriViewport.js +12 -0
  803. package/dist/trinityCore/TriViewport.js.map +1 -1
  804. package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
  805. package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
  806. package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
  807. package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
  808. package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
  809. package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
  810. package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
  811. package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
  812. package/dist/trinityCore/binding/TriValueBinding.js +648 -0
  813. package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
  814. package/dist/trinityCore/index.js +11 -4
  815. package/dist/trinityCore/index.js.map +1 -1
  816. package/dist/trinityCore/pickRay.js +84 -0
  817. package/dist/trinityCore/pickRay.js.map +1 -0
  818. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +931 -0
  819. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
  820. package/dist/trinityCore/rawData/RawData.js +294 -38
  821. package/dist/trinityCore/rawData/RawData.js.map +1 -1
  822. package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
  823. package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
  824. package/dist/utilities/Range.js +53 -0
  825. package/dist/utilities/Range.js.map +1 -1
  826. package/docs/README.md +88 -0
  827. package/docs/architecture.md +162 -0
  828. package/docs/concepts/eve-runtime-behavior.md +86 -0
  829. package/docs/concepts/generated-class-lifecycle.md +116 -0
  830. package/docs/reference/api.md +76 -0
  831. package/docs/reference/classes/eve-runtime.md +106 -0
  832. package/docs/reference/classes/trinity-core.md +26 -0
  833. package/docs/reference/implementation-status.md +104 -0
  834. package/docs/reference/main-semantic-extraction.md +104 -0
  835. package/package.json +33 -24
  836. package/dist/eve/DecalVSPerObjectData.js +0 -34
  837. package/dist/eve/DecalVSPerObjectData.js.map +0 -1
  838. package/dist/eve/EveBannerItem.js +0 -43
  839. package/dist/eve/EveBannerItem.js.map +0 -1
  840. package/dist/eve/EveBannerLight.js.map +0 -1
  841. package/dist/eve/EveBannerSet.js +0 -190
  842. package/dist/eve/EveBannerSet.js.map +0 -1
  843. package/dist/eve/EveBasicPerObjectData.js +0 -31
  844. package/dist/eve/EveBasicPerObjectData.js.map +0 -1
  845. package/dist/eve/EveBoosterSet2.js.map +0 -1
  846. package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
  847. package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
  848. package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
  849. package/dist/eve/EveHazeSet.js.map +0 -1
  850. package/dist/eve/EveHazeSetLight.js.map +0 -1
  851. package/dist/eve/EveLocator2.js.map +0 -1
  852. package/dist/eve/EveLocatorSets.js.map +0 -1
  853. package/dist/eve/EveParticleDirectForce.js.map +0 -1
  854. package/dist/eve/EveParticleDragForce.js.map +0 -1
  855. package/dist/eve/EveParticleSpring.js.map +0 -1
  856. package/dist/eve/EvePerObjectPSData.js +0 -29
  857. package/dist/eve/EvePerObjectPSData.js.map +0 -1
  858. package/dist/eve/EvePerObjectVSData.js +0 -29
  859. package/dist/eve/EvePerObjectVSData.js.map +0 -1
  860. package/dist/eve/EvePlaneLight.js.map +0 -1
  861. package/dist/eve/EvePlaneSet.js.map +0 -1
  862. package/dist/eve/EvePlaneSetItem.js +0 -45
  863. package/dist/eve/EvePlaneSetItem.js.map +0 -1
  864. package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
  865. package/dist/eve/EveSpaceObjectDecal.js +0 -150
  866. package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
  867. package/dist/eve/EveSpaceObjectPSData.js +0 -73
  868. package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
  869. package/dist/eve/EveSpaceObjectVSData.js +0 -79
  870. package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
  871. package/dist/eve/EveSpacePerObjectData.js +0 -97
  872. package/dist/eve/EveSpacePerObjectData.js.map +0 -1
  873. package/dist/eve/EveSpherePinPerObjectData.js +0 -37
  874. package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
  875. package/dist/eve/EveSpotlightLight.js.map +0 -1
  876. package/dist/eve/EveSpotlightSet.js.map +0 -1
  877. package/dist/eve/EveSpriteLight.js.map +0 -1
  878. package/dist/eve/EveSpriteLineSet.js.map +0 -1
  879. package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
  880. package/dist/eve/EveSpriteSet.js.map +0 -1
  881. package/dist/eve/EveTrailsSet.js.map +0 -1
  882. package/dist/eve/Locator.js.map +0 -1
  883. package/dist/eve/LocatorData.js.map +0 -1
  884. package/dist/eve/ProcessLifetimeData.js.map +0 -1
  885. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
  886. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  887. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
  888. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  889. package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
  890. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  891. package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
  892. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  893. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
  894. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
  895. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
  896. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  897. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
  898. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  899. package/dist/generated/eve/EveCamera.js +0 -264
  900. package/dist/generated/eve/EveCamera.js.map +0 -1
  901. package/dist/generated/eve/EveEntity.js +0 -81
  902. package/dist/generated/eve/EveEntity.js.map +0 -1
  903. package/dist/generated/eve/attachment/decal/index.js +0 -2
  904. package/dist/generated/eve/attachment/decal/index.js.map +0 -1
  905. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
  906. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
  907. package/dist/generated/eve/attachment/haze/index.js +0 -2
  908. package/dist/generated/eve/attachment/haze/index.js.map +0 -1
  909. package/dist/generated/eve/attachment/index.js +0 -5
  910. package/dist/generated/eve/attachment/index.js.map +0 -1
  911. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
  912. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
  913. package/dist/generated/eve/attachment/spotlights/index.js +0 -2
  914. package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
  915. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
  916. package/dist/generated/eve/attachment/sprites/index.js +0 -2
  917. package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
  918. package/dist/generated/eve/attachment/turrets/enums.js +0 -32
  919. package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
  920. package/dist/generated/eve/attachment/turrets/index.js +0 -2
  921. package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
  922. package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
  923. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
  924. package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
  925. package/dist/generated/eve/child/EveChildLink.js.map +0 -1
  926. package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
  927. package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
  928. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
  929. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
  930. package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
  931. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
  932. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
  933. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
  934. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
  935. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
  936. package/dist/generated/eve/child/behaviors/Wander.js +0 -92
  937. package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
  938. package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
  939. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
  940. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
  941. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
  942. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
  943. package/dist/generated/eve/child/modifiers/index.js +0 -5
  944. package/dist/generated/eve/child/modifiers/index.js.map +0 -1
  945. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
  946. package/dist/generated/eve/child/procedural/index.js +0 -10
  947. package/dist/generated/eve/child/procedural/index.js.map +0 -1
  948. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
  949. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
  950. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
  951. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
  952. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
  953. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
  954. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
  955. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
  956. package/dist/generated/eve/child/procedural/selection/index.js +0 -9
  957. package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
  958. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
  959. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
  960. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
  961. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
  962. package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
  963. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
  964. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
  965. package/dist/generated/eve/distribution/index.js +0 -19
  966. package/dist/generated/eve/distribution/index.js.map +0 -1
  967. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
  968. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
  969. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
  970. package/dist/generated/eve/distribution/placement/index.js +0 -4
  971. package/dist/generated/eve/distribution/placement/index.js.map +0 -1
  972. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
  973. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
  974. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
  975. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
  976. package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
  977. package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
  978. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
  979. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
  980. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
  981. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
  982. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
  983. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
  984. package/dist/generated/eve/distribution/spawners/index.js +0 -7
  985. package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
  986. package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
  987. package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
  988. package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
  989. package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
  990. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
  991. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
  992. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
  993. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
  994. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
  995. package/dist/generated/eve/fxAttributes/index.js +0 -3
  996. package/dist/generated/eve/fxAttributes/index.js.map +0 -1
  997. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
  998. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
  999. package/dist/generated/eve/overlays/index.js +0 -2
  1000. package/dist/generated/eve/overlays/index.js.map +0 -1
  1001. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
  1002. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
  1003. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
  1004. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
  1005. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
  1006. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
  1007. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
  1008. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
  1009. package/dist/generated/eve/perObjectData/index.js +0 -5
  1010. package/dist/generated/eve/perObjectData/index.js.map +0 -1
  1011. package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
  1012. package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
  1013. package/dist/generated/eve/scene/EvePickingContext.js +0 -43
  1014. package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
  1015. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
  1016. package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
  1017. package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
  1018. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
  1019. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
  1020. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
  1021. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
  1022. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
  1023. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
  1024. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
  1025. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
  1026. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
  1027. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
  1028. package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
  1029. package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
  1030. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
  1031. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
  1032. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
  1033. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
  1034. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
  1035. package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
  1036. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
  1037. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
  1038. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
  1039. package/dist/generated/eve/socket/index.js +0 -10
  1040. package/dist/generated/eve/socket/index.js.map +0 -1
  1041. package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
  1042. package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
  1043. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
  1044. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
  1045. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
  1046. package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
  1047. package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
  1048. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
  1049. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
  1050. package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
  1051. package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
  1052. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
  1053. package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
  1054. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
  1055. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
  1056. package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
  1057. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
  1058. package/dist/generated/trinityCore/TriValueBinding.js +0 -249
  1059. package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
  1060. package/dist/shader/Tr2Shader.js +0 -150
  1061. package/dist/shader/Tr2Shader.js.map +0 -1
  1062. package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
  1063. package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
  1064. package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
  1065. package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
  1066. package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
  1067. package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
  1068. package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
  1069. package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
  1070. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
  1071. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
  1072. package/dist/shader/reflection/Tr2EffectResource.js +0 -63
  1073. package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
  1074. package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
  1075. package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
  1076. package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
  1077. package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
  1078. package/dist/shader/reflection/Tr2Pass.js +0 -46
  1079. package/dist/shader/reflection/Tr2Pass.js.map +0 -1
  1080. package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
  1081. package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
  1082. package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
  1083. package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
  1084. package/dist/trinityCore/rawData/RawDataStore.js +0 -232
  1085. package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
  1086. /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
  1087. /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"CjsGrannyCurves.js","sources":["../../../src/curves/CjsGrannyCurves.js"],"sourcesContent":["/**\r\n * Granny animation-curve decoding authored by cppctamber for ccpwgl2.\r\n *\r\n * This local copy decodes and samples already-materialized curve data without\r\n * coupling runtime-trinity to a GR2 container reader. The former format-gr2\r\n * licensing boundary is resolved: its BitKnit2 decoder was replaced by a\r\n * clean-room implementation, the package is MIT, and the canonical reader now\r\n * lives at @carbonenginejs/runtime-resource/formats/gr2.\r\n */\r\nimport { num } from \"@carbonenginejs/runtime-utils/num\";\r\n\r\nconst fr = Math.fround;\r\nconst CURVE_DECODERS = Object.freeze([Object.freeze({\r\n format: 0,\r\n decode: decodeDaKeyframes32f\r\n}), Object.freeze({\r\n format: 1,\r\n decode: decodeDaK32fC32f\r\n}), Object.freeze({\r\n format: 2,\r\n decode: decodeDaIdentity\r\n}), Object.freeze({\r\n format: 3,\r\n decode: decodeDaConstant32f\r\n}), Object.freeze({\r\n format: 4,\r\n decode: decodeD3Constant32f\r\n}), Object.freeze({\r\n format: 5,\r\n decode: decodeD4Constant32f\r\n}), Object.freeze({\r\n format: 6,\r\n decode: decodeDaK16uC16u\r\n}), Object.freeze({\r\n format: 7,\r\n decode: decodeDaK8uC8u\r\n}), Object.freeze({\r\n format: 8,\r\n decode: decodeD4nK16uC15u\r\n}), Object.freeze({\r\n format: 9,\r\n decode: decodeD4nK8uC7u\r\n}), Object.freeze({\r\n format: 10,\r\n decode: decodeD3K16uC16u\r\n}), Object.freeze({\r\n format: 11,\r\n decode: decodeD3K8uC8u\r\n}), Object.freeze({\r\n format: 12,\r\n decode: decodeD9I1K16uC16u\r\n}), Object.freeze({\r\n format: 13,\r\n decode: decodeD9I3K16uC16u\r\n}), Object.freeze({\r\n format: 14,\r\n decode: decodeD9I1K8uC8u\r\n}), Object.freeze({\r\n format: 15,\r\n decode: decodeD9I3K8uC8u\r\n}), Object.freeze({\r\n format: 16,\r\n decode: decodeD3I1K32fC32f\r\n}), Object.freeze({\r\n format: 17,\r\n decode: decodeD3I1K16uC16u\r\n}), Object.freeze({\r\n format: 18,\r\n decode: decodeD3I1K8uC8u\r\n})]);\r\nconst D4N_SCALE_TABLE = new Float32Array([1.4142135, 0.70710677, 0.35355338, 0.35355338, 0.35355338, 0.17677669, 0.17677669, 0.17677669, -1.4142135, -0.70710677, -0.35355338, -0.35355338, -0.35355338, -0.17677669, -0.17677669, -0.17677669]);\r\nconst D4N_OFFSET_TABLE = new Float32Array([-0.70710677, -0.35355338, -0.53033006, -0.17677669, 0.17677669, -0.17677669, -0.088388346, 0.0, 0.70710677, 0.35355338, 0.53033006, 0.17677669, -0.17677669, 0.17677669, 0.088388346, -0.0]);\r\nconst D4N_SCALE_TABLE_MULTIPLIER_16 = 0.000030518509;\r\nconst D4N_SCALE_TABLE_MULTIPLIER_8 = 0.0078740157;\r\nexport class CjsGrannyCurves\r\n{\r\n static #resources = new Map();\r\n\r\n /**\r\n * Decode a GR2 JSON curve object into explicit knots and controls.\r\n */\r\n static decodeCurve(curveJson, dimension)\r\n {\r\n if (!curveJson || typeof curveJson.format !== \"number\")\r\n {\r\n throw new Error(\"gr2reader: decodeCurve requires a curve object with a numeric format\");\r\n }\r\n const decoder = CURVE_DECODERS[curveJson.format];\r\n if (!decoder)\r\n {\r\n throw new Error(`gr2reader: unsupported granny curve format ${curveJson.format}`);\r\n }\r\n const {\r\n knots,\r\n controls,\r\n dimension: dim\r\n } = decoder.decode(curveJson, dimension);\r\n if (dimension && dim && dim !== dimension)\r\n {\r\n throw new Error(`gr2reader: curve format ${curveJson.format} decoded dimension ${dim} does not match track dimension ${dimension}`);\r\n }\r\n return {\r\n knots,\r\n controls,\r\n degree: Number(curveJson.degree) || 0,\r\n dimension: dim || dimension\r\n };\r\n }\r\n\r\n /**\r\n * Sample a decoded Granny curve into caller-provided output.\r\n */\r\n static sampleDecodedCurve(out, curve, time, cycle = false, duration = 0, options = {})\r\n {\r\n if (!curve || !curve.knots || !curve.controls || !curve.dimension)\r\n {\r\n return out;\r\n }\r\n const knots = curve.knots,\r\n count = knots.length,\r\n dim = curve.dimension,\r\n controlCount = curve.controls.length / dim;\r\n if (!count || !controlCount)\r\n {\r\n return out;\r\n }\r\n if (options.keyframed)\r\n {\r\n return CjsGrannyCurves.#copyControl(out, curve, CjsGrannyCurves.#sampleKeyframedCurve(count, time, duration));\r\n }\r\n const knot = CjsGrannyCurves.#findKnotIndex(knots, time);\r\n if (curve.degree <= 0 || count === 1 || controlCount === 1)\r\n {\r\n const index = time >= knots[count - 1]\r\n ? count - 1\r\n : Math.max(0, knot - 1);\r\n return CjsGrannyCurves.#copyControl(out, curve, Math.min(index, controlCount - 1));\r\n }\r\n if (curve.degree === 1)\r\n {\r\n return CjsGrannyCurves.#sampleLinearCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\r\n }\r\n return CjsGrannyCurves.#sampleQuadraticCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\r\n }\r\n\r\n static registerResource(path, source)\r\n {\r\n if (path)\r\n {\r\n CjsGrannyCurves.#resources.set(path, source);\r\n }\r\n }\r\n\r\n static unregisterResource(path)\r\n {\r\n CjsGrannyCurves.#resources.delete(path);\r\n }\r\n\r\n static clearResources()\r\n {\r\n CjsGrannyCurves.#resources.clear();\r\n }\r\n\r\n static resolveResource(path)\r\n {\r\n return CjsGrannyCurves.#resources.get(path) ?? null;\r\n }\r\n\r\n static getTrackSource(value)\r\n {\r\n return CjsGrannyCurves.#findTrackSource(value, 0);\r\n }\r\n\r\n static getAnimations(source)\r\n {\r\n return CjsGrannyCurves.#getArray(source, \"animations\", \"Animations\");\r\n }\r\n\r\n static getTrackGroups(animation)\r\n {\r\n return CjsGrannyCurves.#getArray(animation, \"trackGroups\", \"TrackGroups\");\r\n }\r\n\r\n static getAnimationDuration(animation)\r\n {\r\n return Number(animation.duration ?? animation.Duration) || 0;\r\n }\r\n\r\n static getAnimationTimeStep(animation)\r\n {\r\n return Number(animation.timeStep ?? animation.TimeStep) || 0;\r\n }\r\n\r\n static findTransformTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"transformTracks\", \"TransformTracks\");\r\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\r\n return track ? CjsGrannyCurves.#normalizeTransformTrack(track) : null;\r\n }\r\n\r\n static findVectorTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"vectorTracks\", \"VectorTracks\");\r\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\r\n return track ? CjsGrannyCurves.#normalizeVectorTrack(track) : null;\r\n }\r\n\r\n static findTextTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const textTracks = CjsGrannyCurves.#getArray(trackGroup, \"textTracks\", \"TextTracks\");\r\n return textTracks.find(track => CjsGrannyCurves.#getName(track) === name) ?? null;\r\n }\r\n\r\n static getTextTrackEntries(track)\r\n {\r\n const entries = CjsGrannyCurves.#getArray(track, \"entries\", \"Entries\");\r\n const out = [];\r\n for (const entry of entries)\r\n {\r\n const time = CjsGrannyCurves.#getEntryTime(entry);\r\n if (Number.isFinite(time))\r\n {\r\n out.push({ time, text: String(entry.text ?? entry.Text ?? \"\") });\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n static decodeGrannyCurve(curve, dimension)\r\n {\r\n if (!curve || curve.error || curve.Error)\r\n {\r\n return null;\r\n }\r\n const normalized = CjsGrannyCurves.#normalizeCurve(curve);\r\n const decodedDirect = CjsGrannyCurves.#getDecodedCurve(normalized, dimension);\r\n if (decodedDirect)\r\n {\r\n return decodedDirect;\r\n }\r\n if (typeof normalized.format !== \"number\" || typeof normalized.degree !== \"number\")\r\n {\r\n return null;\r\n }\r\n try\r\n {\r\n const decoded = CjsGrannyCurves.decodeCurve(normalized, dimension);\r\n return {\r\n format: normalized.format,\r\n knots: decoded.knots,\r\n controls: decoded.controls,\r\n degree: decoded.degree,\r\n dimension: decoded.dimension,\r\n keyframed: normalized.format === 0\r\n };\r\n }\r\n catch\r\n {\r\n return null;\r\n }\r\n }\r\n\r\n /** Decodes an already-materialized Carbon animation curve into the shared sampler shape. */\r\n static decodeAnimationCurve(curve, dimension)\r\n {\r\n if (!curve)\r\n {\r\n return null;\r\n }\r\n\r\n const valueDimension = Number(curve.valueDimension ?? curve.ValueDimension);\r\n const knotCount = Number(curve.knotCount ?? curve.KnotCount);\r\n if (valueDimension !== dimension || !Number.isSafeInteger(knotCount) || knotCount <= 0)\r\n {\r\n return null;\r\n }\r\n\r\n try\r\n {\r\n const knots = decodeElements(\r\n curve.knots ?? curve.Knots,\r\n curve.knotType ?? curve.KnotType,\r\n knotCount\r\n );\r\n const controls = decodeElements(\r\n curve.values ?? curve.Values,\r\n curve.valueType ?? curve.ValueType,\r\n knotCount * valueDimension\r\n );\r\n const interpolation = curve.interpolation ?? curve.Interpolation;\r\n\r\n return {\r\n knots,\r\n controls,\r\n degree: interpolation === \"Step\" || interpolation === 0 ? 0 : 1,\r\n dimension: valueDimension,\r\n keyframed: false\r\n };\r\n }\r\n catch\r\n {\r\n return null;\r\n }\r\n }\r\n\r\n static sampleGrannyCurve(out, curve, time, cycle, duration)\r\n {\r\n CjsGrannyCurves.sampleDecodedCurve(out, curve, time, cycle, duration, {\r\n keyframed: curve.keyframed\r\n });\r\n return out;\r\n }\r\n\r\n static #asRecord(value)\r\n {\r\n return value !== null && typeof value === \"object\" ? value : null;\r\n }\r\n\r\n static #asTrackSource(value)\r\n {\r\n const record = CjsGrannyCurves.#asRecord(value);\r\n return CjsGrannyCurves.#hasArrayValue(record, \"animations\", \"Animations\") ? record : null;\r\n }\r\n\r\n static #asTrackGroup(value)\r\n {\r\n return CjsGrannyCurves.#asRecord(value);\r\n }\r\n\r\n static #findTrackSource(value, depth)\r\n {\r\n const direct = CjsGrannyCurves.#asTrackSource(value);\r\n if (direct)\r\n {\r\n return direct;\r\n }\r\n const record = CjsGrannyCurves.#asRecord(value);\r\n if (!record || depth > 8)\r\n {\r\n return null;\r\n }\r\n for (const key of [\"json\", \"Json\", \"data\", \"Data\", \"value\", \"Value\", \"source\", \"Source\", \"fileInfo\", \"FileInfo\"])\r\n {\r\n const nested = CjsGrannyCurves.#findTrackSource(record[key], depth + 1);\r\n if (nested)\r\n {\r\n return nested;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static #getArray(value, lowerKey, upperKey)\r\n {\r\n const lower = value[lowerKey];\r\n if (Array.isArray(lower))\r\n {\r\n return lower;\r\n }\r\n const upper = value[upperKey];\r\n return Array.isArray(upper) ? upper : [];\r\n }\r\n\r\n static #hasArrayValue(value, lowerKey, upperKey)\r\n {\r\n return Array.isArray(value?.[lowerKey]) || Array.isArray(value?.[upperKey]);\r\n }\r\n\r\n static #getName(value)\r\n {\r\n return value.name ?? value.Name;\r\n }\r\n\r\n static #getEntryTime(entry)\r\n {\r\n const value = entry.timeStamp ?? entry.TimeStamp ?? entry.timestamp ?? entry.time;\r\n return typeof value === \"number\" ? value : Number.NaN;\r\n }\r\n\r\n static #normalizeTransformTrack(track)\r\n {\r\n return {\r\n ...track,\r\n name: CjsGrannyCurves.#getName(track),\r\n orientation: track.orientation ?? track.Orientation,\r\n position: track.position ?? track.Position,\r\n scaleShear: track.scaleShear ?? track.ScaleShear\r\n };\r\n }\r\n\r\n static #normalizeVectorTrack(track)\r\n {\r\n return {\r\n ...track,\r\n name: CjsGrannyCurves.#getName(track),\r\n valueCurve: track.valueCurve ?? track.ValueCurve\r\n };\r\n }\r\n\r\n static #normalizeCurve(curve)\r\n {\r\n const normalized = { ...curve };\r\n for (const [key, value] of Object.entries(curve))\r\n {\r\n const lowerKey = CjsGrannyCurves.#lowerFirst(key);\r\n if (!(lowerKey in normalized))\r\n {\r\n normalized[lowerKey] = value;\r\n }\r\n }\r\n normalized.format = curve.format ?? curve.Format;\r\n normalized.degree = curve.degree ?? curve.Degree;\r\n normalized.knots = curve.knots ?? curve.Knots;\r\n normalized.controls = curve.controls ?? curve.Controls;\r\n normalized.dimension = curve.dimension ?? curve.Dimension;\r\n normalized.error = curve.error ?? curve.Error;\r\n return normalized;\r\n }\r\n\r\n static #getDecodedCurve(curve, dimension)\r\n {\r\n const knots = curve.knots;\r\n const controls = curve.controls;\r\n const curveDimension = Number(curve.dimension) || dimension;\r\n if (!Array.isArray(knots) || !Array.isArray(controls) || curveDimension !== dimension || controls.length % curveDimension !== 0)\r\n {\r\n return null;\r\n }\r\n return {\r\n format: curve.format,\r\n knots,\r\n controls,\r\n degree: Number(curve.degree) || 0,\r\n dimension: curveDimension,\r\n keyframed: curve.format === 0\r\n };\r\n }\r\n\r\n static #lowerFirst(value)\r\n {\r\n return value ? value[0].toLowerCase() + value.slice(1) : value;\r\n }\r\n\r\n static #copyControl(out, curve, index)\r\n {\r\n const offset = index * curve.dimension;\r\n for (let i = 0; i < curve.dimension; i++)\r\n {\r\n out[i] = curve.controls[offset + i];\r\n }\r\n return out;\r\n }\r\n\r\n static #findKnotIndex(knots, time)\r\n {\r\n let low = 0;\r\n let high = knots.length - 1;\r\n while (low < high)\r\n {\r\n const mid = low + high >> 1;\r\n if (knots[mid] > time)\r\n {\r\n high = mid;\r\n }\r\n else\r\n {\r\n low = mid + 1;\r\n }\r\n }\r\n return low;\r\n }\r\n\r\n static #sampleKeyframedCurve(count, time, duration)\r\n {\r\n const frame = duration > 0 ? Math.trunc(count * time / duration) : 0;\r\n return Math.max(0, Math.min(count - 1, frame));\r\n }\r\n\r\n static #sampleLinearCurve(out, curve, time, cycle, duration, knot)\r\n {\r\n const knots = curve.knots;\r\n const count = knots.length;\r\n const dim = curve.dimension;\r\n const knot0 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\r\n const start = knots[knot0];\r\n let end = knots[knot];\r\n let localTime = time;\r\n if (cycle && end < start)\r\n {\r\n end += duration;\r\n }\r\n if (cycle && localTime < start)\r\n {\r\n localTime += duration;\r\n }\r\n const t = end !== start ? (localTime - start) / (end - start) : 0;\r\n const p0 = knot0 * dim;\r\n const p1 = knot * dim;\r\n for (let i = 0; i < dim; i++)\r\n {\r\n out[i] = curve.controls[p0 + i] * (1 - t) + curve.controls[p1 + i] * t;\r\n }\r\n return out;\r\n }\r\n\r\n static #sampleQuadraticCurve(out, curve, time, cycle, duration, knot)\r\n {\r\n const knots = curve.knots;\r\n const count = knots.length;\r\n const dim = curve.dimension;\r\n const k2 = cycle ? (knot + count - 2) % count : knot === 0 ? 0 : Math.max(0, knot - 2);\r\n const k1 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\r\n const ti2 = knots[k2];\r\n const ti1 = knots[k1];\r\n let ti = knots[knot];\r\n let tiNext = knots[(knot + 1) % count];\r\n let localTime = time;\r\n if (ti2 > ti)\r\n {\r\n ti += duration;\r\n tiNext += duration;\r\n localTime += duration;\r\n }\r\n if (ti1 > ti)\r\n {\r\n ti += duration;\r\n tiNext += duration;\r\n localTime += duration;\r\n }\r\n if (tiNext < ti)\r\n {\r\n tiNext += duration;\r\n }\r\n const d0 = ti - ti1;\r\n const d1a = ti - ti2;\r\n const d1b = tiNext - ti1;\r\n const l0 = d0 !== 0 ? (localTime - ti1) / d0 : 0;\r\n const l1a = d1a !== 0 ? (localTime - ti2) / d1a : 0;\r\n const l1b = d1b !== 0 ? (localTime - ti1) / d1b : 0;\r\n let c2 = l1a + l0 - l0 * l1a;\r\n const ci = l0 * l1b;\r\n const c1 = c2 - ci;\r\n c2 = 1 - c2;\r\n const p0 = k2 * dim;\r\n const p1 = k1 * dim;\r\n const p2 = knot * dim;\r\n for (let i = 0; i < dim; i++)\r\n {\r\n out[i] = c2 * curve.controls[p0 + i] + c1 * curve.controls[p1 + i] + ci * curve.controls[p2 + i];\r\n }\r\n return out;\r\n }\r\n}\r\n\r\nconst ANIMATION_ELEMENT_TYPES = Object.freeze([\r\n \"Float32\",\r\n \"Float16\",\r\n \"UInt16Norm\",\r\n \"UInt16\",\r\n \"Int16Norm\",\r\n \"Int16\",\r\n \"UInt8Norm\",\r\n \"UInt8\",\r\n \"Int8Norm\",\r\n \"Int8\"\r\n]);\r\n\r\nfunction decodeElements(value, typeValue, count)\r\n{\r\n const type = typeof typeValue === \"number\" ? ANIMATION_ELEMENT_TYPES[typeValue] : typeValue;\r\n const size = elementTypeSize(type);\r\n\r\n if (ArrayBuffer.isView(value) && !(value instanceof Uint8Array) && value.length === count)\r\n {\r\n return Array.from(value, Number);\r\n }\r\n if (Array.isArray(value) && size > 1 && value.length === count)\r\n {\r\n return value.map(Number);\r\n }\r\n\r\n const bytes = asByteView(value);\r\n if (!bytes || bytes.byteLength < count * size)\r\n {\r\n throw new TypeError(\"Animation curve data is incomplete\");\r\n }\r\n\r\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\r\n return Array.from({ length: count }, (_, index) => readElement(view, index * size, type));\r\n}\r\n\r\nfunction asByteView(value)\r\n{\r\n if (value instanceof Uint8Array)\r\n {\r\n return value;\r\n }\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\r\n }\r\n if (value instanceof ArrayBuffer)\r\n {\r\n return new Uint8Array(value);\r\n }\r\n return Array.isArray(value) ? Uint8Array.from(value) : null;\r\n}\r\n\r\nfunction elementTypeSize(type)\r\n{\r\n switch (type)\r\n {\r\n case \"Float32\":\r\n return 4;\r\n case \"Float16\":\r\n case \"UInt16Norm\":\r\n case \"UInt16\":\r\n case \"Int16Norm\":\r\n case \"Int16\":\r\n return 2;\r\n case \"UInt8Norm\":\r\n case \"UInt8\":\r\n case \"Int8Norm\":\r\n case \"Int8\":\r\n return 1;\r\n default:\r\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\r\n }\r\n}\r\n\r\nfunction readElement(view, offset, type)\r\n{\r\n switch (type)\r\n {\r\n case \"Float32\":\r\n return view.getFloat32(offset, true);\r\n case \"Float16\":\r\n return num.fromHalfFloat(view.getUint16(offset, true));\r\n case \"UInt16Norm\":\r\n return view.getUint16(offset, true) / 65535;\r\n case \"UInt16\":\r\n return view.getUint16(offset, true);\r\n case \"Int16Norm\":\r\n return Math.max(view.getInt16(offset, true) / 32767, -1);\r\n case \"Int16\":\r\n return view.getInt16(offset, true);\r\n case \"UInt8Norm\":\r\n return view.getUint8(offset) / 255;\r\n case \"UInt8\":\r\n return view.getUint8(offset);\r\n case \"Int8Norm\":\r\n return Math.max(view.getInt8(offset) / 127, -1);\r\n case \"Int8\":\r\n return view.getInt8(offset);\r\n default:\r\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\r\n }\r\n}\r\n\r\nfunction exactDiv(numerator, divisor, what)\r\n{\r\n const value = numerator / divisor;\r\n if (!Number.isInteger(value))\r\n {\r\n throw new Error(`gr2reader: curve ${what}: ${numerator} is not divisible by ${divisor}`);\r\n }\r\n return value;\r\n}\r\nfunction knotScaleFromTrunc(oneOverKnotScaleTrunc)\r\n{\r\n const buffer = new Uint32Array([oneOverKnotScaleTrunc << 16]);\r\n return new Float32Array(buffer.buffer)[0];\r\n}\r\nfunction knotsFromControls(knotsControls, count, scale)\r\n{\r\n const out = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n out[i] = fr(knotsControls[i] / scale);\r\n }\r\n return out;\r\n}\r\nfunction knotsFromControlsTrunc(knotsControls, count, oneOverKnotScaleTrunc)\r\n{\r\n return knotsFromControls(knotsControls, count, knotScaleFromTrunc(oneOverKnotScaleTrunc));\r\n}\r\nfunction identityControls(dimension)\r\n{\r\n switch (dimension)\r\n {\r\n case 3:\r\n return [0, 0, 0];\r\n case 4:\r\n return [0, 0, 0, 1];\r\n case 9:\r\n return [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n default:\r\n throw new Error(`gr2reader: invalid curve dimension ${dimension}`);\r\n }\r\n}\r\nfunction decodeDaKeyframes32f(c, dimension)\r\n{\r\n const dim = c.dimension || dimension,\r\n controls = c.controls || [],\r\n count = exactDiv(controls.length, dim, \"DaKeyframes32f controls/dimension\"),\r\n knots = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n knots[i] = i;\r\n }\r\n return {\r\n knots,\r\n controls: controls.map(fr),\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaK32fC32f(c, dimension)\r\n{\r\n const knots = (c.knots || []).map(fr),\r\n controls = (c.controls || []).map(fr),\r\n dim = knots.length ? exactDiv(controls.length, knots.length, \"DaK32fC32f controls/knots\") : dimension;\r\n return {\r\n knots,\r\n controls,\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaIdentity(c, dimension)\r\n{\r\n const dim = c.dimension || dimension;\r\n return {\r\n knots: [0],\r\n controls: identityControls(dim),\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaConstant32f(c, dimension)\r\n{\r\n const controls = (c.controls || []).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: controls.length || dimension\r\n };\r\n}\r\nfunction decodeD3Constant32f(c)\r\n{\r\n const controls = (c.controls || [0, 0, 0]).slice(0, 3).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD4Constant32f(c)\r\n{\r\n const controls = (c.controls || [0, 0, 0, 1]).slice(0, 4).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: 4\r\n };\r\n}\r\nfunction decodeDaK(c)\r\n{\r\n const controlScaleOffsets = c.controlScaleOffsets || [],\r\n knotsControls = c.knotsControls || [],\r\n dim = exactDiv(controlScaleOffsets.length, 2, \"DaK controlScaleOffsets/2\"),\r\n count = exactDiv(knotsControls.length, dim + 1, \"DaK knotsControls/(dim+1)\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controls = new Array(count * dim);\r\n for (let i = 0; i < count; i++)\r\n {\r\n for (let x = 0; x < dim; x++)\r\n {\r\n controls[i * dim + x] = fr(knotsControls[count + i * dim + x] * controlScaleOffsets[x] + controlScaleOffsets[dim + x]);\r\n }\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: dim\r\n };\r\n}\r\nfunction quatFromControl16(out, a, b, c, scales, offsets)\r\n{\r\n const swizzle1 = (b & 0x8000) >> 14 | c >> 15,\r\n swizzle2 = swizzle1 + 1 & 3,\r\n swizzle3 = swizzle2 + 1 & 3,\r\n swizzle4 = swizzle3 + 1 & 3;\r\n const dataA = (a & 0x7fff) * scales[swizzle2] + offsets[swizzle2],\r\n dataB = (b & 0x7fff) * scales[swizzle3] + offsets[swizzle3],\r\n dataC = (c & 0x7fff) * scales[swizzle4] + offsets[swizzle4];\r\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\r\n if ((a & 0x8000) !== 0)\r\n {\r\n dataD = -dataD;\r\n }\r\n out[swizzle2] = fr(dataA);\r\n out[swizzle3] = fr(dataB);\r\n out[swizzle4] = fr(dataC);\r\n out[swizzle1] = fr(dataD);\r\n return out;\r\n}\r\nfunction decodeD4n(c, decoder, scaleTableMultiplier)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D4n knotsControls/4\"),\r\n knots = knotsFromControls(knotsControls, count, Number(c.oneOverKnotScale) || 0);\r\n const selector = (c.scaleOffsetTableEntries ?? 0) >>> 0,\r\n scales = new Float32Array([D4N_SCALE_TABLE[selector >> 0 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 4 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 8 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 12 & 0x0f] * scaleTableMultiplier]),\r\n offsets = new Float32Array([D4N_OFFSET_TABLE[selector >> 0 & 0x0f], D4N_OFFSET_TABLE[selector >> 4 & 0x0f], D4N_OFFSET_TABLE[selector >> 8 & 0x0f], D4N_OFFSET_TABLE[selector >> 12 & 0x0f]]);\r\n const controls = new Array(count * 4),\r\n quat = [0, 0, 0, 1];\r\n for (let i = 0; i < count; i++)\r\n {\r\n decoder(quat, knotsControls[count + i * 3], knotsControls[count + i * 3 + 1], knotsControls[count + i * 3 + 2], scales, offsets);\r\n controls[i * 4] = quat[0];\r\n controls[i * 4 + 1] = quat[1];\r\n controls[i * 4 + 2] = quat[2];\r\n controls[i * 4 + 3] = quat[3];\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 4\r\n };\r\n}\r\nfunction decodeD4nK16uC15u(c)\r\n{\r\n return decodeD4n(c, quatFromControl16, D4N_SCALE_TABLE_MULTIPLIER_16);\r\n}\r\nfunction quatFromControl8(out, a, b, c, scales, offsets)\r\n{\r\n const swizzle1 = (b & 0x80) >> 6 | (c & 0x80) >> 7,\r\n swizzle2 = swizzle1 + 1 & 3,\r\n swizzle3 = swizzle2 + 1 & 3,\r\n swizzle4 = swizzle3 + 1 & 3;\r\n const dataA = (a & 0x7f) * scales[swizzle2] + offsets[swizzle2],\r\n dataB = (b & 0x7f) * scales[swizzle3] + offsets[swizzle3],\r\n dataC = (c & 0x7f) * scales[swizzle4] + offsets[swizzle4];\r\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\r\n if ((a & 0x80) !== 0)\r\n {\r\n dataD = -dataD;\r\n }\r\n out[swizzle2] = fr(dataA);\r\n out[swizzle3] = fr(dataB);\r\n out[swizzle4] = fr(dataC);\r\n out[swizzle1] = fr(dataD);\r\n return out;\r\n}\r\nfunction decodeD4nK8uC7u(c)\r\n{\r\n return decodeD4n(c, quatFromControl8, D4N_SCALE_TABLE_MULTIPLIER_8);\r\n}\r\nfunction decodeD3K(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D3K knotsControls/4\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controlScales = c.controlScales || [],\r\n controlOffsets = c.controlOffsets || [],\r\n controls = new Array(count * 3);\r\n for (let i = 0; i < count; i++)\r\n {\r\n for (let x = 0; x < 3; x++)\r\n {\r\n controls[i * 3 + x] = fr(knotsControls[count + i * 3 + x] * controlScales[x] + controlOffsets[x]);\r\n }\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD9I1(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D9I1 knotsControls/2\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\r\n const scale = Array.isArray(c.controlScales) ? c.controlScales[0] ?? 0 : c.controlScale || 0,\r\n offset = Array.isArray(c.controlOffsets) ? c.controlOffsets[0] ?? 0 : c.controlOffset || 0,\r\n controls = new Array(count * 9).fill(0);\r\n for (let i = 0; i < count; i++)\r\n {\r\n const s = fr(knotsControls[count + i] * scale + offset);\r\n controls[i * 9] = s;\r\n controls[i * 9 + 4] = s;\r\n controls[i * 9 + 8] = s;\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 9\r\n };\r\n}\r\nfunction decodeD9I3(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D9I3 knotsControls/4\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controlScales = c.controlScales || [],\r\n controlOffsets = c.controlOffsets || [],\r\n controls = new Array(count * 9).fill(0);\r\n for (let i = 0; i < count; i++)\r\n {\r\n controls[i * 9] = fr(knotsControls[count + i * 3] * controlScales[0] + controlOffsets[0]);\r\n controls[i * 9 + 4] = fr(knotsControls[count + i * 3 + 1] * controlScales[1] + controlOffsets[1]);\r\n controls[i * 9 + 8] = fr(knotsControls[count + i * 3 + 2] * controlScales[2] + controlOffsets[2]);\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 9\r\n };\r\n}\r\nfunction d3I1Controls(knotsControls, count, scales, offsets)\r\n{\r\n const controls = new Array(count * 3);\r\n for (let i = 0; i < count; i++)\r\n {\r\n const value = knotsControls[count + i];\r\n controls[i * 3] = fr(value * scales[0] + offsets[0]);\r\n controls[i * 3 + 1] = fr(value * scales[1] + offsets[1]);\r\n controls[i * 3 + 2] = fr(value * scales[2] + offsets[2]);\r\n }\r\n return controls;\r\n}\r\nfunction decodeD3I1K32fC32f(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D3I1K32f knotsControls/2\"),\r\n knots = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n knots[i] = fr(knotsControls[i]);\r\n }\r\n return {\r\n knots,\r\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD3I1u(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D3I1 knotsControls/2\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\r\n return {\r\n knots,\r\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeDaK16uC16u(c)\r\n{\r\n return decodeDaK(c);\r\n}\r\nfunction decodeDaK8uC8u(c)\r\n{\r\n return decodeDaK(c);\r\n}\r\nfunction decodeD3K16uC16u(c)\r\n{\r\n return decodeD3K(c);\r\n}\r\nfunction decodeD3K8uC8u(c)\r\n{\r\n return decodeD3K(c);\r\n}\r\nfunction decodeD9I1K16uC16u(c)\r\n{\r\n return decodeD9I1(c);\r\n}\r\nfunction decodeD9I1K8uC8u(c)\r\n{\r\n return decodeD9I1(c);\r\n}\r\nfunction decodeD9I3K16uC16u(c)\r\n{\r\n return decodeD9I3(c);\r\n}\r\nfunction decodeD9I3K8uC8u(c)\r\n{\r\n return decodeD9I3(c);\r\n}\r\nfunction decodeD3I1K16uC16u(c)\r\n{\r\n return decodeD3I1u(c);\r\n}\r\nfunction decodeD3I1K8uC8u(c)\r\n{\r\n return decodeD3I1u(c);\r\n}\r\n"],"names":["fr","Math","fround","CURVE_DECODERS","Object","freeze","format","decode","decodeDaKeyframes32f","decodeDaK32fC32f","decodeDaIdentity","decodeDaConstant32f","decodeD3Constant32f","decodeD4Constant32f","decodeDaK16uC16u","decodeDaK8uC8u","decodeD4nK16uC15u","decodeD4nK8uC7u","decodeD3K16uC16u","decodeD3K8uC8u","decodeD9I1K16uC16u","decodeD9I3K16uC16u","decodeD9I1K8uC8u","decodeD9I3K8uC8u","decodeD3I1K32fC32f","decodeD3I1K16uC16u","decodeD3I1K8uC8u","D4N_SCALE_TABLE","Float32Array","D4N_OFFSET_TABLE","D4N_SCALE_TABLE_MULTIPLIER_16","D4N_SCALE_TABLE_MULTIPLIER_8","CjsGrannyCurves","Map","decodeCurve","curveJson","dimension","Error","decoder","knots","controls","dim","degree","Number","sampleDecodedCurve","out","curve","time","cycle","duration","options","count","length","controlCount","keyframed","knot","index","max","min","registerResource","path","source","set","unregisterResource","delete","clearResources","clear","resolveResource","get","getTrackSource","value","getAnimations","getTrackGroups","animation","getAnimationDuration","Duration","getAnimationTimeStep","timeStep","TimeStep","findTransformTrack","group","name","trackGroup","tracks","track","find","item","findVectorTrack","findTextTrack","textTracks","getTextTrackEntries","entries","entry","isFinite","push","text","String","Text","decodeGrannyCurve","error","normalized","decodedDirect","decoded","decodeAnimationCurve","valueDimension","ValueDimension","knotCount","KnotCount","isSafeInteger","decodeElements","Knots","knotType","KnotType","values","Values","valueType","ValueType","interpolation","Interpolation","sampleGrannyCurve","#asRecord","#asTrackSource","record","#asTrackGroup","#findTrackSource","depth","direct","key","nested","#getArray","lowerKey","upperKey","lower","Array","isArray","upper","#hasArrayValue","#getName","Name","#getEntryTime","timeStamp","TimeStamp","timestamp","NaN","#normalizeTransformTrack","orientation","Orientation","position","Position","scaleShear","ScaleShear","#normalizeVectorTrack","valueCurve","ValueCurve","#normalizeCurve","Format","Degree","Controls","Dimension","#getDecodedCurve","curveDimension","#lowerFirst","toLowerCase","slice","#copyControl","offset","i","#findKnotIndex","low","high","mid","#sampleKeyframedCurve","frame","trunc","#sampleLinearCurve","knot0","start","end","localTime","t","p0","p1","#sampleQuadraticCurve","k2","k1","ti2","ti1","ti","tiNext","d0","d1a","d1b","l0","l1a","l1b","c2","ci","c1","p2","ANIMATION_ELEMENT_TYPES","typeValue","type","size","elementTypeSize","ArrayBuffer","isView","Uint8Array","from","map","bytes","asByteView","byteLength","TypeError","view","DataView","buffer","byteOffset","_","readElement","getFloat32","num","fromHalfFloat","getUint16","getInt16","getUint8","getInt8","exactDiv","numerator","divisor","what","isInteger","knotScaleFromTrunc","oneOverKnotScaleTrunc","Uint32Array","knotsFromControls","knotsControls","scale","knotsFromControlsTrunc","identityControls","c","decodeDaK","controlScaleOffsets","x","quatFromControl16","a","b","scales","offsets","swizzle1","swizzle2","swizzle3","swizzle4","dataA","dataB","dataC","dataD","sqrt","decodeD4n","scaleTableMultiplier","oneOverKnotScale","selector","scaleOffsetTableEntries","quat","quatFromControl8","decodeD3K","controlScales","controlOffsets","decodeD9I1","controlScale","controlOffset","fill","s","decodeD9I3","d3I1Controls","decodeD3I1u"],"mappings":"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"}
1
+ {"version":3,"file":"CjsGrannyCurves.js","sources":["../../../src/curves/CjsGrannyCurves.js"],"sourcesContent":["/**\r\n * Granny animation-curve decoding authored by cppctamber for ccpwgl2.\r\n *\r\n * This local copy decodes and samples already-materialized curve data without\r\n * coupling runtime-trinity to a GR2 container reader. The former format-gr2\r\n * licensing boundary is resolved: its BitKnit2 decoder was replaced by a\r\n * clean-room implementation, the package is MIT, and the canonical reader now\r\n * lives at @carbonenginejs/runtime-resource/formats/gr2.\r\n */\r\nimport { num } from \"@carbonenginejs/runtime-utils/num\";\r\n\r\nconst fr = Math.fround;\r\nconst CURVE_DECODERS = Object.freeze([Object.freeze({\r\n format: 0,\r\n decode: decodeDaKeyframes32f\r\n}), Object.freeze({\r\n format: 1,\r\n decode: decodeDaK32fC32f\r\n}), Object.freeze({\r\n format: 2,\r\n decode: decodeDaIdentity\r\n}), Object.freeze({\r\n format: 3,\r\n decode: decodeDaConstant32f\r\n}), Object.freeze({\r\n format: 4,\r\n decode: decodeD3Constant32f\r\n}), Object.freeze({\r\n format: 5,\r\n decode: decodeD4Constant32f\r\n}), Object.freeze({\r\n format: 6,\r\n decode: decodeDaK16uC16u\r\n}), Object.freeze({\r\n format: 7,\r\n decode: decodeDaK8uC8u\r\n}), Object.freeze({\r\n format: 8,\r\n decode: decodeD4nK16uC15u\r\n}), Object.freeze({\r\n format: 9,\r\n decode: decodeD4nK8uC7u\r\n}), Object.freeze({\r\n format: 10,\r\n decode: decodeD3K16uC16u\r\n}), Object.freeze({\r\n format: 11,\r\n decode: decodeD3K8uC8u\r\n}), Object.freeze({\r\n format: 12,\r\n decode: decodeD9I1K16uC16u\r\n}), Object.freeze({\r\n format: 13,\r\n decode: decodeD9I3K16uC16u\r\n}), Object.freeze({\r\n format: 14,\r\n decode: decodeD9I1K8uC8u\r\n}), Object.freeze({\r\n format: 15,\r\n decode: decodeD9I3K8uC8u\r\n}), Object.freeze({\r\n format: 16,\r\n decode: decodeD3I1K32fC32f\r\n}), Object.freeze({\r\n format: 17,\r\n decode: decodeD3I1K16uC16u\r\n}), Object.freeze({\r\n format: 18,\r\n decode: decodeD3I1K8uC8u\r\n})]);\r\nconst D4N_SCALE_TABLE = new Float32Array([1.4142135, 0.70710677, 0.35355338, 0.35355338, 0.35355338, 0.17677669, 0.17677669, 0.17677669, -1.4142135, -0.70710677, -0.35355338, -0.35355338, -0.35355338, -0.17677669, -0.17677669, -0.17677669]);\r\nconst D4N_OFFSET_TABLE = new Float32Array([-0.70710677, -0.35355338, -0.53033006, -0.17677669, 0.17677669, -0.17677669, -0.088388346, 0.0, 0.70710677, 0.35355338, 0.53033006, 0.17677669, -0.17677669, 0.17677669, 0.088388346, -0.0]);\r\nconst D4N_SCALE_TABLE_MULTIPLIER_16 = 0.000030518509;\r\nconst D4N_SCALE_TABLE_MULTIPLIER_8 = 0.0078740157;\r\n\r\n/**\r\n * Decodes Granny's 19 compressed animation-curve formats into explicit knots and\r\n * controls, and samples them at a time, without depending on a GR2 container\r\n * reader.\r\n */\r\nexport class CjsGrannyCurves\r\n{\r\n static #resources = new Map();\r\n\r\n /**\r\n * Decode a GR2 JSON curve object into explicit knots and controls.\r\n */\r\n static decodeCurve(curveJson, dimension)\r\n {\r\n if (!curveJson || typeof curveJson.format !== \"number\")\r\n {\r\n throw new Error(\"gr2reader: decodeCurve requires a curve object with a numeric format\");\r\n }\r\n const decoder = CURVE_DECODERS[curveJson.format];\r\n if (!decoder)\r\n {\r\n throw new Error(`gr2reader: unsupported granny curve format ${curveJson.format}`);\r\n }\r\n const {\r\n knots,\r\n controls,\r\n dimension: dim\r\n } = decoder.decode(curveJson, dimension);\r\n if (dimension && dim && dim !== dimension)\r\n {\r\n throw new Error(`gr2reader: curve format ${curveJson.format} decoded dimension ${dim} does not match track dimension ${dimension}`);\r\n }\r\n return {\r\n knots,\r\n controls,\r\n degree: Number(curveJson.degree) || 0,\r\n dimension: dim || dimension\r\n };\r\n }\r\n\r\n /**\r\n * Sample a decoded Granny curve into caller-provided output.\r\n */\r\n static sampleDecodedCurve(out, curve, time, cycle = false, duration = 0, options = {})\r\n {\r\n if (!curve || !curve.knots || !curve.controls || !curve.dimension)\r\n {\r\n return out;\r\n }\r\n const knots = curve.knots,\r\n count = knots.length,\r\n dim = curve.dimension,\r\n controlCount = curve.controls.length / dim;\r\n if (!count || !controlCount)\r\n {\r\n return out;\r\n }\r\n if (options.keyframed)\r\n {\r\n return CjsGrannyCurves.#copyControl(out, curve, CjsGrannyCurves.#sampleKeyframedCurve(count, time, duration));\r\n }\r\n const knot = CjsGrannyCurves.#findKnotIndex(knots, time);\r\n if (curve.degree <= 0 || count === 1 || controlCount === 1)\r\n {\r\n const index = time >= knots[count - 1]\r\n ? count - 1\r\n : Math.max(0, knot - 1);\r\n return CjsGrannyCurves.#copyControl(out, curve, Math.min(index, controlCount - 1));\r\n }\r\n if (curve.degree === 1)\r\n {\r\n return CjsGrannyCurves.#sampleLinearCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\r\n }\r\n return CjsGrannyCurves.#sampleQuadraticCurve(out, curve, time, cycle, duration || knots[count - 1], knot);\r\n }\r\n\r\n /**\r\n * Registers a decoded Granny source under a resource path so tracks can\r\n * resolve it later; the caller retains ownership of the source object.\r\n */\r\n static registerResource(path, source)\r\n {\r\n if (path)\r\n {\r\n CjsGrannyCurves.#resources.set(path, source);\r\n }\r\n }\r\n\r\n /** Drops the registration for a resource path. */\r\n static unregisterResource(path)\r\n {\r\n CjsGrannyCurves.#resources.delete(path);\r\n }\r\n\r\n /** Drops every registered Granny source. */\r\n static clearResources()\r\n {\r\n CjsGrannyCurves.#resources.clear();\r\n }\r\n\r\n /** Gets the source registered for a resource path, or null. */\r\n static resolveResource(path)\r\n {\r\n return CjsGrannyCurves.#resources.get(path) ?? null;\r\n }\r\n\r\n /**\r\n * Unwraps an arbitrary loader result down to the object that actually carries\r\n * an `animations` array, searching nested json/data/value/source/fileInfo keys\r\n * up to eight levels deep.\r\n */\r\n static getTrackSource(value)\r\n {\r\n return CjsGrannyCurves.#findTrackSource(value, 0);\r\n }\r\n\r\n /**\r\n * Gets a source's animation list, accepting either the camel-case or\r\n * Pascal-case key and returning an empty array when absent.\r\n */\r\n static getAnimations(source)\r\n {\r\n return CjsGrannyCurves.#getArray(source, \"animations\", \"Animations\");\r\n }\r\n\r\n /**\r\n * Gets an animation's track group list, accepting either the camel-case or\r\n * Pascal-case key and returning an empty array when absent.\r\n */\r\n static getTrackGroups(animation)\r\n {\r\n return CjsGrannyCurves.#getArray(animation, \"trackGroups\", \"TrackGroups\");\r\n }\r\n\r\n /**\r\n * Gets an animation's duration in seconds, or 0 when it is absent or\r\n * non-numeric.\r\n */\r\n static getAnimationDuration(animation)\r\n {\r\n return Number(animation.duration ?? animation.Duration) || 0;\r\n }\r\n\r\n /**\r\n * Gets an animation's authored time step in seconds, or 0 when it is absent or\r\n * non-numeric.\r\n */\r\n static getAnimationTimeStep(animation)\r\n {\r\n return Number(animation.timeStep ?? animation.TimeStep) || 0;\r\n }\r\n\r\n /**\r\n * Finds a named transform track in a track group and returns it with its\r\n * orientation, position and scaleShear curves normalized to camel-case keys.\r\n */\r\n static findTransformTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"transformTracks\", \"TransformTracks\");\r\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\r\n return track ? CjsGrannyCurves.#normalizeTransformTrack(track) : null;\r\n }\r\n\r\n /**\r\n * Finds a named vector track in a track group and returns it with its\r\n * valueCurve normalized to a camel-case key.\r\n */\r\n static findVectorTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const tracks = CjsGrannyCurves.#getArray(trackGroup, \"vectorTracks\", \"VectorTracks\");\r\n const track = tracks.find(item => CjsGrannyCurves.#getName(item) === name);\r\n return track ? CjsGrannyCurves.#normalizeVectorTrack(track) : null;\r\n }\r\n\r\n /** Finds a named text (event) track in a track group, or null. */\r\n static findTextTrack(group, name)\r\n {\r\n const trackGroup = CjsGrannyCurves.#asTrackGroup(group);\r\n if (!trackGroup)\r\n {\r\n return null;\r\n }\r\n const textTracks = CjsGrannyCurves.#getArray(trackGroup, \"textTracks\", \"TextTracks\");\r\n return textTracks.find(track => CjsGrannyCurves.#getName(track) === name) ?? null;\r\n }\r\n\r\n /**\r\n * Flattens a text track into `{ time, text }` records in source order,\r\n * dropping entries whose timestamp is not a finite number.\r\n */\r\n static getTextTrackEntries(track)\r\n {\r\n const entries = CjsGrannyCurves.#getArray(track, \"entries\", \"Entries\");\r\n const out = [];\r\n for (const entry of entries)\r\n {\r\n const time = CjsGrannyCurves.#getEntryTime(entry);\r\n if (Number.isFinite(time))\r\n {\r\n out.push({ time, text: String(entry.text ?? entry.Text ?? \"\") });\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Decodes one Granny curve to the shared sampler shape for the expected\r\n * dimension, first reusing already-explicit knots and controls when present\r\n * and otherwise running the format decoder; returns null instead of throwing\r\n * for an errored, malformed or unsupported curve.\r\n */\r\n static decodeGrannyCurve(curve, dimension)\r\n {\r\n if (!curve || curve.error || curve.Error)\r\n {\r\n return null;\r\n }\r\n const normalized = CjsGrannyCurves.#normalizeCurve(curve);\r\n const decodedDirect = CjsGrannyCurves.#getDecodedCurve(normalized, dimension);\r\n if (decodedDirect)\r\n {\r\n return decodedDirect;\r\n }\r\n if (typeof normalized.format !== \"number\" || typeof normalized.degree !== \"number\")\r\n {\r\n return null;\r\n }\r\n try\r\n {\r\n const decoded = CjsGrannyCurves.decodeCurve(normalized, dimension);\r\n return {\r\n format: normalized.format,\r\n knots: decoded.knots,\r\n controls: decoded.controls,\r\n degree: decoded.degree,\r\n dimension: decoded.dimension,\r\n keyframed: normalized.format === 0\r\n };\r\n }\r\n catch\r\n {\r\n return null;\r\n }\r\n }\r\n\r\n /** Decodes an already-materialized Carbon animation curve into the shared sampler shape. */\r\n static decodeAnimationCurve(curve, dimension)\r\n {\r\n if (!curve)\r\n {\r\n return null;\r\n }\r\n\r\n const valueDimension = Number(curve.valueDimension ?? curve.ValueDimension);\r\n const knotCount = Number(curve.knotCount ?? curve.KnotCount);\r\n if (valueDimension !== dimension || !Number.isSafeInteger(knotCount) || knotCount <= 0)\r\n {\r\n return null;\r\n }\r\n\r\n try\r\n {\r\n const knots = decodeElements(\r\n curve.knots ?? curve.Knots,\r\n curve.knotType ?? curve.KnotType,\r\n knotCount\r\n );\r\n const controls = decodeElements(\r\n curve.values ?? curve.Values,\r\n curve.valueType ?? curve.ValueType,\r\n knotCount * valueDimension\r\n );\r\n const interpolation = curve.interpolation ?? curve.Interpolation;\r\n\r\n return {\r\n knots,\r\n controls,\r\n degree: interpolation === \"Step\" || interpolation === 0 ? 0 : 1,\r\n dimension: valueDimension,\r\n keyframed: false\r\n };\r\n }\r\n catch\r\n {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Samples a decoded curve into the caller-owned `out` array, taking the\r\n * keyframed flag from the curve itself; `out` must hold at least the curve's\r\n * dimension.\r\n */\r\n static sampleGrannyCurve(out, curve, time, cycle, duration)\r\n {\r\n CjsGrannyCurves.sampleDecodedCurve(out, curve, time, cycle, duration, {\r\n keyframed: curve.keyframed\r\n });\r\n return out;\r\n }\r\n\r\n /** Narrows a value to a non-null object, otherwise null. */\r\n static #asRecord(value)\r\n {\r\n return value !== null && typeof value === \"object\" ? value : null;\r\n }\r\n\r\n /**\r\n * Accepts a value as a Granny source only if it carries an animations array\r\n * under either casing.\r\n */\r\n static #asTrackSource(value)\r\n {\r\n const record = CjsGrannyCurves.#asRecord(value);\r\n return CjsGrannyCurves.#hasArrayValue(record, \"animations\", \"Animations\") ? record : null;\r\n }\r\n\r\n /** Narrows a value to a non-null object usable as a track group. */\r\n static #asTrackGroup(value)\r\n {\r\n return CjsGrannyCurves.#asRecord(value);\r\n }\r\n\r\n /**\r\n * Recursively searches the common wrapper keys for the object carrying the\r\n * animations array, stopping past depth 8 to bound cyclic or deeply nested\r\n * loader results.\r\n */\r\n static #findTrackSource(value, depth)\r\n {\r\n const direct = CjsGrannyCurves.#asTrackSource(value);\r\n if (direct)\r\n {\r\n return direct;\r\n }\r\n const record = CjsGrannyCurves.#asRecord(value);\r\n if (!record || depth > 8)\r\n {\r\n return null;\r\n }\r\n for (const key of [\"json\", \"Json\", \"data\", \"Data\", \"value\", \"Value\", \"source\", \"Source\", \"fileInfo\", \"FileInfo\"])\r\n {\r\n const nested = CjsGrannyCurves.#findTrackSource(record[key], depth + 1);\r\n if (nested)\r\n {\r\n return nested;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Reads an array property under either the camel-case or Pascal-case key,\r\n * returning an empty array when neither holds one.\r\n */\r\n static #getArray(value, lowerKey, upperKey)\r\n {\r\n const lower = value[lowerKey];\r\n if (Array.isArray(lower))\r\n {\r\n return lower;\r\n }\r\n const upper = value[upperKey];\r\n return Array.isArray(upper) ? upper : [];\r\n }\r\n\r\n /** Checks whether either the camel-case or Pascal-case key holds an array. */\r\n static #hasArrayValue(value, lowerKey, upperKey)\r\n {\r\n return Array.isArray(value?.[lowerKey]) || Array.isArray(value?.[upperKey]);\r\n }\r\n\r\n /** Reads a name under either the camel-case or Pascal-case key. */\r\n static #getName(value)\r\n {\r\n return value.name ?? value.Name;\r\n }\r\n\r\n /**\r\n * Reads a text-track entry's time from timeStamp, TimeStamp, timestamp or\r\n * time, returning NaN when none is numeric.\r\n */\r\n static #getEntryTime(entry)\r\n {\r\n const value = entry.timeStamp ?? entry.TimeStamp ?? entry.timestamp ?? entry.time;\r\n return typeof value === \"number\" ? value : Number.NaN;\r\n }\r\n\r\n /**\r\n * Copies a transform track with its name and its orientation, position and\r\n * scaleShear curves exposed under camel-case keys.\r\n */\r\n static #normalizeTransformTrack(track)\r\n {\r\n return {\r\n ...track,\r\n name: CjsGrannyCurves.#getName(track),\r\n orientation: track.orientation ?? track.Orientation,\r\n position: track.position ?? track.Position,\r\n scaleShear: track.scaleShear ?? track.ScaleShear\r\n };\r\n }\r\n\r\n /**\r\n * Copies a vector track with its name and valueCurve exposed under camel-case\r\n * keys.\r\n */\r\n static #normalizeVectorTrack(track)\r\n {\r\n return {\r\n ...track,\r\n name: CjsGrannyCurves.#getName(track),\r\n valueCurve: track.valueCurve ?? track.ValueCurve\r\n };\r\n }\r\n\r\n /**\r\n * Copies a curve object with every Pascal-case key also exposed camel-case, so\r\n * the format decoders can read one casing regardless of how the source was\r\n * produced.\r\n */\r\n static #normalizeCurve(curve)\r\n {\r\n const normalized = { ...curve };\r\n for (const [key, value] of Object.entries(curve))\r\n {\r\n const lowerKey = CjsGrannyCurves.#lowerFirst(key);\r\n if (!(lowerKey in normalized))\r\n {\r\n normalized[lowerKey] = value;\r\n }\r\n }\r\n normalized.format = curve.format ?? curve.Format;\r\n normalized.degree = curve.degree ?? curve.Degree;\r\n normalized.knots = curve.knots ?? curve.Knots;\r\n normalized.controls = curve.controls ?? curve.Controls;\r\n normalized.dimension = curve.dimension ?? curve.Dimension;\r\n normalized.error = curve.error ?? curve.Error;\r\n return normalized;\r\n }\r\n\r\n /**\r\n * Reuses a curve that already carries explicit knot and control arrays,\r\n * rejecting it when the dimension does not match the track or the control\r\n * count is not a whole number of samples.\r\n */\r\n static #getDecodedCurve(curve, dimension)\r\n {\r\n const knots = curve.knots;\r\n const controls = curve.controls;\r\n const curveDimension = Number(curve.dimension) || dimension;\r\n if (!Array.isArray(knots) || !Array.isArray(controls) || curveDimension !== dimension || controls.length % curveDimension !== 0)\r\n {\r\n return null;\r\n }\r\n return {\r\n format: curve.format,\r\n knots,\r\n controls,\r\n degree: Number(curve.degree) || 0,\r\n dimension: curveDimension,\r\n keyframed: curve.format === 0\r\n };\r\n }\r\n\r\n /** Lower-cases the first character of a key name. */\r\n static #lowerFirst(value)\r\n {\r\n return value ? value[0].toLowerCase() + value.slice(1) : value;\r\n }\r\n\r\n /** Copies one whole control sample into the caller-owned `out` array. */\r\n static #copyControl(out, curve, index)\r\n {\r\n const offset = index * curve.dimension;\r\n for (let i = 0; i < curve.dimension; i++)\r\n {\r\n out[i] = curve.controls[offset + i];\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Binary-searches the knot array for the index of the first knot strictly\r\n * greater than the time.\r\n */\r\n static #findKnotIndex(knots, time)\r\n {\r\n let low = 0;\r\n let high = knots.length - 1;\r\n while (low < high)\r\n {\r\n const mid = low + high >> 1;\r\n if (knots[mid] > time)\r\n {\r\n high = mid;\r\n }\r\n else\r\n {\r\n low = mid + 1;\r\n }\r\n }\r\n return low;\r\n }\r\n\r\n /**\r\n * Maps a time onto a frame index for a uniformly keyframed curve, clamping to\r\n * the first and last frame; a duration of zero always yields frame 0.\r\n */\r\n static #sampleKeyframedCurve(count, time, duration)\r\n {\r\n const frame = duration > 0 ? Math.trunc(count * time / duration) : 0;\r\n return Math.max(0, Math.min(count - 1, frame));\r\n }\r\n\r\n /**\r\n * Linearly interpolates a degree-1 curve into `out`, wrapping the segment\r\n * around the end of the knot array and shifting the times by one duration when\r\n * cycling.\r\n */\r\n static #sampleLinearCurve(out, curve, time, cycle, duration, knot)\r\n {\r\n const knots = curve.knots;\r\n const count = knots.length;\r\n const dim = curve.dimension;\r\n const knot0 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\r\n const start = knots[knot0];\r\n let end = knots[knot];\r\n let localTime = time;\r\n if (cycle && end < start)\r\n {\r\n end += duration;\r\n }\r\n if (cycle && localTime < start)\r\n {\r\n localTime += duration;\r\n }\r\n const t = end !== start ? (localTime - start) / (end - start) : 0;\r\n const p0 = knot0 * dim;\r\n const p1 = knot * dim;\r\n for (let i = 0; i < dim; i++)\r\n {\r\n out[i] = curve.controls[p0 + i] * (1 - t) + curve.controls[p1 + i] * t;\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Evaluates a degree-2 curve into `out` from the three controls ending at the\r\n * found knot, shifting out-of-order times by one duration so a cycling curve\r\n * stays monotonic.\r\n */\r\n static #sampleQuadraticCurve(out, curve, time, cycle, duration, knot)\r\n {\r\n const knots = curve.knots;\r\n const count = knots.length;\r\n const dim = curve.dimension;\r\n const k2 = cycle ? (knot + count - 2) % count : knot === 0 ? 0 : Math.max(0, knot - 2);\r\n const k1 = cycle ? (knot + count - 1) % count : knot === 0 ? 0 : knot - 1;\r\n const ti2 = knots[k2];\r\n const ti1 = knots[k1];\r\n let ti = knots[knot];\r\n let tiNext = knots[(knot + 1) % count];\r\n let localTime = time;\r\n if (ti2 > ti)\r\n {\r\n ti += duration;\r\n tiNext += duration;\r\n localTime += duration;\r\n }\r\n if (ti1 > ti)\r\n {\r\n ti += duration;\r\n tiNext += duration;\r\n localTime += duration;\r\n }\r\n if (tiNext < ti)\r\n {\r\n tiNext += duration;\r\n }\r\n const d0 = ti - ti1;\r\n const d1a = ti - ti2;\r\n const d1b = tiNext - ti1;\r\n const l0 = d0 !== 0 ? (localTime - ti1) / d0 : 0;\r\n const l1a = d1a !== 0 ? (localTime - ti2) / d1a : 0;\r\n const l1b = d1b !== 0 ? (localTime - ti1) / d1b : 0;\r\n let c2 = l1a + l0 - l0 * l1a;\r\n const ci = l0 * l1b;\r\n const c1 = c2 - ci;\r\n c2 = 1 - c2;\r\n const p0 = k2 * dim;\r\n const p1 = k1 * dim;\r\n const p2 = knot * dim;\r\n for (let i = 0; i < dim; i++)\r\n {\r\n out[i] = c2 * curve.controls[p0 + i] + c1 * curve.controls[p1 + i] + ci * curve.controls[p2 + i];\r\n }\r\n return out;\r\n }\r\n}\r\n\r\nconst ANIMATION_ELEMENT_TYPES = Object.freeze([\r\n \"Float32\",\r\n \"Float16\",\r\n \"UInt16Norm\",\r\n \"UInt16\",\r\n \"Int16Norm\",\r\n \"Int16\",\r\n \"UInt8Norm\",\r\n \"UInt8\",\r\n \"Int8Norm\",\r\n \"Int8\"\r\n]);\r\n\r\nfunction decodeElements(value, typeValue, count)\r\n{\r\n const type = typeof typeValue === \"number\" ? ANIMATION_ELEMENT_TYPES[typeValue] : typeValue;\r\n const size = elementTypeSize(type);\r\n\r\n if (ArrayBuffer.isView(value) && !(value instanceof Uint8Array) && value.length === count)\r\n {\r\n return Array.from(value, Number);\r\n }\r\n if (Array.isArray(value) && size > 1 && value.length === count)\r\n {\r\n return value.map(Number);\r\n }\r\n\r\n const bytes = asByteView(value);\r\n if (!bytes || bytes.byteLength < count * size)\r\n {\r\n throw new TypeError(\"Animation curve data is incomplete\");\r\n }\r\n\r\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\r\n return Array.from({ length: count }, (_, index) => readElement(view, index * size, type));\r\n}\r\n\r\nfunction asByteView(value)\r\n{\r\n if (value instanceof Uint8Array)\r\n {\r\n return value;\r\n }\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\r\n }\r\n if (value instanceof ArrayBuffer)\r\n {\r\n return new Uint8Array(value);\r\n }\r\n return Array.isArray(value) ? Uint8Array.from(value) : null;\r\n}\r\n\r\nfunction elementTypeSize(type)\r\n{\r\n switch (type)\r\n {\r\n case \"Float32\":\r\n return 4;\r\n case \"Float16\":\r\n case \"UInt16Norm\":\r\n case \"UInt16\":\r\n case \"Int16Norm\":\r\n case \"Int16\":\r\n return 2;\r\n case \"UInt8Norm\":\r\n case \"UInt8\":\r\n case \"Int8Norm\":\r\n case \"Int8\":\r\n return 1;\r\n default:\r\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\r\n }\r\n}\r\n\r\nfunction readElement(view, offset, type)\r\n{\r\n switch (type)\r\n {\r\n case \"Float32\":\r\n return view.getFloat32(offset, true);\r\n case \"Float16\":\r\n return num.fromHalfFloat(view.getUint16(offset, true));\r\n case \"UInt16Norm\":\r\n return view.getUint16(offset, true) / 65535;\r\n case \"UInt16\":\r\n return view.getUint16(offset, true);\r\n case \"Int16Norm\":\r\n return Math.max(view.getInt16(offset, true) / 32767, -1);\r\n case \"Int16\":\r\n return view.getInt16(offset, true);\r\n case \"UInt8Norm\":\r\n return view.getUint8(offset) / 255;\r\n case \"UInt8\":\r\n return view.getUint8(offset);\r\n case \"Int8Norm\":\r\n return Math.max(view.getInt8(offset) / 127, -1);\r\n case \"Int8\":\r\n return view.getInt8(offset);\r\n default:\r\n throw new TypeError(`Unsupported animation curve element type \"${type}\"`);\r\n }\r\n}\r\n\r\nfunction exactDiv(numerator, divisor, what)\r\n{\r\n const value = numerator / divisor;\r\n if (!Number.isInteger(value))\r\n {\r\n throw new Error(`gr2reader: curve ${what}: ${numerator} is not divisible by ${divisor}`);\r\n }\r\n return value;\r\n}\r\nfunction knotScaleFromTrunc(oneOverKnotScaleTrunc)\r\n{\r\n const buffer = new Uint32Array([oneOverKnotScaleTrunc << 16]);\r\n return new Float32Array(buffer.buffer)[0];\r\n}\r\nfunction knotsFromControls(knotsControls, count, scale)\r\n{\r\n const out = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n out[i] = fr(knotsControls[i] / scale);\r\n }\r\n return out;\r\n}\r\nfunction knotsFromControlsTrunc(knotsControls, count, oneOverKnotScaleTrunc)\r\n{\r\n return knotsFromControls(knotsControls, count, knotScaleFromTrunc(oneOverKnotScaleTrunc));\r\n}\r\nfunction identityControls(dimension)\r\n{\r\n switch (dimension)\r\n {\r\n case 3:\r\n return [0, 0, 0];\r\n case 4:\r\n return [0, 0, 0, 1];\r\n case 9:\r\n return [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n default:\r\n throw new Error(`gr2reader: invalid curve dimension ${dimension}`);\r\n }\r\n}\r\nfunction decodeDaKeyframes32f(c, dimension)\r\n{\r\n const dim = c.dimension || dimension,\r\n controls = c.controls || [],\r\n count = exactDiv(controls.length, dim, \"DaKeyframes32f controls/dimension\"),\r\n knots = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n knots[i] = i;\r\n }\r\n return {\r\n knots,\r\n controls: controls.map(fr),\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaK32fC32f(c, dimension)\r\n{\r\n const knots = (c.knots || []).map(fr),\r\n controls = (c.controls || []).map(fr),\r\n dim = knots.length ? exactDiv(controls.length, knots.length, \"DaK32fC32f controls/knots\") : dimension;\r\n return {\r\n knots,\r\n controls,\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaIdentity(c, dimension)\r\n{\r\n const dim = c.dimension || dimension;\r\n return {\r\n knots: [0],\r\n controls: identityControls(dim),\r\n dimension: dim\r\n };\r\n}\r\nfunction decodeDaConstant32f(c, dimension)\r\n{\r\n const controls = (c.controls || []).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: controls.length || dimension\r\n };\r\n}\r\nfunction decodeD3Constant32f(c)\r\n{\r\n const controls = (c.controls || [0, 0, 0]).slice(0, 3).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD4Constant32f(c)\r\n{\r\n const controls = (c.controls || [0, 0, 0, 1]).slice(0, 4).map(fr);\r\n return {\r\n knots: [0],\r\n controls,\r\n dimension: 4\r\n };\r\n}\r\nfunction decodeDaK(c)\r\n{\r\n const controlScaleOffsets = c.controlScaleOffsets || [],\r\n knotsControls = c.knotsControls || [],\r\n dim = exactDiv(controlScaleOffsets.length, 2, \"DaK controlScaleOffsets/2\"),\r\n count = exactDiv(knotsControls.length, dim + 1, \"DaK knotsControls/(dim+1)\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controls = new Array(count * dim);\r\n for (let i = 0; i < count; i++)\r\n {\r\n for (let x = 0; x < dim; x++)\r\n {\r\n controls[i * dim + x] = fr(knotsControls[count + i * dim + x] * controlScaleOffsets[x] + controlScaleOffsets[dim + x]);\r\n }\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: dim\r\n };\r\n}\r\nfunction quatFromControl16(out, a, b, c, scales, offsets)\r\n{\r\n const swizzle1 = (b & 0x8000) >> 14 | c >> 15,\r\n swizzle2 = swizzle1 + 1 & 3,\r\n swizzle3 = swizzle2 + 1 & 3,\r\n swizzle4 = swizzle3 + 1 & 3;\r\n const dataA = (a & 0x7fff) * scales[swizzle2] + offsets[swizzle2],\r\n dataB = (b & 0x7fff) * scales[swizzle3] + offsets[swizzle3],\r\n dataC = (c & 0x7fff) * scales[swizzle4] + offsets[swizzle4];\r\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\r\n if ((a & 0x8000) !== 0)\r\n {\r\n dataD = -dataD;\r\n }\r\n out[swizzle2] = fr(dataA);\r\n out[swizzle3] = fr(dataB);\r\n out[swizzle4] = fr(dataC);\r\n out[swizzle1] = fr(dataD);\r\n return out;\r\n}\r\nfunction decodeD4n(c, decoder, scaleTableMultiplier)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D4n knotsControls/4\"),\r\n knots = knotsFromControls(knotsControls, count, Number(c.oneOverKnotScale) || 0);\r\n const selector = (c.scaleOffsetTableEntries ?? 0) >>> 0,\r\n scales = new Float32Array([D4N_SCALE_TABLE[selector >> 0 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 4 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 8 & 0x0f] * scaleTableMultiplier, D4N_SCALE_TABLE[selector >> 12 & 0x0f] * scaleTableMultiplier]),\r\n offsets = new Float32Array([D4N_OFFSET_TABLE[selector >> 0 & 0x0f], D4N_OFFSET_TABLE[selector >> 4 & 0x0f], D4N_OFFSET_TABLE[selector >> 8 & 0x0f], D4N_OFFSET_TABLE[selector >> 12 & 0x0f]]);\r\n const controls = new Array(count * 4),\r\n quat = [0, 0, 0, 1];\r\n for (let i = 0; i < count; i++)\r\n {\r\n decoder(quat, knotsControls[count + i * 3], knotsControls[count + i * 3 + 1], knotsControls[count + i * 3 + 2], scales, offsets);\r\n controls[i * 4] = quat[0];\r\n controls[i * 4 + 1] = quat[1];\r\n controls[i * 4 + 2] = quat[2];\r\n controls[i * 4 + 3] = quat[3];\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 4\r\n };\r\n}\r\nfunction decodeD4nK16uC15u(c)\r\n{\r\n return decodeD4n(c, quatFromControl16, D4N_SCALE_TABLE_MULTIPLIER_16);\r\n}\r\nfunction quatFromControl8(out, a, b, c, scales, offsets)\r\n{\r\n const swizzle1 = (b & 0x80) >> 6 | (c & 0x80) >> 7,\r\n swizzle2 = swizzle1 + 1 & 3,\r\n swizzle3 = swizzle2 + 1 & 3,\r\n swizzle4 = swizzle3 + 1 & 3;\r\n const dataA = (a & 0x7f) * scales[swizzle2] + offsets[swizzle2],\r\n dataB = (b & 0x7f) * scales[swizzle3] + offsets[swizzle3],\r\n dataC = (c & 0x7f) * scales[swizzle4] + offsets[swizzle4];\r\n let dataD = Math.sqrt(Math.max(0, 1 - (dataA * dataA + dataB * dataB + dataC * dataC)));\r\n if ((a & 0x80) !== 0)\r\n {\r\n dataD = -dataD;\r\n }\r\n out[swizzle2] = fr(dataA);\r\n out[swizzle3] = fr(dataB);\r\n out[swizzle4] = fr(dataC);\r\n out[swizzle1] = fr(dataD);\r\n return out;\r\n}\r\nfunction decodeD4nK8uC7u(c)\r\n{\r\n return decodeD4n(c, quatFromControl8, D4N_SCALE_TABLE_MULTIPLIER_8);\r\n}\r\nfunction decodeD3K(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D3K knotsControls/4\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controlScales = c.controlScales || [],\r\n controlOffsets = c.controlOffsets || [],\r\n controls = new Array(count * 3);\r\n for (let i = 0; i < count; i++)\r\n {\r\n for (let x = 0; x < 3; x++)\r\n {\r\n controls[i * 3 + x] = fr(knotsControls[count + i * 3 + x] * controlScales[x] + controlOffsets[x]);\r\n }\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD9I1(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D9I1 knotsControls/2\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\r\n const scale = Array.isArray(c.controlScales) ? c.controlScales[0] ?? 0 : c.controlScale || 0,\r\n offset = Array.isArray(c.controlOffsets) ? c.controlOffsets[0] ?? 0 : c.controlOffset || 0,\r\n controls = new Array(count * 9).fill(0);\r\n for (let i = 0; i < count; i++)\r\n {\r\n const s = fr(knotsControls[count + i] * scale + offset);\r\n controls[i * 9] = s;\r\n controls[i * 9 + 4] = s;\r\n controls[i * 9 + 8] = s;\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 9\r\n };\r\n}\r\nfunction decodeD9I3(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 4, \"D9I3 knotsControls/4\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0),\r\n controlScales = c.controlScales || [],\r\n controlOffsets = c.controlOffsets || [],\r\n controls = new Array(count * 9).fill(0);\r\n for (let i = 0; i < count; i++)\r\n {\r\n controls[i * 9] = fr(knotsControls[count + i * 3] * controlScales[0] + controlOffsets[0]);\r\n controls[i * 9 + 4] = fr(knotsControls[count + i * 3 + 1] * controlScales[1] + controlOffsets[1]);\r\n controls[i * 9 + 8] = fr(knotsControls[count + i * 3 + 2] * controlScales[2] + controlOffsets[2]);\r\n }\r\n return {\r\n knots,\r\n controls,\r\n dimension: 9\r\n };\r\n}\r\nfunction d3I1Controls(knotsControls, count, scales, offsets)\r\n{\r\n const controls = new Array(count * 3);\r\n for (let i = 0; i < count; i++)\r\n {\r\n const value = knotsControls[count + i];\r\n controls[i * 3] = fr(value * scales[0] + offsets[0]);\r\n controls[i * 3 + 1] = fr(value * scales[1] + offsets[1]);\r\n controls[i * 3 + 2] = fr(value * scales[2] + offsets[2]);\r\n }\r\n return controls;\r\n}\r\nfunction decodeD3I1K32fC32f(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D3I1K32f knotsControls/2\"),\r\n knots = new Array(count);\r\n for (let i = 0; i < count; i++)\r\n {\r\n knots[i] = fr(knotsControls[i]);\r\n }\r\n return {\r\n knots,\r\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeD3I1u(c)\r\n{\r\n const knotsControls = c.knotsControls || [],\r\n count = exactDiv(knotsControls.length, 2, \"D3I1 knotsControls/2\"),\r\n knots = knotsFromControlsTrunc(knotsControls, count, Number(c.oneOverKnotScaleTrunc) || 0);\r\n return {\r\n knots,\r\n controls: d3I1Controls(knotsControls, count, c.controlScales || [], c.controlOffsets || []),\r\n dimension: 3\r\n };\r\n}\r\nfunction decodeDaK16uC16u(c)\r\n{\r\n return decodeDaK(c);\r\n}\r\nfunction decodeDaK8uC8u(c)\r\n{\r\n return decodeDaK(c);\r\n}\r\nfunction decodeD3K16uC16u(c)\r\n{\r\n return decodeD3K(c);\r\n}\r\nfunction decodeD3K8uC8u(c)\r\n{\r\n return decodeD3K(c);\r\n}\r\nfunction decodeD9I1K16uC16u(c)\r\n{\r\n return decodeD9I1(c);\r\n}\r\nfunction decodeD9I1K8uC8u(c)\r\n{\r\n return decodeD9I1(c);\r\n}\r\nfunction decodeD9I3K16uC16u(c)\r\n{\r\n return decodeD9I3(c);\r\n}\r\nfunction decodeD9I3K8uC8u(c)\r\n{\r\n return decodeD9I3(c);\r\n}\r\nfunction decodeD3I1K16uC16u(c)\r\n{\r\n return decodeD3I1u(c);\r\n}\r\nfunction decodeD3I1K8uC8u(c)\r\n{\r\n return decodeD3I1u(c);\r\n}\r\n"],"names":["fr","Math","fround","CURVE_DECODERS","Object","freeze","format","decode","decodeDaKeyframes32f","decodeDaK32fC32f","decodeDaIdentity","decodeDaConstant32f","decodeD3Constant32f","decodeD4Constant32f","decodeDaK16uC16u","decodeDaK8uC8u","decodeD4nK16uC15u","decodeD4nK8uC7u","decodeD3K16uC16u","decodeD3K8uC8u","decodeD9I1K16uC16u","decodeD9I3K16uC16u","decodeD9I1K8uC8u","decodeD9I3K8uC8u","decodeD3I1K32fC32f","decodeD3I1K16uC16u","decodeD3I1K8uC8u","D4N_SCALE_TABLE","Float32Array","D4N_OFFSET_TABLE","D4N_SCALE_TABLE_MULTIPLIER_16","D4N_SCALE_TABLE_MULTIPLIER_8","CjsGrannyCurves","Map","decodeCurve","curveJson","dimension","Error","decoder","knots","controls","dim","degree","Number","sampleDecodedCurve","out","curve","time","cycle","duration","options","count","length","controlCount","keyframed","knot","index","max","min","registerResource","path","source","set","unregisterResource","delete","clearResources","clear","resolveResource","get","getTrackSource","value","getAnimations","getTrackGroups","animation","getAnimationDuration","Duration","getAnimationTimeStep","timeStep","TimeStep","findTransformTrack","group","name","trackGroup","tracks","track","find","item","findVectorTrack","findTextTrack","textTracks","getTextTrackEntries","entries","entry","isFinite","push","text","String","Text","decodeGrannyCurve","error","normalized","decodedDirect","decoded","decodeAnimationCurve","valueDimension","ValueDimension","knotCount","KnotCount","isSafeInteger","decodeElements","Knots","knotType","KnotType","values","Values","valueType","ValueType","interpolation","Interpolation","sampleGrannyCurve","#asRecord","#asTrackSource","record","#asTrackGroup","#findTrackSource","depth","direct","key","nested","#getArray","lowerKey","upperKey","lower","Array","isArray","upper","#hasArrayValue","#getName","Name","#getEntryTime","timeStamp","TimeStamp","timestamp","NaN","#normalizeTransformTrack","orientation","Orientation","position","Position","scaleShear","ScaleShear","#normalizeVectorTrack","valueCurve","ValueCurve","#normalizeCurve","Format","Degree","Controls","Dimension","#getDecodedCurve","curveDimension","#lowerFirst","toLowerCase","slice","#copyControl","offset","i","#findKnotIndex","low","high","mid","#sampleKeyframedCurve","frame","trunc","#sampleLinearCurve","knot0","start","end","localTime","t","p0","p1","#sampleQuadraticCurve","k2","k1","ti2","ti1","ti","tiNext","d0","d1a","d1b","l0","l1a","l1b","c2","ci","c1","p2","ANIMATION_ELEMENT_TYPES","typeValue","type","size","elementTypeSize","ArrayBuffer","isView","Uint8Array","from","map","bytes","asByteView","byteLength","TypeError","view","DataView","buffer","byteOffset","_","readElement","getFloat32","num","fromHalfFloat","getUint16","getInt16","getUint8","getInt8","exactDiv","numerator","divisor","what","isInteger","knotScaleFromTrunc","oneOverKnotScaleTrunc","Uint32Array","knotsFromControls","knotsControls","scale","knotsFromControlsTrunc","identityControls","c","decodeDaK","controlScaleOffsets","x","quatFromControl16","a","b","scales","offsets","swizzle1","swizzle2","swizzle3","swizzle4","dataA","dataB","dataC","dataD","sqrt","decodeD4n","scaleTableMultiplier","oneOverKnotScale","selector","scaleOffsetTableEntries","quat","quatFromControl8","decodeD3K","controlScales","controlOffsets","decodeD9I1","controlScale","controlOffset","fill","s","decodeD9I3","d3I1Controls","decodeD3I1u"],"mappings":"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"}
@@ -7,6 +7,12 @@ import { Tr2MatrixKey as _Tr2MatrixKey } from './Tr2MatrixKey.js';
7
7
 
8
8
  let _initProto, _initClass, _init_currentValue, _init_extra_currentValue, _init_name, _init_extra_name, _init_length, _init_extra_length, _init_cycle, _init_extra_cycle, _init_reversed, _init_extra_reversed, _init_startValue, _init_extra_startValue, _init_endValue, _init_extra_endValue, _init_skinnedObject, _init_extra_skinnedObject, _init_transform, _init_extra_transform, _init_keys, _init_extra_keys;
9
9
  const SPHERICAL_LINEAR = 4;
10
+
11
+ /**
12
+ * Matrix function that tracks a named bone on a skinned object, returning the
13
+ * authored transform composed with that bone's current matrix and the object's
14
+ * world transform rather than sampling its own keys.
15
+ */
10
16
  let _Tr2BoneMatrixCurve;
11
17
  new class extends _identity {
12
18
  static [class Tr2BoneMatrixCurve extends CjsModel {
@@ -191,6 +197,12 @@ new class extends _identity {
191
197
  GetBone() {
192
198
  return this.#bone;
193
199
  }
200
+
201
+ /**
202
+ * Gets the last key at or before a time, relying on the keys being sorted and
203
+ * falling back to the first key when the time precedes all of them; returns
204
+ * null for an empty curve.
205
+ */
194
206
  GetKeyForTime(time) {
195
207
  const keys = this.keys;
196
208
  if (!this.keys.length) {
@@ -206,6 +218,17 @@ new class extends _identity {
206
218
  }
207
219
  return best;
208
220
  }
221
+
222
+ /**
223
+ * Reads a bone's 16-component matrix through GetBoneMatrix or
224
+ * GetBoneTransform, returning null when the object exposes neither or returns
225
+ * a wrongly sized value.
226
+ */
227
+
228
+ /**
229
+ * Reads the skinned object's own 16-component world transform, or null when it
230
+ * exposes none.
231
+ */
209
232
  }];
210
233
  #identityMatrix = mat4.create();
211
234
  #keyInterpolations = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2BoneMatrixCurve.js","sources":["../../../src/curves/Tr2BoneMatrixCurve.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2BoneMatrixCurve.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2BoneMatrixCurve.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { isArrayLike } from \"@carbonenginejs/runtime-utils/is\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { Tr2MatrixKey } from \"./Tr2MatrixKey.js\";\n\n\nconst SPHERICAL_LINEAR = 4;\n\n\n@type.define({\n className: \"Tr2BoneMatrixCurve\",\n family: \"curves\"\n})\nexport class Tr2BoneMatrixCurve extends CjsModel\n{\n static #identityMatrix = mat4.create();\n\n static #keyInterpolations = new WeakMap();\n\n @io.read\n @type.mat4\n currentValue = mat4.create();\n\n @io.persist\n @type.string\n name = \"\";\n\n @io.persist\n @type.float32\n length = 1;\n\n @io.persist\n @type.boolean\n cycle = true;\n\n @io.persist\n @type.boolean\n reversed = false;\n\n @io.persist\n @type.mat4\n startValue = mat4.create();\n\n @io.persist\n @type.mat4\n endValue = mat4.create();\n\n @io.readwrite\n @type.objectRef(\"Tr2SkinnedObject\")\n skinnedObject = null;\n\n @io.persist\n @type.mat4\n transform = mat4.create();\n\n @io.persistOnly\n @type.list(\"Tr2MatrixKey\")\n keys = [];\n\n #bone = \"\";\n\n #scratch = mat4.create();\n\n /**\n * Initializes sorted keys and cached value.\n */\n @carbon.method\n @impl.adapted\n Initialize()\n {\n this.Sort();\n this.UpdateValue(0);\n return true;\n }\n\n /**\n * Gets authored duration.\n */\n @carbon.method\n @impl.implemented\n Length()\n {\n const keys = this.keys;\n const length = this.length;\n return length || (keys.length ? keys[keys.length - 1].time : 0);\n }\n\n /**\n * Updates cached matrix value.\n */\n @carbon.method\n @impl.adapted\n UpdateValue(time)\n {\n this.GetValueAt(time, this.currentValue);\n }\n\n /**\n * Gets matrix value at a time.\n */\n @carbon.method\n @impl.adapted\n GetValueAt(_time, out)\n {\n const boneMatrix = Tr2BoneMatrixCurve.#getBoneMatrix(this.skinnedObject, this.#bone);\n if (!boneMatrix)\n {\n return mat4.identity(out);\n }\n // Carbon (row-vector): (m_transform * bone) * world - m_transform first,\n // world last (XMMatrixMultiply is row-vector A*B).\n mat4.multiply(this.#scratch, boneMatrix, this.transform);\n const worldTransform = Tr2BoneMatrixCurve.#getSkinnedObjectTransform(this.skinnedObject);\n return worldTransform ? mat4.multiply(out, worldTransform, this.#scratch) : mat4.copy(out, this.#scratch);\n }\n\n /**\n * Gets matrix value at a time.\n */\n @carbon.method\n @impl.adapted\n GetValue(time, out)\n {\n return this.GetValueAt(time, out);\n }\n\n /**\n * Sorts keys by time.\n */\n @carbon.method\n @impl.implemented\n Sort()\n {\n const keys = this.keys;\n keys.sort((a, b) => a.time - b.time);\n const lastKey = keys.at(-1);\n const length = this.length;\n if (lastKey && lastKey.time > length)\n {\n const previousLength = this.length;\n mat4.copy(this.#scratch, this.endValue);\n this.length = lastKey.time;\n mat4.copy(this.endValue, lastKey.value);\n if (previousLength > 0)\n {\n lastKey.time = previousLength;\n mat4.copy(lastKey.value, this.#scratch);\n }\n }\n }\n\n /**\n * Adds a matrix key.\n */\n @carbon.method\n @impl.adapted\n AddKey(time, value = null)\n {\n const keyValue = value ?? Tr2BoneMatrixCurve.#identityMatrix;\n const keys = this.keys;\n for (let i = 0; i < this.keys.length; i++)\n {\n const key = keys[i];\n if (key.time === time)\n {\n mat4.copy(key.value, keyValue);\n return i;\n }\n }\n const key = new Tr2MatrixKey();\n key.time = time;\n mat4.copy(key.value, keyValue);\n Tr2BoneMatrixCurve.#keyInterpolations.set(key, SPHERICAL_LINEAR);\n keys.push(key);\n this.Sort();\n return keys.indexOf(key);\n }\n\n /** Gets the number of matrix keys. */\n @carbon.method\n @impl.implemented\n GetKeyCount()\n {\n return this.keys.length;\n }\n\n /** Gets a key time, or the curve length when the index is out of range. */\n @carbon.method\n @impl.implemented\n GetKeyTime(index)\n {\n return Number(this.keys[index]?.time ?? this.length);\n }\n\n /** Sets a key time without reordering; Carbon requires an explicit Sort call. */\n @carbon.method\n @impl.implemented\n SetKeyTime(index, time)\n {\n if (this.keys[index])\n {\n this.keys[index].time = Number(time);\n }\n }\n\n /** Gets a detached key matrix, or the curve end value when out of range. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"JavaScript returns a detached matrix instead of exposing Carbon's const Matrix reference.\")\n GetKeyValue(index)\n {\n return mat4.clone(this.keys[index]?.value ?? this.endValue);\n }\n\n /** Copies a matrix into an existing key. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"JavaScript copies authored matrix values so curve storage never aliases caller-owned arrays.\")\n SetKeyValue(index, value)\n {\n if (this.keys[index])\n {\n if (!isArrayLike(value, 16))\n {\n throw new TypeError(\"Matrix key values must contain 16 components\");\n }\n mat4.copy(this.keys[index].value, value);\n }\n }\n\n /** Gets a key interpolation, or Carbon's spherical-linear curve default. */\n @carbon.method\n @impl.implemented\n GetKeyInterpolation(index)\n {\n const key = this.keys[index];\n return key\n ? Tr2BoneMatrixCurve.#keyInterpolations.get(key) ?? SPHERICAL_LINEAR\n : SPHERICAL_LINEAR;\n }\n\n /** Sets the unpersisted interpolation mode on an existing matrix key. */\n @carbon.method\n @impl.implemented\n SetKeyInterpolation(index, interpolation)\n {\n const key = this.keys[index];\n if (key)\n {\n Tr2BoneMatrixCurve.#keyInterpolations.set(key, Math.trunc(Number(interpolation)) >>> 0);\n }\n }\n\n /**\n * Removes a matrix key.\n */\n @carbon.method\n @impl.implemented\n RemoveKey(index)\n {\n if (Number.isInteger(index) && index >= 0 && index < this.keys.length)\n {\n const [key] = this.keys.splice(index, 1);\n Tr2BoneMatrixCurve.#keyInterpolations.delete(key);\n this.Sort();\n }\n }\n\n /**\n * Sets the source bone name.\n */\n @carbon.method\n @impl.implemented\n SetBone(bone)\n {\n this.#bone = bone;\n }\n\n /**\n * Gets the source bone name.\n */\n @carbon.method\n @impl.implemented\n GetBone()\n {\n return this.#bone;\n }\n GetKeyForTime(time)\n {\n const keys = this.keys;\n if (!this.keys.length)\n {\n return null;\n }\n let best = keys[0];\n for (const key of keys)\n {\n if (key.time <= time)\n {\n best = key;\n }\n else\n {\n break;\n }\n }\n return best;\n }\n\n static #getBoneMatrix(skinnedObject, bone)\n {\n if (!skinnedObject || !bone)\n {\n return null;\n }\n if (typeof skinnedObject === \"object\" && \"GetBoneMatrix\" in skinnedObject && typeof skinnedObject.GetBoneMatrix === \"function\")\n {\n const value = skinnedObject.GetBoneMatrix(bone);\n return isArrayLike(value, 16) ? value : null;\n }\n if (typeof skinnedObject === \"object\" && \"GetBoneTransform\" in skinnedObject && typeof skinnedObject.GetBoneTransform === \"function\")\n {\n const value = skinnedObject.GetBoneTransform(bone);\n return isArrayLike(value, 16) ? value : null;\n }\n return null;\n }\n\n static #getSkinnedObjectTransform(skinnedObject)\n {\n if (skinnedObject && typeof skinnedObject === \"object\" && \"GetTransform\" in skinnedObject && typeof skinnedObject.GetTransform === \"function\")\n {\n const value = skinnedObject.GetTransform();\n return isArrayLike(value, 16) ? value : null;\n }\n return null;\n }\n}\n"],"names":["SPHERICAL_LINEAR","_Tr2BoneMatrixCurve","_identity","Tr2BoneMatrixCurve","CjsModel","e","_init_currentValue","_init_extra_currentValue","_init_name","_init_extra_name","_init_length","_init_extra_length","_init_cycle","_init_extra_cycle","_init_reversed","_init_extra_reversed","_init_startValue","_init_extra_startValue","_init_endValue","_init_extra_endValue","_init_skinnedObject","_init_extra_skinnedObject","_init_transform","_init_extra_transform","_init_keys","_init_extra_keys","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","mat4","persist","string","float32","boolean","readwrite","objectRef","persistOnly","list","carbon","method","impl","adapted","implemented","reason","currentValue","create","name","length","cycle","reversed","startValue","endValue","skinnedObject","transform","keys","Initialize","Sort","UpdateValue","Length","time","GetValueAt","_time","out","boneMatrix","identity","multiply","worldTransform","copy","GetValue","sort","a","b","lastKey","at","previousLength","value","AddKey","keyValue","i","key","Tr2MatrixKey","set","push","indexOf","GetKeyCount","GetKeyTime","index","Number","SetKeyTime","GetKeyValue","clone","SetKeyValue","isArrayLike","TypeError","GetKeyInterpolation","get","SetKeyInterpolation","interpolation","Math","trunc","RemoveKey","isInteger","splice","delete","SetBone","bone","GetBone","GetKeyForTime","best","WeakMap","#getBoneMatrix","GetBoneMatrix","GetBoneTransform","#getSkinnedObjectTransform","GetTransform","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2BoneMatrixCurve.js","sources":["../../../src/curves/Tr2BoneMatrixCurve.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2BoneMatrixCurve.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2BoneMatrixCurve.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { isArrayLike } from \"@carbonenginejs/runtime-utils/is\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { Tr2MatrixKey } from \"./Tr2MatrixKey.js\";\n\n\nconst SPHERICAL_LINEAR = 4;\n\n\n/**\n * Matrix function that tracks a named bone on a skinned object, returning the\n * authored transform composed with that bone's current matrix and the object's\n * world transform rather than sampling its own keys.\n */\n@type.define({\n className: \"Tr2BoneMatrixCurve\",\n family: \"curves\"\n})\nexport class Tr2BoneMatrixCurve extends CjsModel\n{\n static #identityMatrix = mat4.create();\n\n static #keyInterpolations = new WeakMap();\n\n @io.read\n @type.mat4\n currentValue = mat4.create();\n\n @io.persist\n @type.string\n name = \"\";\n\n @io.persist\n @type.float32\n length = 1;\n\n @io.persist\n @type.boolean\n cycle = true;\n\n @io.persist\n @type.boolean\n reversed = false;\n\n @io.persist\n @type.mat4\n startValue = mat4.create();\n\n @io.persist\n @type.mat4\n endValue = mat4.create();\n\n @io.readwrite\n @type.objectRef(\"Tr2SkinnedObject\")\n skinnedObject = null;\n\n @io.persist\n @type.mat4\n transform = mat4.create();\n\n @io.persistOnly\n @type.list(\"Tr2MatrixKey\")\n keys = [];\n\n #bone = \"\";\n\n #scratch = mat4.create();\n\n /**\n * Initializes sorted keys and cached value.\n */\n @carbon.method\n @impl.adapted\n Initialize()\n {\n this.Sort();\n this.UpdateValue(0);\n return true;\n }\n\n /**\n * Gets authored duration.\n */\n @carbon.method\n @impl.implemented\n Length()\n {\n const keys = this.keys;\n const length = this.length;\n return length || (keys.length ? keys[keys.length - 1].time : 0);\n }\n\n /**\n * Updates cached matrix value.\n */\n @carbon.method\n @impl.adapted\n UpdateValue(time)\n {\n this.GetValueAt(time, this.currentValue);\n }\n\n /**\n * Gets matrix value at a time.\n */\n @carbon.method\n @impl.adapted\n GetValueAt(_time, out)\n {\n const boneMatrix = Tr2BoneMatrixCurve.#getBoneMatrix(this.skinnedObject, this.#bone);\n if (!boneMatrix)\n {\n return mat4.identity(out);\n }\n // Carbon (row-vector): (m_transform * bone) * world - m_transform first,\n // world last (XMMatrixMultiply is row-vector A*B).\n mat4.multiply(this.#scratch, boneMatrix, this.transform);\n const worldTransform = Tr2BoneMatrixCurve.#getSkinnedObjectTransform(this.skinnedObject);\n return worldTransform ? mat4.multiply(out, worldTransform, this.#scratch) : mat4.copy(out, this.#scratch);\n }\n\n /**\n * Gets matrix value at a time.\n */\n @carbon.method\n @impl.adapted\n GetValue(time, out)\n {\n return this.GetValueAt(time, out);\n }\n\n /**\n * Sorts keys by time.\n */\n @carbon.method\n @impl.implemented\n Sort()\n {\n const keys = this.keys;\n keys.sort((a, b) => a.time - b.time);\n const lastKey = keys.at(-1);\n const length = this.length;\n if (lastKey && lastKey.time > length)\n {\n const previousLength = this.length;\n mat4.copy(this.#scratch, this.endValue);\n this.length = lastKey.time;\n mat4.copy(this.endValue, lastKey.value);\n if (previousLength > 0)\n {\n lastKey.time = previousLength;\n mat4.copy(lastKey.value, this.#scratch);\n }\n }\n }\n\n /**\n * Adds a matrix key.\n */\n @carbon.method\n @impl.adapted\n AddKey(time, value = null)\n {\n const keyValue = value ?? Tr2BoneMatrixCurve.#identityMatrix;\n const keys = this.keys;\n for (let i = 0; i < this.keys.length; i++)\n {\n const key = keys[i];\n if (key.time === time)\n {\n mat4.copy(key.value, keyValue);\n return i;\n }\n }\n const key = new Tr2MatrixKey();\n key.time = time;\n mat4.copy(key.value, keyValue);\n Tr2BoneMatrixCurve.#keyInterpolations.set(key, SPHERICAL_LINEAR);\n keys.push(key);\n this.Sort();\n return keys.indexOf(key);\n }\n\n /** Gets the number of matrix keys. */\n @carbon.method\n @impl.implemented\n GetKeyCount()\n {\n return this.keys.length;\n }\n\n /** Gets a key time, or the curve length when the index is out of range. */\n @carbon.method\n @impl.implemented\n GetKeyTime(index)\n {\n return Number(this.keys[index]?.time ?? this.length);\n }\n\n /** Sets a key time without reordering; Carbon requires an explicit Sort call. */\n @carbon.method\n @impl.implemented\n SetKeyTime(index, time)\n {\n if (this.keys[index])\n {\n this.keys[index].time = Number(time);\n }\n }\n\n /** Gets a detached key matrix, or the curve end value when out of range. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"JavaScript returns a detached matrix instead of exposing Carbon's const Matrix reference.\")\n GetKeyValue(index)\n {\n return mat4.clone(this.keys[index]?.value ?? this.endValue);\n }\n\n /** Copies a matrix into an existing key. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"JavaScript copies authored matrix values so curve storage never aliases caller-owned arrays.\")\n SetKeyValue(index, value)\n {\n if (this.keys[index])\n {\n if (!isArrayLike(value, 16))\n {\n throw new TypeError(\"Matrix key values must contain 16 components\");\n }\n mat4.copy(this.keys[index].value, value);\n }\n }\n\n /** Gets a key interpolation, or Carbon's spherical-linear curve default. */\n @carbon.method\n @impl.implemented\n GetKeyInterpolation(index)\n {\n const key = this.keys[index];\n return key\n ? Tr2BoneMatrixCurve.#keyInterpolations.get(key) ?? SPHERICAL_LINEAR\n : SPHERICAL_LINEAR;\n }\n\n /** Sets the unpersisted interpolation mode on an existing matrix key. */\n @carbon.method\n @impl.implemented\n SetKeyInterpolation(index, interpolation)\n {\n const key = this.keys[index];\n if (key)\n {\n Tr2BoneMatrixCurve.#keyInterpolations.set(key, Math.trunc(Number(interpolation)) >>> 0);\n }\n }\n\n /**\n * Removes a matrix key.\n */\n @carbon.method\n @impl.implemented\n RemoveKey(index)\n {\n if (Number.isInteger(index) && index >= 0 && index < this.keys.length)\n {\n const [key] = this.keys.splice(index, 1);\n Tr2BoneMatrixCurve.#keyInterpolations.delete(key);\n this.Sort();\n }\n }\n\n /**\n * Sets the source bone name.\n */\n @carbon.method\n @impl.implemented\n SetBone(bone)\n {\n this.#bone = bone;\n }\n\n /**\n * Gets the source bone name.\n */\n @carbon.method\n @impl.implemented\n GetBone()\n {\n return this.#bone;\n }\n\n /**\n * Gets the last key at or before a time, relying on the keys being sorted and\n * falling back to the first key when the time precedes all of them; returns\n * null for an empty curve.\n */\n GetKeyForTime(time)\n {\n const keys = this.keys;\n if (!this.keys.length)\n {\n return null;\n }\n let best = keys[0];\n for (const key of keys)\n {\n if (key.time <= time)\n {\n best = key;\n }\n else\n {\n break;\n }\n }\n return best;\n }\n\n /**\n * Reads a bone's 16-component matrix through GetBoneMatrix or\n * GetBoneTransform, returning null when the object exposes neither or returns\n * a wrongly sized value.\n */\n static #getBoneMatrix(skinnedObject, bone)\n {\n if (!skinnedObject || !bone)\n {\n return null;\n }\n if (typeof skinnedObject === \"object\" && \"GetBoneMatrix\" in skinnedObject && typeof skinnedObject.GetBoneMatrix === \"function\")\n {\n const value = skinnedObject.GetBoneMatrix(bone);\n return isArrayLike(value, 16) ? value : null;\n }\n if (typeof skinnedObject === \"object\" && \"GetBoneTransform\" in skinnedObject && typeof skinnedObject.GetBoneTransform === \"function\")\n {\n const value = skinnedObject.GetBoneTransform(bone);\n return isArrayLike(value, 16) ? value : null;\n }\n return null;\n }\n\n /**\n * Reads the skinned object's own 16-component world transform, or null when it\n * exposes none.\n */\n static #getSkinnedObjectTransform(skinnedObject)\n {\n if (skinnedObject && typeof skinnedObject === \"object\" && \"GetTransform\" in skinnedObject && typeof skinnedObject.GetTransform === \"function\")\n {\n const value = skinnedObject.GetTransform();\n return isArrayLike(value, 16) ? value : null;\n }\n return null;\n }\n}\n"],"names":["SPHERICAL_LINEAR","_Tr2BoneMatrixCurve","_identity","Tr2BoneMatrixCurve","CjsModel","e","_init_currentValue","_init_extra_currentValue","_init_name","_init_extra_name","_init_length","_init_extra_length","_init_cycle","_init_extra_cycle","_init_reversed","_init_extra_reversed","_init_startValue","_init_extra_startValue","_init_endValue","_init_extra_endValue","_init_skinnedObject","_init_extra_skinnedObject","_init_transform","_init_extra_transform","_init_keys","_init_extra_keys","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","mat4","persist","string","float32","boolean","readwrite","objectRef","persistOnly","list","carbon","method","impl","adapted","implemented","reason","currentValue","create","name","length","cycle","reversed","startValue","endValue","skinnedObject","transform","keys","Initialize","Sort","UpdateValue","Length","time","GetValueAt","_time","out","boneMatrix","identity","multiply","worldTransform","copy","GetValue","sort","a","b","lastKey","at","previousLength","value","AddKey","keyValue","i","key","Tr2MatrixKey","set","push","indexOf","GetKeyCount","GetKeyTime","index","Number","SetKeyTime","GetKeyValue","clone","SetKeyValue","isArrayLike","TypeError","GetKeyInterpolation","get","SetKeyInterpolation","interpolation","Math","trunc","RemoveKey","isInteger","splice","delete","SetBone","bone","GetBone","GetKeyForTime","best","WeakMap","#getBoneMatrix","GetBoneMatrix","GetBoneTransform","#getSkinnedObjectTransform","GetTransform","constructor"],"mappings":";;;;;;;;AASA,MAAMA,gBAAgB,GAAG,CAAC;;AAG1B;AACA;AACA;AACA;AACA;AAJA,IAAAC;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAKA,MAAAC,kBAAA,SAIwCC,QAAQ,CAChD;AAAA,IAAA;AAAA,MAAA,CAAA;AAAAC,QAAAA,CAAA,GAAAC,kBAAA,EAAAC,wBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAA1B,mBAAA,EAAA2B,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CALCC,IAAI,CAACC,MAAM,CAAC;AACXC,QAAAA,SAAS,EAAE,oBAAoB;AAC/BC,QAAAA,MAAM,EAAE;AACV,OAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAOCC,EAAE,EAAFA,EAAE,CAACC,IAAI,EACPL,IAAI,EAAJA,IAAI,CAACM,IAAI,0BAGTF,EAAE,EAAFA,EAAE,CAACG,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACQ,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAGXJ,EAAE,EAAFA,EAAE,CAACG,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACS,OAAO,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAGZL,EAAE,EAAFA,EAAE,CAACG,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACU,OAAO,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAGZN,EAAE,EAAFA,EAAE,CAACG,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACU,OAAO,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAGZN,EAAE,EAAFA,EAAE,CAACG,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACM,IAAI,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAGTF,EAAE,EAAFA,EAAE,CAACG,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACM,IAAI,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAGTF,EAAE,EAAFA,EAAE,CAACO,SAAS,UACZX,IAAI,CAACY,SAAS,CAAC,kBAAkB,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAGlCR,EAAE,EAAFA,EAAE,CAACG,OAAO,EACVP,IAAI,EAAJA,IAAI,CAACM,IAAI,uBAGTF,EAAE,EAAFA,EAAE,CAACS,WAAW,EAAA,MAAA,EACdb,IAAI,CAACc,IAAI,CAAC,cAAc,CAAC,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAUzBC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,wBAWZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAWhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CASZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAkBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,sBASZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAwBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAwBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,wBAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,2FAA2F,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAOxGL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,8FAA8F,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAc3GL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,iCAahBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAchBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAShBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,+BA7QqB7C,QAAQ,CAAA;AAAA;IAQ9C+C,YAAY,IAAAzB,UAAA,CAAA,IAAA,CAAA,EAAApB,kBAAA,OAAG8B,IAAI,CAACgB,MAAM,EAAE,CAAA;AAI5BC,IAAAA,IAAI,IAAA9C,wBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;AAIT8C,IAAAA,MAAM,IAAA7C,gBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,CAAC,CAAA;AAIV6C,IAAAA,KAAK,IAAA5C,kBAAA,CAAA,IAAA,CAAA,EAAAC,WAAA,OAAG,IAAI,CAAA;AAIZ4C,IAAAA,QAAQ,IAAA3C,iBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAG,KAAK,CAAA;IAIhB2C,UAAU,IAAA1C,oBAAA,CAAA,IAAA,CAAA,EAAAC,gBAAA,OAAGoB,IAAI,CAACgB,MAAM,EAAE,CAAA;IAI1BM,QAAQ,IAAAzC,sBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAGkB,IAAI,CAACgB,MAAM,EAAE,CAAA;AAIxBO,IAAAA,aAAa,IAAAxC,oBAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG,IAAI,CAAA;IAIpBwC,SAAS,IAAAvC,yBAAA,CAAA,IAAA,CAAA,EAAAC,eAAA,OAAGc,IAAI,CAACgB,MAAM,EAAE,CAAA;AAIzBS,IAAAA,IAAI,IAAAtC,qBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;AAET,IAAA,KAAK,IAAAC,gBAAA,CAAA,IAAA,CAAA,EAAG,EAAE;AAEV,IAAA,QAAQ,GAAGW,IAAI,CAACgB,MAAM,EAAE;;AAExB;AACF;AACA;AAGEU,IAAAA,UAAUA,GACV;MACE,IAAI,CAACC,IAAI,EAAE;AACX,MAAA,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC;AACnB,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AAGEC,IAAAA,MAAMA,GACN;AACE,MAAA,MAAMJ,IAAI,GAAG,IAAI,CAACA,IAAI;AACtB,MAAA,MAAMP,MAAM,GAAG,IAAI,CAACA,MAAM;AAC1B,MAAA,OAAOA,MAAM,KAAKO,IAAI,CAACP,MAAM,GAAGO,IAAI,CAACA,IAAI,CAACP,MAAM,GAAG,CAAC,CAAC,CAACY,IAAI,GAAG,CAAC,CAAC;AACjE,IAAA;;AAEA;AACF;AACA;IAGEF,WAAWA,CAACE,IAAI,EAChB;MACE,IAAI,CAACC,UAAU,CAACD,IAAI,EAAE,IAAI,CAACf,YAAY,CAAC;AAC1C,IAAA;;AAEA;AACF;AACA;AAGEgB,IAAAA,UAAUA,CAACC,KAAK,EAAEC,GAAG,EACrB;AACE,MAAA,MAAMC,UAAU,GAAGnE,mBAAkB,CAAC,cAAc,CAAC,IAAI,CAACwD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC;MACpF,IAAI,CAACW,UAAU,EACf;AACE,QAAA,OAAOlC,IAAI,CAACmC,QAAQ,CAACF,GAAG,CAAC;AAC3B,MAAA;AACA;AACA;AACAjC,MAAAA,IAAI,CAACoC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAEF,UAAU,EAAE,IAAI,CAACV,SAAS,CAAC;MACxD,MAAMa,cAAc,GAAGtE,mBAAkB,CAAC,0BAA0B,CAAC,IAAI,CAACwD,aAAa,CAAC;MACxF,OAAOc,cAAc,GAAGrC,IAAI,CAACoC,QAAQ,CAACH,GAAG,EAAEI,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAGrC,IAAI,CAACsC,IAAI,CAACL,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC3G,IAAA;;AAEA;AACF;AACA;AAGEM,IAAAA,QAAQA,CAACT,IAAI,EAAEG,GAAG,EAClB;AACE,MAAA,OAAO,IAAI,CAACF,UAAU,CAACD,IAAI,EAAEG,GAAG,CAAC;AACnC,IAAA;;AAEA;AACF;AACA;AAGEN,IAAAA,IAAIA,GACJ;AACE,MAAA,MAAMF,IAAI,GAAG,IAAI,CAACA,IAAI;AACtBA,MAAAA,IAAI,CAACe,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACX,IAAI,GAAGY,CAAC,CAACZ,IAAI,CAAC;MACpC,MAAMa,OAAO,GAAGlB,IAAI,CAACmB,EAAE,CAAC,EAAE,CAAC;AAC3B,MAAA,MAAM1B,MAAM,GAAG,IAAI,CAACA,MAAM;AAC1B,MAAA,IAAIyB,OAAO,IAAIA,OAAO,CAACb,IAAI,GAAGZ,MAAM,EACpC;AACE,QAAA,MAAM2B,cAAc,GAAG,IAAI,CAAC3B,MAAM;QAClClB,IAAI,CAACsC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAChB,QAAQ,CAAC;AACvC,QAAA,IAAI,CAACJ,MAAM,GAAGyB,OAAO,CAACb,IAAI;QAC1B9B,IAAI,CAACsC,IAAI,CAAC,IAAI,CAAChB,QAAQ,EAAEqB,OAAO,CAACG,KAAK,CAAC;QACvC,IAAID,cAAc,GAAG,CAAC,EACtB;UACEF,OAAO,CAACb,IAAI,GAAGe,cAAc;UAC7B7C,IAAI,CAACsC,IAAI,CAACK,OAAO,CAACG,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;AACzC,QAAA;AACF,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AAGEC,IAAAA,MAAMA,CAACjB,IAAI,EAAEgB,KAAK,GAAG,IAAI,EACzB;AACE,MAAA,MAAME,QAAQ,GAAGF,KAAK,IAAI/E,mBAAkB,CAAC,eAAe;AAC5D,MAAA,MAAM0D,IAAI,GAAG,IAAI,CAACA,IAAI;AACtB,MAAA,KAAK,IAAIwB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACxB,IAAI,CAACP,MAAM,EAAE+B,CAAC,EAAE,EACzC;AACE,QAAA,MAAMC,GAAG,GAAGzB,IAAI,CAACwB,CAAC,CAAC;AACnB,QAAA,IAAIC,GAAG,CAACpB,IAAI,KAAKA,IAAI,EACrB;UACE9B,IAAI,CAACsC,IAAI,CAACY,GAAG,CAACJ,KAAK,EAAEE,QAAQ,CAAC;AAC9B,UAAA,OAAOC,CAAC;AACV,QAAA;AACF,MAAA;AACA,MAAA,MAAMC,GAAG,GAAG,IAAIC,aAAY,EAAE;MAC9BD,GAAG,CAACpB,IAAI,GAAGA,IAAI;MACf9B,IAAI,CAACsC,IAAI,CAACY,GAAG,CAACJ,KAAK,EAAEE,QAAQ,CAAC;MAC9BjF,mBAAkB,CAAC,kBAAkB,CAACqF,GAAG,CAACF,GAAG,EAAEtF,gBAAgB,CAAC;AAChE6D,MAAAA,IAAI,CAAC4B,IAAI,CAACH,GAAG,CAAC;MACd,IAAI,CAACvB,IAAI,EAAE;AACX,MAAA,OAAOF,IAAI,CAAC6B,OAAO,CAACJ,GAAG,CAAC;AAC1B,IAAA;;AAEA;AAGAK,IAAAA,WAAWA,GACX;AACE,MAAA,OAAO,IAAI,CAAC9B,IAAI,CAACP,MAAM;AACzB,IAAA;;AAEA;IAGAsC,UAAUA,CAACC,KAAK,EAChB;AACE,MAAA,OAAOC,MAAM,CAAC,IAAI,CAACjC,IAAI,CAACgC,KAAK,CAAC,EAAE3B,IAAI,IAAI,IAAI,CAACZ,MAAM,CAAC;AACtD,IAAA;;AAEA;AAGAyC,IAAAA,UAAUA,CAACF,KAAK,EAAE3B,IAAI,EACtB;AACE,MAAA,IAAI,IAAI,CAACL,IAAI,CAACgC,KAAK,CAAC,EACpB;QACE,IAAI,CAAChC,IAAI,CAACgC,KAAK,CAAC,CAAC3B,IAAI,GAAG4B,MAAM,CAAC5B,IAAI,CAAC;AACtC,MAAA;AACF,IAAA;;AAEA;IAIA8B,WAAWA,CAACH,KAAK,EACjB;AACE,MAAA,OAAOzD,IAAI,CAAC6D,KAAK,CAAC,IAAI,CAACpC,IAAI,CAACgC,KAAK,CAAC,EAAEX,KAAK,IAAI,IAAI,CAACxB,QAAQ,CAAC;AAC7D,IAAA;;AAEA;AAIAwC,IAAAA,WAAWA,CAACL,KAAK,EAAEX,KAAK,EACxB;AACE,MAAA,IAAI,IAAI,CAACrB,IAAI,CAACgC,KAAK,CAAC,EACpB;AACE,QAAA,IAAI,CAACM,WAAW,CAACjB,KAAK,EAAE,EAAE,CAAC,EAC3B;AACE,UAAA,MAAM,IAAIkB,SAAS,CAAC,8CAA8C,CAAC;AACrE,QAAA;AACAhE,QAAAA,IAAI,CAACsC,IAAI,CAAC,IAAI,CAACb,IAAI,CAACgC,KAAK,CAAC,CAACX,KAAK,EAAEA,KAAK,CAAC;AAC1C,MAAA;AACF,IAAA;;AAEA;IAGAmB,mBAAmBA,CAACR,KAAK,EACzB;AACE,MAAA,MAAMP,GAAG,GAAG,IAAI,CAACzB,IAAI,CAACgC,KAAK,CAAC;AAC5B,MAAA,OAAOP,GAAG,GACNnF,mBAAkB,CAAC,kBAAkB,CAACmG,GAAG,CAAChB,GAAG,CAAC,IAAItF,gBAAgB,GAClEA,gBAAgB;AACtB,IAAA;;AAEA;AAGAuG,IAAAA,mBAAmBA,CAACV,KAAK,EAAEW,aAAa,EACxC;AACE,MAAA,MAAMlB,GAAG,GAAG,IAAI,CAACzB,IAAI,CAACgC,KAAK,CAAC;AAC5B,MAAA,IAAIP,GAAG,EACP;AACEnF,QAAAA,mBAAkB,CAAC,kBAAkB,CAACqF,GAAG,CAACF,GAAG,EAAEmB,IAAI,CAACC,KAAK,CAACZ,MAAM,CAACU,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;AACzF,MAAA;AACF,IAAA;;AAEA;AACF;AACA;IAGEG,SAASA,CAACd,KAAK,EACf;AACE,MAAA,IAAIC,MAAM,CAACc,SAAS,CAACf,KAAK,CAAC,IAAIA,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG,IAAI,CAAChC,IAAI,CAACP,MAAM,EACrE;AACE,QAAA,MAAM,CAACgC,GAAG,CAAC,GAAG,IAAI,CAACzB,IAAI,CAACgD,MAAM,CAAChB,KAAK,EAAE,CAAC,CAAC;AACxC1F,QAAAA,mBAAkB,CAAC,kBAAkB,CAAC2G,MAAM,CAACxB,GAAG,CAAC;QACjD,IAAI,CAACvB,IAAI,EAAE;AACb,MAAA;AACF,IAAA;;AAEA;AACF;AACA;IAGEgD,OAAOA,CAACC,IAAI,EACZ;AACE,MAAA,IAAI,CAAC,KAAK,GAAGA,IAAI;AACnB,IAAA;;AAEA;AACF;AACA;AAGEC,IAAAA,OAAOA,GACP;MACE,OAAO,IAAI,CAAC,KAAK;AACnB,IAAA;;AAEA;AACF;AACA;AACA;AACA;IACEC,aAAaA,CAAChD,IAAI,EAClB;AACE,MAAA,MAAML,IAAI,GAAG,IAAI,CAACA,IAAI;AACtB,MAAA,IAAI,CAAC,IAAI,CAACA,IAAI,CAACP,MAAM,EACrB;AACE,QAAA,OAAO,IAAI;AACb,MAAA;AACA,MAAA,IAAI6D,IAAI,GAAGtD,IAAI,CAAC,CAAC,CAAC;AAClB,MAAA,KAAK,MAAMyB,GAAG,IAAIzB,IAAI,EACtB;AACE,QAAA,IAAIyB,GAAG,CAACpB,IAAI,IAAIA,IAAI,EACpB;AACEiD,UAAAA,IAAI,GAAG7B,GAAG;AACZ,QAAA,CAAC,MAED;AACE,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA,OAAO6B,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;;AAoBE;AACF;AACA;AACA;GAUC;AAjVQ,EAAA,eAAe,GAAG/E,IAAI,CAACgB,MAAM,EAAE;AAE/B,EAAA,kBAAkB,GAAG,IAAIgE,OAAO,EAAE;AA+SlC,EAAA,cAAcC,CAAC1D,aAAa,EAAEqD,IAAI,EACzC;AACE,IAAA,IAAI,CAACrD,aAAa,IAAI,CAACqD,IAAI,EAC3B;AACE,MAAA,OAAO,IAAI;AACb,IAAA;AACA,IAAA,IAAI,OAAOrD,aAAa,KAAK,QAAQ,IAAI,eAAe,IAAIA,aAAa,IAAI,OAAOA,aAAa,CAAC2D,aAAa,KAAK,UAAU,EAC9H;AACE,MAAA,MAAMpC,KAAK,GAAGvB,aAAa,CAAC2D,aAAa,CAACN,IAAI,CAAC;MAC/C,OAAOb,WAAW,CAACjB,KAAK,EAAE,EAAE,CAAC,GAAGA,KAAK,GAAG,IAAI;AAC9C,IAAA;AACA,IAAA,IAAI,OAAOvB,aAAa,KAAK,QAAQ,IAAI,kBAAkB,IAAIA,aAAa,IAAI,OAAOA,aAAa,CAAC4D,gBAAgB,KAAK,UAAU,EACpI;AACE,MAAA,MAAMrC,KAAK,GAAGvB,aAAa,CAAC4D,gBAAgB,CAACP,IAAI,CAAC;MAClD,OAAOb,WAAW,CAACjB,KAAK,EAAE,EAAE,CAAC,GAAGA,KAAK,GAAG,IAAI;AAC9C,IAAA;AACA,IAAA,OAAO,IAAI;AACb,EAAA;EAMO,0BAA0BsC,CAAC7D,aAAa,EAC/C;AACE,IAAA,IAAIA,aAAa,IAAI,OAAOA,aAAa,KAAK,QAAQ,IAAI,cAAc,IAAIA,aAAa,IAAI,OAAOA,aAAa,CAAC8D,YAAY,KAAK,UAAU,EAC7I;AACE,MAAA,MAAMvC,KAAK,GAAGvB,aAAa,CAAC8D,YAAY,EAAE;MAC1C,OAAOtB,WAAW,CAACjB,KAAK,EAAE,EAAE,CAAC,GAAGA,KAAK,GAAG,IAAI;AAC9C,IAAA;AACA,IAAA,OAAO,IAAI;AACb,EAAA;EAACwC,WAAAA,GAAA;IAAA,KAAA,CAAAzH,mBAAA,GAAA2B,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
@@ -5,6 +5,12 @@ import { io, type, carbon, impl, schema } from '@carbonenginejs/runtime-utils/sc
5
5
  import { Tr2FollowCurveKeyInterpolation } from './enums.js';
6
6
 
7
7
  let _initProto, _initClass, _init_interpolation, _init_extra_interpolation, _init_fovMultiplication, _init_extra_fovMultiplication, _init_offset, _init_extra_offset, _init_enabled, _init_extra_enabled, _init_name, _init_extra_name, _init_angleZero, _init_extra_angleZero, _init_angle, _init_extra_angle, _init_objectBounds, _init_extra_objectBounds, _init_leftTangent, _init_extra_leftTangent, _init_boxPosition, _init_extra_boxPosition, _init_rightTangent, _init_extra_rightTangent, _init_rotatedLeftTangent, _init_extra_rotatedLeftTangent, _init_rotatedRightTangent, _init_extra_rotatedRightTangent, _init_time, _init_extra_time;
8
+
9
+ /**
10
+ * Key of a camera follow curve, holding the camera offset and its tangents plus
11
+ * the field-of-view multiplier and framing angles used to place the camera box
12
+ * at that point in time.
13
+ */
8
14
  let _Tr2CameraFollowCurve;
9
15
  new class extends _identity {
10
16
  static [class Tr2CameraFollowCurveKey extends CjsModel {
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2CameraFollowCurveKey.js","sources":["../../../src/curves/Tr2CameraFollowCurveKey.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2FollowCurveKey.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2FollowCurveKey.cpp\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { Tr2FollowCurveKeyInterpolation } from \"./enums.js\";\r\n\r\n\r\n@type.define({\r\n className: \"Tr2CameraFollowCurveKey\",\r\n family: \"curves\"\r\n})\r\nexport class Tr2CameraFollowCurveKey extends CjsModel\r\n{\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Tr2FollowCurveKeyInterpolation\")\r\n interpolation = Tr2FollowCurveKeyInterpolation.LINEAR;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n fovMultiplication = 0.5;\r\n\r\n @io.persist\r\n @type.vec3\r\n offset = vec3.create();\r\n\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n enabled = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.float32\r\n angleZero = Math.PI / 2;\r\n\r\n @io.persist\r\n @type.float32\r\n angle = 0;\r\n\r\n @io.readwrite\r\n @type.vec3\r\n objectBounds = vec3.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n leftTangent = vec3.create();\r\n\r\n @io.read\r\n @type.vec3\r\n boxPosition = vec3.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n rightTangent = vec3.create();\r\n\r\n @io.read\r\n @type.vec3\r\n rotatedLeftTangent = vec3.create();\r\n\r\n @io.read\r\n @type.vec3\r\n rotatedRightTangent = vec3.create();\r\n\r\n @io.persist\r\n @type.float32\r\n time = 0;\r\n\r\n /**\r\n * Initializes derived camera-box values.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.CalculateBoxPosition();\r\n return true;\r\n }\r\n\r\n /**\r\n * Recalculates derived values after modification.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n OnModified(_options = {})\r\n {\r\n this.fovMultiplication = Math.min(0.999, Math.max(0.001, this.fovMultiplication));\r\n this.CalculateBoxPosition();\r\n return true;\r\n }\r\n\r\n /**\r\n * Updates camera box/tangent positions.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateBoxPosition()\r\n {\r\n vec3.copy(this.boxPosition, this.offset);\r\n vec3.copy(this.rotatedLeftTangent, this.leftTangent);\r\n vec3.copy(this.rotatedRightTangent, this.rightTangent);\r\n }\r\n\r\n /**\r\n * Gets key value.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetValue(out)\r\n {\r\n this.CalculateBoxPosition();\r\n return vec3.copy(out, this.boxPosition);\r\n }\r\n\r\n /**\r\n * Gets key time.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTime()\r\n {\r\n return this.time;\r\n }\r\n\r\n /**\r\n * Gets key interpolation.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetInterpolationType()\r\n {\r\n return this.interpolation;\r\n }\r\n\r\n /**\r\n * Gets left tangent.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLeftTangent(out)\r\n {\r\n return vec3.copy(out, this.rotatedLeftTangent);\r\n }\r\n\r\n /**\r\n * Gets right tangent.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetRightTangent(out)\r\n {\r\n return vec3.copy(out, this.rotatedRightTangent);\r\n }\r\n\r\n static Tr2FollowCurveKeyInterpolation = Tr2FollowCurveKeyInterpolation;\r\n\r\n}\r\n"],"names":["_Tr2CameraFollowCurve","_identity","Tr2CameraFollowCurveKey","CjsModel","e","_init_interpolation","_init_extra_interpolation","_init_fovMultiplication","_init_extra_fovMultiplication","_init_offset","_init_extra_offset","_init_enabled","_init_extra_enabled","_init_name","_init_extra_name","_init_angleZero","_init_extra_angleZero","_init_angle","_init_extra_angle","_init_objectBounds","_init_extra_objectBounds","_init_leftTangent","_init_extra_leftTangent","_init_boxPosition","_init_extra_boxPosition","_init_rightTangent","_init_extra_rightTangent","_init_rotatedLeftTangent","_init_extra_rotatedLeftTangent","_init_rotatedRightTangent","_init_extra_rotatedRightTangent","_init_time","_init_extra_time","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","notify","float32","vec3","readwrite","boolean","string","read","carbon","method","impl","adapted","implemented","constructor","args","interpolation","Tr2FollowCurveKeyInterpolation","LINEAR","fovMultiplication","offset","create","enabled","name","angleZero","Math","PI","angle","objectBounds","leftTangent","boxPosition","rightTangent","rotatedLeftTangent","rotatedRightTangent","time","Initialize","CalculateBoxPosition","OnModified","_options","min","max","copy","GetValue","out","GetTime","GetInterpolationType","GetLeftTangent","GetRightTangent"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2CameraFollowCurveKey.js","sources":["../../../src/curves/Tr2CameraFollowCurveKey.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2FollowCurveKey.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Curves\\Tr2FollowCurveKey.cpp\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { Tr2FollowCurveKeyInterpolation } from \"./enums.js\";\r\n\r\n\r\n/**\r\n * Key of a camera follow curve, holding the camera offset and its tangents plus\r\n * the field-of-view multiplier and framing angles used to place the camera box\r\n * at that point in time.\r\n */\r\n@type.define({\r\n className: \"Tr2CameraFollowCurveKey\",\r\n family: \"curves\"\r\n})\r\nexport class Tr2CameraFollowCurveKey extends CjsModel\r\n{\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"Tr2FollowCurveKeyInterpolation\")\r\n interpolation = Tr2FollowCurveKeyInterpolation.LINEAR;\r\n\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n fovMultiplication = 0.5;\r\n\r\n @io.persist\r\n @type.vec3\r\n offset = vec3.create();\r\n\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n enabled = true;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.float32\r\n angleZero = Math.PI / 2;\r\n\r\n @io.persist\r\n @type.float32\r\n angle = 0;\r\n\r\n @io.readwrite\r\n @type.vec3\r\n objectBounds = vec3.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n leftTangent = vec3.create();\r\n\r\n @io.read\r\n @type.vec3\r\n boxPosition = vec3.create();\r\n\r\n @io.persist\r\n @type.vec3\r\n rightTangent = vec3.create();\r\n\r\n @io.read\r\n @type.vec3\r\n rotatedLeftTangent = vec3.create();\r\n\r\n @io.read\r\n @type.vec3\r\n rotatedRightTangent = vec3.create();\r\n\r\n @io.persist\r\n @type.float32\r\n time = 0;\r\n\r\n /**\r\n * Initializes derived camera-box values.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n this.CalculateBoxPosition();\r\n return true;\r\n }\r\n\r\n /**\r\n * Recalculates derived values after modification.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n OnModified(_options = {})\r\n {\r\n this.fovMultiplication = Math.min(0.999, Math.max(0.001, this.fovMultiplication));\r\n this.CalculateBoxPosition();\r\n return true;\r\n }\r\n\r\n /**\r\n * Updates camera box/tangent positions.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateBoxPosition()\r\n {\r\n vec3.copy(this.boxPosition, this.offset);\r\n vec3.copy(this.rotatedLeftTangent, this.leftTangent);\r\n vec3.copy(this.rotatedRightTangent, this.rightTangent);\r\n }\r\n\r\n /**\r\n * Gets key value.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetValue(out)\r\n {\r\n this.CalculateBoxPosition();\r\n return vec3.copy(out, this.boxPosition);\r\n }\r\n\r\n /**\r\n * Gets key time.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTime()\r\n {\r\n return this.time;\r\n }\r\n\r\n /**\r\n * Gets key interpolation.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetInterpolationType()\r\n {\r\n return this.interpolation;\r\n }\r\n\r\n /**\r\n * Gets left tangent.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLeftTangent(out)\r\n {\r\n return vec3.copy(out, this.rotatedLeftTangent);\r\n }\r\n\r\n /**\r\n * Gets right tangent.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetRightTangent(out)\r\n {\r\n return vec3.copy(out, this.rotatedRightTangent);\r\n }\r\n\r\n static Tr2FollowCurveKeyInterpolation = Tr2FollowCurveKeyInterpolation;\r\n\r\n}\r\n"],"names":["_Tr2CameraFollowCurve","_identity","Tr2CameraFollowCurveKey","CjsModel","e","_init_interpolation","_init_extra_interpolation","_init_fovMultiplication","_init_extra_fovMultiplication","_init_offset","_init_extra_offset","_init_enabled","_init_extra_enabled","_init_name","_init_extra_name","_init_angleZero","_init_extra_angleZero","_init_angle","_init_extra_angle","_init_objectBounds","_init_extra_objectBounds","_init_leftTangent","_init_extra_leftTangent","_init_boxPosition","_init_extra_boxPosition","_init_rightTangent","_init_extra_rightTangent","_init_rotatedLeftTangent","_init_extra_rotatedLeftTangent","_init_rotatedRightTangent","_init_extra_rotatedRightTangent","_init_time","_init_extra_time","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","schema","enum","notify","float32","vec3","readwrite","boolean","string","read","carbon","method","impl","adapted","implemented","constructor","args","interpolation","Tr2FollowCurveKeyInterpolation","LINEAR","fovMultiplication","offset","create","enabled","name","angleZero","Math","PI","angle","objectBounds","leftTangent","boxPosition","rightTangent","rotatedLeftTangent","rotatedRightTangent","time","Initialize","CalculateBoxPosition","OnModified","_options","min","max","copy","GetValue","out","GetTime","GetInterpolationType","GetLeftTangent","GetRightTangent"],"mappings":"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"}
@@ -8,6 +8,12 @@ import { Tr2CurveScalar as _Tr2CurveScalar } from './Tr2CurveScalar.js';
8
8
 
9
9
  let _initProto, _initClass, _init_name, _init_extra_name, _init_srgbOutput, _init_extra_srgbOutput, _init_r, _init_extra_r, _init_g, _init_extra_g, _init_b, _init_extra_b, _init_a, _init_extra_a, _init_timeOffset, _init_extra_timeOffset, _init_currentValue, _init_extra_currentValue;
10
10
  const CLAMP_MIN = vec4.create();
11
+
12
+ /**
13
+ * Color curve composed of four independent scalar curves for r, g, b and a,
14
+ * sampled at time minus timeOffset; an empty alpha curve yields 1, and the
15
+ * result is converted to gamma space when srgbOutput is set.
16
+ */
11
17
  let _Tr2CurveColor;
12
18
  class Tr2CurveColor extends CjsModel {
13
19
  static {