@woosh/meep-engine 3.68.0 → 3.69.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 (190) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +2 -17
  3. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -1
  4. package/editor/ecs/component/editors/ecs/Trail3DEditor.js +3 -18
  5. package/package.json +1 -1
  6. package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +33 -65
  7. package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -1
  8. package/src/engine/graphics/ecs/trail3d/Trail3D.js +37 -245
  9. package/src/engine/graphics/ecs/trail3d/Trail3DFlags.d.ts +0 -4
  10. package/src/engine/graphics/ecs/trail3d/Trail3DFlags.js +4 -10
  11. package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts +13 -10
  12. package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts.map +1 -1
  13. package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.js +28 -37
  14. package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts +10 -0
  15. package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts.map +1 -0
  16. package/src/engine/graphics/ecs/trail3d/trail_knot_count.js +27 -0
  17. package/src/engine/graphics/trail/TrailKnots.d.ts +62 -0
  18. package/src/engine/graphics/trail/TrailKnots.d.ts.map +1 -0
  19. package/src/engine/graphics/trail/TrailKnots.js +137 -0
  20. package/src/engine/graphics/trail/tube/TubeXMaterialSpec.d.ts +1 -1
  21. package/src/engine/graphics/trail/tube/TubeXMaterialSpec.js +1 -1
  22. package/src/engine/graphics3/EntityRowHold.d.ts +48 -0
  23. package/src/engine/graphics3/EntityRowHold.d.ts.map +1 -0
  24. package/src/engine/graphics3/EntityRowHold.js +128 -0
  25. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +6 -2
  26. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  27. package/src/engine/graphics3/GPUParticleEmitterSystem.js +11 -44
  28. package/src/engine/graphics3/Trail3DSystem.d.ts +69 -35
  29. package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
  30. package/src/engine/graphics3/Trail3DSystem.js +380 -81
  31. package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts +17 -0
  32. package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts.map +1 -1
  33. package/src/engine/physics/fluid/ecs/FluidObstacle.js +22 -2
  34. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +6 -5
  35. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
  36. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +14 -3
  37. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts +9 -1
  38. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts.map +1 -1
  39. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.js +11 -1
  40. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts +5 -0
  41. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts.map +1 -1
  42. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.js +2 -0
  43. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts +4 -3
  44. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts.map +1 -1
  45. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.js +11 -3
  46. package/src/shade/playground/trails/index.html +50 -0
  47. package/src/shade/playground/trails/main.d.ts +2 -0
  48. package/src/shade/playground/trails/main.d.ts.map +1 -0
  49. package/src/shade/playground/trails/main.js +258 -0
  50. package/src/shade/renderer/animation/animation_curve_write_keys.d.ts +18 -0
  51. package/src/shade/renderer/animation/animation_curve_write_keys.d.ts.map +1 -0
  52. package/src/shade/renderer/animation/animation_curve_write_keys.js +34 -0
  53. package/src/shade/renderer/deferred/tonemap/ColorGrade.d.ts.map +1 -1
  54. package/src/shade/renderer/deferred/tonemap/ColorGrade.js +13 -36
  55. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +2 -2
  56. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts +2 -13
  57. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts.map +1 -1
  58. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.js +6 -21
  59. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts +17 -6
  60. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts.map +1 -1
  61. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js +38 -178
  62. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts +7 -9
  63. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts.map +1 -1
  64. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js +17 -106
  65. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts +7 -17
  66. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts.map +1 -1
  67. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js +18 -118
  68. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts +14 -0
  69. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts.map +1 -1
  70. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.js +18 -0
  71. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts +3 -1
  72. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts.map +1 -1
  73. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.js +4 -1
  74. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +9 -0
  75. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts.map +1 -1
  76. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.js +20 -4
  77. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts +11 -2
  78. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts.map +1 -1
  79. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.js +59 -2
  80. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts +4 -1
  81. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts.map +1 -1
  82. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.js +367 -341
  83. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts +6 -2
  84. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts.map +1 -1
  85. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +339 -282
  86. package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts +3 -2
  87. package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts.map +1 -1
  88. package/src/shade/renderer/grass/press/shader_grass_press_mark.js +5 -3
  89. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts +49 -0
  90. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts.map +1 -0
  91. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.js +144 -0
  92. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts +71 -0
  93. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts.map +1 -0
  94. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.js +152 -0
  95. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts +21 -0
  96. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts.map +1 -0
  97. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.js +30 -0
  98. package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts +101 -0
  99. package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts.map +1 -0
  100. package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.js +306 -0
  101. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts +9 -0
  102. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
  103. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +11 -4
  104. package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts +69 -0
  105. package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts.map +1 -0
  106. package/src/shade/renderer/trails/GPUTrailAVBOITChannel.js +129 -0
  107. package/src/shade/renderer/trails/GPUTrailSystem.d.ts +164 -0
  108. package/src/shade/renderer/trails/GPUTrailSystem.d.ts.map +1 -0
  109. package/src/shade/renderer/trails/GPUTrailSystem.js +725 -0
  110. package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts +14 -0
  111. package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts.map +1 -0
  112. package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.js +38 -0
  113. package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts +66 -0
  114. package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts.map +1 -0
  115. package/src/shade/renderer/trails/data/TRAIL_KNOT.js +154 -0
  116. package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts +19 -0
  117. package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts.map +1 -0
  118. package/src/shade/renderer/trails/data/TRAIL_RECORD.js +68 -0
  119. package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts +18 -0
  120. package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts.map +1 -0
  121. package/src/shade/renderer/trails/data/TRAIL_STATE.js +43 -0
  122. package/src/shade/renderer/trails/graph_trails.d.ts +58 -0
  123. package/src/shade/renderer/trails/graph_trails.d.ts.map +1 -0
  124. package/src/shade/renderer/trails/graph_trails.js +155 -0
  125. package/src/shade/renderer/trails/graph_trails_avboit.d.ts +126 -0
  126. package/src/shade/renderer/trails/graph_trails_avboit.d.ts.map +1 -0
  127. package/src/shade/renderer/trails/graph_trails_avboit.js +300 -0
  128. package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts +56 -0
  129. package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts.map +1 -0
  130. package/src/shade/renderer/trails/runtime/TrailFadeCurves.js +220 -0
  131. package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts +49 -0
  132. package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts.map +1 -0
  133. package/src/shade/renderer/trails/runtime/TrailKnotPool.js +162 -0
  134. package/src/shade/renderer/trails/runtime/TrailParameters.d.ts +52 -0
  135. package/src/shade/renderer/trails/runtime/TrailParameters.d.ts.map +1 -0
  136. package/src/shade/renderer/trails/runtime/TrailParameters.js +126 -0
  137. package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts +23 -0
  138. package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts.map +1 -0
  139. package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.js +57 -0
  140. package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts +14 -0
  141. package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts.map +1 -0
  142. package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.js +40 -0
  143. package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts +18 -0
  144. package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts.map +1 -0
  145. package/src/shade/renderer/trails/shaders/chunk_trail_seed.js +64 -0
  146. package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts +14 -0
  147. package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts.map +1 -0
  148. package/src/shade/renderer/trails/shaders/chunk_trail_segment.js +51 -0
  149. package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts +48 -0
  150. package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts.map +1 -0
  151. package/src/shade/renderer/trails/shaders/chunk_trail_update.js +197 -0
  152. package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts +34 -0
  153. package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts.map +1 -0
  154. package/src/shade/renderer/trails/shaders/chunk_trail_vertex.js +111 -0
  155. package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts +24 -0
  156. package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts.map +1 -0
  157. package/src/shade/renderer/trails/shaders/shader_trail_avboit.js +78 -0
  158. package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts +23 -0
  159. package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts.map +1 -0
  160. package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.js +130 -0
  161. package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts +29 -0
  162. package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts.map +1 -0
  163. package/src/shade/renderer/trails/shaders/shader_trail_draw_args.js +78 -0
  164. package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts +18 -0
  165. package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts.map +1 -0
  166. package/src/shade/renderer/trails/shaders/shader_trail_seed.js +79 -0
  167. package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts +20 -0
  168. package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts.map +1 -0
  169. package/src/shade/renderer/trails/shaders/shader_trail_update.js +101 -0
  170. package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts +0 -18
  171. package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts.map +0 -1
  172. package/src/engine/graphics/ecs/trail3d/advance_trail.js +0 -42
  173. package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts +0 -14
  174. package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts.map +0 -1
  175. package/src/engine/graphics/ecs/trail3d/seed_trail_tube.js +0 -75
  176. package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts +0 -17
  177. package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts.map +0 -1
  178. package/src/engine/graphics/ecs/trail3d/trail_head_position.js +0 -19
  179. package/src/engine/graphics/trail/tube/TubeX.d.ts +0 -186
  180. package/src/engine/graphics/trail/tube/TubeX.d.ts.map +0 -1
  181. package/src/engine/graphics/trail/tube/TubeX.js +0 -575
  182. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts +0 -16
  183. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts.map +0 -1
  184. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.js +0 -34
  185. package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts +0 -27
  186. package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts.map +0 -1
  187. package/src/engine/graphics/trail/tube/tube_attributes_spec.js +0 -70
  188. package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts +0 -38
  189. package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts.map +0 -1
  190. package/src/engine/graphics3/trail/trail_tube_write_geometry.js +0 -119
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Everything the runtime holds for one trail. Plain bookkeeping: the trail's look is its
3
+ * {@link TrailParameters}, which the owner keeps.
4
+ */
5
+ export class GPUTrailContext {
6
+ /** @type {number} row in the trail and state tables */
7
+ row: number;
8
+ /** @type {number} the `transforms` row the head follows */
9
+ node: number;
10
+ /** @type {import("../../../core/binary/allocator/OffsetAllocator.js").Allocation|null} the knot run */
11
+ knots: import("../../../core/binary/allocator/OffsetAllocator.js").Allocation | null;
12
+ /** @type {import("./runtime/TrailFadeCurves.js").TrailFadeCurve|null} */
13
+ fade: import("./runtime/TrailFadeCurves.js").TrailFadeCurve | null;
14
+ /** @type {number} index of the trail's radial class */
15
+ draw_class: number;
16
+ /** @type {number} what the record's `seed_epoch` says */
17
+ epoch: number;
18
+ /** @type {boolean} the pending seed is a `clear()`, which keeps the trail's birth and frames */
19
+ reseed: boolean;
20
+ /** @type {TrailParameters} what was last staged */
21
+ staged: TrailParameters;
22
+ }
23
+ /**
24
+ * A radial count in use, and the trails using it: a draw class, one indexed draw per pass.
25
+ */
26
+ export class TrailDrawClass {
27
+ /** @type {number} */
28
+ radial: number;
29
+ /** @type {number} trails in the class */
30
+ references: number;
31
+ /** @type {number} the most segments the class's trails can show: their knots less one each */
32
+ segments: number;
33
+ }
34
+ /**
35
+ * The GPU trails of one scene context: the trail and state tables, the knot pool, the fade curves, and
36
+ * the clock the knots are aged by.
37
+ *
38
+ * **The CPU registers and stages; the GPU simulates.** {@link add} claims a row, a run of knots and the
39
+ * trail's fade curve and radial class, and asks for a seed; {@link stage} writes the record when the
40
+ * trail's parameters change; {@link remove} lets everything go. No knot is written on the CPU, except
41
+ * the knots of an authored trail, which are uploaded once when it is added. Everything per frame — the
42
+ * head, commits, aging — is the GPU's.
43
+ *
44
+ * **Time is the owner's.** {@link advance} moves the clock by the simulation time the owner was given,
45
+ * so a paused game holds its trails still, and the knots age by ticks of it (`TRAIL_TICKS_PER_SECOND`).
46
+ */
47
+ export class GPUTrailSystem {
48
+ /**
49
+ * @param {import("../GraphicsContext.js").GraphicsContext} graphics
50
+ */
51
+ constructor(graphics: import("../GraphicsContext.js").GraphicsContext);
52
+ /** @returns {import("../GraphicsContext.js").GraphicsContext} */
53
+ get graphics(): import("../GraphicsContext.js").GraphicsContext;
54
+ /** @returns {GPUBuffer} the clock as the vertex stage reads it */
55
+ get frame_uniform(): GPUBuffer;
56
+ /**
57
+ * The draw classes by index, a hole where no trail uses one.
58
+ * @returns {(TrailDrawClass|undefined)[]}
59
+ */
60
+ get draw_classes(): TrailDrawClass[];
61
+ /**
62
+ * The triangles of one segment of a tube of `radial` segments: two rings of `radial + 1` vertices,
63
+ * the head-ward ring first. Both faces are drawn, so the winding carries nothing.
64
+ *
65
+ * @param {number} radial
66
+ * @returns {GPUBuffer} `uint32` indices, `6 × radial` of them
67
+ */
68
+ index_buffer(radial: number): GPUBuffer;
69
+ /** @returns {GPUDatabase} the trail and state tables */
70
+ get database(): GPUDatabase;
71
+ /** @returns {import("../buffer/table/GPUTypedTable.js").GPUTypedTable} */
72
+ get table(): import("../buffer/table/GPUTypedTable.js").GPUTypedTable<any>;
73
+ /** @returns {import("../buffer/table/GPUTypedTable.js").GPUTypedTable} */
74
+ get state_table(): import("../buffer/table/GPUTypedTable.js").GPUTypedTable<any>;
75
+ /** @returns {TrailKnotPool} */
76
+ get knots(): TrailKnotPool;
77
+ /** @returns {TrailFadeCurves} */
78
+ get fades(): TrailFadeCurves;
79
+ /** @returns {number} trails registered */
80
+ get count(): number;
81
+ /**
82
+ * @returns {number} the clock, in ticks, wrapped to a u32
83
+ */
84
+ get now(): number;
85
+ /**
86
+ * Radial counts by class index, a hole where no trail uses one.
87
+ * @returns {(number|undefined)[]}
88
+ */
89
+ get class_radials(): number[];
90
+ /**
91
+ * @returns {GPUTrailContext[]} trails waiting for the GPU to seed them; taken by the frame that seeds them
92
+ */
93
+ get pending_seeds(): GPUTrailContext[];
94
+ /**
95
+ * Move the clock on.
96
+ *
97
+ * @param {number} seconds simulation time since the last call
98
+ */
99
+ advance(seconds: number): void;
100
+ /**
101
+ * Register a trail whose head follows `node`.
102
+ *
103
+ * @param {TrailParameters} parameters
104
+ * @param {number} node the `transforms` row of the trail's entity
105
+ * @returns {GPUTrailContext|null} null when the knot pool cannot house the trail on this device
106
+ */
107
+ add(parameters: TrailParameters, node: number): GPUTrailContext | null;
108
+ /**
109
+ * Bring a trail's record up to date with `parameters`. A change to a build-time parameter rebuilds
110
+ * the trail: a new knot run, and a seed.
111
+ *
112
+ * @param {GPUTrailContext} context
113
+ * @param {TrailParameters} parameters
114
+ * @returns {boolean} false when a rebuild could not be housed; the trail keeps its old build
115
+ */
116
+ stage(context: GPUTrailContext, parameters: TrailParameters): boolean;
117
+ /**
118
+ * Point a trail at another `transforms` row.
119
+ *
120
+ * @param {GPUTrailContext} context
121
+ * @param {number} node
122
+ */
123
+ set_node(context: GPUTrailContext, node: number): void;
124
+ /**
125
+ * Expire every knot and collapse the tube onto the head at the next frame, keeping the trail's birth
126
+ * and its knots' frames: `Trail3D.clear()`.
127
+ *
128
+ * @param {GPUTrailContext} context
129
+ */
130
+ clear(context: GPUTrailContext): void;
131
+ /**
132
+ * @param {GPUTrailContext} context
133
+ */
134
+ remove(context: GPUTrailContext): void;
135
+ /**
136
+ * Send what changed since the last frame: the records and states staged, the fade curves.
137
+ *
138
+ * @returns {GPUBuffer} the fade key buffer, as it now is on the device
139
+ */
140
+ upload(): GPUBuffer;
141
+ /**
142
+ * Take the trails waiting for the GPU to seed them, as rows.
143
+ *
144
+ * @returns {Uint32Array}
145
+ */
146
+ take_seeds(): Uint32Array;
147
+ /**
148
+ * Upload what changed and record one frame of the trails into `graph`: the seeds asked for, the
149
+ * update, and the scan of live segments the per-view passes dispatch from. Once per frame, after
150
+ * the hierarchy has composed this frame's matrices.
151
+ *
152
+ * @param {import("../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} graph
153
+ * @param {number} scene_database graph handle of the scene database
154
+ * @returns {import("./graph_trails.js").TrailSimulationHandles}
155
+ */
156
+ record_simulation(graph: import("../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph, scene_database: number): import("./graph_trails.js").TrailSimulationHandles;
157
+ destroy(): void;
158
+ #private;
159
+ }
160
+ import { TrailParameters } from "./runtime/TrailParameters.js";
161
+ import { GPUDatabase } from "../buffer/table/GPUDatabase.js";
162
+ import { TrailKnotPool } from "./runtime/TrailKnotPool.js";
163
+ import { TrailFadeCurves } from "./runtime/TrailFadeCurves.js";
164
+ //# sourceMappingURL=GPUTrailSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GPUTrailSystem.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/trails/GPUTrailSystem.js"],"names":[],"mappings":"AA4BA;;;GAGG;AACH;IACI,uDAAuD;IACvD,KADW,MAAM,CACR;IAET,2DAA2D;IAC3D,MADW,MAAM,CACR;IAET,uGAAuG;IACvG,OADW,OAAO,mDAAmD,EAAE,UAAU,GAAC,IAAI,CACzE;IAEb,yEAAyE;IACzE,MADW,OAAO,8BAA8B,EAAE,cAAc,GAAC,IAAI,CACzD;IAEZ,uDAAuD;IACvD,YADW,MAAM,CACD;IAEhB,yDAAyD;IACzD,OADW,MAAM,CACP;IAEV,gGAAgG;IAChG,QADW,OAAO,CACH;IAEf,mDAAmD;IACnD,QADW,eAAe,CACK;CAClC;AAED;;GAEG;AACH;IACI,qBAAqB;IACrB,QADW,MAAM,CACN;IAEX,yCAAyC;IACzC,YADW,MAAM,CACF;IAEf,8FAA8F;IAC9F,UADW,MAAM,CACJ;CAChB;AAQD;;;;;;;;;;;;GAYG;AACH;IA2FI;;OAEG;IACH,sBAFW,OAAO,uBAAuB,EAAE,eAAe,EAqBzD;IAED,iEAAiE;IACjE,gEAEC;IAED,kEAAkE;IAClE,+BAEC;IAED;;;OAGG;IACH,qCAEC;IAED;;;;;;OAMG;IACH,qBAHW,MAAM,aAmChB;IAED,wDAAwD;IACxD,4BAEC;IAED,0EAA0E;IAC1E,2EAEC;IAED,0EAA0E;IAC1E,iFAEC;IAED,+BAA+B;IAC/B,2BAEC;IAED,iCAAiC;IACjC,6BAEC;IAED,0CAA0C;IAC1C,oBAEC;IAED;;OAEG;IACH,kBAEC;IAED;;;OAGG;IACH,8BAEC;IAED;;OAEG;IACH,uCAEC;IAED;;;;OAIG;IACH,iBAFW,MAAM,QAMhB;IAED;;;;;;OAMG;IACH,gBAJW,eAAe,QACf,MAAM,GACJ,eAAe,GAAC,IAAI,CA2BhC;IAED;;;;;;;OAOG;IACH,eAJW,eAAe,cACf,eAAe,GACb,OAAO,CA+CnB;IAED;;;;;OAKG;IACH,kBAHW,eAAe,QACf,MAAM,QAYhB;IAED;;;;;OAKG;IACH,eAFW,eAAe,QAWzB;IAED;;OAEG;IACH,gBAFW,eAAe,QAwBzB;IAED;;;;OAIG;IACH,oBAYC;IAED;;;;OAIG;IACH,cAFa,WAAW,CAavB;IAED;;;;;;;;OAQG;IACH,yBAJW,OAAO,2DAA2D,EAAE,UAAU,kBAC9E,MAAM,GACJ,OAAO,mBAAmB,EAAE,sBAAsB,CAgB9D;IAED,gBAaC;;CA0KJ;gCA1sB+B,8BAA8B;4BARlC,gCAAgC;8BAO9B,4BAA4B;gCAD1B,8BAA8B"}