@haiyue/extensions 0.1.0 → 0.2.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 (269) hide show
  1. package/README.md +25 -0
  2. package/dist/animation/Animation2DComponent.d.ts +18 -0
  3. package/dist/animation/Animation2DExtensionRegistry.d.ts +7 -0
  4. package/dist/animation/Animation2DRenderSystem.d.ts +6 -0
  5. package/dist/animation/Animation2DRuntime.d.ts +6 -2
  6. package/dist/animation/AnimationTextRasterizer.d.ts +4 -0
  7. package/dist/animation/AnimationVisual2D.d.ts +58 -2
  8. package/dist/animation/interaction/InteractionRuntime.d.ts +83 -0
  9. package/dist/animation/interaction/runtime-types.d.ts +257 -0
  10. package/dist/animation.d.ts +3 -1
  11. package/dist/animation.js +551 -59
  12. package/dist/animation3d.js +1 -1
  13. package/dist/canvas-text.js +1 -1
  14. package/dist/chunks/2d-ui-animation-2d.generated-FpziAeGJ.js +4 -0
  15. package/dist/chunks/2d-ui-indexed-sprite.generated-DmKR0CC3.js +4 -0
  16. package/dist/chunks/Animation2DStateMachine-BHcA6Cu3.js +18212 -0
  17. package/dist/chunks/{AnimationStateMachineController-BIcAh-sT.js → AnimationStateMachineController-4sKaqh9E.js} +2 -2
  18. package/dist/chunks/AnimationVisual2D-8y3qp0_U.js +230 -0
  19. package/dist/chunks/{RenderSystem2DBase-DDT61dAu.js → RenderSystem2DBase-CF2s00vg.js} +2 -2
  20. package/dist/controls/VirtualJoystickControls.d.ts +46 -0
  21. package/dist/controls/contracts.d.ts +91 -0
  22. package/dist/controls.d.ts +2 -0
  23. package/dist/controls.js +358 -0
  24. package/dist/deformable-animation/runtime/DeformableMesh2DRuntimeExtension.d.ts +11 -0
  25. package/dist/deformable-animation/runtime/DeformableMesh2DSampler.d.ts +11 -0
  26. package/dist/deformable-animation.d.ts +5 -0
  27. package/dist/deformable-animation.js +316 -0
  28. package/dist/experimental-indexed-sprite.d.ts +5 -0
  29. package/dist/experimental-indexed-sprite.js +482 -0
  30. package/dist/gltf-worker-runtime.js +9 -9
  31. package/dist/hya-state-machine.js +3 -2
  32. package/dist/index.js +1 -1
  33. package/dist/indexed-sprite/AtlasLayout.d.ts +2 -0
  34. package/dist/indexed-sprite/IndexedSpriteRenderer.d.ts +23 -0
  35. package/dist/indexed-sprite/contracts.d.ts +89 -0
  36. package/dist/internal/2d-ui-shader-artifact.js +232 -23
  37. package/dist/ray-tracing/acceleration/bvh.d.ts +37 -0
  38. package/dist/ray-tracing/acceleration/index.d.ts +6 -0
  39. package/dist/ray-tracing/acceleration/pack.d.ts +152 -0
  40. package/dist/ray-tracing/acceleration/query.d.ts +4 -0
  41. package/dist/ray-tracing/acceleration/runtime.d.ts +30 -0
  42. package/dist/ray-tracing/acceleration/tlas.d.ts +4 -0
  43. package/dist/ray-tracing/acceleration/types.d.ts +165 -0
  44. package/dist/ray-tracing/denoise/index.d.ts +3 -0
  45. package/dist/ray-tracing/denoise/layout.d.ts +9 -0
  46. package/dist/ray-tracing/denoise/runtime.d.ts +23 -0
  47. package/dist/ray-tracing/denoise/types.d.ts +28 -0
  48. package/dist/ray-tracing/hybrid/contract.d.ts +2 -0
  49. package/dist/ray-tracing/hybrid/index.d.ts +5 -0
  50. package/dist/ray-tracing/hybrid/layout.d.ts +17 -0
  51. package/dist/ray-tracing/hybrid/plan.d.ts +2 -0
  52. package/dist/ray-tracing/hybrid/runtime.d.ts +31 -0
  53. package/dist/ray-tracing/hybrid/shaders/hybrid-artifact.generated.d.ts +625 -0
  54. package/dist/ray-tracing/hybrid/types.d.ts +144 -0
  55. package/dist/ray-tracing/lifecycle/device-recovery.d.ts +31 -0
  56. package/dist/ray-tracing/lifecycle/index.d.ts +2 -0
  57. package/dist/ray-tracing/lifecycle/types.d.ts +37 -0
  58. package/dist/ray-tracing/material/index.d.ts +2 -0
  59. package/dist/ray-tracing/material/pack.d.ts +5 -0
  60. package/dist/ray-tracing/material/types.d.ts +63 -0
  61. package/dist/ray-tracing/reference/index.d.ts +122 -0
  62. package/dist/ray-tracing/renderer/index.d.ts +7 -0
  63. package/dist/ray-tracing/renderer/layout.d.ts +20 -0
  64. package/dist/ray-tracing/renderer/plan.d.ts +2 -0
  65. package/dist/ray-tracing/renderer/reference.d.ts +17 -0
  66. package/dist/ray-tracing/renderer/runtime.d.ts +39 -0
  67. package/dist/ray-tracing/renderer/scene.d.ts +4 -0
  68. package/dist/ray-tracing/renderer/types.d.ts +115 -0
  69. package/dist/ray-tracing/sampling/index.d.ts +8 -0
  70. package/dist/ray-tracing/sampling/layout.d.ts +12 -0
  71. package/dist/ray-tracing/sampling/plan.d.ts +5 -0
  72. package/dist/ray-tracing/sampling/revision.d.ts +15 -0
  73. package/dist/ray-tracing/sampling/runtime.d.ts +44 -0
  74. package/dist/ray-tracing/sampling/sequence.d.ts +2 -0
  75. package/dist/ray-tracing/sampling/types.d.ts +96 -0
  76. package/dist/ray-tracing/scene/index.d.ts +41 -0
  77. package/dist/ray-tracing/traversal/index.d.ts +4 -0
  78. package/dist/ray-tracing/traversal/layout.d.ts +16 -0
  79. package/dist/ray-tracing/traversal/plan.d.ts +2 -0
  80. package/dist/ray-tracing/traversal/runtime.d.ts +25 -0
  81. package/dist/ray-tracing/traversal/types.d.ts +79 -0
  82. package/dist/ray-tracing/worker/client.d.ts +25 -0
  83. package/dist/ray-tracing/worker/index.d.ts +5 -0
  84. package/dist/ray-tracing/worker/runtime.d.ts +11 -0
  85. package/dist/ray-tracing/worker/serialization.d.ts +16 -0
  86. package/dist/ray-tracing/worker/source.d.ts +1 -0
  87. package/dist/ray-tracing/worker/types.d.ts +91 -0
  88. package/dist/ray-tracing.d.ts +17 -0
  89. package/dist/ray-tracing.js +7666 -0
  90. package/dist/spine.js +1 -1
  91. package/dist/tilemap.js +1 -1
  92. package/package.json +26 -23
  93. package/dist/animation/Animation2DStateMachineVisualRuntime.d.ts +0 -27
  94. package/dist/animation/Particle2DDescriptorAdapter.d.ts +0 -5
  95. package/dist/animation3d/Animation3DResource.d.ts +0 -28
  96. package/dist/animation3d/hya/HyaAnimation3DStateMachineRuntime.d.ts +0 -65
  97. package/dist/animation3d/hya/index.d.ts +0 -4
  98. package/dist/animation3d/runtime/integration/Animation3DStateMachineMixerAdapter.d.ts +0 -81
  99. package/dist/animation3d/runtime/integration/Animation3DStateMachineMixerIntegration.d.ts +0 -39
  100. package/dist/animation3d/runtime/integration/index.d.ts +0 -2
  101. package/dist/animation3d/runtime/mixer/Action.d.ts +0 -150
  102. package/dist/animation3d/runtime/mixer/Animation3DMixerRuntimeStore.d.ts +0 -6
  103. package/dist/animation3d/runtime/mixer/Mixer.d.ts +0 -59
  104. package/dist/animation3d/runtime/mixer/PoseBuffer.d.ts +0 -1
  105. package/dist/animation3d/runtime/mixer/TrackSampler.d.ts +0 -24
  106. package/dist/animation3d/runtime/mixer/index.d.ts +0 -4
  107. package/dist/animation3d/runtime/state-machine/Animation3DBlendTreeWeights.d.ts +0 -1
  108. package/dist/animation3d/runtime/state-machine/Animation3DStateMachineCompiler.d.ts +0 -1
  109. package/dist/animation3d/runtime/state-machine/Animation3DStateMachineController.d.ts +0 -1
  110. package/dist/animation3d/runtime/state-machine/Animation3DStateMachineMixerPort.d.ts +0 -1
  111. package/dist/animation3d/runtime/state-machine/index.d.ts +0 -6
  112. package/dist/benchmark.d.ts +0 -30
  113. package/dist/chunks/2d-ui-animation-2d.generated-D4aHzFU2.js +0 -4
  114. package/dist/chunks/Animation2DStateMachine-9IonguNa.js +0 -3245
  115. package/dist/gltf/GltfAccessorReader.d.ts +0 -7
  116. package/dist/gltf/GltfDracoDecoder.d.ts +0 -4
  117. package/dist/gltf/GltfLoaderErrors.d.ts +0 -4
  118. package/dist/gltf/GltfMaterialDescriptor.d.ts +0 -23
  119. package/dist/gltf/GltfMaterialLoader.d.ts +0 -6
  120. package/dist/gltf-worker-runtime.d.ts +0 -7
  121. package/dist/plugins/pluginUtils.d.ts +0 -20
  122. package/dist/plugins.d.ts +0 -6
  123. package/dist/shaders/generated/2d-ui-artifact.generated.d.ts +0 -658
  124. package/dist/spine/Spine2DGpuRenderer.d.ts +0 -65
  125. package/dist/spine/Spine2DRuntime.d.ts +0 -103
  126. package/dist/spine/SpineAnimationBoneTimelines.d.ts +0 -8
  127. package/dist/spine/SpineFloatBuilder.d.ts +0 -15
  128. package/dist/spine/SpinePathConstraintSolver.d.ts +0 -32
  129. package/dist/spine/SpineSkeletonRuntime.d.ts +0 -185
  130. package/dist/spine/SpineSlotAnimation.d.ts +0 -17
  131. package/dist/spine/SpineTimelineRuntime.d.ts +0 -25
  132. package/dist/spine/SpineVertexBuilder.d.ts +0 -61
  133. package/dist/tilemap/Tilemap2DRenderer.d.ts +0 -24
  134. package/dist/utils/arrayAccess.d.ts +0 -4
  135. package/dist/utils/camera2d.d.ts +0 -12
  136. package/src/animation/Animation2DComponent.ts +0 -135
  137. package/src/animation/Animation2DExtensionRegistry.ts +0 -52
  138. package/src/animation/Animation2DRenderSystem.ts +0 -1026
  139. package/src/animation/Animation2DRuntime.ts +0 -1326
  140. package/src/animation/Animation2DStateMachine.ts +0 -39
  141. package/src/animation/Animation2DStateMachineComponent.ts +0 -228
  142. package/src/animation/Animation2DStateMachineRuntime.ts +0 -141
  143. package/src/animation/Animation2DStateMachineSystem.ts +0 -60
  144. package/src/animation/Animation2DStateMachineVisualRuntime.ts +0 -282
  145. package/src/animation/Animation2DSystem.ts +0 -72
  146. package/src/animation/AnimationAssetLoader.ts +0 -84
  147. package/src/animation/AnimationAudioClip.ts +0 -140
  148. package/src/animation/AnimationPathTessellator.ts +0 -691
  149. package/src/animation/AnimationTextRasterizer.ts +0 -340
  150. package/src/animation/AnimationVisual2D.ts +0 -153
  151. package/src/animation/HyaAnimation2DClipAdapter.ts +0 -845
  152. package/src/animation/Particle2DDescriptorAdapter.ts +0 -35
  153. package/src/animation/runtime/mixer/Action.ts +0 -876
  154. package/src/animation/runtime/mixer/Mixer.ts +0 -505
  155. package/src/animation/runtime/mixer/PoseBuffer.ts +0 -105
  156. package/src/animation/runtime/mixer/Sampler.ts +0 -252
  157. package/src/animation/runtime/mixer/Types.ts +0 -138
  158. package/src/animation/runtime/mixer/index.ts +0 -31
  159. package/src/animation-state-machine/AnimationStateMachine.ts +0 -146
  160. package/src/animation-state-machine/AnimationStateMachineChannels.ts +0 -116
  161. package/src/animation-state-machine/runtime/Animation2DStateMachineMixerAdapter.ts +0 -197
  162. package/src/animation-state-machine/runtime/AnimationStateMachineBlendTreeWeights.ts +0 -503
  163. package/src/animation-state-machine/runtime/AnimationStateMachineCompiler.ts +0 -763
  164. package/src/animation-state-machine/runtime/AnimationStateMachineController.ts +0 -987
  165. package/src/animation-state-machine/runtime/AnimationStateMachineMixerPort.ts +0 -54
  166. package/src/animation-state-machine/runtime/index.ts +0 -47
  167. package/src/animation.ts +0 -33
  168. package/src/animation3d/Animation3DAction.ts +0 -73
  169. package/src/animation3d/Animation3DBinding.ts +0 -116
  170. package/src/animation3d/Animation3DClip.ts +0 -22
  171. package/src/animation3d/Animation3DError.ts +0 -34
  172. package/src/animation3d/Animation3DMixer.ts +0 -82
  173. package/src/animation3d/Animation3DPose.ts +0 -100
  174. package/src/animation3d/Animation3DPoseBuffer.ts +0 -85
  175. package/src/animation3d/Animation3DResource.ts +0 -49
  176. package/src/animation3d/Animation3DStateMachine.ts +0 -126
  177. package/src/animation3d/Animation3DStateMachineRuntime.ts +0 -191
  178. package/src/animation3d/Animation3DTrack.ts +0 -29
  179. package/src/animation3d/hya/HyaAnimation3DRuntime.ts +0 -756
  180. package/src/animation3d/hya/HyaAnimation3DStateMachineRuntime.ts +0 -618
  181. package/src/animation3d/hya/HyaAnimation3DTypes.ts +0 -168
  182. package/src/animation3d/hya/index.ts +0 -10
  183. package/src/animation3d/index.ts +0 -76
  184. package/src/animation3d/runtime/integration/Animation3DStateMachineMixerAdapter.ts +0 -325
  185. package/src/animation3d/runtime/integration/Animation3DStateMachineMixerIntegration.ts +0 -158
  186. package/src/animation3d/runtime/integration/index.ts +0 -9
  187. package/src/animation3d/runtime/mixer/Action.ts +0 -833
  188. package/src/animation3d/runtime/mixer/Animation3DMixerRuntimeStore.ts +0 -26
  189. package/src/animation3d/runtime/mixer/Mixer.ts +0 -562
  190. package/src/animation3d/runtime/mixer/PoseBuffer.ts +0 -1
  191. package/src/animation3d/runtime/mixer/TrackSampler.ts +0 -399
  192. package/src/animation3d/runtime/mixer/index.ts +0 -8
  193. package/src/animation3d/runtime/state-machine/Animation3DBlendTreeWeights.ts +0 -4
  194. package/src/animation3d/runtime/state-machine/Animation3DStateMachineCompiler.ts +0 -1
  195. package/src/animation3d/runtime/state-machine/Animation3DStateMachineController.ts +0 -1
  196. package/src/animation3d/runtime/state-machine/Animation3DStateMachineMixerPort.ts +0 -1
  197. package/src/animation3d/runtime/state-machine/index.ts +0 -45
  198. package/src/animation3d.ts +0 -5
  199. package/src/benchmark.ts +0 -168
  200. package/src/canvas-text/CanvasText2DRenderSystem.ts +0 -292
  201. package/src/canvas-text/CanvasTextComponent.ts +0 -47
  202. package/src/canvas-text.ts +0 -4
  203. package/src/experimental-gltf-worker.ts +0 -18
  204. package/src/experimental-spine-worker.ts +0 -9
  205. package/src/gltf/GltfAccessorReader.ts +0 -271
  206. package/src/gltf/GltfAnimation3DAdapter.ts +0 -680
  207. package/src/gltf/GltfAnimationRuntime.ts +0 -392
  208. package/src/gltf/GltfAssetWorkerClient.ts +0 -136
  209. package/src/gltf/GltfCompatibilityReport.ts +0 -214
  210. package/src/gltf/GltfConservativeBounds.ts +0 -219
  211. package/src/gltf/GltfDracoDecoder.ts +0 -251
  212. package/src/gltf/GltfExtensionAdapter.ts +0 -340
  213. package/src/gltf/GltfLoaderContract.ts +0 -333
  214. package/src/gltf/GltfLoaderErrors.ts +0 -59
  215. package/src/gltf/GltfMaterialDescriptor.ts +0 -134
  216. package/src/gltf/GltfMaterialEncoder.ts +0 -173
  217. package/src/gltf/GltfMaterialLoader.ts +0 -293
  218. package/src/gltf/GltfModelComponent.ts +0 -115
  219. package/src/gltf/GltfModelSystem.ts +0 -208
  220. package/src/gltf/GltfPlugin.ts +0 -84
  221. package/src/gltf/GltfSchema.ts +0 -229
  222. package/src/gltf/GltfUvSemanticPlanner.ts +0 -166
  223. package/src/gltf/gltfLoader.ts +0 -910
  224. package/src/gltf-animation3d.ts +0 -10
  225. package/src/gltf-worker-runtime.ts +0 -10
  226. package/src/gltf.ts +0 -56
  227. package/src/grid/Grid2DComponent.ts +0 -69
  228. package/src/grid.ts +0 -2
  229. package/src/hya-state-machine.ts +0 -19
  230. package/src/index.ts +0 -2
  231. package/src/plugins/pluginUtils.ts +0 -50
  232. package/src/plugins.ts +0 -6
  233. package/src/shaders/generated/2d-ui-animation-2d.generated.wgsl +0 -242
  234. package/src/shaders/generated/2d-ui-artifact.generated.ts +0 -867
  235. package/src/shaders/generated/2d-ui-canvas-text-2d.generated.wgsl +0 -38
  236. package/src/shaders/generated/2d-ui-spine2d.generated.wgsl +0 -41
  237. package/src/shaders/generated/2d-ui-tilemap2d.generated.wgsl +0 -36
  238. package/src/spine/Spine2DComponent.ts +0 -168
  239. package/src/spine/Spine2DGpuRenderer.ts +0 -449
  240. package/src/spine/Spine2DRenderSystem.ts +0 -199
  241. package/src/spine/Spine2DRuntime.ts +0 -1529
  242. package/src/spine/SpineAnimationBoneTimelines.ts +0 -30
  243. package/src/spine/SpineAssetParser.ts +0 -20
  244. package/src/spine/SpineAssetWorkerClient.ts +0 -112
  245. package/src/spine/SpineAssetWorkerContract.ts +0 -4
  246. package/src/spine/SpineAtlasParser.ts +0 -127
  247. package/src/spine/SpineFloatBuilder.ts +0 -66
  248. package/src/spine/SpinePathConstraintSolver.ts +0 -582
  249. package/src/spine/SpinePlugin.ts +0 -76
  250. package/src/spine/SpineSkeletonRuntime.ts +0 -521
  251. package/src/spine/SpineSlotAnimation.ts +0 -195
  252. package/src/spine/SpineTimelineRuntime.ts +0 -453
  253. package/src/spine/SpineVertexBuilder.ts +0 -686
  254. package/src/spine.ts +0 -7
  255. package/src/tilemap/Tilemap2DComponent.ts +0 -232
  256. package/src/tilemap/Tilemap2DRenderSystem.ts +0 -58
  257. package/src/tilemap/Tilemap2DRenderer.ts +0 -289
  258. package/src/tilemap/TilemapPlugin.ts +0 -75
  259. package/src/tilemap.ts +0 -6
  260. package/src/tween/Tween2DComponent.ts +0 -83
  261. package/src/tween/Tween2DSystem.ts +0 -78
  262. package/src/tween.ts +0 -4
  263. package/src/types/earcut.d.ts +0 -7
  264. package/src/types/wgsl.d.ts +0 -4
  265. package/src/utils/RenderSystem2DBase.ts +0 -164
  266. package/src/utils/arrayAccess.ts +0 -17
  267. package/src/utils/camera2d.ts +0 -68
  268. package/src/utils/render2dGpu.ts +0 -132
  269. package/test/fixtures/gltf/animation-characterization.gltf +0 -344
