@zephyr3d/scene 0.8.2 → 0.9.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 (241) hide show
  1. package/dist/animation/animationset.js +473 -60
  2. package/dist/animation/animationset.js.map +1 -1
  3. package/dist/animation/cloth/gpu_cloth_system.js +2516 -0
  4. package/dist/animation/cloth/gpu_cloth_system.js.map +1 -0
  5. package/dist/animation/fixed_geometry_cache_track.js +138 -0
  6. package/dist/animation/fixed_geometry_cache_track.js.map +1 -0
  7. package/dist/animation/geometry_cache_utils.js +120 -0
  8. package/dist/animation/geometry_cache_utils.js.map +1 -0
  9. package/dist/animation/ik_modifier.js +9 -1
  10. package/dist/animation/ik_modifier.js.map +1 -1
  11. package/dist/animation/joint_dynamics/collision.js +469 -0
  12. package/dist/animation/joint_dynamics/collision.js.map +1 -0
  13. package/dist/animation/joint_dynamics/constraints.js +329 -0
  14. package/dist/animation/joint_dynamics/constraints.js.map +1 -0
  15. package/dist/animation/joint_dynamics/controller.js +699 -0
  16. package/dist/animation/joint_dynamics/controller.js.map +1 -0
  17. package/dist/animation/joint_dynamics/joint_dynamics_system.js +393 -0
  18. package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -0
  19. package/dist/animation/joint_dynamics/solver.js +794 -0
  20. package/dist/animation/joint_dynamics/solver.js.map +1 -0
  21. package/dist/animation/joint_dynamics/types.js +19 -0
  22. package/dist/animation/joint_dynamics/types.js.map +1 -0
  23. package/dist/animation/joint_dynamics/vrm_spring_bone.js +46 -0
  24. package/dist/animation/joint_dynamics/vrm_spring_bone.js.map +1 -0
  25. package/dist/animation/joint_dynamics_modifier.js +51 -0
  26. package/dist/animation/joint_dynamics_modifier.js.map +1 -0
  27. package/dist/animation/pca_geometry_cache_track.js +222 -0
  28. package/dist/animation/pca_geometry_cache_track.js.map +1 -0
  29. package/dist/animation/skeleton.js +2011 -139
  30. package/dist/animation/skeleton.js.map +1 -1
  31. package/dist/animation/skeleton_modifier.js +3 -5
  32. package/dist/animation/skeleton_modifier.js.map +1 -1
  33. package/dist/animation/spring/multi_chain_spring_system.js +2 -0
  34. package/dist/animation/spring/multi_chain_spring_system.js.map +1 -1
  35. package/dist/animation/spring/spring_chain.js +3 -2
  36. package/dist/animation/spring/spring_chain.js.map +1 -1
  37. package/dist/animation/spring/spring_collider.js +35 -5
  38. package/dist/animation/spring/spring_collider.js.map +1 -1
  39. package/dist/animation/spring/spring_particle.js +1 -0
  40. package/dist/animation/spring/spring_particle.js.map +1 -1
  41. package/dist/animation/spring/spring_system.js +325 -28
  42. package/dist/animation/spring/spring_system.js.map +1 -1
  43. package/dist/animation/spring2/collision.js +469 -0
  44. package/dist/animation/spring2/collision.js.map +1 -0
  45. package/dist/animation/spring2/constraints.js +329 -0
  46. package/dist/animation/spring2/constraints.js.map +1 -0
  47. package/dist/animation/spring2/controller.js +434 -0
  48. package/dist/animation/spring2/controller.js.map +1 -0
  49. package/dist/animation/spring2/math.js +16 -0
  50. package/dist/animation/spring2/math.js.map +1 -0
  51. package/dist/animation/spring2/solver.js +624 -0
  52. package/dist/animation/spring2/solver.js.map +1 -0
  53. package/dist/animation/spring2/spring_system.js +118 -0
  54. package/dist/animation/spring2/spring_system.js.map +1 -0
  55. package/dist/animation/spring2/types.js +19 -0
  56. package/dist/animation/spring2/types.js.map +1 -0
  57. package/dist/animation/spring_modifier.js +17 -1
  58. package/dist/animation/spring_modifier.js.map +1 -1
  59. package/dist/app/engine.js +42 -15
  60. package/dist/app/engine.js.map +1 -1
  61. package/dist/app/runtimescript.js +132 -1
  62. package/dist/app/runtimescript.js.map +1 -1
  63. package/dist/app/screen.js +3 -3
  64. package/dist/app/screen.js.map +1 -1
  65. package/dist/app/scriptingsystem.js +69 -37
  66. package/dist/app/scriptingsystem.js.map +1 -1
  67. package/dist/app/scriptregistry.js +157 -146
  68. package/dist/app/scriptregistry.js.map +1 -1
  69. package/dist/asset/assetmanager.js +2 -1
  70. package/dist/asset/assetmanager.js.map +1 -1
  71. package/dist/asset/loaders/zabc/zabc_loader.js +570 -0
  72. package/dist/asset/loaders/zabc/zabc_loader.js.map +1 -0
  73. package/dist/asset/model.js +192 -0
  74. package/dist/asset/model.js.map +1 -1
  75. package/dist/camera/base.js +26 -7
  76. package/dist/camera/base.js.map +1 -1
  77. package/dist/camera/camera.js +146 -24
  78. package/dist/camera/camera.js.map +1 -1
  79. package/dist/camera/fps.js +2 -2
  80. package/dist/camera/fps.js.map +1 -1
  81. package/dist/camera/orbit.js +2 -2
  82. package/dist/camera/orbit.js.map +1 -1
  83. package/dist/index.d.ts +11728 -8535
  84. package/dist/index.js +29 -8
  85. package/dist/index.js.map +1 -1
  86. package/dist/material/lambert.js +1 -1
  87. package/dist/material/lambert.js.map +1 -1
  88. package/dist/material/material.js +9 -3
  89. package/dist/material/material.js.map +1 -1
  90. package/dist/material/meshmaterial.js +54 -7
  91. package/dist/material/meshmaterial.js.map +1 -1
  92. package/dist/material/mixins/lightmodel/blinnphong.js +17 -7
  93. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  94. package/dist/material/mixins/lightmodel/lambert.js +7 -2
  95. package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
  96. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +108 -16
  97. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
  98. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +222 -14
  99. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  100. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +24 -12
  101. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  102. package/dist/material/mixins/lit.js +11 -8
  103. package/dist/material/mixins/lit.js.map +1 -1
  104. package/dist/material/mixins/pbr/common.js +72 -5
  105. package/dist/material/mixins/pbr/common.js.map +1 -1
  106. package/dist/material/pbrblueprint.js +148 -1
  107. package/dist/material/pbrblueprint.js.map +1 -1
  108. package/dist/material/pbrmr.js +125 -2
  109. package/dist/material/pbrmr.js.map +1 -1
  110. package/dist/material/shader/helper.js +10 -4
  111. package/dist/material/shader/helper.js.map +1 -1
  112. package/dist/material/water.js +2 -2
  113. package/dist/material/water.js.map +1 -1
  114. package/dist/posteffect/coloradjust.js +145 -0
  115. package/dist/posteffect/coloradjust.js.map +1 -0
  116. package/dist/posteffect/taa.js +68 -32
  117. package/dist/posteffect/taa.js.map +1 -1
  118. package/dist/render/cluster_light.js +17 -12
  119. package/dist/render/cluster_light.js.map +1 -1
  120. package/dist/render/deferredlightpass.js +510 -0
  121. package/dist/render/deferredlightpass.js.map +1 -0
  122. package/dist/render/deferredshadowlightpass.js +428 -0
  123. package/dist/render/deferredshadowlightpass.js.map +1 -0
  124. package/dist/render/drawable.js.map +1 -1
  125. package/dist/render/drawable_mixin.js +21 -12
  126. package/dist/render/drawable_mixin.js.map +1 -1
  127. package/dist/render/envlight.js +20 -22
  128. package/dist/render/envlight.js.map +1 -1
  129. package/dist/render/gbufferpass.js +50 -0
  130. package/dist/render/gbufferpass.js.map +1 -0
  131. package/dist/render/lightpass.js +1 -2
  132. package/dist/render/lightpass.js.map +1 -1
  133. package/dist/render/primitive.js +1 -1
  134. package/dist/render/primitive.js.map +1 -1
  135. package/dist/render/render_queue.js +3 -2
  136. package/dist/render/render_queue.js.map +1 -1
  137. package/dist/render/renderer.js +5 -358
  138. package/dist/render/renderer.js.map +1 -1
  139. package/dist/render/rendergraph/executor.js +15 -12
  140. package/dist/render/rendergraph/executor.js.map +1 -1
  141. package/dist/render/rendergraph/forward_plus_builder.js +144 -88
  142. package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
  143. package/dist/render/rendergraph/history_resource_manager.js +178 -0
  144. package/dist/render/rendergraph/history_resource_manager.js.map +1 -0
  145. package/dist/render/rendergraph/rendergraph.js +12 -1
  146. package/dist/render/rendergraph/rendergraph.js.map +1 -1
  147. package/dist/render/rendergraph/types.js +2 -2
  148. package/dist/render/rendergraph/types.js.map +1 -1
  149. package/dist/render/sky.js +26 -9
  150. package/dist/render/sky.js.map +1 -1
  151. package/dist/scene/basesprite.js +4 -3
  152. package/dist/scene/basesprite.js.map +1 -1
  153. package/dist/scene/batchgroup.js +4 -4
  154. package/dist/scene/environment.js +7 -4
  155. package/dist/scene/environment.js.map +1 -1
  156. package/dist/scene/light.js +184 -18
  157. package/dist/scene/light.js.map +1 -1
  158. package/dist/scene/mesh.js +30 -0
  159. package/dist/scene/mesh.js.map +1 -1
  160. package/dist/scene/particlesys.js +3 -2
  161. package/dist/scene/particlesys.js.map +1 -1
  162. package/dist/scene/raycast_visitor.js +29 -3
  163. package/dist/scene/raycast_visitor.js.map +1 -1
  164. package/dist/scene/scene.js +86 -19
  165. package/dist/scene/scene.js.map +1 -1
  166. package/dist/scene/scene_node.js +87 -31
  167. package/dist/scene/scene_node.js.map +1 -1
  168. package/dist/scene/script_attachment.js +59 -0
  169. package/dist/scene/script_attachment.js.map +1 -0
  170. package/dist/scene/terrain-cm/grass.js +3 -2
  171. package/dist/scene/terrain-cm/grass.js.map +1 -1
  172. package/dist/scene/terrain-cm/terrain-cm.js +4 -3
  173. package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  174. package/dist/scene/water.js +3 -2
  175. package/dist/scene/water.js.map +1 -1
  176. package/dist/shaders/shadow.js +2 -2
  177. package/dist/shaders/shadow.js.map +1 -1
  178. package/dist/shadow/shadowmapper.js +74 -4
  179. package/dist/shadow/shadowmapper.js.map +1 -1
  180. package/dist/shapes/box.js +163 -0
  181. package/dist/shapes/box.js.map +1 -1
  182. package/dist/shapes/capsule.js +216 -0
  183. package/dist/shapes/capsule.js.map +1 -0
  184. package/dist/shapes/cylinder.js +91 -0
  185. package/dist/shapes/cylinder.js.map +1 -1
  186. package/dist/shapes/plane.js +32 -0
  187. package/dist/shapes/plane.js.map +1 -1
  188. package/dist/shapes/tetrahedron.js +211 -0
  189. package/dist/shapes/tetrahedron.js.map +1 -1
  190. package/dist/shapes/torus.js +173 -0
  191. package/dist/shapes/torus.js.map +1 -1
  192. package/dist/utility/blueprint/common/math.js +111 -1
  193. package/dist/utility/blueprint/common/math.js.map +1 -1
  194. package/dist/utility/blueprint/material/inputs.js +235 -1
  195. package/dist/utility/blueprint/material/inputs.js.map +1 -1
  196. package/dist/utility/blueprint/material/ir.js +154 -10
  197. package/dist/utility/blueprint/material/ir.js.map +1 -1
  198. package/dist/utility/blueprint/material/texture.js +273 -19
  199. package/dist/utility/blueprint/material/texture.js.map +1 -1
  200. package/dist/utility/serialization/json.js +12 -2
  201. package/dist/utility/serialization/json.js.map +1 -1
  202. package/dist/utility/serialization/manager.js +30 -11
  203. package/dist/utility/serialization/manager.js.map +1 -1
  204. package/dist/utility/serialization/scene/animation.js +250 -7
  205. package/dist/utility/serialization/scene/animation.js.map +1 -1
  206. package/dist/utility/serialization/scene/batch.js +4 -2
  207. package/dist/utility/serialization/scene/batch.js.map +1 -1
  208. package/dist/utility/serialization/scene/camera.js +154 -2
  209. package/dist/utility/serialization/scene/camera.js.map +1 -1
  210. package/dist/utility/serialization/scene/cloth_script.js +834 -0
  211. package/dist/utility/serialization/scene/cloth_script.js.map +1 -0
  212. package/dist/utility/serialization/scene/common.js +7 -0
  213. package/dist/utility/serialization/scene/common.js.map +1 -1
  214. package/dist/utility/serialization/scene/light.js +120 -4
  215. package/dist/utility/serialization/scene/light.js.map +1 -1
  216. package/dist/utility/serialization/scene/material.js +453 -1
  217. package/dist/utility/serialization/scene/material.js.map +1 -1
  218. package/dist/utility/serialization/scene/mesh.js +4 -2
  219. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  220. package/dist/utility/serialization/scene/node.js +298 -10
  221. package/dist/utility/serialization/scene/node.js.map +1 -1
  222. package/dist/utility/serialization/scene/particle.js +4 -2
  223. package/dist/utility/serialization/scene/particle.js.map +1 -1
  224. package/dist/utility/serialization/scene/primitive.js +100 -3
  225. package/dist/utility/serialization/scene/primitive.js.map +1 -1
  226. package/dist/utility/serialization/scene/scene.js +130 -3
  227. package/dist/utility/serialization/scene/scene.js.map +1 -1
  228. package/dist/utility/serialization/scene/script.js +66 -0
  229. package/dist/utility/serialization/scene/script.js.map +1 -0
  230. package/dist/utility/serialization/scene/spring_script.js +596 -0
  231. package/dist/utility/serialization/scene/spring_script.js.map +1 -0
  232. package/dist/utility/serialization/scene/sprite.js +5 -3
  233. package/dist/utility/serialization/scene/sprite.js.map +1 -1
  234. package/dist/utility/serialization/scene/terrain.js +4 -2
  235. package/dist/utility/serialization/scene/terrain.js.map +1 -1
  236. package/dist/utility/serialization/scene/water.js +4 -2
  237. package/dist/utility/serialization/scene/water.js.map +1 -1
  238. package/dist/utility/serialization/types.js.map +1 -1
  239. package/dist/values.js +5 -1
  240. package/dist/values.js.map +1 -1
  241. package/package.json +3 -3
