reze-engine 0.55.1 → 0.55.3
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/engine.d.ts +135 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +261 -21
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/model.d.ts +27 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +70 -8
- package/dist/shaders/passes/ground.d.ts +5 -1
- package/dist/shaders/passes/ground.d.ts.map +1 -1
- package/dist/shaders/passes/ground.js +47 -28
- package/package.json +1 -1
- package/src/engine.ts +313 -20
- package/src/index.ts +1 -0
- package/src/model.ts +71 -8
- package/src/shaders/passes/ground.ts +48 -27
package/dist/engine.js
CHANGED
|
@@ -675,6 +675,13 @@ export class Engine {
|
|
|
675
675
|
this.lightCount = 0;
|
|
676
676
|
this.resizeObserver = null;
|
|
677
677
|
this.resizePending = false;
|
|
678
|
+
/** The soft-edge variant, built the first time a scene asks for one. Null while
|
|
679
|
+
* no scene has, which is most of them — a pipeline nobody draws with is still
|
|
680
|
+
* a shader compile at load. */
|
|
681
|
+
this.groundShadowSoftPipeline = null;
|
|
682
|
+
/** How the ground's own pipeline is chosen, kept beside the uniform that sets
|
|
683
|
+
* it so the draw does not have to read the buffer back. */
|
|
684
|
+
this.groundSoft = false;
|
|
678
685
|
this.selectedMaterial = null;
|
|
679
686
|
this.overlayInstanceBuffer = null;
|
|
680
687
|
this.overlayInstanceCapacity = 0;
|
|
@@ -1082,6 +1089,12 @@ export class Engine {
|
|
|
1082
1089
|
* Set by the cascade loop, which skips a cascade that is unwanted and already
|
|
1083
1090
|
* cleared rather than re-clearing it every frame. */
|
|
1084
1091
|
this.shadowCascadeCleared = [];
|
|
1092
|
+
this.attachScratch = new Float32Array(16);
|
|
1093
|
+
/** Instances in pose order: a parent before every model hanging from it, so
|
|
1094
|
+
* a child reads the bone as posed and simulated THIS frame. Insertion order
|
|
1095
|
+
* otherwise. Rebuilt when a model is added, removed or re-parented. */
|
|
1096
|
+
this.updateOrder = [];
|
|
1097
|
+
this.updateOrderDirty = true;
|
|
1085
1098
|
/** Skinned positions for picking, grown on demand. One click's worth of work
|
|
1086
1099
|
* reused across clicks — a model's vertex count does not change. */
|
|
1087
1100
|
this.materialPickScratch = null;
|
|
@@ -3882,7 +3895,7 @@ export class Engine {
|
|
|
3882
3895
|
for (const inst of this.modelInstances.values()) {
|
|
3883
3896
|
// Neither a stage nor a plane is a performer, so neither is a subject an
|
|
3884
3897
|
// effect can follow.
|
|
3885
|
-
if (!inst.model.visible || inst.isStage || inst.isPlane)
|
|
3898
|
+
if (!inst.model.visible || inst.isStage || inst.isPlane || inst.isProp)
|
|
3886
3899
|
continue;
|
|
3887
3900
|
const model = inst.model;
|
|
3888
3901
|
const matrices = model.getWorldMatrices();
|
|
@@ -4918,14 +4931,9 @@ export class Engine {
|
|
|
4918
4931
|
{ binding: 12, visibility: GPUShaderStage.FRAGMENT, texture: { sampleType: "float" } },
|
|
4919
4932
|
],
|
|
4920
4933
|
});
|
|
4921
|
-
|
|
4922
|
-
label: "ground shadow",
|
|
4923
|
-
code: groundShaderWgsl(),
|
|
4924
|
-
});
|
|
4925
|
-
this.groundShadowPipeline = this.createRenderPipeline({
|
|
4934
|
+
this.groundShadowPipelineDesc = {
|
|
4926
4935
|
label: "ground shadow pipeline",
|
|
4927
4936
|
layout: this.device.createPipelineLayout({ bindGroupLayouts: [this.groundShadowBindGroupLayout] }),
|
|
4928
|
-
shaderModule: groundShadowShader,
|
|
4929
4937
|
// Slot 0 only — the ground has no skinning, and declaring the full
|
|
4930
4938
|
// 3-slot layout while renderGround binds one buffer is a WebGPU
|
|
4931
4939
|
// validation error that invalidates the whole command buffer.
|
|
@@ -4933,7 +4941,8 @@ export class Engine {
|
|
|
4933
4941
|
fragmentTargets: sceneTargetsFor("ground", this.sceneFormats),
|
|
4934
4942
|
cullMode: "back",
|
|
4935
4943
|
depthStencil: { format: this.depthFormat, depthWriteEnabled: true, depthCompare: this.depthAhead },
|
|
4936
|
-
}
|
|
4944
|
+
};
|
|
4945
|
+
this.groundShadowPipeline = this.buildGroundPipeline(false);
|
|
4937
4946
|
// Outline: group 0 = per-frame (camera), group 1 = per-instance (skinMats), group 2 = per-material (edge uniforms)
|
|
4938
4947
|
this.outlinePerFrameBindGroupLayout = this.device.createBindGroupLayout({
|
|
4939
4948
|
label: "outline per-frame bind group layout",
|
|
@@ -6738,7 +6747,7 @@ export class Engine {
|
|
|
6738
6747
|
// is first in insertion order and was seeding this clock with its own
|
|
6739
6748
|
// permanent zero. In a scene with a stage, a camera VMD therefore sampled
|
|
6740
6749
|
// frame 0 forever and the shot never moved.
|
|
6741
|
-
if (inst.isStage || inst.isPlane)
|
|
6750
|
+
if (inst.isStage || inst.isPlane || inst.isProp)
|
|
6742
6751
|
continue;
|
|
6743
6752
|
const p = inst.model.getAnimationProgress();
|
|
6744
6753
|
if (p.playing || p.paused)
|
|
@@ -7132,6 +7141,12 @@ export class Engine {
|
|
|
7132
7141
|
await this.addStage(model, pmxKey, { name, transform: options.transform, assetReader: reader });
|
|
7133
7142
|
return model;
|
|
7134
7143
|
}
|
|
7144
|
+
/** loadModel's folder/zip path for a prop. See addProp. */
|
|
7145
|
+
async loadProp(name, options) {
|
|
7146
|
+
const { model, pmxKey, reader } = await this.openPmxFromFiles(name, options);
|
|
7147
|
+
await this.addProp(model, pmxKey, { name, transform: options.transform, assetReader: reader });
|
|
7148
|
+
return model;
|
|
7149
|
+
}
|
|
7135
7150
|
/** Read a PMX out of a picked folder / expanded zip. Shared by loadModel and
|
|
7136
7151
|
* loadStage so the file-map and path handling exist in exactly one place. */
|
|
7137
7152
|
async openPmxFromFiles(name, options) {
|
|
@@ -7157,7 +7172,7 @@ export class Engine {
|
|
|
7157
7172
|
const reader = assetReader ?? createFetchAssetReader();
|
|
7158
7173
|
const basePath = deriveBasePathFromPmxPath(pmxPath);
|
|
7159
7174
|
model.setAssetContext(reader, basePath);
|
|
7160
|
-
await this.setupModelInstance(key, model, basePath, reader, options?.stage ?? false, options?.plane ?? false, options?.dynamic ?? false);
|
|
7175
|
+
await this.setupModelInstance(key, model, basePath, reader, options?.stage ?? false, options?.plane ?? false, options?.dynamic ?? false, options?.prop ?? false);
|
|
7161
7176
|
return key;
|
|
7162
7177
|
}
|
|
7163
7178
|
/**
|
|
@@ -7185,6 +7200,24 @@ export class Engine {
|
|
|
7185
7200
|
this.setModelTransform(key, options.transform);
|
|
7186
7201
|
return key;
|
|
7187
7202
|
}
|
|
7203
|
+
/**
|
|
7204
|
+
* Add a PMX as a PROP: an object a character holds or wears rather than a
|
|
7205
|
+
* performer or the environment. A microphone, a fan, a sword, an umbrella.
|
|
7206
|
+
*
|
|
7207
|
+
* It keeps what makes a held thing look right — physics (the charm on a phone
|
|
7208
|
+
* strap swings), toon outlines, its own clip if it has one — and drops what
|
|
7209
|
+
* makes a model a cast member: no effect subject id, so a silhouette effect
|
|
7210
|
+
* still outlines HER and not the mic; no seeding of the scene clock; no bone
|
|
7211
|
+
* picking in the pose editor. Like a card it leaves the built-in ground
|
|
7212
|
+
* alone, which is the one thing a stage does that a prop must not. Usually
|
|
7213
|
+
* hung from a bone with setModelParent, though it can stand on its own.
|
|
7214
|
+
*/
|
|
7215
|
+
async addProp(model, pmxPath, options) {
|
|
7216
|
+
const key = await this.addModel(model, pmxPath, options?.name, options?.assetReader, { prop: true });
|
|
7217
|
+
if (options?.transform)
|
|
7218
|
+
this.setModelTransform(key, options.transform);
|
|
7219
|
+
return key;
|
|
7220
|
+
}
|
|
7188
7221
|
/**
|
|
7189
7222
|
* Put a picture in the scene as a flat card.
|
|
7190
7223
|
*
|
|
@@ -7409,8 +7442,15 @@ export class Engine {
|
|
|
7409
7442
|
for (const install of inst.styleGroups.values())
|
|
7410
7443
|
this.destroyInstall(install);
|
|
7411
7444
|
this.modelInstances.delete(name);
|
|
7445
|
+
// Whatever hung from it stands on its own now, at identity — the same
|
|
7446
|
+
// place a detach leaves a model.
|
|
7447
|
+
for (const other of this.modelInstances.values()) {
|
|
7448
|
+
if (other.parent?.model === name)
|
|
7449
|
+
this.setModelParent(other.name, null);
|
|
7450
|
+
}
|
|
7412
7451
|
this.cullListDirty = true;
|
|
7413
7452
|
this.bundlesDirty = true;
|
|
7453
|
+
this.updateOrderDirty = true;
|
|
7414
7454
|
}
|
|
7415
7455
|
getModelNames() {
|
|
7416
7456
|
return Array.from(this.modelInstances.keys());
|
|
@@ -7418,6 +7458,127 @@ export class Engine {
|
|
|
7418
7458
|
getModel(name) {
|
|
7419
7459
|
return this.modelInstances.get(name)?.model ?? null;
|
|
7420
7460
|
}
|
|
7461
|
+
/**
|
|
7462
|
+
* Hang a model from a bone of another — MMD's 外部親 (outside parent).
|
|
7463
|
+
*
|
|
7464
|
+
* Every frame, after the parent has been posed and simulated, the child's
|
|
7465
|
+
* root bones are placed at that bone with `offset` composed on top, and only
|
|
7466
|
+
* then is the child posed itself. The placement enters through the child's
|
|
7467
|
+
* BONES rather than its model transform (Model.setRootParent): physics runs
|
|
7468
|
+
* in model space, so a root moved by the transform would have a charm on a
|
|
7469
|
+
* phone strap feel gravity swing with the hand, while a root moved by the
|
|
7470
|
+
* skeleton keeps down down. It also puts the child's own clip on top of the
|
|
7471
|
+
* ride, as MMD does — an umbrella that spins keeps spinning in the hand.
|
|
7472
|
+
*
|
|
7473
|
+
* While attached the child's position and rotation are held at identity and
|
|
7474
|
+
* setModelTransform ignores them; scale still applies, and is folded into
|
|
7475
|
+
* the placement so the offset stays in the parent's units. Detaching leaves
|
|
7476
|
+
* the model at identity until the host places it again.
|
|
7477
|
+
*
|
|
7478
|
+
* A bone the parent lacks rides the parent's root, which is what camera
|
|
7479
|
+
* follow does with an unknown name. Returns false for an unknown model, a
|
|
7480
|
+
* missing parent, or a model asked to ride itself.
|
|
7481
|
+
*/
|
|
7482
|
+
setModelParent(name, parent, bone = "全ての親", offset) {
|
|
7483
|
+
const inst = this.modelInstances.get(name);
|
|
7484
|
+
if (!inst)
|
|
7485
|
+
return false;
|
|
7486
|
+
if (parent === null) {
|
|
7487
|
+
if (inst.parent) {
|
|
7488
|
+
inst.parent = null;
|
|
7489
|
+
inst.model.setRootParent(null);
|
|
7490
|
+
inst.skinMatricesDirty = true;
|
|
7491
|
+
this.updateOrderDirty = true;
|
|
7492
|
+
}
|
|
7493
|
+
return true;
|
|
7494
|
+
}
|
|
7495
|
+
if (parent === name || !this.modelInstances.has(parent))
|
|
7496
|
+
return false;
|
|
7497
|
+
const p = offset?.position ?? new Vec3(0, 0, 0);
|
|
7498
|
+
const r = offset?.rotation ?? Quat.identity();
|
|
7499
|
+
const offsetMatrix = inst.parent?.offsetMatrix ?? new Float32Array(16);
|
|
7500
|
+
Mat4.fromPositionRotationScaleInto(p.x, p.y, p.z, r.x, r.y, r.z, r.w, 1, offsetMatrix);
|
|
7501
|
+
// Identity until the first frame fills it: a physics reset between now and
|
|
7502
|
+
// then re-poses the model, and a zero matrix would fold it to a point.
|
|
7503
|
+
const rootMatrix = inst.parent?.rootMatrix ?? new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
7504
|
+
inst.parent = { model: parent, bone, offsetMatrix, rootMatrix };
|
|
7505
|
+
inst.model.setPosition(new Vec3(0, 0, 0));
|
|
7506
|
+
inst.model.setRotation(Quat.identity());
|
|
7507
|
+
inst.model.setRootParent(rootMatrix);
|
|
7508
|
+
inst.skinMatricesDirty = true;
|
|
7509
|
+
this.updateOrderDirty = true;
|
|
7510
|
+
return true;
|
|
7511
|
+
}
|
|
7512
|
+
/** What a model hangs from, or null. */
|
|
7513
|
+
getModelParent(name) {
|
|
7514
|
+
const att = this.modelInstances.get(name)?.parent;
|
|
7515
|
+
return att ? { model: att.model, bone: att.bone } : null;
|
|
7516
|
+
}
|
|
7517
|
+
/**
|
|
7518
|
+
* The root an attached model is posed under this frame: the parent's
|
|
7519
|
+
* placement, its bone as posed and simulated, then the offset.
|
|
7520
|
+
*
|
|
7521
|
+
* The translation is divided by the child's own scale. The skin bake
|
|
7522
|
+
* multiplies the child's scale back on outside the skeleton, and a uniform
|
|
7523
|
+
* scale commutes with the rotation, so this is exactly what lands the child
|
|
7524
|
+
* at the bone in world units while its mesh still comes out scaled.
|
|
7525
|
+
*/
|
|
7526
|
+
placeAttached(inst) {
|
|
7527
|
+
const att = inst.parent;
|
|
7528
|
+
const parent = this.modelInstances.get(att.model);
|
|
7529
|
+
if (!parent) {
|
|
7530
|
+
this.setModelParent(inst.name, null);
|
|
7531
|
+
return;
|
|
7532
|
+
}
|
|
7533
|
+
const out = att.rootMatrix;
|
|
7534
|
+
const tmp = this.attachScratch;
|
|
7535
|
+
const root = parent.model.getRootMatrix();
|
|
7536
|
+
const bone = parent.model.getBoneWorldMatrix(att.bone);
|
|
7537
|
+
if (bone) {
|
|
7538
|
+
Mat4.multiplyArrays(root, 0, bone, 0, tmp, 0);
|
|
7539
|
+
Mat4.multiplyArrays(tmp, 0, att.offsetMatrix, 0, out, 0);
|
|
7540
|
+
}
|
|
7541
|
+
else {
|
|
7542
|
+
Mat4.multiplyArrays(root, 0, att.offsetMatrix, 0, out, 0);
|
|
7543
|
+
}
|
|
7544
|
+
const s = inst.model.scale;
|
|
7545
|
+
if (s > 0 && s !== 1) {
|
|
7546
|
+
const k = 1 / s;
|
|
7547
|
+
out[12] *= k;
|
|
7548
|
+
out[13] *= k;
|
|
7549
|
+
out[14] *= k;
|
|
7550
|
+
}
|
|
7551
|
+
}
|
|
7552
|
+
instancesInUpdateOrder() {
|
|
7553
|
+
if (!this.updateOrderDirty)
|
|
7554
|
+
return this.updateOrder;
|
|
7555
|
+
const placed = new Set();
|
|
7556
|
+
const order = [];
|
|
7557
|
+
let pending = Array.from(this.modelInstances.values());
|
|
7558
|
+
while (pending.length > 0) {
|
|
7559
|
+
const rest = [];
|
|
7560
|
+
for (const inst of pending) {
|
|
7561
|
+
const p = inst.parent?.model;
|
|
7562
|
+
if (p === undefined || placed.has(p) || !this.modelInstances.has(p)) {
|
|
7563
|
+
order.push(inst);
|
|
7564
|
+
placed.add(inst.name);
|
|
7565
|
+
}
|
|
7566
|
+
else
|
|
7567
|
+
rest.push(inst);
|
|
7568
|
+
}
|
|
7569
|
+
if (rest.length === pending.length) {
|
|
7570
|
+
// A cycle: nothing left can go first. They pose in insertion order and
|
|
7571
|
+
// each reads the other's previous frame, which is the best a cycle gets.
|
|
7572
|
+
console.warn(`[reze] attachment cycle: ${rest.map((r) => r.name).join(" → ")}`);
|
|
7573
|
+
order.push(...rest);
|
|
7574
|
+
break;
|
|
7575
|
+
}
|
|
7576
|
+
pending = rest;
|
|
7577
|
+
}
|
|
7578
|
+
this.updateOrder = order;
|
|
7579
|
+
this.updateOrderDirty = false;
|
|
7580
|
+
return order;
|
|
7581
|
+
}
|
|
7421
7582
|
/**
|
|
7422
7583
|
* Place a model in the scene — position, rotation, uniform scale, visibility. The
|
|
7423
7584
|
* transform is a root offset baked into skinning (moves the whole rig), so it composes
|
|
@@ -7430,9 +7591,12 @@ export class Engine {
|
|
|
7430
7591
|
const model = inst?.model;
|
|
7431
7592
|
if (!inst || !model)
|
|
7432
7593
|
return;
|
|
7433
|
-
|
|
7594
|
+
// An attached model is placed by its parent's bone; its own position and
|
|
7595
|
+
// rotation are held at identity so the ride is the whole placement (see
|
|
7596
|
+
// setModelParent). Scale and visibility are still its own.
|
|
7597
|
+
if (transform.position && !inst.parent)
|
|
7434
7598
|
model.setPosition(transform.position);
|
|
7435
|
-
if (transform.rotation)
|
|
7599
|
+
if (transform.rotation && !inst.parent)
|
|
7436
7600
|
model.setRotation(transform.rotation);
|
|
7437
7601
|
if (transform.scale !== undefined)
|
|
7438
7602
|
model.setScale(transform.scale);
|
|
@@ -7550,7 +7714,7 @@ export class Engine {
|
|
|
7550
7714
|
for (const inst of this.modelInstances.values()) {
|
|
7551
7715
|
if (options.modelName !== undefined && inst.name !== options.modelName)
|
|
7552
7716
|
continue;
|
|
7553
|
-
if (inst.isStage || inst.isPlane)
|
|
7717
|
+
if (inst.isStage || inst.isPlane || inst.isProp)
|
|
7554
7718
|
continue;
|
|
7555
7719
|
const bones = inst.model.getSkeleton().bones;
|
|
7556
7720
|
this.bonePickScratch = boneMarkerPositions(inst.model, this.bonePickScratch);
|
|
@@ -7612,7 +7776,7 @@ export class Engine {
|
|
|
7612
7776
|
for (const inst of this.modelInstances.values()) {
|
|
7613
7777
|
if (options.modelName !== undefined && inst.name !== options.modelName)
|
|
7614
7778
|
continue;
|
|
7615
|
-
if (inst.isStage || inst.isPlane)
|
|
7779
|
+
if (inst.isStage || inst.isPlane || inst.isProp)
|
|
7616
7780
|
continue;
|
|
7617
7781
|
const model = inst.model;
|
|
7618
7782
|
const { positions } = model.getGeometry();
|
|
@@ -7794,6 +7958,52 @@ export class Engine {
|
|
|
7794
7958
|
else
|
|
7795
7959
|
inst.hiddenMaterials.add(materialName);
|
|
7796
7960
|
}
|
|
7961
|
+
/**
|
|
7962
|
+
* Push a colour/shading edit straight into a material's own uniform buffer —
|
|
7963
|
+
* the same block createMaterialUniformBuffer wrote at load, offset for
|
|
7964
|
+
* offset. A single write per call, on the fields that actually moved, so
|
|
7965
|
+
* dragging one slider does not touch the other eleven.
|
|
7966
|
+
*
|
|
7967
|
+
* UNGROUPED materials only. A grouped material renders through its style
|
|
7968
|
+
* group's own compiled graph (setupPipelines' neutral/DEFAULT_GRAPH path is
|
|
7969
|
+
* what reads this buffer, and a grouped material never runs it) — the call
|
|
7970
|
+
* still writes the bytes, they are simply never sampled, which would look
|
|
7971
|
+
* like the edit silently failing. Callers check groupsByModel first and this
|
|
7972
|
+
* quietly no-ops rather than assume that check was made, since a document
|
|
7973
|
+
* edit landing to the WRONG channel (the group's own colour input) would be
|
|
7974
|
+
* a worse failure than one that does nothing.
|
|
7975
|
+
*
|
|
7976
|
+
* Structural fields — anything that changes which draw bucket a material is
|
|
7977
|
+
* in, or which texture it binds — are NOT here: alpha crossing the 1.0
|
|
7978
|
+
* opaque/transparent line, edge on/off, a texture swap, all need the draw
|
|
7979
|
+
* list or the bind group rebuilt, not a uniform write. Those get their own
|
|
7980
|
+
* call when something needs them.
|
|
7981
|
+
*/
|
|
7982
|
+
setMaterialUniforms(modelName, materialName, patch) {
|
|
7983
|
+
const inst = this.modelInstances.get(modelName);
|
|
7984
|
+
if (!inst)
|
|
7985
|
+
return false;
|
|
7986
|
+
const materials = inst.model.getMaterials();
|
|
7987
|
+
const index = materials.findIndex((m) => m.name === materialName);
|
|
7988
|
+
if (index < 0)
|
|
7989
|
+
return false;
|
|
7990
|
+
const buffer = inst.materialUniformBuffers[index];
|
|
7991
|
+
if (!buffer)
|
|
7992
|
+
return false;
|
|
7993
|
+
if (patch.diffuse) {
|
|
7994
|
+
this.device.queue.writeBuffer(buffer, 0, new Float32Array(patch.diffuse));
|
|
7995
|
+
}
|
|
7996
|
+
if (patch.ambient) {
|
|
7997
|
+
this.device.queue.writeBuffer(buffer, 16, new Float32Array(patch.ambient));
|
|
7998
|
+
}
|
|
7999
|
+
if (patch.specularPower !== undefined) {
|
|
8000
|
+
this.device.queue.writeBuffer(buffer, 28, new Float32Array([patch.specularPower]));
|
|
8001
|
+
}
|
|
8002
|
+
if (patch.specular) {
|
|
8003
|
+
this.device.queue.writeBuffer(buffer, 32, new Float32Array(patch.specular));
|
|
8004
|
+
}
|
|
8005
|
+
return true;
|
|
8006
|
+
}
|
|
7797
8007
|
isMaterialVisible(modelName, materialName) {
|
|
7798
8008
|
const inst = this.modelInstances.get(modelName);
|
|
7799
8009
|
return inst ? !inst.hiddenMaterials.has(materialName) : false;
|
|
@@ -7902,12 +8112,19 @@ export class Engine {
|
|
|
7902
8112
|
updateInstances(deltaTime) {
|
|
7903
8113
|
let animMs = 0;
|
|
7904
8114
|
let physicsMs = 0;
|
|
7905
|
-
this.
|
|
8115
|
+
for (const inst of this.instancesInUpdateOrder()) {
|
|
7906
8116
|
const tAnim = performance.now();
|
|
8117
|
+
// An attached model is placed from its parent's bone as posed and
|
|
8118
|
+
// simulated THIS frame — the order guarantees the parent came first —
|
|
8119
|
+
// and only then posed itself, so its clip and physics ride the placement.
|
|
8120
|
+
const attached = inst.parent !== null;
|
|
8121
|
+
if (attached)
|
|
8122
|
+
this.placeAttached(inst);
|
|
7907
8123
|
// A stage never solves IK — nothing drives its chains — and skips the pose
|
|
7908
8124
|
// pass entirely while it is idle. Morph changes still come through, since
|
|
7909
|
-
// that is the one thing a stage's controls do move.
|
|
7910
|
-
|
|
8125
|
+
// that is the one thing a stage's controls do move. A prop idles the same
|
|
8126
|
+
// way while it stands on its own; hung from a hand it moves every frame.
|
|
8127
|
+
const stageIdle = (inst.isStage || inst.isPlane || inst.isProp) && !attached && inst.model.isIdle();
|
|
7911
8128
|
let verticesChanged = false;
|
|
7912
8129
|
if (!stageIdle) {
|
|
7913
8130
|
verticesChanged = inst.model.update(deltaTime, inst.isStage || inst.isPlane ? false : this.ikEnabled);
|
|
@@ -7953,7 +8170,7 @@ export class Engine {
|
|
|
7953
8170
|
}
|
|
7954
8171
|
if (inst.vertexBufferNeedsUpdate)
|
|
7955
8172
|
this.updateVertexBuffer(inst);
|
|
7956
|
-
}
|
|
8173
|
+
}
|
|
7957
8174
|
this.frameAnimMsRaw = animMs;
|
|
7958
8175
|
this.framePhysicsMsRaw = physicsMs;
|
|
7959
8176
|
const EMA = 0.1;
|
|
@@ -8860,7 +9077,7 @@ export class Engine {
|
|
|
8860
9077
|
});
|
|
8861
9078
|
}
|
|
8862
9079
|
}
|
|
8863
|
-
async setupModelInstance(name, model, basePath, assetReader, isStage = false, isPlane = false, dynamicTexture = false) {
|
|
9080
|
+
async setupModelInstance(name, model, basePath, assetReader, isStage = false, isPlane = false, dynamicTexture = false, isProp = false) {
|
|
8864
9081
|
const vertices = model.getVertices();
|
|
8865
9082
|
const skinning = model.getSkinning();
|
|
8866
9083
|
const skeleton = model.getSkeleton();
|
|
@@ -8980,6 +9197,8 @@ export class Engine {
|
|
|
8980
9197
|
pickDrawCalls: [],
|
|
8981
9198
|
isStage,
|
|
8982
9199
|
isPlane,
|
|
9200
|
+
isProp,
|
|
9201
|
+
parent: null,
|
|
8983
9202
|
dynamicTexture,
|
|
8984
9203
|
// Seeded true: the bind pose has to reach the GPU once before any frame.
|
|
8985
9204
|
skinMatricesDirty: true,
|
|
@@ -9008,6 +9227,7 @@ export class Engine {
|
|
|
9008
9227
|
this.modelInstances.set(name, inst);
|
|
9009
9228
|
this.cullListDirty = true;
|
|
9010
9229
|
this.bundlesDirty = true;
|
|
9230
|
+
this.updateOrderDirty = true;
|
|
9011
9231
|
}
|
|
9012
9232
|
// Build the per-model GPU vertex-morph state. Returns null (and leaves the model on the
|
|
9013
9233
|
// CPU morph path) when the model has no vertex morphs. Created buffers are pushed into
|
|
@@ -9133,6 +9353,23 @@ export class Engine {
|
|
|
9133
9353
|
});
|
|
9134
9354
|
this.device.queue.writeBuffer(this.groundIndexBuffer, 0, indices);
|
|
9135
9355
|
}
|
|
9356
|
+
buildGroundPipeline(soft) {
|
|
9357
|
+
return this.createRenderPipeline({
|
|
9358
|
+
...this.groundShadowPipelineDesc,
|
|
9359
|
+
label: soft ? "ground shadow pipeline (soft)" : "ground shadow pipeline",
|
|
9360
|
+
shaderModule: this.device.createShaderModule({
|
|
9361
|
+
label: soft ? "ground shadow (soft)" : "ground shadow",
|
|
9362
|
+
code: groundShaderWgsl(soft),
|
|
9363
|
+
}),
|
|
9364
|
+
});
|
|
9365
|
+
}
|
|
9366
|
+
/** Built on the first frame that actually needs it. A shader compile costs
|
|
9367
|
+
* load time, and the overwhelming majority of scenes never soften a shadow. */
|
|
9368
|
+
ensureGroundSoftPipeline() {
|
|
9369
|
+
if (!this.groundShadowSoftPipeline)
|
|
9370
|
+
this.groundShadowSoftPipeline = this.buildGroundPipeline(true);
|
|
9371
|
+
return this.groundShadowSoftPipeline;
|
|
9372
|
+
}
|
|
9136
9373
|
createShadowGroundResources(opts) {
|
|
9137
9374
|
const { diffuseColor, fadeStart, fadeEnd, shadowStrength, gridSpacing, gridLineWidth, gridLineOpacity, gridLineColor, noiseStrength, opacity, mirror, mirrorBlur, shadowSoftness, } = opts;
|
|
9138
9375
|
// Shadow map is already created in setupPipelines()
|
|
@@ -9162,6 +9399,9 @@ export class Engine {
|
|
|
9162
9399
|
// gb[18] — shadow edge softness. Was padding; the shader reads it as the
|
|
9163
9400
|
// Vogel disk's radius, and 0 takes the sharp nine-tap path unchanged.
|
|
9164
9401
|
gb[18] = Math.min(Math.max(shadowSoftness, 0), 1);
|
|
9402
|
+
// Which variant the draw picks. Zero is the sharp shader, which is the one
|
|
9403
|
+
// that existed before softness did.
|
|
9404
|
+
this.groundSoft = gb[18] > 0;
|
|
9165
9405
|
// gb[17] — does the FAR cascade hold anything?
|
|
9166
9406
|
//
|
|
9167
9407
|
// It holds something only when a stage is loaded; that is what it exists for
|
|
@@ -9799,7 +10039,7 @@ export class Engine {
|
|
|
9799
10039
|
return;
|
|
9800
10040
|
if (!this.hasGround || !this.groundVertexBuffer || !this.groundIndexBuffer || !this.groundDrawCall)
|
|
9801
10041
|
return;
|
|
9802
|
-
pass.setPipeline(this.groundShadowPipeline);
|
|
10042
|
+
pass.setPipeline(this.groundSoft ? this.ensureGroundSoftPipeline() : this.groundShadowPipeline);
|
|
9803
10043
|
pass.setVertexBuffer(0, this.groundVertexBuffer);
|
|
9804
10044
|
pass.setIndexBuffer(this.groundIndexBuffer, "uint16");
|
|
9805
10045
|
pass.setBindGroup(0, this.groundDrawCall.bindGroup);
|
|
@@ -11927,7 +12167,7 @@ export class Engine {
|
|
|
11927
12167
|
// serves.
|
|
11928
12168
|
let n = 0;
|
|
11929
12169
|
this.forEachInstance((inst) => {
|
|
11930
|
-
if (n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane)
|
|
12170
|
+
if (n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp)
|
|
11931
12171
|
return;
|
|
11932
12172
|
const m = inst.model;
|
|
11933
12173
|
// The model transform is only where the model was PLACED. A motion moves
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Engine, DEFAULT_BLOOM_OPTIONS, DEFAULT_DEPTH_OF_FIELD_OPTIONS, DEFAULT_VIEW_TRANSFORM, DEFAULT_COLOR_GRADING, type ColorGradingOptions, type EngineStats, type EngineOptions, type BloomOptions, type DepthOfFieldOptions, type ViewTransformOptions, type LoadModelFromFilesOptions, type MaterialPreset, type MaterialPresetMap, type ModelTransform, type GizmoDragEvent, type GizmoDragCallback, type GizmoDragKind, type DissolveCycle, type EffectParamValue, type EffectResult, type CullDiagnostics, type MidiNote, } from "./engine";
|
|
1
|
+
export { Engine, DEFAULT_BLOOM_OPTIONS, DEFAULT_DEPTH_OF_FIELD_OPTIONS, DEFAULT_VIEW_TRANSFORM, DEFAULT_COLOR_GRADING, type ColorGradingOptions, type EngineStats, type EngineOptions, type BloomOptions, type DepthOfFieldOptions, type ViewTransformOptions, type LoadModelFromFilesOptions, type MaterialPreset, type MaterialPresetMap, type ModelTransform, type ModelAttachment, type GizmoDragEvent, type GizmoDragCallback, type GizmoDragKind, type DissolveCycle, type EffectParamValue, type EffectResult, type CullDiagnostics, type MidiNote, } from "./engine";
|
|
2
2
|
export { parsePmxFolderInput, pmxFileAtRelativePath, type PmxFolderInputResult } from "./folder-upload";
|
|
3
3
|
export { parseMidi } from "./midi-loader";
|
|
4
4
|
export { parseHDR, type HdrImage } from "./hdr";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
|
@@ -159,6 +159,15 @@ export declare class Model {
|
|
|
159
159
|
setRotation(rotation: Quat): void;
|
|
160
160
|
setScale(scale: number): void;
|
|
161
161
|
setVisible(visible: boolean): void;
|
|
162
|
+
/** Hang the rig's root bones from `matrix` (model space, column-major 16
|
|
163
|
+
* floats), or from nothing. The engine drives this every frame for an
|
|
164
|
+
* attached model; the matrix is read at the next world pass, not copied. */
|
|
165
|
+
setRootParent(matrix: Float32Array | null): void;
|
|
166
|
+
getRootParent(): Float32Array | null;
|
|
167
|
+
/** The placement matrix (position · rotation · scale) the skin bake composes
|
|
168
|
+
* onto every bone. Rebuilt lazily, the way getSkinMatrices does it. */
|
|
169
|
+
getRootMatrix(): Float32Array;
|
|
170
|
+
private refreshRootMatrix;
|
|
162
171
|
private vertexData;
|
|
163
172
|
private baseVertexData;
|
|
164
173
|
private vertexCount;
|
|
@@ -197,6 +206,21 @@ export declare class Model {
|
|
|
197
206
|
private rootMatrixValues;
|
|
198
207
|
private rootMatrixDirty;
|
|
199
208
|
private rootIsIdentity;
|
|
209
|
+
/** What every parentless bone hangs from — MMD's 外部親 (outside parent).
|
|
210
|
+
* Model space, so the pose pipeline, IK and physics all see it: a prop bound
|
|
211
|
+
* to a hand is moved by its BONES, and gravity keeps pointing down while the
|
|
212
|
+
* hand tilts. Null is the ordinary rig, rooted at the model's own origin.
|
|
213
|
+
* Written per frame by the engine from the parent's posed bone; see
|
|
214
|
+
* Engine.setModelParent. */
|
|
215
|
+
private rootParent;
|
|
216
|
+
/** The bind position of the PRIMARY root — the first parentless bone, 全ての親
|
|
217
|
+
* by convention. Under a root parent that bone sits exactly ON the parent
|
|
218
|
+
* bone, as MMD's 外部親 does, so its bind position is taken off every root's
|
|
219
|
+
* local matrix: the primary lands at the parent, the other roots keep their
|
|
220
|
+
* layout relative to it. Without this the MODEL ORIGIN went to the parent
|
|
221
|
+
* bone, and a prop rigged with its one bone at the mesh's centre hung that
|
|
222
|
+
* far away from the hand. */
|
|
223
|
+
private primaryRootBind;
|
|
200
224
|
private skinMatricesArray?;
|
|
201
225
|
private deformOrder;
|
|
202
226
|
/** 1 where the simulation overwrites the bone's world matrix. See setPhysicsDrivenBones. */
|
|
@@ -317,6 +341,9 @@ export declare class Model {
|
|
|
317
341
|
private clipApplySuspended;
|
|
318
342
|
setClipApplySuspended(suspended: boolean): void;
|
|
319
343
|
isClipApplySuspended(): boolean;
|
|
344
|
+
/** A bone's posed matrix — model space, column-major, the live array rather
|
|
345
|
+
* than a copy. Null for a name this rig does not have. */
|
|
346
|
+
getBoneWorldMatrix(boneName: string): Float32Array | null;
|
|
320
347
|
getBoneWorldPosition(boneName: string): Vec3 | null;
|
|
321
348
|
/**
|
|
322
349
|
* A bone's forward axis, normalised — which way a foot points, where a head
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAA6C,MAAM,QAAQ,CAAA;AAEpF,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAG5C,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EAEjB,UAAU,EASX,MAAM,aAAa,CAAA;AAsBpB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;2EAE2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,CAAC,EAAE,MAAM,EAAE,CAAA;IACX,CAAC,EAAE,MAAM,EAAE,CAAA;CACZ;AAOD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IAGxB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC;;uDAEmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAGD,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,QAAQ,CAAC,EAAE,IAAI,CAAA;CAChB;AAGD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,IAAI,CAAA;IAChB,aAAa,EAAE,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,mBAAmB,EAAE,YAAY,CAAA;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,UAAU,CAAA;CACpB;AAGD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC;AAGD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAID,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,wCAAwC;IACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C;AAED,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,IAAI,CAAA;AACxC,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAInC,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAA;IACrB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5C;AAKD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC;AAGD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,iBAAiB,EAAE,CAAA;IAClC,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACvC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACvC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,UAAU,gBAAgB;IACxB,aAAa,EAAE,YAAY,CAAA;IAC3B,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,SAAS,EAAE,YAAY,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AA2CD,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAa;IAE1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5B,IAAI,QAAQ,IAAI,IAAI,CAEnB;IAED,IAAI,QAAQ,IAAI,IAAI,CAEnB;IAED,2EAA2E;IAC3E,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;6DACyD;IACzD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAKjC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAKjC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;iFAE6E;IAC7E,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAQhD,aAAa,IAAI,YAAY,GAAG,IAAI;IAIpC;4EACwE;IACxE,aAAa,IAAI,YAAY;IAK7B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAA0B;IAG3C,OAAO,CAAC,qBAAqB,CAAC,CAAc;IAC5C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAO;IAG9B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAU;IAG1B,OAAO,CAAC,QAAQ,CAAU;IAG1B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAc;IAG5B,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAiB;IAKpC,OAAO,CAAC,aAAa,CAAqF;IAK1G,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,gBAAgB,CAAQ;IAChC,4EAA4E;IAC5E,OAAO,CAAC,SAAS,CAAQ;IAGzB,OAAO,CAAC,aAAa,CAAO;IAM5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,gBAAgB,CAAuE;IAC/F,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAgB;IACtC;;;;;iCAK6B;IAC7B,OAAO,CAAC,UAAU,CAA4B;IAC9C;;;;;;kCAM8B;IAC9B,OAAO,CAAC,eAAe,CAAsC;IAG7D,OAAO,CAAC,iBAAiB,CAAC,CAAc;IAMxC,OAAO,CAAC,WAAW,CAAa;IAChC,4FAA4F;IAC5F,OAAO,CAAC,aAAa,CAA0B;IAC/C,oFAAoF;IACpF,OAAO,CAAC,kBAAkB,CAA0B;IACpD,kFAAkF;IAClF,OAAO,CAAC,oBAAoB,CAA0B;IACtD,kFAAkF;IAClF,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,oBAAoB,CAA0B;IAKtD,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAY;IAG/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,eAAe,CAA6B;IAKpD,OAAO,CAAC,OAAO,CASA;IACf,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD;iFAC6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiG;IAC5H,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4D;IAK3F,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAAoH;IACrI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoD;IACrF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IAGtF,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,eAAe,CAAI;IAE3B,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAAK;IAE1B,iHAAiH;IACjH,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;gBAM1D,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,EACrC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,SAAS,EAAO,EAC7B,MAAM,GAAE,KAAK,EAAO,EACpB,YAAY,GAAE,MAAM,EAAO;IA0B7B,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAA2D;IAEjF,OAAO,CAAC,yBAAyB;IAuCjC,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,gBAAgB;IAuDxB,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,sBAAsB;IA+B9B;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IA8BvB;;+CAE2C;IAC3C,oBAAoB,IAAI,OAAO;IAM/B;;;;;;;;;;;OAWG;IACH,wBAAwB,IAAI,MAAM,EAAE;IA8BpC,OAAO,CAAC,YAAY;IA6EpB,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC;IAIxC,WAAW,IAAI,OAAO,EAAE;IAIxB,YAAY,IAAI,QAAQ,EAAE;IAI1B,UAAU,IAAI,WAAW,CAAC,WAAW,CAAC;IAItC;;;;;;;;OAQG;IACH,WAAW,IAAI;QAAE,SAAS,EAAE,YAAY,CAAC;QAAC,GAAG,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE;IAgBnF,WAAW,IAAI,QAAQ;IAOvB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI7C,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAShD,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI;IAWzD,OAAO,CAAC,kBAAkB,CAAQ;IAClC,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAG/C,oBAAoB,IAAI,OAAO;IAI/B;+DAC2D;IAC3D,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAOzD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMnD;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASlD,WAAW,IAAI,QAAQ;IAOvB,cAAc,IAAI,OAAO;IAKzB,eAAe,IAAI,SAAS,MAAM,EAAE;IAIpC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0B;IAE9D;;;oDAGgD;IAChD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO;IAQvE,cAAc,IAAI,SAAS,EAAE;IAI7B,SAAS,IAAI,KAAK,EAAE;IAIpB,WAAW,IAAI,QAAQ;IAIvB,eAAe,IAAI,YAAY;IAM/B,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAmD3E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAwD5E,OAAO,CAAC,4BAA4B;IA0CpC,gBAAgB,IAAI,IAAI,EAAE;IAI1B,oBAAoB,IAAI,YAAY;IAWpC,0BAA0B,IAAI,YAAY;IAI1C,eAAe,IAAI,YAAY;IAoC/B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAkDvE,OAAO,CAAC,WAAW;IAoGnB,eAAe,IAAI,IAAI;IAMvB,wBAAwB,IAAI,OAAO;IAQnC,wBAAwB,IAAI,YAAY;IAQxC,qBAAqB,IAAI,gBAAgB,GAAG,IAAI;IA6DhD,wBAAwB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAavE,OAAO,CAAC,yBAAyB;IA0DjC;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDpG;;8DAE0D;IAC1D,OAAO,CAAC,kBAAkB;IAS1B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAIjD,aAAa,IAAI,IAAI;IAWrB,cAAc,IAAI,IAAI;IAStB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAI3C;;;;;;;;;;;8EAW0E;IAC1E,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,iBAAiB,GAAG,IAAI;IAgC5F,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAE,GAAG,WAAW;IAM9E,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO;IAgB3D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASxB;;;;2DAIuD;IACvD,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAMzC,cAAc,IAAI,IAAI;IAItB;;;iFAG6E;IAC7E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,OAAO;IAWvG,+EAA+E;IAC/E,aAAa,CAAC,OAAO,SAAM,GAAG,IAAI;IAUlC,4CAA4C;IAC5C,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B;;;;mDAI+C;IAC/C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,IAAI;IAc5H,OAAO,CAAC,cAAc;IAYtB;yEACqE;IACrE,OAAO,CAAC,gBAAgB;IAWxB;;;mFAG+E;IAC/E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IAoBjF,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAOZ;;uEAEmE;IACnE,cAAc,IAAI,IAAI;IAQtB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM3B,oBAAoB,IAAI,iBAAiB;IAazC,OAAO,CAAC,MAAM,CAAC,UAAU;IAWzB,OAAO,CAAC,iBAAiB;IAczB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAAoB;IAEtC;8EAC0E;IAC1E,OAAO,CAAC,eAAe;IAevB;;;;8BAI0B;IAC1B,OAAO,CAAC,mBAAmB;IA2C3B,8FAA8F;IAC9F,OAAO,CAAC,gBAAgB;IAkBxB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,iBAAiB;IAiCzB;;;;yEAIqE;IACrE,OAAO,CAAC,gBAAgB;IAuIxB;sFACkF;IAClF,OAAO,CAAC,YAAY;IAmDpB;;2EAEuE;IACvE,OAAO,CAAC,cAAc;IA0CtB;;;;;;;;;OASG;IACH,MAAM,IAAI,OAAO;IAiBjB,qDAAqD;IACrD,OAAO,CAAC,eAAe;IAQvB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,OAAO;IAqGpD,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,aAAa,CAAyB;IAI9C,OAAO,CAAC,4BAA4B;IA4HpC;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAkDlD;kFAC8E;IAC9E,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,IAAI,IAAI;IA4C1B,oBAAoB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;CA0GhD"}
|