@@ -1,49 +0,0 @@
1
- import type {
2
- AssetHandle,
3
- AssetJobPriority,
4
- AssetOwnerScope,
5
- } from '@haiyue/engine/assets';
6
- import type { Animation3DClip } from './Animation3DClip';
7
- import type {
8
- Animation3DStateMachineDefinition,
9
- } from './Animation3DStateMachine';
10
-
11
- export type Animation3DClipHandle =
12
- AssetHandle<Animation3DClip>;
13
-
14
- export type Animation3DStateMachineHandle =
15
- AssetHandle<Animation3DStateMachineDefinition>;
16
-
17
- export type Animation3DResourceSource =
18
- | Readonly<{
19
- kind: 'url';
20
- url: string;
21
- cacheKey?: string;
22
- }>
23
- | Readonly<{
24
- kind: 'buffer';
25
- data: ArrayBuffer;
26
- /** Required because ArrayBuffer identity is not a persistent cache key. */
27
- cacheKey: string;
28
- }>;
29
-
30
- export interface Animation3DResourceLoadOptions {
31
- readonly signal?: AbortSignal;
32
- readonly owner?: AssetOwnerScope;
33
- readonly priority?: AssetJobPriority | number;
34
- }
35
-
36
- /**
37
- * Contract for an AssetManager-backed loader. Implementations must return a
38
- * distinct handle per acquisition and make handle.release() idempotent.
39
- */
40
- export interface Animation3DResourceLoader {
41
- loadClip(
42
- source: Animation3DResourceSource,
43
- options?: Animation3DResourceLoadOptions,
44
- ): Promise<Animation3DClipHandle>;
45
- loadStateMachine(
46
- source: Animation3DResourceSource,
47
- options?: Animation3DResourceLoadOptions,
48
- ): Promise<Animation3DStateMachineHandle>;
49
- }
@@ -1,126 +0,0 @@
1
- import type { Animation3DBindingMask } from './Animation3DBinding.js';
2
- import type {
3
- Animation3DBlendMode,
4
- Animation3DLoopMode,
5
- } from './Animation3DAction.js';
6
-
7
- export type Animation3DParameterDefinition =
8
- | Readonly<{
9
- name: string;
10
- type: 'float';
11
- defaultValue: number;
12
- }>
13
- | Readonly<{
14
- name: string;
15
- type: 'integer';
16
- defaultValue: number;
17
- }>
18
- | Readonly<{
19
- name: string;
20
- type: 'boolean';
21
- defaultValue: boolean;
22
- }>
23
- | Readonly<{
24
- name: string;
25
- type: 'trigger';
26
- }>;
27
-
28
- export type Animation3DTransitionCondition =
29
- | Readonly<{
30
- parameter: string;
31
- operator: 'greater' | 'greater-or-equal' | 'less' | 'less-or-equal';
32
- value: number;
33
- }>
34
- | Readonly<{
35
- parameter: string;
36
- operator: 'equal' | 'not-equal';
37
- value: number | boolean;
38
- }>
39
- | Readonly<{
40
- parameter: string;
41
- operator: 'is-true' | 'is-false' | 'triggered';
42
- }>;
43
-
44
- export interface Animation3DClipMotion {
45
- readonly kind: 'clip';
46
- readonly clipId: string;
47
- }
48
-
49
- export interface Animation3DBlend1DChild {
50
- readonly threshold: number;
51
- readonly motion: Animation3DMotionDefinition;
52
- }
53
-
54
- export interface Animation3DBlend1DMotion {
55
- readonly kind: 'blend-1d';
56
- readonly parameter: string;
57
- readonly children: readonly Animation3DBlend1DChild[];
58
- }
59
-
60
- export interface Animation3DBlend2DChild {
61
- readonly position: readonly [number, number];
62
- readonly motion: Animation3DMotionDefinition;
63
- }
64
-
65
- export interface Animation3DBlend2DMotion {
66
- readonly kind: 'blend-2d';
67
- readonly algorithm: 'cartesian' | 'directional';
68
- readonly parameterX: string;
69
- readonly parameterY: string;
70
- readonly children: readonly Animation3DBlend2DChild[];
71
- }
72
-
73
- export type Animation3DMotionDefinition =
74
- | Animation3DClipMotion
75
- | Animation3DBlend1DMotion
76
- | Animation3DBlend2DMotion;
77
-
78
- export interface Animation3DStateDefinition {
79
- readonly id: string;
80
- readonly name: string;
81
- readonly motion: Animation3DMotionDefinition;
82
- readonly speed?: number;
83
- readonly speedParameter?: string;
84
- readonly loop?: Animation3DLoopMode;
85
- }
86
-
87
- export type Animation3DTransitionInterruption =
88
- | 'none'
89
- | 'source'
90
- | 'destination'
91
- | 'source-then-destination'
92
- | 'destination-then-source';
93
-
94
- export interface Animation3DTransitionDefinition {
95
- readonly id: string;
96
- /** '*' means any state in the same layer. */
97
- readonly from: string | '*';
98
- readonly to: string;
99
- readonly conditions: readonly Animation3DTransitionCondition[];
100
- readonly duration: number;
101
- readonly hasExitTime?: boolean;
102
- readonly exitTime?: number;
103
- readonly destinationOffset?: number;
104
- readonly interruption?: Animation3DTransitionInterruption;
105
- }
106
-
107
- export interface Animation3DStateMachineLayer {
108
- readonly id: string;
109
- readonly name: string;
110
- readonly initialStateId: string;
111
- readonly states: readonly Animation3DStateDefinition[];
112
- /** Declaration order is transition priority. */
113
- readonly transitions: readonly Animation3DTransitionDefinition[];
114
- readonly blendMode?: Animation3DBlendMode;
115
- readonly weight?: number;
116
- readonly mask?: Animation3DBindingMask;
117
- }
118
-
119
- /** Serializable definition; controller state is always stored separately. */
120
- export interface Animation3DStateMachineDefinition {
121
- readonly format: 'haiyue-animation3d-state-machine@1';
122
- readonly id: string;
123
- readonly name: string;
124
- readonly parameters: readonly Animation3DParameterDefinition[];
125
- readonly layers: readonly Animation3DStateMachineLayer[];
126
- }
@@ -1,191 +0,0 @@
1
- import type { Animation3DClip } from './Animation3DClip.js';
2
- import { Animation3DMixer } from './Animation3DMixer.js';
3
- import {
4
- animation3DMixerRuntime,
5
- } from './runtime/mixer/Animation3DMixerRuntimeStore.js';
6
- import type {
7
- Animation3DMutablePose,
8
- Animation3DPose,
9
- } from './Animation3DPose.js';
10
- import type { Animation3DStateMachineDefinition } from './Animation3DStateMachine.js';
11
- import {
12
- compileAnimation3DStateMachineDefinition as compileInternalDefinition,
13
- validateAnimation3DStateMachineDefinition as validateInternalDefinition,
14
- type CompiledAnimation3DStateMachine as InternalCompiledStateMachine,
15
- } from './runtime/state-machine/Animation3DStateMachineCompiler.js';
16
- import {
17
- Animation3DStateMachineMixerIntegration,
18
- } from './runtime/integration/Animation3DStateMachineMixerIntegration.js';
19
-
20
- declare const COMPILED_ANIMATION3D_STATE_MACHINE: unique symbol;
21
-
22
- /**
23
- * Opaque compiler output. Compiled nodes and lookup tables are deliberately
24
- * hidden so validation/compiler internals can evolve without expanding the
25
- * facade.
26
- */
27
- export interface Animation3DCompiledStateMachine {
28
- readonly format: 'haiyue-animation-state-machine-compiled@1';
29
- readonly id: string;
30
- readonly name: string;
31
- readonly [COMPILED_ANIMATION3D_STATE_MACHINE]: true;
32
- }
33
-
34
- export type Animation3DStateMachineValidationCode =
35
- | 'invalid-value'
36
- | 'duplicate-id'
37
- | 'missing-reference'
38
- | 'parameter-type-mismatch'
39
- | 'invalid-operator'
40
- | 'empty-blend-tree'
41
- | 'invalid-thresholds'
42
- | 'recursive-motion';
43
-
44
- export interface Animation3DStateMachineValidationIssue {
45
- readonly code: Animation3DStateMachineValidationCode;
46
- readonly path: string;
47
- readonly message: string;
48
- }
49
-
50
- export class Animation3DStateMachineValidationError extends Error {
51
- readonly issues: readonly Animation3DStateMachineValidationIssue[];
52
-
53
- constructor(issues: readonly Animation3DStateMachineValidationIssue[]) {
54
- super(
55
- `Invalid Animation3D state-machine definition (${issues.length} ${
56
- issues.length === 1 ? 'issue' : 'issues'
57
- }).`,
58
- );
59
- this.name = 'Animation3DStateMachineValidationError';
60
- this.issues = Object.freeze([...issues]);
61
- }
62
- }
63
-
64
- export function validateAnimation3DStateMachineDefinition(
65
- definition: Animation3DStateMachineDefinition,
66
- ): readonly Animation3DStateMachineValidationIssue[] {
67
- return validateInternalDefinition(definition);
68
- }
69
-
70
- export function compileAnimation3DStateMachineDefinition(
71
- definition: Animation3DStateMachineDefinition,
72
- ): Animation3DCompiledStateMachine {
73
- const issues = validateAnimation3DStateMachineDefinition(definition);
74
- if (issues.length > 0) {
75
- throw new Animation3DStateMachineValidationError(issues);
76
- }
77
- return compileInternalDefinition(definition) as unknown as Animation3DCompiledStateMachine;
78
- }
79
-
80
- export interface Animation3DStateMachineClipResolver {
81
- resolve(clipId: string): Animation3DClip | null;
82
- }
83
-
84
- export interface Animation3DStateMachineControllerOptions {
85
- readonly maxTransitionsPerUpdate?: number;
86
- }
87
-
88
- export type Animation3DStateMachineControllerStatus =
89
- | 'active'
90
- | 'destroyed';
91
-
92
- export interface Animation3DStateMachineLayerSnapshot {
93
- readonly layerId: string;
94
- readonly currentStateId: string;
95
- readonly currentTime: number;
96
- readonly transitionId: string | null;
97
- readonly sourceStateId: string | null;
98
- readonly destinationStateId: string | null;
99
- readonly transitionProgress: number;
100
- }
101
-
102
- /**
103
- * Public closed-loop controller and minimal Mixer integration.
104
- *
105
- * The internal mixer port, action handles, controller transactions and
106
- * compiled nodes never cross this boundary.
107
- */
108
- export class Animation3DStateMachineController {
109
- readonly mixer: Animation3DMixer;
110
-
111
- #integration: Animation3DStateMachineMixerIntegration;
112
-
113
- constructor(
114
- compiled: Animation3DCompiledStateMachine,
115
- mixer: Animation3DMixer,
116
- clipResolver: Animation3DStateMachineClipResolver,
117
- options: Animation3DStateMachineControllerOptions = {},
118
- ) {
119
- this.mixer = mixer;
120
- this.#integration = new Animation3DStateMachineMixerIntegration(
121
- compiled as unknown as InternalCompiledStateMachine,
122
- animation3DMixerRuntime(mixer),
123
- clipResolver,
124
- options,
125
- );
126
- }
127
-
128
- get status(): Animation3DStateMachineControllerStatus {
129
- return this.#integration.state;
130
- }
131
-
132
- get time(): number {
133
- return this.#integration.time;
134
- }
135
-
136
- get layerSnapshots(): readonly Animation3DStateMachineLayerSnapshot[] {
137
- return this.#integration.controller.layerSnapshots;
138
- }
139
-
140
- getLayerSnapshot(layerId: string): Animation3DStateMachineLayerSnapshot {
141
- return this.#integration.controller.getLayerSnapshot(layerId);
142
- }
143
-
144
- setFloat(name: string, value: number): this {
145
- this.#integration.controller.setFloat(name, value);
146
- return this;
147
- }
148
-
149
- setInteger(name: string, value: number): this {
150
- this.#integration.controller.setInteger(name, value);
151
- return this;
152
- }
153
-
154
- setBoolean(name: string, value: boolean): this {
155
- this.#integration.controller.setBoolean(name, value);
156
- return this;
157
- }
158
-
159
- setTrigger(name: string): this {
160
- this.#integration.controller.setTrigger(name);
161
- return this;
162
- }
163
-
164
- resetTrigger(name: string): this {
165
- this.#integration.controller.resetTrigger(name);
166
- return this;
167
- }
168
-
169
- getParameter(name: string): number | boolean {
170
- return this.#integration.controller.getParameter(name);
171
- }
172
-
173
- update(
174
- deltaSeconds: number,
175
- out: Animation3DMutablePose,
176
- ): Animation3DPose {
177
- return this.#integration.update(deltaSeconds, out);
178
- }
179
-
180
- evaluate(out: Animation3DMutablePose): Animation3DPose {
181
- return this.#integration.evaluate(out);
182
- }
183
-
184
- reset(out: Animation3DMutablePose): Animation3DPose {
185
- return this.#integration.reset(out);
186
- }
187
-
188
- destroy(): void {
189
- this.#integration.destroy();
190
- }
191
- }
@@ -1,29 +0,0 @@
1
- import type {
2
- Animation3DBinding,
3
- } from './Animation3DBinding';
4
-
5
- export type Animation3DInterpolation =
6
- | 'step'
7
- | 'linear'
8
- | 'cubic-spline';
9
-
10
- export interface Animation3DTrackFor<
11
- TBinding extends Animation3DBinding,
12
- > {
13
- readonly id: string;
14
- readonly binding: TBinding;
15
- readonly interpolation: Animation3DInterpolation;
16
- /**
17
- * Strictly increasing key times in seconds.
18
- * The clip resource owns the underlying storage; consumers must not mutate it.
19
- */
20
- readonly times: Readonly<Float32Array>;
21
- /**
22
- * step/linear: keyCount * binding.valueSize values.
23
- * cubic-spline: keyCount groups of [inTangent, value, outTangent], with each
24
- * entry containing binding.valueSize values.
25
- */
26
- readonly values: Readonly<Float32Array>;
27
- }
28
-
29
- export type Animation3DTrack = Animation3DTrackFor<Animation3DBinding>;