@@ -8,10 +8,18 @@ import { Skeleton } from '../../../animation/skeleton.js';
8
8
  import { AnimationTrack } from '../../../animation/animationtrack.js';
9
9
  import { PropertyTrack } from '../../../animation/proptrack.js';
10
10
  import { MorphTargetTrack } from '../../../animation/morphtrack.js';
11
+ import { FixedGeometryCacheTrack } from '../../../animation/fixed_geometry_cache_track.js';
12
+ import { BoundingBox } from '../../bounding_volume.js';
13
+ import { PCAGeometryCacheTrack } from '../../../animation/pca_geometry_cache_track.js';
14
+ import '@zephyr3d/device';
15
+ import '../../../animation/joint_dynamics/collision.js';
16
+ import '../../../animation/joint_dynamics/solver.js';
17
+ import '../../../animation/joint_dynamics/joint_dynamics_system.js';
11
18
  import { defineProps } from '../types.js';
12
19
  import '../../../scene/scene.js';
13
20
  import '../../../values.js';
14
- import '@zephyr3d/device';
21
+ import '../../../render/render_queue.js';
22
+ import '../../../render/primitive.js';
15
23
  import '../../../material/shader/helper.js';
16
24
  import '../../../material/lambert.js';
17
25
  import '../../../material/blinn.js';
@@ -26,13 +34,11 @@ import '../../../material/pbrblueprint.js';
26
34
  import '../../../material/sprite.js';
27
35
  import '../../../material/sprite_std.js';
28
36
  import '../../blueprint/material/texture.js';
