@zephyr3d/scene 0.8.2 → 0.9.1
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.
- package/dist/animation/animationset.js +473 -60
- package/dist/animation/animationset.js.map +1 -1
- package/dist/animation/cloth/gpu_cloth_system.js +2516 -0
- package/dist/animation/cloth/gpu_cloth_system.js.map +1 -0
- package/dist/animation/fixed_geometry_cache_track.js +138 -0
- package/dist/animation/fixed_geometry_cache_track.js.map +1 -0
- package/dist/animation/geometry_cache_utils.js +120 -0
- package/dist/animation/geometry_cache_utils.js.map +1 -0
- package/dist/animation/ik_modifier.js +9 -1
- package/dist/animation/ik_modifier.js.map +1 -1
- package/dist/animation/joint_dynamics/collision.js +469 -0
- package/dist/animation/joint_dynamics/collision.js.map +1 -0
- package/dist/animation/joint_dynamics/constraints.js +329 -0
- package/dist/animation/joint_dynamics/constraints.js.map +1 -0
- package/dist/animation/joint_dynamics/controller.js +699 -0
- package/dist/animation/joint_dynamics/controller.js.map +1 -0
- package/dist/animation/joint_dynamics/joint_dynamics_system.js +393 -0
- package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -0
- package/dist/animation/joint_dynamics/solver.js +794 -0
- package/dist/animation/joint_dynamics/solver.js.map +1 -0
- package/dist/animation/joint_dynamics/types.js +19 -0
- package/dist/animation/joint_dynamics/types.js.map +1 -0
- package/dist/animation/joint_dynamics/vrm_spring_bone.js +46 -0
- package/dist/animation/joint_dynamics/vrm_spring_bone.js.map +1 -0
- package/dist/animation/joint_dynamics_modifier.js +51 -0
- package/dist/animation/joint_dynamics_modifier.js.map +1 -0
- package/dist/animation/pca_geometry_cache_track.js +222 -0
- package/dist/animation/pca_geometry_cache_track.js.map +1 -0
- package/dist/animation/skeleton.js +2011 -139
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/animation/skeleton_modifier.js +3 -5
- package/dist/animation/skeleton_modifier.js.map +1 -1
- package/dist/animation/spring/multi_chain_spring_system.js +2 -0
- package/dist/animation/spring/multi_chain_spring_system.js.map +1 -1
- package/dist/animation/spring/spring_chain.js +3 -2
- package/dist/animation/spring/spring_chain.js.map +1 -1
- package/dist/animation/spring/spring_collider.js +35 -5
- package/dist/animation/spring/spring_collider.js.map +1 -1
- package/dist/animation/spring/spring_particle.js +1 -0
- package/dist/animation/spring/spring_particle.js.map +1 -1
- package/dist/animation/spring/spring_system.js +325 -28
- package/dist/animation/spring/spring_system.js.map +1 -1
- package/dist/animation/spring2/collision.js +469 -0
- package/dist/animation/spring2/collision.js.map +1 -0
- package/dist/animation/spring2/constraints.js +329 -0
- package/dist/animation/spring2/constraints.js.map +1 -0
- package/dist/animation/spring2/controller.js +434 -0
- package/dist/animation/spring2/controller.js.map +1 -0
- package/dist/animation/spring2/math.js +16 -0
- package/dist/animation/spring2/math.js.map +1 -0
- package/dist/animation/spring2/solver.js +624 -0
- package/dist/animation/spring2/solver.js.map +1 -0
- package/dist/animation/spring2/spring_system.js +118 -0
- package/dist/animation/spring2/spring_system.js.map +1 -0
- package/dist/animation/spring2/types.js +19 -0
- package/dist/animation/spring2/types.js.map +1 -0
- package/dist/animation/spring_modifier.js +17 -1
- package/dist/animation/spring_modifier.js.map +1 -1
- package/dist/app/engine.js +42 -15
- package/dist/app/engine.js.map +1 -1
- package/dist/app/runtimescript.js +132 -1
- package/dist/app/runtimescript.js.map +1 -1
- package/dist/app/screen.js +3 -3
- package/dist/app/screen.js.map +1 -1
- package/dist/app/scriptingsystem.js +69 -37
- package/dist/app/scriptingsystem.js.map +1 -1
- package/dist/app/scriptregistry.js +14 -3
- package/dist/app/scriptregistry.js.map +1 -1
- package/dist/asset/assetmanager.js +2 -1
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/loaders/zabc/zabc_loader.js +570 -0
- package/dist/asset/loaders/zabc/zabc_loader.js.map +1 -0
- package/dist/asset/model.js +192 -0
- package/dist/asset/model.js.map +1 -1
- package/dist/camera/base.js +26 -7
- package/dist/camera/base.js.map +1 -1
- package/dist/camera/camera.js +146 -24
- package/dist/camera/camera.js.map +1 -1
- package/dist/camera/fps.js +2 -2
- package/dist/camera/fps.js.map +1 -1
- package/dist/camera/orbit.js +2 -2
- package/dist/camera/orbit.js.map +1 -1
- package/dist/index.d.ts +11728 -8535
- package/dist/index.js +29 -8
- package/dist/index.js.map +1 -1
- package/dist/material/lambert.js +1 -1
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +9 -3
- package/dist/material/material.js.map +1 -1
- package/dist/material/meshmaterial.js +54 -7
- package/dist/material/meshmaterial.js.map +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js +17 -7
- package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
- package/dist/material/mixins/lightmodel/lambert.js +7 -2
- package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +108 -16
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +209 -14
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js +24 -12
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
- package/dist/material/mixins/lit.js +11 -8
- package/dist/material/mixins/lit.js.map +1 -1
- package/dist/material/mixins/pbr/common.js +72 -5
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/pbrblueprint.js +148 -1
- package/dist/material/pbrblueprint.js.map +1 -1
- package/dist/material/pbrmr.js +115 -2
- package/dist/material/pbrmr.js.map +1 -1
- package/dist/material/shader/helper.js +10 -4
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/water.js +2 -2
- package/dist/material/water.js.map +1 -1
- package/dist/posteffect/coloradjust.js +145 -0
- package/dist/posteffect/coloradjust.js.map +1 -0
- package/dist/posteffect/taa.js +68 -32
- package/dist/posteffect/taa.js.map +1 -1
- package/dist/render/cluster_light.js +17 -12
- package/dist/render/cluster_light.js.map +1 -1
- package/dist/render/deferredlightpass.js +510 -0
- package/dist/render/deferredlightpass.js.map +1 -0
- package/dist/render/deferredshadowlightpass.js +428 -0
- package/dist/render/deferredshadowlightpass.js.map +1 -0
- package/dist/render/drawable.js.map +1 -1
- package/dist/render/drawable_mixin.js +21 -12
- package/dist/render/drawable_mixin.js.map +1 -1
- package/dist/render/envlight.js +20 -22
- package/dist/render/envlight.js.map +1 -1
- package/dist/render/gbufferpass.js +50 -0
- package/dist/render/gbufferpass.js.map +1 -0
- package/dist/render/lightpass.js +1 -2
- package/dist/render/lightpass.js.map +1 -1
- package/dist/render/primitive.js +1 -1
- package/dist/render/primitive.js.map +1 -1
- package/dist/render/render_queue.js +3 -2
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderer.js +5 -358
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/rendergraph/executor.js +15 -12
- package/dist/render/rendergraph/executor.js.map +1 -1
- package/dist/render/rendergraph/forward_plus_builder.js +144 -88
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/history_resource_manager.js +178 -0
- package/dist/render/rendergraph/history_resource_manager.js.map +1 -0
- package/dist/render/rendergraph/rendergraph.js +12 -1
- package/dist/render/rendergraph/rendergraph.js.map +1 -1
- package/dist/render/rendergraph/types.js +2 -2
- package/dist/render/rendergraph/types.js.map +1 -1
- package/dist/render/sky.js +26 -9
- package/dist/render/sky.js.map +1 -1
- package/dist/scene/basesprite.js +4 -3
- package/dist/scene/basesprite.js.map +1 -1
- package/dist/scene/batchgroup.js +4 -4
- package/dist/scene/environment.js +7 -4
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/light.js +184 -18
- package/dist/scene/light.js.map +1 -1
- package/dist/scene/mesh.js +30 -0
- package/dist/scene/mesh.js.map +1 -1
- package/dist/scene/particlesys.js +3 -2
- package/dist/scene/particlesys.js.map +1 -1
- package/dist/scene/raycast_visitor.js +29 -3
- package/dist/scene/raycast_visitor.js.map +1 -1
- package/dist/scene/scene.js +86 -19
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/scene_node.js +87 -31
- package/dist/scene/scene_node.js.map +1 -1
- package/dist/scene/script_attachment.js +59 -0
- package/dist/scene/script_attachment.js.map +1 -0
- package/dist/scene/terrain-cm/grass.js +3 -2
- package/dist/scene/terrain-cm/grass.js.map +1 -1
- package/dist/scene/terrain-cm/terrain-cm.js +4 -3
- package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
- package/dist/scene/water.js +3 -2
- package/dist/scene/water.js.map +1 -1
- package/dist/shaders/shadow.js +2 -2
- package/dist/shaders/shadow.js.map +1 -1
- package/dist/shadow/shadowmapper.js +74 -4
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shapes/box.js +163 -0
- package/dist/shapes/box.js.map +1 -1
- package/dist/shapes/capsule.js +216 -0
- package/dist/shapes/capsule.js.map +1 -0
- package/dist/shapes/cylinder.js +91 -0
- package/dist/shapes/cylinder.js.map +1 -1
- package/dist/shapes/plane.js +32 -0
- package/dist/shapes/plane.js.map +1 -1
- package/dist/shapes/tetrahedron.js +211 -0
- package/dist/shapes/tetrahedron.js.map +1 -1
- package/dist/shapes/torus.js +173 -0
- package/dist/shapes/torus.js.map +1 -1
- package/dist/utility/blueprint/common/math.js +111 -1
- package/dist/utility/blueprint/common/math.js.map +1 -1
- package/dist/utility/blueprint/material/inputs.js +235 -1
- package/dist/utility/blueprint/material/inputs.js.map +1 -1
- package/dist/utility/blueprint/material/ir.js +154 -10
- package/dist/utility/blueprint/material/ir.js.map +1 -1
- package/dist/utility/blueprint/material/texture.js +273 -19
- package/dist/utility/blueprint/material/texture.js.map +1 -1
- package/dist/utility/serialization/json.js +12 -2
- package/dist/utility/serialization/json.js.map +1 -1
- package/dist/utility/serialization/manager.js +30 -11
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +250 -7
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/batch.js +4 -2
- package/dist/utility/serialization/scene/batch.js.map +1 -1
- package/dist/utility/serialization/scene/camera.js +154 -2
- package/dist/utility/serialization/scene/camera.js.map +1 -1
- package/dist/utility/serialization/scene/cloth_script.js +834 -0
- package/dist/utility/serialization/scene/cloth_script.js.map +1 -0
- package/dist/utility/serialization/scene/common.js +7 -0
- package/dist/utility/serialization/scene/common.js.map +1 -1
- package/dist/utility/serialization/scene/light.js +120 -4
- package/dist/utility/serialization/scene/light.js.map +1 -1
- package/dist/utility/serialization/scene/material.js +453 -1
- package/dist/utility/serialization/scene/material.js.map +1 -1
- package/dist/utility/serialization/scene/mesh.js +4 -2
- package/dist/utility/serialization/scene/mesh.js.map +1 -1
- package/dist/utility/serialization/scene/node.js +298 -10
- package/dist/utility/serialization/scene/node.js.map +1 -1
- package/dist/utility/serialization/scene/particle.js +4 -2
- package/dist/utility/serialization/scene/particle.js.map +1 -1
- package/dist/utility/serialization/scene/primitive.js +100 -3
- package/dist/utility/serialization/scene/primitive.js.map +1 -1
- package/dist/utility/serialization/scene/scene.js +130 -3
- package/dist/utility/serialization/scene/scene.js.map +1 -1
- package/dist/utility/serialization/scene/script.js +66 -0
- package/dist/utility/serialization/scene/script.js.map +1 -0
- package/dist/utility/serialization/scene/spring_script.js +596 -0
- package/dist/utility/serialization/scene/spring_script.js.map +1 -0
- package/dist/utility/serialization/scene/sprite.js +5 -3
- package/dist/utility/serialization/scene/sprite.js.map +1 -1
- package/dist/utility/serialization/scene/terrain.js +4 -2
- package/dist/utility/serialization/scene/terrain.js.map +1 -1
- package/dist/utility/serialization/scene/water.js +4 -2
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/utility/serialization/types.js.map +1 -1
- package/dist/values.js +5 -1
- package/dist/values.js.map +1 -1
- 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 '
|
|
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/
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,iBACO,SAASA,oBAAAA,GAAAA;IACd,OAAO;QACLC,IAAMC,EAAAA,YAAAA;QACNC,IAAM,EAAA,cAAA;QACNC,UACEC,CAAAA,CAAAA,GAAG,EACHC,IAA+F,EAAA;AAE/F,YAAA,MAAMC,MAASD,GAAAA,IAAAA,CAAKC,MAAM,GACtB,IAAIC,YAAAA,CAAaC,kBAAmBH,CAAAA,IAAAA,CAAKC,MAAM,CAAA,CAAEG,MAAM,CAAA,GACvD,IAAIF,YAAAA,EAAAA;AACR,YAAA,MAAMG,OAAUL,GAAAA,IAAAA,CAAKK,OAAO,GACxB,IAAIH,YAAAA,CAAaC,kBAAmBH,CAAAA,IAAAA,CAAKK,OAAO,CAAA,CAAED,MAAM,CAAA,GACxD,IAAIF,YAAAA,EAAAA;YACR,OAAO;gBAAEI,GAAK,EAAA,IAAIV,aAAaI,IAAKO,CAAAA,IAAI,EAAEP,IAAKQ,CAAAA,MAAM,EAAEP,MAAQI,EAAAA,OAAAA;AAAS,aAAA;AAC1E,SAAA;AACAI,QAAAA,aAAAA,CAAAA,CAAcH,GAAiB,EAAA;AAC7B,YAAA,MAAML,SACJK,GAAIL,CAAAA,MAAM,YAAYC,YAAAA,GAClBI,IAAIL,MAAM,GACVK,GAAIL,CAAAA,MAAM,GACR,IAAIC,YAAAA,CAAaI,GAAIL,CAAAA,MAAM,IAC3B,IAAIC,YAAAA,EAAAA;AACZ,YAAA,MAAMG,UACJC,GAAID,CAAAA,OAAO,YAAYH,YAAAA,GACnBI,IAAID,OAAO,GACXC,GAAID,CAAAA,OAAO,GACT,IAAIH,YAAAA,CAAaI,GAAID,CAAAA,OAAO,IAC5B,IAAIH,YAAAA,EAAAA;YACZ,OAAO;AACLK,gBAAAA,IAAAA,EAAMD,IAAIC,IAAI;AACdC,gBAAAA,MAAAA,EAAQF,IAAIE,MAAM;gBAClBP,MAAQS,EAAAA,kBAAAA,CAAmB,IAAIC,UAAAA,CAAWV,MAAOG,CAAAA,MAAM,EAAEH,MAAOW,CAAAA,UAAU,EAAEX,MAAAA,CAAOY,UAAU,CAAA,CAAA;gBAC7FR,OAASK,EAAAA,kBAAAA,CAAmB,IAAIC,UAAAA,CAAWN,OAAQD,CAAAA,MAAM,EAAEC,OAAQO,CAAAA,UAAU,EAAEP,OAAAA,CAAQQ,UAAU,CAAA;AACnG,aAAA;AACF,SAAA;AACAC,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,MAAA;oBACNmB,IAAM,EAAA,QAAA;AACNC,oBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACZ,IAAI;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEV,IAAM,EAAA,QAAA;oBACNmB,IAAM,EAAA,QAAA;AACNC,oBAAAA,GAAAA,CAAAA,CAAwBC,KAAK,EAAA;AAC3BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACX,MAAM,IAAI,EAAA;AAChC;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAASY,kBAAAA,GAAAA;IACd,OAAO;QACLzB,IAAM0B,EAAAA,gBAAAA;QACNxB,IAAM,EAAA,kBAAA;AACNiB,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPC,KAAO,EAAA;AACT,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACtB,IAAI;AAC1B,qBAAA;AACA2B,oBAAAA,GAAAA,CAAAA,CAA4BN,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACrB,IAAI,GAAGqB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEtB,IAAM,EAAA,cAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPG,WAAa,EAAA;AAAC7B,4BAAAA;AAAa;AAC7B,qBAAA;AACA8B,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,YAAY;AACrC,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAA4BN,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACU,YAAY,GAAGV,KAAMS,CAAAA,MAAM,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACE9B,IAAM,EAAA,gBAAA;oBACNmB,IAAM,EAAA,QAAA;AACNC,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/BA,wBAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACE,cAAc,IAAI,IAAA;AAC3C,qBAAA;AACAL,oBAAAA,GAAAA,CAAAA,CAA4BN,KAAK,EAAA;wBAC/B,IAAI,CAACW,cAAc,GAAIX,MAAMS,MAAM,CAAC,EAAE,IAAiB,IAAA;AACzD;AACF,iBAAA;AACA,gBAAA;oBACE9B,IAAM,EAAA,mBAAA;oBACNmB,IAAM,EAAA,QAAA;AACNC,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAAC,IAAI,CAACY,iBAAiB,EAAE;4BAC3BZ,KAAMS,CAAAA,MAAM,CAAC,CAAA,CAAE,GAAG,IAAA;yBACb,MAAA;AACL,4BAAA,MAAMI,GAAM,GAAA;mCAAI,IAAI,CAACD,iBAAiB,CAACE,QAAQ;mCAAK,IAAI,CAACF,iBAAiB,CAACG;AAAS,6BAAA;4BACpFf,KAAMS,CAAAA,MAAM,CAAC,CAAA,CAAE,GAAGI,GAAAA;AACpB;AACF,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA4BN,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACA,KAAAA,CAAMS,MAAM,CAAC,EAAE,EAAE;4BACpB,IAAI,CAACG,iBAAiB,GAAG,IAAA;yBACpB,MAAA;AACL,4BAAA,MAAMI,OAAO,IAAIC,IAAAA,EAAAA;AACjB,4BAAA,MAAMC,MAASlB,GAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAE,CAAA;AAC9BO,4BAAAA,IAAAA,CAAKF,QAAQ,CAACK,MAAM,CAACD,MAAM,CAAC,CAAA,CAAE,EAAEA,MAAM,CAAC,CAAA,CAAE,EAAEA,MAAM,CAAC,CAAE,CAAA,CAAA;AACpDF,4BAAAA,IAAAA,CAAKD,QAAQ,CAACI,MAAM,CAACD,MAAM,CAAC,CAAA,CAAE,EAAEA,MAAM,CAAC,CAAA,CAAE,EAAEA,MAAM,CAAC,CAAE,CAAA,CAAA;4BACpD,IAAI,CAACN,iBAAiB,GAAGI,IAAAA;AAC3B;AACF;AACF,iBAAA;AACA,gBAAA;oBACErC,IAAM,EAAA,aAAA;oBACNmB,IAAM,EAAA,QAAA;AACNC,oBAAAA,GAAAA,CAAAA,CAA4BC,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAAC,IAAI,CAACoB,WAAW,EAAE;4BACrBpB,KAAMS,CAAAA,MAAM,CAAC,CAAA,CAAE,GAAG,IAAA;yBACb,MAAA;AACL,4BAAA,MAAMI,MAAgB,EAAE;AACxB,4BAAA,KAAK,MAAMQ,GAAAA,IAAO,IAAI,CAACD,WAAW,CAAE;gCAClCP,GAAIS,CAAAA,IAAI,CAAID,GAAAA,GAAAA,CAAIP,QAAQ,CAAA;gCACxBD,GAAIS,CAAAA,IAAI,CAAID,GAAAA,GAAAA,CAAIN,QAAQ,CAAA;AAC1B;4BACAf,KAAMS,CAAAA,MAAM,CAAC,CAAA,CAAE,GAAGI,GAAAA;AACpB;AACF,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAA4BN,KAAK,EAAA;AAC/B,wBAAA,IAAI,CAACA,KAAAA,CAAMS,MAAM,CAAC,EAAE,EAAE;4BACpB,IAAI,CAACW,WAAW,GAAG,IAAA;yBACd,MAAA;AACL,4BAAA,MAAMP,MAAqB,EAAE;AAC7B,4BAAA,MAAMK,MAASlB,GAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAE,CAAA;4BAC9B,IAAK,IAAIc,IAAI,CAAGA,EAAAA,CAAAA,GAAIL,OAAOM,MAAM,GAAG,GAAGD,CAAK,EAAA,CAAA;AAC1CV,gCAAAA,GAAAA,CAAIS,IAAI,CACN,IAAIG,YACF,IAAIC,OAAAA,CAAQR,MAAM,CAACK,CAAAA,GAAI,IAAI,CAAE,CAAA,EAAEL,MAAM,CAACK,CAAAA,GAAI,IAAI,CAAE,CAAA,EAAEL,MAAM,CAACK,CAAAA,GAAI,CAAI,GAAA,CAAA,CAAE,GACnE,IAAIG,OAAAA,CAAQR,MAAM,CAACK,CAAAA,GAAI,IAAI,CAAE,CAAA,EAAEL,MAAM,CAACK,CAAAA,GAAI,IAAI,CAAE,CAAA,EAAEL,MAAM,CAACK,CAAAA,GAAI,IAAI,CAAE,CAAA,CAAA,CAAA,CAAA;AAGzE;4BACA,IAAI,CAACH,WAAW,GAAGP,GAAAA;AACrB;AACF;AACF,iBAAA;AACA,gBAAA;oBACElC,IAAM,EAAA,aAAA;oBACNmB,IAAM,EAAA,QAAA;AACNU,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACX,MAAM;AAC5B,qBAAA;AACAgB,oBAAAA,GAAAA,CAAAA,CAA6BN,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACV,MAAM,GAAGU,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAAS0B,yBAAAA,GAAAA;IACd,OAAO;QACLlD,IAAMmD,EAAAA,iBAAAA;QACNjD,IAAM,EAAA,mBAAA;AACNiB,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPC,KAAO,EAAA;AACT,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACtB,IAAI;AAC1B,qBAAA;AACA2B,oBAAAA,GAAAA,CAAAA,CAA6BN,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACrB,IAAI,GAAGqB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEtB,IAAM,EAAA,cAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPG,WAAa,EAAA;AAAC7B,4BAAAA;AAAa;AAC7B,qBAAA;AACA8B,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,YAAY;AACrC,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAA6BN,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACU,YAAY,GAAGV,KAAMS,CAAAA,MAAM,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACE9B,IAAM,EAAA,aAAA;oBACNmB,IAAM,EAAA,QAAA;AACNU,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAA6BC,KAAK,EAAA;AAChCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACX,MAAM;AAC5B,qBAAA;AACAgB,oBAAAA,GAAAA,CAAAA,CAA6BN,KAAK,EAAA;AAChC,wBAAA,IAAI,CAACV,MAAM,GAAGU,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAAS4B,8BAAAA,GAAAA;IACd,OAAO;QACLpD,IAAMqD,EAAAA,sBAAAA;QACNnD,IAAM,EAAA,wBAAA;AACNiB,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPC,KAAO,EAAA;AACT,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAAkCC,KAAK,EAAA;AACrCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACtB,IAAI;AAC1B,qBAAA;AACA2B,oBAAAA,GAAAA,CAAAA,CAAkCN,KAAK,EAAA;AACrC,wBAAA,IAAI,CAACrB,IAAI,GAAGqB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEtB,IAAM,EAAA,cAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPG,WAAa,EAAA;AAAC7B,4BAAAA;AAAa;AAC7B,qBAAA;AACA8B,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAkCC,KAAK,EAAA;AACrCA,wBAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,YAAY;AACrC,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAAkCN,KAAK,EAAA;AACrC,wBAAA,IAAI,CAACU,YAAY,GAAGV,KAAMS,CAAAA,MAAM,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACE9B,IAAM,EAAA,aAAA;oBACNmB,IAAM,EAAA,QAAA;AACNU,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAkCC,KAAK,EAAA;AACrCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACX,MAAM;AAC5B,qBAAA;AACAgB,oBAAAA,GAAAA,CAAAA,CAAkCN,KAAK,EAAA;AACrC,wBAAA,IAAI,CAACV,MAAM,GAAGU,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAAS8B,4BAAAA,GAAAA;IACd,OAAO;QACLtD,IAAMuD,EAAAA,oBAAAA;QACNrD,IAAM,EAAA,sBAAA;AACNiB,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPC,KAAO,EAAA;AACT,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAAgCC,KAAK,EAAA;AACnCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACtB,IAAI;AAC1B,qBAAA;AACA2B,oBAAAA,GAAAA,CAAAA,CAAgCN,KAAK,EAAA;AACnC,wBAAA,IAAI,CAACrB,IAAI,GAAGqB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEtB,IAAM,EAAA,cAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPG,WAAa,EAAA;AAAC7B,4BAAAA;AAAa;AAC7B,qBAAA;AACA8B,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAgCC,KAAK,EAAA;AACnCA,wBAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,YAAY;AACrC,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAAgCN,KAAK,EAAA;AACnC,wBAAA,IAAI,CAACU,YAAY,GAAGV,KAAMS,CAAAA,MAAM,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACE9B,IAAM,EAAA,aAAA;oBACNmB,IAAM,EAAA,QAAA;AACNU,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAgCC,KAAK,EAAA;AACnCA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACX,MAAM;AAC5B,qBAAA;AACAgB,oBAAAA,GAAAA,CAAAA,CAAgCN,KAAK,EAAA;AACnC,wBAAA,IAAI,CAACV,MAAM,GAAGU,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAASgC,sBAAAA,GAAAA;IACd,OAAO;QACLxD,IAAMyD,EAAAA,cAAAA;QACNvD,IAAM,EAAA,gBAAA;AACNiB,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPC,KAAO,EAAA;AACT,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAA0BC,KAAK,EAAA;AAC7BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACtB,IAAI;AAC1B,qBAAA;AACA2B,oBAAAA,GAAAA,CAAAA,CAA0BN,KAAK,EAAA;AAC7B,wBAAA,IAAI,CAACrB,IAAI,GAAGqB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEtB,IAAM,EAAA,cAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPG,WAAa,EAAA;AAAC7B,4BAAAA;AAAa;AAC7B,qBAAA;AACA8B,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAA0BC,KAAK,EAAA;AAC7BA,wBAAAA,KAAAA,CAAMS,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,YAAY;AACrC,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAA0BN,KAAK,EAAA;AAC7B,wBAAA,IAAI,CAACU,YAAY,GAAGV,KAAMS,CAAAA,MAAM,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACE9B,IAAM,EAAA,aAAA;oBACNmB,IAAM,EAAA,QAAA;AACNU,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAA0BC,KAAK,EAAA;AAC7BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACX,MAAM;AAC5B,qBAAA;AACAgB,oBAAAA,GAAAA,CAAAA,CAA0BN,KAAK,EAAA;AAC7B,wBAAA,IAAI,CAACV,MAAM,GAAGU,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAASkC,iBAAAA,CAAkBC,OAAwB,EAAA;IACxD,OAAO;QACL3D,IAAM4D,EAAAA,aAAAA;QACN1D,IAAM,EAAA,eAAA;QACNC,UAAWC,CAAAA,CAAAA,GAAG,EAAEC,IAAI,EAAA;YAClB,OAAO;AAAEM,gBAAAA,GAAAA,EAAK,IAAIiD,aAAAA,CAAcD,OAAQE,CAAAA,iBAAiB,CAACxD,IAAAA,CAAAA;AAAO,aAAA;AACnE,SAAA;AACAS,QAAAA,aAAAA,CAAAA,CAAcH,GAAkB,EAAA;AAC9B,YAAA,OAAOgD,OAAQG,CAAAA,eAAe,CAACnD,GAAAA,CAAIoD,OAAO,EAAA,CAAA;AAC5C,SAAA;AACA5C,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPC,KAAO,EAAA;AACT,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACtB,IAAI;AAC1B,qBAAA;AACA2B,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,IAAI,CAACrB,IAAI,GAAGqB,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEtB,IAAM,EAAA,aAAA;oBACNmB,IAAM,EAAA,QAAA;oBACNM,OAAS,EAAA;wBACPC,KAAO,EAAA;AACT,qBAAA;AACAN,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACX,MAAM;AAC5B,qBAAA;AACAgB,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,IAAI,CAACV,MAAM,GAAGU,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF,iBAAA;AACA,gBAAA;oBACEtB,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;AACNC,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;wBAC5BA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAGmC,OAAAA,CAAQG,eAAe,CAAC,IAAI,CAACC,OAAO,EAAO,CAAA,IAAA,EAAA;AAC5D;AACF,iBAAA;AACA,gBAAA;oBACE7D,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,cAAA;oBACNM,OAAS,EAAA;wBACPG,WAAa,EAAA;AAAC7B,4BAAAA;AAAa;AAC7B,qBAAA;AACA8B,oBAAAA,QAAAA,CAAAA,CAA8BiC,KAAa,EAAA;AACzC,wBAAA,OAAOA,KAAS,IAAA,CAAA;AAClB,qBAAA;AACA1C,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,wBAAAA,KAAAA,CAAMS,MAAM,GAAG,IAAI,CAACiC,iBAAiB,GACjC;AAAC,4BAAA,IAAI,CAAChC,YAAY;AAAE,4BAAA,IAAI,CAACgC;yBAAkB,GAC3C;AAAC,4BAAA,IAAI,CAAChC;AAAa,yBAAA;AACzB,qBAAA;AACAJ,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,IAAI,CAACU,YAAY,GAAGV,KAAMS,CAAAA,MAAM,CAAC,CAAE,CAAA;AACnC,wBAAA,IAAI,CAACiC,iBAAiB,GAAG1C,KAAMS,CAAAA,MAAM,CAAC,CAAE,CAAA;AAC1C;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;AAEA,iBACO,SAASkC,gBAAAA,GAAAA;IACd,OAAO;QACLlE,IAAMmE,EAAAA,QAAAA;QACNjE,IAAM,EAAA,UAAA;QACNC,UACEC,CAAAA,CAAAA,GAAc,EACdC,IAMC,EAAA;YAED,MAAM+D,UAAAA,GAAahE,IAAIiE,aAAa,EAAA;AACpC,YAAA,MAAMC,MAASjE,GAAAA,IAAAA,CAAKiE,MAAM,CACvBC,GAAG,CAAC,CAACC,EAAOJ,GAAAA,UAAAA,CAAYK,YAAY,CAACD,EACrCD,CAAAA,CAAAA,CAAAA,GAAG,CAAC,CAACG,IAAAA,GAAAA;AACJA,gBAAAA,IAAAA,CAAMC,UAAU,GAAG,QAAA;AACnBD,gBAAAA,IAAAA,CAAME,UAAU,GAAG,QAAA;AACnBF,gBAAAA,IAAAA,CAAMG,UAAU,GAAG,QAAA;gBACnB,OAAOH,IAAAA;AACT,aAAA,CAAA;AACF,YAAA,MAAMI,2BAA2B,IAAIvE,YAAAA,CAAaC,mBAAmBH,IAAK0E,CAAAA,mBAAmB,EAAEtE,MAAM,CAAA;YACrG,MAAMuE,aAAAA,GAAgB,IAAIzE,YAAAA,CACxBC,kBAAmBH,CAAAA,IAAAA,CAAK4E,QAAQ,IAAI5E,IAAAA,CAAK6E,gBAAgB,CAAA,CAAEzE,MAAM,CAAA;AAEnE,YAAA,MAAMsE,sBAAmC,EAAE;AAC3C,YAAA,MAAME,WAA0E,EAAE;AAClF,YAAA,IAAK,IAAInC,CAAI,GAAA,CAAA,EAAGA,IAAIwB,MAAOvB,CAAAA,MAAM,EAAED,CAAK,EAAA,CAAA;gBACtCiC,mBAAoBlC,CAAAA,IAAI,CAAC,IAAIsC,SAAUL,CAAAA,wBAAAA,CAAyBM,KAAK,CAACtC,CAAAA,GAAI,EAAIA,EAAAA,CAAAA,GAAI,EAAK,GAAA,EAAA,CAAA,CAAA,CAAA;gBACvF,IAAI,CAACzC,IAAK4E,CAAAA,QAAQ,EAAE;oBAClB,MAAMI,MAAAA,GAAS,IAAIF,SAAUH,CAAAA,aAAAA,CAAcI,KAAK,CAACtC,CAAAA,GAAI,EAAIA,EAAAA,CAAAA,GAAI,EAAK,GAAA,EAAA,CAAA,CAAA;AAClE,oBAAA,MAAMwC,GAAM,GAAA;AACVC,wBAAAA,QAAAA,EAAU,IAAItC,OAAAA,EAAAA;AACduC,wBAAAA,QAAAA,EAAU,IAAIC,UAAAA,EAAAA;AACdC,wBAAAA,KAAAA,EAAO,IAAIzC,OAAAA;AACb,qBAAA;oBACAoC,MAAOM,CAAAA,SAAS,CAACL,GAAII,CAAAA,KAAK,EAAEJ,GAAIE,CAAAA,QAAQ,EAAEF,GAAAA,CAAIC,QAAQ,CAAA;AACtDN,oBAAAA,QAAAA,CAASpC,IAAI,CAACyC,GAAAA,CAAAA;iBACT,MAAA;AACLL,oBAAAA,QAAAA,CAASpC,IAAI,CAAC;AACZ0C,wBAAAA,QAAAA,EAAU,IAAItC,OACZ+B,CAAAA,aAAa,CAAClC,CAAI,GAAA,EAAA,GAAK,EAAE,EACzBkC,aAAa,CAAClC,CAAAA,GAAI,KAAK,CAAE,CAAA,EACzBkC,aAAa,CAAClC,CAAAA,GAAI,KAAK,CAAE,CAAA,CAAA;wBAE3B0C,QAAU,EAAA,IAAIC,UACZT,CAAAA,aAAa,CAAClC,CAAAA,GAAI,KAAK,CAAE,CAAA,EACzBkC,aAAa,CAAClC,CAAI,GAAA,EAAA,GAAK,EAAE,EACzBkC,aAAa,CAAClC,CAAAA,GAAI,EAAK,GAAA,CAAA,CAAE,EACzBkC,aAAa,CAAClC,CAAI,GAAA,EAAA,GAAK,CAAE,CAAA,CAAA;AAE3B4C,wBAAAA,KAAAA,EAAO,IAAIzC,OACT+B,CAAAA,aAAa,CAAClC,CAAI,GAAA,EAAA,GAAK,EAAE,EACzBkC,aAAa,CAAClC,CAAAA,GAAI,KAAK,CAAE,CAAA,EACzBkC,aAAa,CAAClC,CAAAA,GAAI,KAAK,CAAE,CAAA;AAE7B,qBAAA,CAAA;AACF;AACF;AACA,YAAA,MAAM8C,QAAW,GAAA,IAAIzB,QAASG,CAAAA,MAAAA,EAAQS,mBAAqBE,EAAAA,QAAAA,CAAAA;YAC3DW,QAASC,CAAAA,YAAY,GAAGxF,IAAAA,CAAKmE,EAAE;YAC/B,OAAO;gBACL7D,GAAKiF,EAAAA,QAAAA;gBACLE,SAAW,EAAA;AACb,aAAA;AACF,SAAA;AACAhF,QAAAA,aAAAA,CAAAA,CAAcH,GAAa,EAAA;AACzB,YAAA,MAAMoE,sBAAgCpE,GAAIoE,CAAAA,mBAAmB,CAC1DR,GAAG,CAAC,CAACwB,CAAM,GAAA;AAAIA,oBAAAA,GAAAA;AAAE,iBAAA,CAAA,CACjBC,MAAM,CAAC,CAACC,CAAAA,EAAGC,CAAM,GAAA;AAAID,oBAAAA,GAAAA,CAAAA;AAAMC,oBAAAA,GAAAA;AAAE,iBAAA,EAAE,EAAE,CAAA;AACpC,YAAA,MAAMjB,WAAqBtE,GAAIsE,CAAAA,QAAQ,CACpCV,GAAG,CAAC,CAACwB,CAAM,GAAA;AAAIA,oBAAAA,GAAAA,CAAAA,CAAER,QAAQ;AAAKQ,oBAAAA,GAAAA,CAAAA,CAAEP,QAAQ;AAAKO,oBAAAA,GAAAA,CAAAA,CAAEL;AAAM,iBAAA,CAAA,CACrDM,MAAM,CAAC,CAACC,CAAAA,EAAGC,CAAM,GAAA;AAAID,oBAAAA,GAAAA,CAAAA;AAAMC,oBAAAA,GAAAA;AAAE,iBAAA,EAAE,EAAE,CAAA;YACpC,OAAO;gBACL5B,MAAQ3D,EAAAA,GAAAA,CAAI2D,MAAM,CAACC,GAAG,CAAC,CAAC4B,KAAAA,GAAUA,MAAMN,YAAY,CAAA;AACpDd,gBAAAA,mBAAAA,EAAqBhE,mBAAmB,IAAIC,UAAAA,CAAW,IAAIT,YAAAA,CAAawE,qBAAqBtE,MAAM,CAAA,CAAA;AACnGwE,gBAAAA,QAAAA,EAAUlE,mBAAmB,IAAIC,UAAAA,CAAW,IAAIT,YAAAA,CAAa0E,UAAUxE,MAAM,CAAA,CAAA;AAC7E+D,gBAAAA,EAAAA,EAAI7D,IAAIkF;AACV,aAAA;AACF,SAAA;AACA1E,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAO,EAAE;AACX;AACF,KAAA;AACF;AAEA,iBACO,SAASiF,iBAAAA,CAAkBzC,OAAwB,EAAA;IACxD,OAAO;QACL3D,IAAMqG,EAAAA,aAAAA;QACNnG,IAAM,EAAA,eAAA;QACNC,UAAWC,CAAAA,CAAAA,GAAc,EAAEC,IAAY,EAAA;YACrC,OAAO;gBAAEM,GAAKP,EAAAA,GAAAA,CAAIkG,YAAY,CAAChF,GAAG,CAACjB,IAASD,CAAAA,IAAAA,GAAAA,CAAIkG,YAAY,CAACC,eAAe,CAAClG,IAAM,EAAA,KAAA;AAAO,aAAA;AAC5F,SAAA;AACAS,QAAAA,aAAAA,CAAAA,CAAcH,GAAkB,EAAA;AAC9B,YAAA,OAAOA,IAAIT,IAAI;AACjB,SAAA;AACAiB,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACElB,IAAM,EAAA,MAAA;oBACNmB,IAAM,EAAA,QAAA;AACNC,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACtB,IAAI;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEA,IAAM,EAAA,UAAA;oBACNmB,IAAM,EAAA,OAAA;oBACNmF,OAAS,EAAA,CAAA;AACTlF,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,wBAAAA,KAAAA,CAAMkF,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,YAAY;AAClC,qBAAA;AACA7E,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,IAAI,CAACmF,YAAY,GAAGnF,KAAMkF,CAAAA,GAAG,CAAC,CAAE,CAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACEvG,IAAM,EAAA,QAAA;oBACNmB,IAAM,EAAA,OAAA;oBACNmF,OAAS,EAAA,CAAA;AACTlF,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,wBAAAA,KAAAA,CAAMkF,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACE,MAAM;AAC5B,qBAAA;AACA9E,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,IAAI,CAACoF,MAAM,GAAGpF,KAAMkF,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC5B;AACF,iBAAA;AACA,gBAAA;oBACEvG,IAAM,EAAA,UAAA;oBACNmB,IAAM,EAAA,MAAA;oBACNmF,OAAS,EAAA,KAAA;AACTlF,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;AAC5BA,wBAAAA,KAAAA,CAAMqF,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,QAAQ;AAC/B,qBAAA;AACAhF,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,IAAI,CAACsF,QAAQ,GAAGtF,KAAMqF,CAAAA,IAAI,CAAC,CAAE,CAAA;AAC/B;AACF,iBAAA;AACA,gBAAA;oBACE1G,IAAM,EAAA,WAAA;oBACNmB,IAAM,EAAA,QAAA;AACNU,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;wBAC5BA,KAAMS,CAAAA,MAAM,CAAC,CAAA,CAAE,GAAG;AAAI,4BAAA,GAAA,IAAI,CAAC8E;AAAU,yBAAA;AACvC,qBAAA;AACAjF,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,IAAI,CAAC,IAAI,CAACuF,SAAS,EAAE;4BACnB,IAAI,CAACA,SAAS,GAAG,IAAIC,GAAAA,EAAAA;AACvB;wBACA,KAAK,MAAMC,OAAO,KAACzF,CAAMS,MAAM,CAAC,CAAA,CAAE,IAAiB,EAAE,CAAE;AACrD,4BAAA,IAAI,CAAC8E,SAAS,CAACG,GAAG,CAACD,GAAAA,CAAAA;AACrB;AACF;AACF,iBAAA;AACA,gBAAA;oBACE9G,IAAM,EAAA,QAAA;oBACNmB,IAAM,EAAA,cAAA;oBACNM,OAAS,EAAA;wBACPuF,IAAM,EAAA,WAAA;wBACNpF,WAAa,EAAA;AAAC8B,4BAAAA;AAAc;AAC9B,qBAAA;oBACAuD,QAAU,EAAA,IAAA;oBACVpF,QAA8BiC,CAAAA,CAAAA,KAAa,EAAErD,GAAY,EAAA;AACvD,wBAAA,IAAIqD,QAAQ,CAAG,EAAA;4BACb,OAAO,KAAA;yBACF,MAAA;4BACL,OAAO,EAAErD,GAAAA,YAAeiD,aAAY,CAAA;AACtC;AACF,qBAAA;AACAtC,oBAAAA,GAAAA,CAAAA,CAAyBC,KAAK,EAAA;wBAC5BA,KAAMS,CAAAA,MAAM,GAAG,EAAE;AACjB,wBAAA,KAAK,MAAMoF,MAAAA,IAAU,IAAI,CAACA,MAAM,CAAE;AAChC,4BAAA,KAAK,MAAMC,KAAAA,IAASD,MAAM,CAAC,EAAE,CAAE;gCAC7B,IAAIA,MAAM,CAAC,CAAE,CAAA,YAAYE,aAAa,EAAED,KAAiBzD,YAAAA,aAAY,CAAI,EAAA;AACvEyD,oCAAAA,KAAAA,CAAMxG,MAAM,GAAGuG,MAAM,CAAC,CAAA,CAAE,CAACvB,YAAY;AACvC;AACF;;AAEAtE,4BAAAA,KAAAA,CAAMS,MAAM,CAACa,IAAI,CAAIuE,GAAAA,MAAM,CAAC,CAAE,CAAA,CAAA;AAChC;AACF,qBAAA;AACAvF,oBAAAA,GAAAA,CAAAA,CAAyBN,KAAK,EAAA;AAC5B,wBAAA,KAAK,MAAM8F,KAAAA,IAAS9F,KAAMS,CAAAA,MAAM,CAAE;AAChC,4BAAA,IAAIqF,iBAAiBzD,aAAe,EAAA;gCAClC,MAAM2D,SAAAA,GAAY5D,QAAQ6D,mBAAmB,CAAC,IAAI,CAACC,aAAa,CAACC,KAAK,EAAEL,KAAAA,CAAAA;AACxE,gCAAA,IAAIE,SAAW,EAAA;oCACb,IAAI,CAACI,QAAQ,CAACJ,SAAWF,EAAAA,KAAAA,CAAAA;AAC3B;6BACK,MAAA,IAAIA,iBAAiBO,cAAgB,EAAA;AAC1C,gCAAA,MAAMxD,aAAa,IAAI,CAACqD,aAAa,CAACC,KAAK,CAACrD,aAAa,EAAA;AACzD,gCAAA,MAAMK,IAAON,GAAAA,UAAAA,CAAYK,YAAY,CAAC4C,MAAMxG,MAAM,CAAA;AAClD,gCAAA,IAAI6D,IAAM,EAAA;oCACR,IAAI,CAACiD,QAAQ,CAACjD,IAAM2C,EAAAA,KAAAA,CAAAA;iCACf,MAAA;AACLQ,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,wBAAwB,EAAET,KAAAA,CAAMxG,MAAM,CAAE,CAAA,CAAA;AACzD;AACF;AACF;AACF,qBAAA;AACAkH,oBAAAA,MAAAA,CAAAA,CAA4B/D,KAAK,EAAA;AAC/B,wBAAA,MAAMgE,YAA8B,EAAE;AACtC,wBAAA,KAAK,MAAMZ,MAAAA,IAAU,IAAI,CAACA,MAAM,CAAE;4BAChCY,SAAUnF,CAAAA,IAAI,CAAIuE,GAAAA,MAAM,CAAC,CAAA,CAAE,CAACa,MAAM,CAAC,CAACZ,KAAAA,GAAUA,KAAiBzD,YAAAA,aAAAA,CAAAA,CAAAA;AACjE;wBACA,MAAMsE,aAAAA,GAAgBF,SAAS,CAAChE,KAAM,CAAA;AACtC,wBAAA,IAAIkE,aAAe,EAAA;4BACjB,IAAI,CAACC,WAAW,CAACD,aAAAA,CAAAA;AACnB;AACF;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;;;;"}
|
|
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/
|
|
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":"
|
|
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;;;;"}
|