29
- import '../../../render/renderer.js';
30
- import '../../../render/primitive.js';
37
+ import '../../../render/rendergraph/forward_plus_builder.js';
31
38
  import '../../../render/sky.js';
32
39
  import '../../../render/clipmap.js';
33
40
  import '../../../shaders/atmosphere.js';
34
41
  import { SceneNode } from '../../../scene/scene_node.js';
35
- import { BoundingBox } from '../../bounding_volume.js';
36
42
  import '../../../shadow/shadowmapper.js';
37
43
  import '../../../scene/mesh.js';
38
44
  import '../../../scene/basesprite.js';
@@ -41,6 +47,7 @@ import '../../../scene/particlesys.js';
41
47
  import '../../../scene/batchgroup.js';
42
48
  import '../../../scene/terrain-cm/terrain-cm.js';
43
49
  import '../../../scene/terrain-cm/grass.js';
50
+ import '../../../scene/raycast_visitor.js';
44
51
 
45
52
  /** @internal */ function getInterpolatorClass() {
46
53
  return {
@@ -201,6 +208,242 @@ import '../../../scene/terrain-cm/grass.js';
201
208
  }
202
209
  };
203
210
  }
211
+ function encodeFloat32Array(values) {
212
+ return uint8ArrayToBase64(new Uint8Array(values.buffer, values.byteOffset, values.byteLength));
213
+ }
214
+ function decodeFloat32Array(value) {
215
+ return new Float32Array(base64ToUint8Array(value).buffer);
216
+ }
217
+ function getFixedGeometryCacheTrackClass() {
218
+ return {
219
+ ctor: FixedGeometryCacheTrack,
220
+ name: 'FixedGeometryCacheTrack',
221
+ getProps () {
222
+ return defineProps([
223
+ {
224
+ name: 'TrackName',
225
+ type: 'string',
226
+ options: {
227
+ label: 'Name'
228
+ },
229
+ get (value) {
230
+ value.str[0] = this.name;
231
+ },
232
+ set (value) {
233
+ this.name = value.str[0];
234
+ }
235
+ },
236
+ {
237
+ name: 'TrackTarget',
238
+ type: 'string',
239
+ isHidden () {
240
+ return true;
241
+ },
242
+ get (value) {
243
+ value.str[0] = this.target;
244
+ },
245
+ set (value) {
246
+ this.target = value.str[0];
247
+ }
248
+ },
249
+ {
250
+ name: 'Times',
251
+ type: 'string',
252
+ isHidden () {
253
+ return true;
254
+ },
255
+ get (value) {
256
+ value.str[0] = encodeFloat32Array(this.times);
257
+ },
258
+ set (value) {
259
+ this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();
260
+ }
261
+ },
262
+ {
263
+ name: 'Frames',
264
+ type: 'object',
265
+ isHidden () {
266
+ return true;
267
+ },
268
+ get (value) {
269
+ value.object[0] = this.frames.map((frame)=>({
270
+ positions: encodeFloat32Array(frame.positions),
271
+ normals: frame.normals ? encodeFloat32Array(frame.normals) : '',
272
+ bounds: [
273
+ frame.boundingBox.minPoint.x,
274
+ frame.boundingBox.minPoint.y,
275
+ frame.boundingBox.minPoint.z,
276
+ frame.boundingBox.maxPoint.x,
277
+ frame.boundingBox.maxPoint.y,
278
+ frame.boundingBox.maxPoint.z
279
+ ]
280
+ }));
281
+ },
282
+ set (value) {
283
+ this.frames = (value.object[0] ?? []).map((frame)=>({
284
+ positions: decodeFloat32Array(frame.positions),
285
+ normals: frame.normals ? decodeFloat32Array(frame.normals) : null,
286
+ boundingBox: new BoundingBox(new Vector3(frame.bounds[0], frame.bounds[1], frame.bounds[2]), new Vector3(frame.bounds[3], frame.bounds[4], frame.bounds[5]))
287
+ }));
288
+ }
289
+ }
290
+ ]);
291
+ }
292
+ };
293
+ }
294
+ function getPCAGeometryCacheTrackClass() {
295
+ return {
296
+ ctor: PCAGeometryCacheTrack,
297
+ name: 'PCAGeometryCacheTrack',
298
+ getProps () {
299
+ return defineProps([
300
+ {
301
+ name: 'TrackName',
302
+ type: 'string',
303
+ options: {
304
+ label: 'Name'
305
+ },
306
+ get (value) {
307
+ value.str[0] = this.name;
308
+ },
309
+ set (value) {
310
+ this.name = value.str[0];
311
+ }
312
+ },
313
+ {
314
+ name: 'TrackTarget',
315
+ type: 'string',
316
+ isHidden () {
317
+ return true;
318
+ },
319
+ get (value) {
320
+ value.str[0] = this.target;
321
+ },
322
+ set (value) {
323
+ this.target = value.str[0];
324
+ }
325
+ },
326
+ {
327
+ name: 'Times',
328
+ type: 'string',
329
+ isHidden () {
330
+ return true;
331
+ },
332
+ get (value) {
333
+ value.str[0] = encodeFloat32Array(this.times);
334
+ },
335
+ set (value) {
336
+ this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();
337
+ }
338
+ },
339
+ {
340
+ name: 'Bounds',
341
+ type: 'object',
342
+ isHidden () {
343
+ return true;
344
+ },
345
+ get (value) {
346
+ value.object[0] = this.bounds;
347
+ },
348
+ set (value) {
349
+ this.bounds = value.object[0] ?? [];
350
+ }
351
+ },
352
+ {
353
+ name: 'PositionReference',
354
+ type: 'string',
355
+ isHidden () {
356
+ return true;
357
+ },
358
+ get (value) {
359
+ value.str[0] = this.positionReference ? encodeFloat32Array(this.positionReference) : '';
360
+ },
361
+ set (value) {
362
+ this.positionReference = value.str[0] ? decodeFloat32Array(value.str[0]) : null;
363
+ }
364
+ },
365
+ {
366
+ name: 'PositionMean',
367
+ type: 'string',
368
+ isHidden () {
369
+ return true;
370
+ },
371
+ get (value) {
372
+ value.str[0] = encodeFloat32Array(this.positionMean);
373
+ },
374
+ set (value) {
375
+ this.positionMean = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();
376
+ }
377
+ },
378
+ {
379
+ name: 'PositionBases',
380
+ type: 'object',
381
+ isHidden () {
382
+ return true;
383
+ },
384
+ get (value) {
385
+ value.object[0] = this.positionBases.map((item)=>encodeFloat32Array(item));
386
+ },
387
+ set (value) {
388
+ this.positionBases = (value.object[0] ?? []).map((item)=>decodeFloat32Array(item));
389
+ }
390
+ },
391
+ {
392
+ name: 'PositionCoefficients',
393
+ type: 'object',
394
+ isHidden () {
395
+ return true;
396
+ },
397
+ get (value) {
398
+ value.object[0] = this.positionCoefficients.map((item)=>encodeFloat32Array(item));
399
+ },
400
+ set (value) {
401
+ this.positionCoefficients = (value.object[0] ?? []).map((item)=>decodeFloat32Array(item));
402
+ }
403
+ },
404
+ {
405
+ name: 'NormalMean',
406
+ type: 'string',
407
+ isHidden () {
408
+ return true;
409
+ },
410
+ get (value) {
411
+ value.str[0] = this.normalMean ? encodeFloat32Array(this.normalMean) : '';
412
+ },
413
+ set (value) {
414
+ this.normalMean = value.str[0] ? decodeFloat32Array(value.str[0]) : null;
415
+ }
416
+ },
417
+ {
418
+ name: 'NormalBases',
419
+ type: 'object',
420
+ isHidden () {
421
+ return true;
422
+ },
423
+ get (value) {
424
+ value.object[0] = this.normalBases?.map((item)=>encodeFloat32Array(item)) ?? [];
425
+ },
426
+ set (value) {
427
+ this.normalBases = (value.object[0] ?? []).map((item)=>decodeFloat32Array(item)) ?? null;
428
+ }
429
+ },
430
+ {
431
+ name: 'NormalCoefficients',
432
+ type: 'object',
433
+ isHidden () {
434
+ return true;
435
+ },
436
+ get (value) {
437
+ value.object[0] = this.normalCoefficients?.map((item)=>encodeFloat32Array(item)) ?? [];
438
+ },
439
+ set (value) {
440
+ this.normalCoefficients = (value.object[0] ?? []).map((item)=>decodeFloat32Array(item)) ?? null;
441
+ }
442
+ }
443
+ ]);
444
+ }
445
+ };
446
+ }
204
447
  /** @internal */ function getNodeRotationTrackClass() {
205
448
  return {
206
449
  ctor: NodeRotationTrack,
@@ -497,7 +740,7 @@ import '../../../scene/terrain-cm/grass.js';
497
740
  ctor: Skeleton,
498
741
  name: 'Skeleton',
499
742
  createFunc (ctx, init) {
500
- const prefabNode = ctx.getPrefabNode();
743
+ const prefabNode = ctx.getPrefabNode() ?? ctx;
501
744
  const joints = init.joints.map((id)=>prefabNode.findNodeById(id)).map((node)=>{
502
745
  node.jointTypeT = 'static';
503
746
  node.jointTypeS = 'static';
@@ -672,7 +915,7 @@ import '../../../scene/terrain-cm/grass.js';
672
915
  this.addTrack(targetObj, track);
673
916
  }
674
917
  } else if (track instanceof AnimationTrack) {
675
- const prefabNode = this._animationSet.model.getPrefabNode();
918
+ const prefabNode = this._animationSet.model.getPrefabNode() ?? this._animationSet.model;
676
919
  const node = prefabNode.findNodeById(track.target);
677
920
  if (node) {
678
921
  this.addTrack(node, track);
@@ -698,5 +941,5 @@ import '../../../scene/terrain-cm/grass.js';
698
941
  };
699
942
  }
700
943
 
701
- export { getAnimationClass, getInterpolatorClass, getMorphTrackClass, getNodeEulerRotationTrackClass, getNodeRotationTrackClass, getNodeScaleTrackClass, getNodeTranslationTrackClass, getPropTrackClass, getSkeletonClass };
944
+ export { getAnimationClass, getFixedGeometryCacheTrackClass, getInterpolatorClass, getMorphTrackClass, getNodeEulerRotationTrackClass, getNodeRotationTrackClass, getNodeScaleTrackClass, getNodeTranslationTrackClass, getPCAGeometryCacheTrackClass, getPropTrackClass, getSkeletonClass };
702
945
  //# sourceMappingURL=animation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation.js","sources":["../../../../src/utility/serialization/scene/animation.ts"],"sourcesContent":["import type { InterpolationMode, InterpolationTarget } from '@zephyr3d/base';\r\nimport { AABB, Quaternion } from '@zephyr3d/base';\r\nimport { base64ToUint8Array, Matrix4x4, uint8ArrayToBase64 } from '@zephyr3d/base';\r\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\r\nimport { AnimationTrack, Skeleton } from '../../../animation';\r\nimport {\r\n AnimationClip,\r\n MorphTargetTrack,\r\n NodeEulerRotationTrack,\r\n NodeRotationTrack,\r\n NodeScaleTrack,\r\n NodeTranslationTrack,\r\n PropertyTrack\r\n} from '../../../animation';\r\nimport type { ResourceManager } from '../manager';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { SceneNode } from '../../../scene';\r\nimport { BoundingBox } from '../../bounding_volume';\r\n\r\n/** @internal */\r\nexport function getInterpolatorClass(): SerializableClass {\r\n return {\r\n ctor: Interpolator,\r\n name: 'Interpolator',\r\n createFunc(\r\n ctx,\r\n init: { mode: InterpolationMode; target: InterpolationTarget; inputs: string; outputs: string }\r\n ) {\r\n const inputs = init.inputs\r\n ? new Float32Array(base64ToUint8Array(init.inputs).buffer)\r\n : new Float32Array();\r\n const outputs = init.outputs\r\n ? new Float32Array(base64ToUint8Array(init.outputs).buffer)\r\n : new Float32Array();\r\n return { obj: new Interpolator(init.mode, init.target, inputs, outputs) };\r\n },\r\n getInitParams(obj: Interpolator) {\r\n const inputs: Float32Array<ArrayBuffer> =\r\n obj.inputs instanceof Float32Array\r\n ? obj.inputs\r\n : obj.inputs\r\n ? new Float32Array(obj.inputs)\r\n : new Float32Array();\r\n const outputs: Float32Array<ArrayBuffer> =\r\n obj.outputs instanceof Float32Array\r\n ? obj.outputs\r\n : obj.outputs\r\n ? new Float32Array(obj.outputs)\r\n : new Float32Array();\r\n return {\r\n mode: obj.mode,\r\n target: obj.target,\r\n inputs: uint8ArrayToBase64(new Uint8Array(inputs.buffer, inputs.byteOffset, inputs.byteLength)),\r\n outputs: uint8ArrayToBase64(new Uint8Array(outputs.buffer, outputs.byteOffset, outputs.byteLength))\r\n };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Mode',\r\n type: 'string',\r\n get(this: Interpolator, value) {\r\n value.str[0] = this.mode;\r\n }\r\n },\r\n {\r\n name: 'Target',\r\n type: 'string',\r\n get(this: Interpolator, value) {\r\n value.str[0] = this.target ?? '';\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getMorphTrackClass(): SerializableClass {\r\n return {\r\n ctor: MorphTargetTrack,\r\n name: 'MorphTargetTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: MorphTargetTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: MorphTargetTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'DefaultWeights',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n value.object[0] = this.defaultWeights ?? null;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.defaultWeights = (value.object[0] as number[]) ?? null;\r\n }\r\n },\r\n {\r\n name: 'OriginBoundingBox',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n if (!this.originBoundingBox) {\r\n value.object[0] = null;\r\n } else {\r\n const arr = [...this.originBoundingBox.minPoint, ...this.originBoundingBox.maxPoint];\r\n value.object[0] = arr;\r\n }\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n if (!value.object[0]) {\r\n this.originBoundingBox = null;\r\n } else {\r\n const bbox = new AABB();\r\n const values = value.object[0] as number[];\r\n bbox.minPoint.setXYZ(values[0], values[1], values[2]);\r\n bbox.maxPoint.setXYZ(values[3], values[4], values[5]);\r\n this.originBoundingBox = bbox;\r\n }\r\n }\r\n },\r\n {\r\n name: 'BoundingBox',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n if (!this.boundingBox) {\r\n value.object[0] = null;\r\n } else {\r\n const arr: number[] = [];\r\n for (const box of this.boundingBox) {\r\n arr.push(...box.minPoint);\r\n arr.push(...box.maxPoint);\r\n }\r\n value.object[0] = arr;\r\n }\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n if (!value.object[0]) {\r\n this.boundingBox = null;\r\n } else {\r\n const arr: BoundingBox[] = [];\r\n const values = value.object[0] as number[];\r\n for (let i = 0; i < values.length / 6; i++) {\r\n arr.push(\r\n new BoundingBox(\r\n new Vector3(values[i * 6 + 0], values[i * 6 + 1], values[i * 6 + 2]),\r\n new Vector3(values[i * 6 + 3], values[i * 6 + 4], values[i * 6 + 5])\r\n )\r\n );\r\n }\r\n this.boundingBox = arr;\r\n }\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeRotationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeRotationTrack,\r\n name: 'NodeRotationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeEulerRotationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeEulerRotationTrack,\r\n name: 'NodeEulerRotationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeTranslationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeTranslationTrack,\r\n name: 'NodeTranslationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeScaleTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeScaleTrack,\r\n name: 'NodeScaleTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getPropTrackClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: PropertyTrack,\r\n name: 'PropertyTrack',\r\n createFunc(ctx, init) {\r\n return { obj: new PropertyTrack(manager.getPropertyByName(init)) };\r\n },\r\n getInitParams(obj: PropertyTrack) {\r\n return manager.getPropertyName(obj.getProp());\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n options: {\r\n label: 'Target'\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackProp',\r\n type: 'string',\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = manager.getPropertyName(this.getProp()) ?? '';\r\n }\r\n },\r\n {\r\n name: 'TrackData',\r\n type: 'object_array',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden(this: PropertyTrack, index: number) {\r\n return index >= 0;\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.object = this.interpolatorAlpha\r\n ? [this.interpolator, this.interpolatorAlpha]\r\n : [this.interpolator];\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n this.interpolatorAlpha = value.object[1] as Interpolator;\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getSkeletonClass(): SerializableClass {\r\n return {\r\n ctor: Skeleton,\r\n name: 'Skeleton',\r\n createFunc(\r\n ctx: SceneNode,\r\n init: {\r\n joints: string[];\r\n inverseBindMatrices: string;\r\n bindPoseMatrices: string;\r\n bindPose: string;\r\n id: string;\r\n }\r\n ) {\r\n const prefabNode = ctx.getPrefabNode();\r\n const joints = init.joints\r\n .map((id) => prefabNode!.findNodeById(id)!)\r\n .map((node) => {\r\n node!.jointTypeT = 'static';\r\n node!.jointTypeS = 'static';\r\n node!.jointTypeR = 'static';\r\n return node;\r\n });\r\n const inverseBindMatricesArray = new Float32Array(base64ToUint8Array(init.inverseBindMatrices).buffer);\r\n const bindPoseArray = new Float32Array(\r\n base64ToUint8Array(init.bindPose ?? init.bindPoseMatrices).buffer\r\n );\r\n const inverseBindMatrices: Matrix4x4[] = [];\r\n const bindPose: { rotation: Quaternion; scale: Vector3; position: Vector3 }[] = [];\r\n for (let i = 0; i < joints.length; i++) {\r\n inverseBindMatrices.push(new Matrix4x4(inverseBindMatricesArray.slice(i * 16, i * 16 + 16)));\r\n if (!init.bindPose) {\r\n const matrix = new Matrix4x4(bindPoseArray.slice(i * 16, i * 16 + 16));\r\n const trs = {\r\n position: new Vector3(),\r\n rotation: new Quaternion(),\r\n scale: new Vector3()\r\n };\r\n matrix.decompose(trs.scale, trs.rotation, trs.position);\r\n bindPose.push(trs);\r\n } else {\r\n bindPose.push({\r\n position: new Vector3(\r\n bindPoseArray[i * 10 + 0],\r\n bindPoseArray[i * 10 + 1],\r\n bindPoseArray[i * 10 + 2]\r\n ),\r\n rotation: new Quaternion(\r\n bindPoseArray[i * 10 + 3],\r\n bindPoseArray[i * 10 + 4],\r\n bindPoseArray[i * 10 + 5],\r\n bindPoseArray[i * 10 + 6]\r\n ),\r\n scale: new Vector3(\r\n bindPoseArray[i * 10 + 7],\r\n bindPoseArray[i * 10 + 8],\r\n bindPoseArray[i * 10 + 9]\r\n )\r\n });\r\n }\r\n }\r\n const skeleton = new Skeleton(joints, inverseBindMatrices, bindPose);\r\n skeleton.persistentId = init.id;\r\n return {\r\n obj: skeleton,\r\n loadProps: false\r\n };\r\n },\r\n getInitParams(obj: Skeleton) {\r\n const inverseBindMatrices: number[] = obj.inverseBindMatrices\r\n .map((v) => [...v])\r\n .reduce((a, b) => [...a, ...b], []);\r\n const bindPose: number[] = obj.bindPose\r\n .map((v) => [...v.position, ...v.rotation, ...v.scale])\r\n .reduce((a, b) => [...a, ...b], []);\r\n return {\r\n joints: obj.joints.map((joint) => joint.persistentId),\r\n inverseBindMatrices: uint8ArrayToBase64(new Uint8Array(new Float32Array(inverseBindMatrices).buffer)),\r\n bindPose: uint8ArrayToBase64(new Uint8Array(new Float32Array(bindPose).buffer)),\r\n id: obj.persistentId\r\n };\r\n },\r\n getProps() {\r\n return [];\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getAnimationClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: AnimationClip,\r\n name: 'AnimationClip',\r\n createFunc(ctx: SceneNode, init: string) {\r\n return { obj: ctx.animationSet.get(init) ?? ctx.animationSet.createAnimation(init, false) };\r\n },\r\n getInitParams(obj: AnimationClip) {\r\n return obj.name;\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Name',\r\n type: 'string',\r\n get(this: AnimationClip, value) {\r\n value.str[0] = this.name;\r\n }\r\n },\r\n {\r\n name: 'Duration',\r\n type: 'float',\r\n default: 1,\r\n get(this: AnimationClip, value) {\r\n value.num[0] = this.timeDuration;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.timeDuration = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Weight',\r\n type: 'float',\r\n default: 1,\r\n get(this: AnimationClip, value) {\r\n value.num[0] = this.weight;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.weight = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'AutoPlay',\r\n type: 'bool',\r\n default: false,\r\n get(this: AnimationClip, value) {\r\n value.bool[0] = this.autoPlay;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.autoPlay = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'Skeletons',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: AnimationClip, value) {\r\n value.object[0] = [...this.skeletons];\r\n },\r\n set(this: AnimationClip, value) {\r\n if (!this.skeletons) {\r\n this.skeletons = new Set();\r\n }\r\n for (const val of (value.object[0] as string[]) ?? []) {\r\n this.skeletons.add(val);\r\n }\r\n }\r\n },\r\n {\r\n name: 'Tracks',\r\n type: 'object_array',\r\n options: {\r\n edit: 'proptrack',\r\n objectTypes: [PropertyTrack]\r\n },\r\n readonly: true,\r\n isHidden(this: AnimationClip, index: number, obj: unknown) {\r\n if (index < 0) {\r\n return false;\r\n } else {\r\n return !(obj instanceof PropertyTrack);\r\n }\r\n },\r\n get(this: AnimationClip, value) {\r\n value.object = [];\r\n for (const tracks of this.tracks) {\r\n for (const track of tracks[1]) {\r\n if (tracks[0] instanceof SceneNode && !(track instanceof PropertyTrack)) {\r\n track.target = tracks[0].persistentId;\r\n }\r\n }\r\n //value.object.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\r\n value.object.push(...tracks[1]);\r\n }\r\n },\r\n set(this: AnimationClip, value) {\r\n for (const track of value.object) {\r\n if (track instanceof PropertyTrack) {\r\n const targetObj = manager.findAnimationTarget(this._animationSet.model, track);\r\n if (targetObj) {\r\n this.addTrack(targetObj, track);\r\n }\r\n } else if (track instanceof AnimationTrack) {\r\n const prefabNode = this._animationSet.model.getPrefabNode();\r\n const node = prefabNode!.findNodeById(track.target);\r\n if (node) {\r\n this.addTrack(node, track);\r\n } else {\r\n console.error(`No node found with id = ${track.target}`);\r\n }\r\n }\r\n }\r\n },\r\n delete(this: AnimationClip, index) {\r\n const trackList: AnimationTrack[] = [];\r\n for (const tracks of this.tracks) {\r\n trackList.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\r\n }\r\n const trackToRemove = trackList[index];\r\n if (trackToRemove) {\r\n this.deleteTrack(trackToRemove);\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getInterpolatorClass","ctor","Interpolator","name","createFunc","ctx","init","inputs","Float32Array","base64ToUint8Array","buffer","outputs","obj","mode","target","getInitParams","uint8ArrayToBase64","Uint8Array","byteOffset","byteLength","getProps","defineProps","type","get","value","str","getMorphTrackClass","MorphTargetTrack","options","label","set","objectTypes","isHidden","object","interpolator","defaultWeights","originBoundingBox","arr","minPoint","maxPoint","bbox","AABB","values","setXYZ","boundingBox","box","push","i","length","BoundingBox","Vector3","getNodeRotationTrackClass","NodeRotationTrack","getNodeEulerRotationTrackClass","NodeEulerRotationTrack","getNodeTranslationTrackClass","NodeTranslationTrack","getNodeScaleTrackClass","NodeScaleTrack","getPropTrackClass","manager","PropertyTrack","getPropertyByName","getPropertyName","getProp","index","interpolatorAlpha","getSkeletonClass","Skeleton","prefabNode","getPrefabNode","joints","map","id","findNodeById","node","jointTypeT","jointTypeS","jointTypeR","inverseBindMatricesArray","inverseBindMatrices","bindPoseArray","bindPose","bindPoseMatrices","Matrix4x4","slice","matrix","trs","position","rotation","Quaternion","scale","decompose","skeleton","persistentId","loadProps","v","reduce","a","b","joint","getAnimationClass","AnimationClip","animationSet","createAnimation","default","num","timeDuration","weight","bool","autoPlay","skeletons","Set","val","add","edit","readonly","tracks","track","SceneNode","targetObj","findAnimationTarget","_animationSet","model","addTrack","AnimationTrack","console","error","delete","trackList","filter","trackToRemove","deleteTrack"],"mappings":"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"}
1
+ {"version":3,"file":"animation.js","sources":["../../../../src/utility/serialization/scene/animation.ts"],"sourcesContent":["import type { InterpolationMode, InterpolationTarget } from '@zephyr3d/base';\r\nimport { AABB, Quaternion } from '@zephyr3d/base';\r\nimport { base64ToUint8Array, Matrix4x4, uint8ArrayToBase64 } from '@zephyr3d/base';\r\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\r\nimport { AnimationTrack, Skeleton } from '../../../animation';\r\nimport {\r\n AnimationClip,\r\n FixedGeometryCacheTrack,\r\n PCAGeometryCacheTrack,\r\n MorphTargetTrack,\r\n NodeEulerRotationTrack,\r\n NodeRotationTrack,\r\n NodeScaleTrack,\r\n NodeTranslationTrack,\r\n PropertyTrack\r\n} from '../../../animation';\r\nimport type { ResourceManager } from '../manager';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport { SceneNode } from '../../../scene';\r\nimport { BoundingBox } from '../../bounding_volume';\r\n\r\n/** @internal */\r\nexport function getInterpolatorClass(): SerializableClass {\r\n return {\r\n ctor: Interpolator,\r\n name: 'Interpolator',\r\n createFunc(\r\n ctx,\r\n init: { mode: InterpolationMode; target: InterpolationTarget; inputs: string; outputs: string }\r\n ) {\r\n const inputs = init.inputs\r\n ? new Float32Array(base64ToUint8Array(init.inputs).buffer)\r\n : new Float32Array();\r\n const outputs = init.outputs\r\n ? new Float32Array(base64ToUint8Array(init.outputs).buffer)\r\n : new Float32Array();\r\n return { obj: new Interpolator(init.mode, init.target, inputs, outputs) };\r\n },\r\n getInitParams(obj: Interpolator) {\r\n const inputs: Float32Array<ArrayBuffer> =\r\n obj.inputs instanceof Float32Array\r\n ? obj.inputs\r\n : obj.inputs\r\n ? new Float32Array(obj.inputs)\r\n : new Float32Array();\r\n const outputs: Float32Array<ArrayBuffer> =\r\n obj.outputs instanceof Float32Array\r\n ? obj.outputs\r\n : obj.outputs\r\n ? new Float32Array(obj.outputs)\r\n : new Float32Array();\r\n return {\r\n mode: obj.mode,\r\n target: obj.target,\r\n inputs: uint8ArrayToBase64(new Uint8Array(inputs.buffer, inputs.byteOffset, inputs.byteLength)),\r\n outputs: uint8ArrayToBase64(new Uint8Array(outputs.buffer, outputs.byteOffset, outputs.byteLength))\r\n };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Mode',\r\n type: 'string',\r\n get(this: Interpolator, value) {\r\n value.str[0] = this.mode;\r\n }\r\n },\r\n {\r\n name: 'Target',\r\n type: 'string',\r\n get(this: Interpolator, value) {\r\n value.str[0] = this.target ?? '';\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getMorphTrackClass(): SerializableClass {\r\n return {\r\n ctor: MorphTargetTrack,\r\n name: 'MorphTargetTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: MorphTargetTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: MorphTargetTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'DefaultWeights',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n value.object[0] = this.defaultWeights ?? null;\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n this.defaultWeights = (value.object[0] as number[]) ?? null;\r\n }\r\n },\r\n {\r\n name: 'OriginBoundingBox',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n if (!this.originBoundingBox) {\r\n value.object[0] = null;\r\n } else {\r\n const arr = [...this.originBoundingBox.minPoint, ...this.originBoundingBox.maxPoint];\r\n value.object[0] = arr;\r\n }\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n if (!value.object[0]) {\r\n this.originBoundingBox = null;\r\n } else {\r\n const bbox = new AABB();\r\n const values = value.object[0] as number[];\r\n bbox.minPoint.setXYZ(values[0], values[1], values[2]);\r\n bbox.maxPoint.setXYZ(values[3], values[4], values[5]);\r\n this.originBoundingBox = bbox;\r\n }\r\n }\r\n },\r\n {\r\n name: 'BoundingBox',\r\n type: 'object',\r\n get(this: MorphTargetTrack, value) {\r\n if (!this.boundingBox) {\r\n value.object[0] = null;\r\n } else {\r\n const arr: number[] = [];\r\n for (const box of this.boundingBox) {\r\n arr.push(...box.minPoint);\r\n arr.push(...box.maxPoint);\r\n }\r\n value.object[0] = arr;\r\n }\r\n },\r\n set(this: MorphTargetTrack, value) {\r\n if (!value.object[0]) {\r\n this.boundingBox = null;\r\n } else {\r\n const arr: BoundingBox[] = [];\r\n const values = value.object[0] as number[];\r\n for (let i = 0; i < values.length / 6; i++) {\r\n arr.push(\r\n new BoundingBox(\r\n new Vector3(values[i * 6 + 0], values[i * 6 + 1], values[i * 6 + 2]),\r\n new Vector3(values[i * 6 + 3], values[i * 6 + 4], values[i * 6 + 5])\r\n )\r\n );\r\n }\r\n this.boundingBox = arr;\r\n }\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nfunction encodeFloat32Array(values: Float32Array) {\r\n return uint8ArrayToBase64(new Uint8Array(values.buffer, values.byteOffset, values.byteLength));\r\n}\r\n\r\nfunction decodeFloat32Array(value: string) {\r\n return new Float32Array(base64ToUint8Array(value).buffer);\r\n}\r\n\r\nexport function getFixedGeometryCacheTrackClass(): SerializableClass {\r\n return {\r\n ctor: FixedGeometryCacheTrack,\r\n name: 'FixedGeometryCacheTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Times',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.str[0] = encodeFloat32Array(this.times);\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\r\n }\r\n },\r\n {\r\n name: 'Frames',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: FixedGeometryCacheTrack, value) {\r\n value.object[0] = this.frames.map((frame) => ({\r\n positions: encodeFloat32Array(frame.positions),\r\n normals: frame.normals ? encodeFloat32Array(frame.normals) : '',\r\n bounds: [\r\n frame.boundingBox.minPoint.x,\r\n frame.boundingBox.minPoint.y,\r\n frame.boundingBox.minPoint.z,\r\n frame.boundingBox.maxPoint.x,\r\n frame.boundingBox.maxPoint.y,\r\n frame.boundingBox.maxPoint.z\r\n ]\r\n }));\r\n },\r\n set(this: FixedGeometryCacheTrack, value) {\r\n this.frames = (\r\n (value.object[0] as Array<{\r\n positions: string;\r\n normals: string;\r\n bounds: number[];\r\n }>) ?? []\r\n ).map((frame) => ({\r\n positions: decodeFloat32Array(frame.positions),\r\n normals: frame.normals ? decodeFloat32Array(frame.normals) : null,\r\n boundingBox: new BoundingBox(\r\n new Vector3(frame.bounds[0], frame.bounds[1], frame.bounds[2]),\r\n new Vector3(frame.bounds[3], frame.bounds[4], frame.bounds[5])\r\n )\r\n }));\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nexport function getPCAGeometryCacheTrackClass(): SerializableClass {\r\n return {\r\n ctor: PCAGeometryCacheTrack,\r\n name: 'PCAGeometryCacheTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Times',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = encodeFloat32Array(this.times);\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.times = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\r\n }\r\n },\r\n {\r\n name: 'Bounds',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.bounds;\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.bounds = (value.object[0] as [number, number, number, number, number, number][]) ?? [];\r\n }\r\n },\r\n {\r\n name: 'PositionReference',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.positionReference ? encodeFloat32Array(this.positionReference) : '';\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionReference = value.str[0] ? decodeFloat32Array(value.str[0]) : null;\r\n }\r\n },\r\n {\r\n name: 'PositionMean',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = encodeFloat32Array(this.positionMean);\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionMean = value.str[0] ? decodeFloat32Array(value.str[0]) : new Float32Array();\r\n }\r\n },\r\n {\r\n name: 'PositionBases',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.positionBases.map((item) => encodeFloat32Array(item));\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionBases = ((value.object[0] as string[]) ?? []).map((item) =>\r\n decodeFloat32Array(item)\r\n );\r\n }\r\n },\r\n {\r\n name: 'PositionCoefficients',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.positionCoefficients.map((item) => encodeFloat32Array(item));\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.positionCoefficients = ((value.object[0] as string[]) ?? []).map((item) =>\r\n decodeFloat32Array(item)\r\n );\r\n }\r\n },\r\n {\r\n name: 'NormalMean',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.str[0] = this.normalMean ? encodeFloat32Array(this.normalMean) : '';\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.normalMean = value.str[0] ? decodeFloat32Array(value.str[0]) : null;\r\n }\r\n },\r\n {\r\n name: 'NormalBases',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.normalBases?.map((item) => encodeFloat32Array(item)) ?? [];\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.normalBases =\r\n ((value.object[0] as string[]) ?? []).map((item) => decodeFloat32Array(item)) ?? null;\r\n }\r\n },\r\n {\r\n name: 'NormalCoefficients',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: PCAGeometryCacheTrack, value) {\r\n value.object[0] = this.normalCoefficients?.map((item) => encodeFloat32Array(item)) ?? [];\r\n },\r\n set(this: PCAGeometryCacheTrack, value) {\r\n this.normalCoefficients =\r\n ((value.object[0] as string[]) ?? []).map((item) => decodeFloat32Array(item)) ?? null;\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeRotationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeRotationTrack,\r\n name: 'NodeRotationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeEulerRotationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeEulerRotationTrack,\r\n name: 'NodeEulerRotationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeEulerRotationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeEulerRotationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeTranslationTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeTranslationTrack,\r\n name: 'NodeTranslationTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeTranslationTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeTranslationTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getNodeScaleTrackClass(): SerializableClass {\r\n return {\r\n ctor: NodeScaleTrack,\r\n name: 'NodeScaleTrack',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'Interpolator',\r\n type: 'object',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.object[0] = this.interpolator;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: NodeScaleTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: NodeScaleTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getPropTrackClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: PropertyTrack,\r\n name: 'PropertyTrack',\r\n createFunc(ctx, init) {\r\n return { obj: new PropertyTrack(manager.getPropertyByName(init)) };\r\n },\r\n getInitParams(obj: PropertyTrack) {\r\n return manager.getPropertyName(obj.getProp());\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'TrackName',\r\n type: 'string',\r\n options: {\r\n label: 'Name'\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackTarget',\r\n type: 'string',\r\n options: {\r\n label: 'Target'\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = this.target;\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.target = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'TrackProp',\r\n type: 'string',\r\n get(this: PropertyTrack, value) {\r\n value.str[0] = manager.getPropertyName(this.getProp()) ?? '';\r\n }\r\n },\r\n {\r\n name: 'TrackData',\r\n type: 'object_array',\r\n options: {\r\n objectTypes: [Interpolator]\r\n },\r\n isHidden(this: PropertyTrack, index: number) {\r\n return index >= 0;\r\n },\r\n get(this: PropertyTrack, value) {\r\n value.object = this.interpolatorAlpha\r\n ? [this.interpolator, this.interpolatorAlpha]\r\n : [this.interpolator];\r\n },\r\n set(this: PropertyTrack, value) {\r\n this.interpolator = value.object[0] as Interpolator;\r\n this.interpolatorAlpha = value.object[1] as Interpolator;\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getSkeletonClass(): SerializableClass {\r\n return {\r\n ctor: Skeleton,\r\n name: 'Skeleton',\r\n createFunc(\r\n ctx: SceneNode,\r\n init: {\r\n joints: string[];\r\n inverseBindMatrices: string;\r\n bindPoseMatrices: string;\r\n bindPose: string;\r\n id: string;\r\n }\r\n ) {\r\n const prefabNode = ctx.getPrefabNode() ?? ctx;\r\n const joints = init.joints\r\n .map((id) => prefabNode.findNodeById(id)!)\r\n .map((node) => {\r\n node!.jointTypeT = 'static';\r\n node!.jointTypeS = 'static';\r\n node!.jointTypeR = 'static';\r\n return node;\r\n });\r\n const inverseBindMatricesArray = new Float32Array(base64ToUint8Array(init.inverseBindMatrices).buffer);\r\n const bindPoseArray = new Float32Array(\r\n base64ToUint8Array(init.bindPose ?? init.bindPoseMatrices).buffer\r\n );\r\n const inverseBindMatrices: Matrix4x4[] = [];\r\n const bindPose: { rotation: Quaternion; scale: Vector3; position: Vector3 }[] = [];\r\n for (let i = 0; i < joints.length; i++) {\r\n inverseBindMatrices.push(new Matrix4x4(inverseBindMatricesArray.slice(i * 16, i * 16 + 16)));\r\n if (!init.bindPose) {\r\n const matrix = new Matrix4x4(bindPoseArray.slice(i * 16, i * 16 + 16));\r\n const trs = {\r\n position: new Vector3(),\r\n rotation: new Quaternion(),\r\n scale: new Vector3()\r\n };\r\n matrix.decompose(trs.scale, trs.rotation, trs.position);\r\n bindPose.push(trs);\r\n } else {\r\n bindPose.push({\r\n position: new Vector3(\r\n bindPoseArray[i * 10 + 0],\r\n bindPoseArray[i * 10 + 1],\r\n bindPoseArray[i * 10 + 2]\r\n ),\r\n rotation: new Quaternion(\r\n bindPoseArray[i * 10 + 3],\r\n bindPoseArray[i * 10 + 4],\r\n bindPoseArray[i * 10 + 5],\r\n bindPoseArray[i * 10 + 6]\r\n ),\r\n scale: new Vector3(\r\n bindPoseArray[i * 10 + 7],\r\n bindPoseArray[i * 10 + 8],\r\n bindPoseArray[i * 10 + 9]\r\n )\r\n });\r\n }\r\n }\r\n const skeleton = new Skeleton(joints, inverseBindMatrices, bindPose);\r\n skeleton.persistentId = init.id;\r\n return {\r\n obj: skeleton,\r\n loadProps: false\r\n };\r\n },\r\n getInitParams(obj: Skeleton) {\r\n const inverseBindMatrices: number[] = obj.inverseBindMatrices\r\n .map((v) => [...v])\r\n .reduce((a, b) => [...a, ...b], []);\r\n const bindPose: number[] = obj.bindPose\r\n .map((v) => [...v.position, ...v.rotation, ...v.scale])\r\n .reduce((a, b) => [...a, ...b], []);\r\n return {\r\n joints: obj.joints.map((joint) => joint.persistentId),\r\n inverseBindMatrices: uint8ArrayToBase64(new Uint8Array(new Float32Array(inverseBindMatrices).buffer)),\r\n bindPose: uint8ArrayToBase64(new Uint8Array(new Float32Array(bindPose).buffer)),\r\n id: obj.persistentId\r\n };\r\n },\r\n getProps() {\r\n return [];\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function getAnimationClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: AnimationClip,\r\n name: 'AnimationClip',\r\n createFunc(ctx: SceneNode, init: string) {\r\n return { obj: ctx.animationSet.get(init) ?? ctx.animationSet.createAnimation(init, false) };\r\n },\r\n getInitParams(obj: AnimationClip) {\r\n return obj.name;\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Name',\r\n type: 'string',\r\n get(this: AnimationClip, value) {\r\n value.str[0] = this.name;\r\n }\r\n },\r\n {\r\n name: 'Duration',\r\n type: 'float',\r\n default: 1,\r\n get(this: AnimationClip, value) {\r\n value.num[0] = this.timeDuration;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.timeDuration = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Weight',\r\n type: 'float',\r\n default: 1,\r\n get(this: AnimationClip, value) {\r\n value.num[0] = this.weight;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.weight = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'AutoPlay',\r\n type: 'bool',\r\n default: false,\r\n get(this: AnimationClip, value) {\r\n value.bool[0] = this.autoPlay;\r\n },\r\n set(this: AnimationClip, value) {\r\n this.autoPlay = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'Skeletons',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: AnimationClip, value) {\r\n value.object[0] = [...this.skeletons];\r\n },\r\n set(this: AnimationClip, value) {\r\n if (!this.skeletons) {\r\n this.skeletons = new Set();\r\n }\r\n for (const val of (value.object[0] as string[]) ?? []) {\r\n this.skeletons.add(val);\r\n }\r\n }\r\n },\r\n {\r\n name: 'Tracks',\r\n type: 'object_array',\r\n options: {\r\n edit: 'proptrack',\r\n objectTypes: [PropertyTrack]\r\n },\r\n readonly: true,\r\n isHidden(this: AnimationClip, index: number, obj: unknown) {\r\n if (index < 0) {\r\n return false;\r\n } else {\r\n return !(obj instanceof PropertyTrack);\r\n }\r\n },\r\n get(this: AnimationClip, value) {\r\n value.object = [];\r\n for (const tracks of this.tracks) {\r\n for (const track of tracks[1]) {\r\n if (tracks[0] instanceof SceneNode && !(track instanceof PropertyTrack)) {\r\n track.target = tracks[0].persistentId;\r\n }\r\n }\r\n //value.object.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\r\n value.object.push(...tracks[1]);\r\n }\r\n },\r\n set(this: AnimationClip, value) {\r\n for (const track of value.object) {\r\n if (track instanceof PropertyTrack) {\r\n const targetObj = manager.findAnimationTarget(this._animationSet.model, track);\r\n if (targetObj) {\r\n this.addTrack(targetObj, track);\r\n }\r\n } else if (track instanceof AnimationTrack) {\r\n const prefabNode = this._animationSet.model.getPrefabNode() ?? this._animationSet.model;\r\n const node = prefabNode.findNodeById(track.target);\r\n if (node) {\r\n this.addTrack(node, track);\r\n } else {\r\n console.error(`No node found with id = ${track.target}`);\r\n }\r\n }\r\n }\r\n },\r\n delete(this: AnimationClip, index) {\r\n const trackList: AnimationTrack[] = [];\r\n for (const tracks of this.tracks) {\r\n trackList.push(...tracks[1].filter((track) => track instanceof PropertyTrack));\r\n }\r\n const trackToRemove = trackList[index];\r\n if (trackToRemove) {\r\n this.deleteTrack(trackToRemove);\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getInterpolatorClass","ctor","Interpolator","name","createFunc","ctx","init","inputs","Float32Array","base64ToUint8Array","buffer","outputs","obj","mode","target","getInitParams","uint8ArrayToBase64","Uint8Array","byteOffset","byteLength","getProps","defineProps","type","get","value","str","getMorphTrackClass","MorphTargetTrack","options","label","set","objectTypes","isHidden","object","interpolator","defaultWeights","originBoundingBox","arr","minPoint","maxPoint","bbox","AABB","values","setXYZ","boundingBox","box","push","i","length","BoundingBox","Vector3","encodeFloat32Array","decodeFloat32Array","getFixedGeometryCacheTrackClass","FixedGeometryCacheTrack","times","frames","map","frame","positions","normals","bounds","x","y","z","getPCAGeometryCacheTrackClass","PCAGeometryCacheTrack","positionReference","positionMean","positionBases","item","positionCoefficients","normalMean","normalBases","normalCoefficients","getNodeRotationTrackClass","NodeRotationTrack","getNodeEulerRotationTrackClass","NodeEulerRotationTrack","getNodeTranslationTrackClass","NodeTranslationTrack","getNodeScaleTrackClass","NodeScaleTrack","getPropTrackClass","manager","PropertyTrack","getPropertyByName","getPropertyName","getProp","index","interpolatorAlpha","getSkeletonClass","Skeleton","prefabNode","getPrefabNode","joints","id","findNodeById","node","jointTypeT","jointTypeS","jointTypeR","inverseBindMatricesArray","inverseBindMatrices","bindPoseArray","bindPose","bindPoseMatrices","Matrix4x4","slice","matrix","trs","position","rotation","Quaternion","scale","decompose","skeleton","persistentId","loadProps","v","reduce","a","b","joint","getAnimationClass","AnimationClip","animationSet","createAnimation","default","num","timeDuration","weight","bool","autoPlay","skeletons","Set","val","add","edit","readonly","tracks","track","SceneNode","targetObj","findAnimationTarget","_animationSet","model","addTrack","AnimationTrack","console","error","delete","trackList","filter","trackToRemove","deleteTrack"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import '../../../scene/scene.js';
2
2
  import '@zephyr3d/base';
3
3
  import '../../../values.js';
4
+ import '../../../render/render_queue.js';
5
+ import '../../../render/primitive.js';
4
6
  import '@zephyr3d/device';
5
7
  import '../../../material/shader/helper.js';
6
8
  import '../../../material/lambert.js';
@@ -16,8 +18,7 @@ import '../../../material/pbrblueprint.js';
16
18
  import '../../../material/sprite.js';
17
19
  import '../../../material/sprite_std.js';
18
20
  import '../../blueprint/material/texture.js';
19
- import '../../../render/renderer.js';
20
- import '../../../render/primitive.js';
21
+ import '../../../render/rendergraph/forward_plus_builder.js';
21
22
  import '../../../render/sky.js';
22
23
  import '../../../render/clipmap.js';
23
24
  import '../../../shaders/atmosphere.js';
@@ -31,6 +32,7 @@ import '../../../scene/particlesys.js';
31
32
  import { BatchGroup } from '../../../scene/batchgroup.js';
32
33
  import '../../../scene/terrain-cm/terrain-cm.js';
33
34
  import '../../../scene/terrain-cm/grass.js';
35
+ import '../../../scene/raycast_visitor.js';
34
36
 
35
37
  /** @internal */ function getBatchGroupClass() {
36
38
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sources":["../../../../src/utility/serialization/scene/batch.ts"],"sourcesContent":["import { BatchGroup, GraphNode, type SceneNode } from '../../../scene';\r\nimport type { SerializableClass } from '../types';\r\n\r\n/** @internal */\r\nexport function getBatchGroupClass(): SerializableClass {\r\n return {\r\n ctor: BatchGroup,\r\n parent: GraphNode,\r\n name: 'BatchGroup',\r\n createFunc(ctx: SceneNode) {\r\n const batchGroup = new BatchGroup(ctx.scene!);\r\n batchGroup.parent = ctx;\r\n return { obj: batchGroup };\r\n },\r\n getProps() {\r\n return [];\r\n }\r\n };\r\n}\r\n"],"names":["getBatchGroupClass","ctor","BatchGroup","parent","GraphNode","name","createFunc","ctx","batchGroup","scene","obj","getProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iBACO,SAASA,kBAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,UAAAA;QACNC,MAAQC,EAAAA,SAAAA;QACRC,IAAM,EAAA,YAAA;AACNC,QAAAA,UAAAA,CAAAA,CAAWC,GAAc,EAAA;AACvB,YAAA,MAAMC,UAAa,GAAA,IAAIN,UAAWK,CAAAA,GAAAA,CAAIE,KAAK,CAAA;AAC3CD,YAAAA,UAAAA,CAAWL,MAAM,GAAGI,GAAAA;YACpB,OAAO;gBAAEG,GAAKF,EAAAA;AAAW,aAAA;AAC3B,SAAA;AACAG,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAO,EAAE;AACX;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"batch.js","sources":["../../../../src/utility/serialization/scene/batch.ts"],"sourcesContent":["import { BatchGroup, GraphNode, type SceneNode } from '../../../scene';\r\nimport type { SerializableClass } from '../types';\r\n\r\n/** @internal */\r\nexport function getBatchGroupClass(): SerializableClass {\r\n return {\r\n ctor: BatchGroup,\r\n parent: GraphNode,\r\n name: 'BatchGroup',\r\n createFunc(ctx: SceneNode) {\r\n const batchGroup = new BatchGroup(ctx.scene!);\r\n batchGroup.parent = ctx;\r\n return { obj: batchGroup };\r\n },\r\n getProps() {\r\n return [];\r\n }\r\n };\r\n}\r\n"],"names":["getBatchGroupClass","ctor","BatchGroup","parent","GraphNode","name","createFunc","ctx","batchGroup","scene","obj","getProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iBACO,SAASA,kBAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,UAAAA;QACNC,MAAQC,EAAAA,SAAAA;QACRC,IAAM,EAAA,YAAA;AACNC,QAAAA,UAAAA,CAAAA,CAAWC,GAAc,EAAA;AACvB,YAAA,MAAMC,UAAa,GAAA,IAAIN,UAAWK,CAAAA,GAAAA,CAAIE,KAAK,CAAA;AAC3CD,YAAAA,UAAAA,CAAWL,MAAM,GAAGI,GAAAA;YACpB,OAAO;gBAAEG,GAAKF,EAAAA;AAAW,aAAA;AAC3B,SAAA;AACAG,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAO,EAAE;AACX;AACF,KAAA;AACF;;;;"}