@hypersoniclabs/helix-cli 0.1.27-helix3.572 → 0.1.27-helix3.574
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/city/colliders/apply.d.ts +0 -2
- package/dist/city/colliders/apply.js +7 -29
- package/dist/city/colliders/apply.js.map +1 -1
- package/dist/city/colliders/blockMesh.d.ts +14 -0
- package/dist/city/colliders/blockMesh.js +92 -0
- package/dist/city/colliders/blockMesh.js.map +1 -0
- package/dist/city/colliders/buildingBoxes.d.ts +7 -7
- package/dist/city/colliders/buildingBoxes.js +19 -13
- package/dist/city/colliders/buildingBoxes.js.map +1 -1
- package/dist/city/convert/canonicalDocs.d.ts +13 -0
- package/dist/city/convert/canonicalDocs.js +40 -0
- package/dist/city/convert/canonicalDocs.js.map +1 -0
- package/dist/city/convert/optimizations.js +2 -1
- package/dist/city/convert/optimizations.js.map +1 -1
- package/dist/city/convert/stages.js +18 -1
- package/dist/city/convert/stages.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_stock_events.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fmod_studio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fsb5.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_ac.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_beamng.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_fixtures.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_sim_audio.cpython-312.pyc +0 -0
|
@@ -5,8 +5,6 @@ export interface PrefixSource {
|
|
|
5
5
|
readRange(path: string, offset: number, length: number): Promise<Uint8Array>;
|
|
6
6
|
}
|
|
7
7
|
export declare function prefixSource(base: string): PrefixSource;
|
|
8
|
-
/** A 1 m unit cube centred on the origin: the one mesh every building box scales, rotates and places. */
|
|
9
|
-
export declare function unitBoxGlb(): Promise<Uint8Array>;
|
|
10
8
|
export interface ApplyOptions {
|
|
11
9
|
source: PrefixSource;
|
|
12
10
|
/** The root's folder name under `scene/`. */
|
|
@@ -10,13 +10,10 @@
|
|
|
10
10
|
// relative paths, so uploading --out next to a copy of the old root folder is the whole publication.
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.prefixSource = prefixSource;
|
|
13
|
-
exports.unitBoxGlb = unitBoxGlb;
|
|
14
13
|
exports.applyColliders = applyColliders;
|
|
15
14
|
exports.writeFiles = writeFiles;
|
|
16
15
|
const promises_1 = require("node:fs/promises");
|
|
17
16
|
const node_path_1 = require("node:path");
|
|
18
|
-
const node_crypto_1 = require("node:crypto");
|
|
19
|
-
const core_1 = require("@gltf-transform/core");
|
|
20
17
|
const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
|
|
21
18
|
const glbBounds_1 = require("./glbBounds");
|
|
22
19
|
const buildingBoxes_1 = require("./buildingBoxes");
|
|
@@ -47,21 +44,6 @@ function prefixSource(base) {
|
|
|
47
44
|
readRange: async (path, offset, length) => new Uint8Array((await (0, promises_1.readFile)((0, node_path_1.join)(base, path))).subarray(offset, offset + length)),
|
|
48
45
|
};
|
|
49
46
|
}
|
|
50
|
-
/** A 1 m unit cube centred on the origin: the one mesh every building box scales, rotates and places. */
|
|
51
|
-
async function unitBoxGlb() {
|
|
52
|
-
const document = new core_1.Document();
|
|
53
|
-
const buffer = document.createBuffer();
|
|
54
|
-
const h = 0.5;
|
|
55
|
-
const corners = [[-h, -h, -h], [h, -h, -h], [h, h, -h], [-h, h, -h], [-h, -h, h], [h, -h, h], [h, h, h], [-h, h, h]].flat();
|
|
56
|
-
// Counter-clockwise outward faces.
|
|
57
|
-
const quads = [[0, 3, 2, 1], [4, 5, 6, 7], [0, 1, 5, 4], [3, 7, 6, 2], [0, 4, 7, 3], [1, 2, 6, 5]];
|
|
58
|
-
const indices = quads.flatMap(([a, b, c, d]) => [a, b, c, a, c, d]);
|
|
59
|
-
const position = document.createAccessor().setType('VEC3').setArray(new Float32Array(corners)).setBuffer(buffer);
|
|
60
|
-
const index = document.createAccessor().setType('SCALAR').setArray(new Uint16Array(indices)).setBuffer(buffer);
|
|
61
|
-
const mesh = document.createMesh('unit-box').addPrimitive(document.createPrimitive().setAttribute('POSITION', position).setIndices(index));
|
|
62
|
-
document.createScene('unit-box').addChild(document.createNode('unit-box').setMesh(mesh));
|
|
63
|
-
return new core_1.NodeIO().writeBinary(document);
|
|
64
|
-
}
|
|
65
47
|
/** Whether (x, y, z) lies inside the oriented unit-cube box (position, rotation quaternion, scale). */
|
|
66
48
|
function pointInBox(box, x, y, z) {
|
|
67
49
|
if (x < box.min[0] || x > box.max[0] || y < box.min[1] || y > box.max[1] || z < box.min[2] || z > box.max[2])
|
|
@@ -73,7 +55,6 @@ function pointInBox(box, x, y, z) {
|
|
|
73
55
|
const lx = px + qw * tx + (-qy * tz + qz * ty), ly = py + qw * ty + (-qz * tx + qx * tz), lz = pz + qw * tz + (-qx * ty + qy * tx);
|
|
74
56
|
return Math.abs(lx) <= box.scale[0] / 2 && Math.abs(ly) <= box.scale[1] / 2 && Math.abs(lz) <= box.scale[2] / 2;
|
|
75
57
|
}
|
|
76
|
-
const sha256 = (bytes) => (0, node_crypto_1.createHash)('sha256').update(bytes).digest('hex');
|
|
77
58
|
const json = (value) => new TextEncoder().encode(JSON.stringify(value));
|
|
78
59
|
async function pool(items, size, work) {
|
|
79
60
|
const out = new Array(items.length);
|
|
@@ -139,23 +120,19 @@ async function applyColliders(options) {
|
|
|
139
120
|
log(`buildings: mount ${mount.id} -> ${part.nodes.length} nodes, ${bounds.size}/${resourceIds.length} model bounds`);
|
|
140
121
|
parts.push({ part, bounds });
|
|
141
122
|
}
|
|
142
|
-
const unit = await unitBoxGlb();
|
|
143
|
-
const unitSha = sha256(unit);
|
|
144
|
-
const unitUri = `colliders/unit-box.${unitSha.slice(0, 16)}.glb`;
|
|
145
123
|
const planOptions = { ...buildingBoxes_1.DEFAULT_BUILDING_COLLIDER_OPTIONS, ...options.buildings };
|
|
146
124
|
// Inline, the root's own sets (roads, decks) share the 256-set cap with the buildings'.
|
|
147
125
|
// Each set is also a stream group, and a scene holds at most 512 of those (the roots mounts add one): the roads' groups count too.
|
|
148
126
|
if (planOptions.inline)
|
|
149
127
|
planOptions.maxSets = Math.min(planOptions.maxSets, 252 - next.collision.sets.length, 510 - next.streamGroups.length);
|
|
150
128
|
const { boxes, stats } = (0, buildingBoxes_1.planBuildingBoxes)(parts, planOptions);
|
|
151
|
-
const { scene: childUnsealed, stats: sets } = (0, buildingBoxes_1.buildColliderScene)(boxes, {
|
|
152
|
-
...planOptions, unitBox: { sha256: unitSha, bytes: unit.length, uri: unitUri }, adapters: root.adapters,
|
|
153
|
-
});
|
|
129
|
+
const { scene: childUnsealed, stats: sets, files: blockFiles } = (0, buildingBoxes_1.buildColliderScene)(boxes, { ...planOptions, adapters: root.adapters });
|
|
154
130
|
const child = (0, buildingBoxes_1.sealScene)(childUnsealed);
|
|
155
131
|
if (planOptions.inline) {
|
|
156
|
-
|
|
132
|
+
for (const block of blockFiles)
|
|
133
|
+
files.push({ path: `scene/${options.newRootName}/${block.uri}`, bytes: block.bytes });
|
|
157
134
|
next = (0, buildingBoxes_1.inlineColliderChild)(next, child);
|
|
158
|
-
report.buildings = { ...stats, ...sets, inline: true, rootCollisionSets: next.collision.sets.length,
|
|
135
|
+
report.buildings = { ...stats, ...sets, inline: true, rootCollisionSets: next.collision.sets.length, blockFiles: blockFiles.length, streamRadiusM: planOptions.streamRadiusM };
|
|
159
136
|
}
|
|
160
137
|
else {
|
|
161
138
|
const checked = (0, helix_manifest_1.validateSceneDocument)(child);
|
|
@@ -163,9 +140,10 @@ async function applyColliders(options) {
|
|
|
163
140
|
throw new Error(`the collider child does not validate: ${checked.errors.slice(0, 5).join('; ')}`);
|
|
164
141
|
const childBytes = json(child);
|
|
165
142
|
files.push({ path: `scene/${child.integrity.sha256}/scene.helix-scene.json`, bytes: childBytes });
|
|
166
|
-
|
|
143
|
+
for (const block of blockFiles)
|
|
144
|
+
files.push({ path: `scene/${child.integrity.sha256}/${block.uri}`, bytes: block.bytes });
|
|
167
145
|
next = (0, buildingBoxes_1.mountColliderChild)(next, child);
|
|
168
|
-
report.buildings = { ...stats, ...sets, childSha256: child.integrity.sha256, childBytes: childBytes.length,
|
|
146
|
+
report.buildings = { ...stats, ...sets, childSha256: child.integrity.sha256, childBytes: childBytes.length, blockFiles: blockFiles.length, streamRadiusM: planOptions.streamRadiusM };
|
|
169
147
|
}
|
|
170
148
|
// The lips are ramps at the foot of kerbs and deck edges: none may sit inside a building's box.
|
|
171
149
|
if (deckCells.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/city/colliders/apply.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/city/colliders/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PlannedBox } from './buildingBoxes';
|
|
2
|
+
export interface BlockMesh {
|
|
3
|
+
/** World-space vertices, 8 per box. */
|
|
4
|
+
positions: Float32Array;
|
|
5
|
+
/** 12 triangles per box. */
|
|
6
|
+
indices: Uint16Array | Uint32Array;
|
|
7
|
+
min: [number, number, number];
|
|
8
|
+
max: [number, number, number];
|
|
9
|
+
}
|
|
10
|
+
/** The boxes as one indexed triangle mesh in world coordinates (the box transform baked in). */
|
|
11
|
+
export declare function blockMesh(boxes: readonly PlannedBox[]): BlockMesh;
|
|
12
|
+
/** A minimal, deterministic GLB 2.0: one mesh, one triangle primitive, POSITION + indices, no material, no extensions. */
|
|
13
|
+
export declare function blockMeshGlb(mesh: BlockMesh): Uint8Array;
|
|
14
|
+
export declare const sha256Hex: (bytes: Uint8Array) => string;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// One merged triangle mesh per collision block: the oriented boxes of ~60 buildings written as a single GLB in world coordinates.
|
|
3
|
+
//
|
|
4
|
+
// Why a block is ONE collider and not sixty: Rapier 0.14 rebuilds its query BVH over every collider on every `world.step`
|
|
5
|
+
// (cost linear in the resident collider count, measured 0.52 ms per step for 1,500 colliders against 0.02 ms for the same boxes
|
|
6
|
+
// merged per block, native Rapier wasm). A root-inline building box set sits under the root profile's 1 km stream radius, which
|
|
7
|
+
// holds ~1,500 boxes around a dense downtown, and the character world, the shared world and every substep pay that each frame.
|
|
8
|
+
// The engine already turned each former `convex` unit box into its own 12-triangle trimesh, so merging changes the collider
|
|
9
|
+
// count, not what the character can touch.
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.sha256Hex = void 0;
|
|
12
|
+
exports.blockMesh = blockMesh;
|
|
13
|
+
exports.blockMeshGlb = blockMeshGlb;
|
|
14
|
+
const node_crypto_1 = require("node:crypto");
|
|
15
|
+
/** Counter-clockwise outward quads of a cube whose corners run (-,-,-) (+,-,-) (+,+,-) (-,+,-) (-,-,+) (+,-,+) (+,+,+) (-,+,+). */
|
|
16
|
+
const QUADS = [[0, 3, 2, 1], [4, 5, 6, 7], [0, 1, 5, 4], [3, 7, 6, 2], [0, 4, 7, 3], [1, 2, 6, 5]];
|
|
17
|
+
const CORNERS = [[-1, -1, -1], [1, -1, -1], [1, 1, -1], [-1, 1, -1], [-1, -1, 1], [1, -1, 1], [1, 1, 1], [-1, 1, 1]];
|
|
18
|
+
function rotate(q, v) {
|
|
19
|
+
const [x, y, z, w] = q;
|
|
20
|
+
const tx = 2 * (y * v[2] - z * v[1]);
|
|
21
|
+
const ty = 2 * (z * v[0] - x * v[2]);
|
|
22
|
+
const tz = 2 * (x * v[1] - y * v[0]);
|
|
23
|
+
return [v[0] + w * tx + (y * tz - z * ty), v[1] + w * ty + (z * tx - x * tz), v[2] + w * tz + (x * ty - y * tx)];
|
|
24
|
+
}
|
|
25
|
+
/** The boxes as one indexed triangle mesh in world coordinates (the box transform baked in). */
|
|
26
|
+
function blockMesh(boxes) {
|
|
27
|
+
const positions = new Float32Array(boxes.length * 8 * 3);
|
|
28
|
+
const wide = boxes.length * 8 > 0xffff;
|
|
29
|
+
const indices = wide ? new Uint32Array(boxes.length * 36) : new Uint16Array(boxes.length * 36);
|
|
30
|
+
const min = [Infinity, Infinity, Infinity];
|
|
31
|
+
const max = [-Infinity, -Infinity, -Infinity];
|
|
32
|
+
boxes.forEach((box, b) => {
|
|
33
|
+
CORNERS.forEach((corner, c) => {
|
|
34
|
+
const local = rotate(box.rotation, [corner[0] * box.scale[0] / 2, corner[1] * box.scale[1] / 2, corner[2] * box.scale[2] / 2]);
|
|
35
|
+
for (let axis = 0; axis < 3; axis += 1) {
|
|
36
|
+
const value = Math.fround(box.position[axis] + local[axis]);
|
|
37
|
+
positions[(b * 8 + c) * 3 + axis] = value;
|
|
38
|
+
if (value < min[axis])
|
|
39
|
+
min[axis] = value;
|
|
40
|
+
if (value > max[axis])
|
|
41
|
+
max[axis] = value;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
let at = b * 36;
|
|
45
|
+
for (const [a, q, r, s] of QUADS)
|
|
46
|
+
for (const index of [a, q, r, a, r, s])
|
|
47
|
+
indices[at++] = b * 8 + index;
|
|
48
|
+
});
|
|
49
|
+
return { positions, indices, min, max };
|
|
50
|
+
}
|
|
51
|
+
const pad4 = (n) => (n + 3) & ~3;
|
|
52
|
+
/** A minimal, deterministic GLB 2.0: one mesh, one triangle primitive, POSITION + indices, no material, no extensions. */
|
|
53
|
+
function blockMeshGlb(mesh) {
|
|
54
|
+
const positionBytes = mesh.positions.byteLength;
|
|
55
|
+
const indexBytes = mesh.indices.byteLength;
|
|
56
|
+
const indexOffset = pad4(positionBytes);
|
|
57
|
+
const binLength = pad4(indexOffset + indexBytes);
|
|
58
|
+
const json = {
|
|
59
|
+
asset: { version: '2.0', generator: 'helix city colliders' },
|
|
60
|
+
scene: 0, scenes: [{ nodes: [0] }], nodes: [{ mesh: 0, name: 'building-blocks' }],
|
|
61
|
+
meshes: [{ name: 'building-blocks', primitives: [{ attributes: { POSITION: 0 }, indices: 1, mode: 4 }] }],
|
|
62
|
+
accessors: [
|
|
63
|
+
{ bufferView: 0, componentType: 5126, count: mesh.positions.length / 3, type: 'VEC3', min: mesh.min, max: mesh.max },
|
|
64
|
+
{ bufferView: 1, componentType: mesh.indices instanceof Uint32Array ? 5125 : 5123, count: mesh.indices.length, type: 'SCALAR' },
|
|
65
|
+
],
|
|
66
|
+
bufferViews: [
|
|
67
|
+
{ buffer: 0, byteOffset: 0, byteLength: positionBytes, target: 34962 },
|
|
68
|
+
{ buffer: 0, byteOffset: indexOffset, byteLength: indexBytes, target: 34963 },
|
|
69
|
+
],
|
|
70
|
+
buffers: [{ byteLength: binLength }],
|
|
71
|
+
};
|
|
72
|
+
const jsonBytes = new TextEncoder().encode(JSON.stringify(json));
|
|
73
|
+
const jsonLength = pad4(jsonBytes.length);
|
|
74
|
+
const out = new Uint8Array(12 + 8 + jsonLength + 8 + binLength);
|
|
75
|
+
const view = new DataView(out.buffer);
|
|
76
|
+
view.setUint32(0, 0x46546c67, true);
|
|
77
|
+
view.setUint32(4, 2, true);
|
|
78
|
+
view.setUint32(8, out.length, true);
|
|
79
|
+
view.setUint32(12, jsonLength, true);
|
|
80
|
+
view.setUint32(16, 0x4e4f534a, true);
|
|
81
|
+
out.set(jsonBytes, 20);
|
|
82
|
+
out.fill(0x20, 20 + jsonBytes.length, 20 + jsonLength);
|
|
83
|
+
const bin = 20 + jsonLength;
|
|
84
|
+
view.setUint32(bin, binLength, true);
|
|
85
|
+
view.setUint32(bin + 4, 0x004e4942, true);
|
|
86
|
+
out.set(new Uint8Array(mesh.positions.buffer, mesh.positions.byteOffset, positionBytes), bin + 8);
|
|
87
|
+
out.set(new Uint8Array(mesh.indices.buffer, mesh.indices.byteOffset, indexBytes), bin + 8 + indexOffset);
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
const sha256Hex = (bytes) => (0, node_crypto_1.createHash)('sha256').update(bytes).digest('hex');
|
|
91
|
+
exports.sha256Hex = sha256Hex;
|
|
92
|
+
//# sourceMappingURL=blockMesh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockMesh.js","sourceRoot":"","sources":["../../../src/city/colliders/blockMesh.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { HelixSceneV2, SceneNode } from '@hypersoniclabs/helix-manifest';
|
|
2
2
|
import type { Box3 } from './glbBounds';
|
|
3
3
|
export declare const COLLIDER_CHILD_ID = "scene.city.building-colliders";
|
|
4
|
-
export declare const UNIT_BOX_RESOURCE_ID = "res.collider.unit-box";
|
|
5
4
|
export interface BuildingColliderOptions {
|
|
6
5
|
/** Metres around the player within which colliders are resident (the child's `streamRadiusM`). */
|
|
7
6
|
streamRadiusM: number;
|
|
@@ -13,12 +12,6 @@ export interface BuildingColliderOptions {
|
|
|
13
12
|
minHeightM: number;
|
|
14
13
|
/** Collider sets the root may still take (see `inline`); the child Scene itself is capped by `maxSets`. */
|
|
15
14
|
inline?: boolean;
|
|
16
|
-
/** The unit cube collider resource, already hashed and addressed by the caller. */
|
|
17
|
-
unitBox: {
|
|
18
|
-
sha256: string;
|
|
19
|
-
bytes: number;
|
|
20
|
-
uri: string;
|
|
21
|
-
};
|
|
22
15
|
adapters: HelixSceneV2['adapters'];
|
|
23
16
|
title?: string;
|
|
24
17
|
/** Skip instances whose resource id starts with one of these (e.g. trees) - rarely needed; models carry the filter in their bounds. */
|
|
@@ -66,9 +59,16 @@ export declare function planBuildingBoxes(parts: ReadonlyArray<{
|
|
|
66
59
|
boxes: PlannedBox[];
|
|
67
60
|
stats: Pick<BoxPlanStats, 'instances' | 'boxes' | 'skippedSmall' | 'skippedNoBounds'>;
|
|
68
61
|
};
|
|
62
|
+
/** A block's merged GLB, addressed by the path it is written under (relative to the folder that holds the Scene document). */
|
|
63
|
+
export interface BlockFile {
|
|
64
|
+
uri: string;
|
|
65
|
+
bytes: Uint8Array;
|
|
66
|
+
sha256: string;
|
|
67
|
+
}
|
|
69
68
|
export declare function buildColliderScene(boxes: readonly PlannedBox[], options: BuildingColliderOptions): {
|
|
70
69
|
scene: HelixSceneV2;
|
|
71
70
|
stats: BoxPlanStats;
|
|
71
|
+
files: BlockFile[];
|
|
72
72
|
};
|
|
73
73
|
/** The sealing order every Scene v2 builder uses: revision = first 16 hex of the digest with revision and integrity zeroed. */
|
|
74
74
|
export declare function sealScene<T extends HelixSceneV2>(scene: T): T;
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
// (colliders live 120 m around the player) is decoupled from the visual one (a kilometre of skyline) and phone memory and CPU
|
|
7
7
|
// stay flat however large the city is. Colliders are streamed in spatial blocks of ~60 buildings.
|
|
8
8
|
//
|
|
9
|
-
// A
|
|
10
|
-
//
|
|
9
|
+
// A block is ONE `triangle-mesh` collider over one merged GLB of its buildings' oriented boxes (blockMesh.ts), not one collider per
|
|
10
|
+
// building: the physics world rebuilds its query BVH over every resident collider on every step, so the resident COLLIDER count
|
|
11
|
+
// (not the triangle count) is what a dense downtown pays each frame. A block of 60 boxes is 720 triangles and ~15 KB.
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.MAX_BLOCK_EXTENT_M = exports.BLOCK_CELL_M = exports.DEFAULT_BUILDING_COLLIDER_OPTIONS = exports.
|
|
13
|
+
exports.MAX_BLOCK_EXTENT_M = exports.BLOCK_CELL_M = exports.DEFAULT_BUILDING_COLLIDER_OPTIONS = exports.COLLIDER_CHILD_ID = void 0;
|
|
13
14
|
exports.boxOfNode = boxOfNode;
|
|
14
15
|
exports.splitBlocks = splitBlocks;
|
|
15
16
|
exports.planBuildingBoxes = planBuildingBoxes;
|
|
@@ -18,8 +19,8 @@ exports.sealScene = sealScene;
|
|
|
18
19
|
exports.mountColliderChild = mountColliderChild;
|
|
19
20
|
exports.inlineColliderChild = inlineColliderChild;
|
|
20
21
|
const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
|
|
22
|
+
const blockMesh_1 = require("./blockMesh");
|
|
21
23
|
exports.COLLIDER_CHILD_ID = 'scene.city.building-colliders';
|
|
22
|
-
exports.UNIT_BOX_RESOURCE_ID = 'res.collider.unit-box';
|
|
23
24
|
exports.DEFAULT_BUILDING_COLLIDER_OPTIONS = Object.freeze({
|
|
24
25
|
streamRadiusM: 120,
|
|
25
26
|
buildingsPerBlock: 60,
|
|
@@ -147,6 +148,8 @@ function buildColliderScene(boxes, options) {
|
|
|
147
148
|
const nodes = [];
|
|
148
149
|
const groups = [];
|
|
149
150
|
const sets = [];
|
|
151
|
+
const resources = [];
|
|
152
|
+
const files = [];
|
|
150
153
|
let lo = [Infinity, Infinity, Infinity];
|
|
151
154
|
let hi = [-Infinity, -Infinity, -Infinity];
|
|
152
155
|
blocks.forEach((block, index) => {
|
|
@@ -165,12 +168,18 @@ function buildColliderScene(boxes, options) {
|
|
|
165
168
|
id: group, mode: 'distance', priority: 50, dependencies: [], estimatedMemoryMiB: 1,
|
|
166
169
|
cells: [{ id: `bc.c.${index}`, bounds: { min: bmin.map((v) => round(v, 2)), max: bmax.map((v) => round(v, 2)) }, nodes: [node] }],
|
|
167
170
|
});
|
|
171
|
+
const bytes = (0, blockMesh_1.blockMeshGlb)((0, blockMesh_1.blockMesh)(block));
|
|
172
|
+
const sha256 = (0, blockMesh_1.sha256Hex)(bytes);
|
|
173
|
+
const resource = `res.collider.block.${index}`;
|
|
174
|
+
const uri = `colliders/block-${index}.${sha256.slice(0, 16)}.glb`;
|
|
175
|
+
files.push({ uri, bytes, sha256 });
|
|
176
|
+
resources.push({
|
|
177
|
+
id: resource, kind: 'collider', source: { kind: 'bundle', assetId: `colliders:building-block:${sha256}`, uri },
|
|
178
|
+
integrity: { sha256 }, bytes: bytes.length, mimeType: 'model/gltf-binary', required: true,
|
|
179
|
+
});
|
|
168
180
|
sets.push({
|
|
169
181
|
id: set, node,
|
|
170
|
-
static: block
|
|
171
|
-
id: `bc.${box.id}`, shape: 'convex', resource: exports.UNIT_BOX_RESOURCE_ID,
|
|
172
|
-
transform: { position: box.position, rotation: box.rotation, scale: box.scale },
|
|
173
|
-
})),
|
|
182
|
+
static: [{ id: `bc.block.${index}`, shape: 'triangle-mesh', resource, transform: { ...IDENTITY } }],
|
|
174
183
|
});
|
|
175
184
|
});
|
|
176
185
|
if (!blocks.length)
|
|
@@ -187,10 +196,7 @@ function buildColliderScene(boxes, options) {
|
|
|
187
196
|
},
|
|
188
197
|
},
|
|
189
198
|
scenes: [{ id: 'scene.root', nodes: nodes.map((node) => node.id), streamGroups: groups.map((group) => group.id) }],
|
|
190
|
-
resources
|
|
191
|
-
id: exports.UNIT_BOX_RESOURCE_ID, kind: 'collider', source: { kind: 'bundle', assetId: `colliders:unit-box:${options.unitBox.sha256}`, uri: options.unitBox.uri },
|
|
192
|
-
integrity: { sha256: options.unitBox.sha256 }, bytes: options.unitBox.bytes, mimeType: 'model/gltf-binary', required: true,
|
|
193
|
-
}],
|
|
199
|
+
resources,
|
|
194
200
|
nodes, itemDefinitions: [], itemInstances: [], terrain: { kind: 'none' },
|
|
195
201
|
environment: { background: false, intensityScale: 1, rotationYDeg: 0, exposureEV100: 0, fallbackColor: '#20242b', required: false },
|
|
196
202
|
lights: [],
|
|
@@ -201,7 +207,7 @@ function buildColliderScene(boxes, options) {
|
|
|
201
207
|
surfaces: [], materials: [], behaviors: [], streamGroups: groups,
|
|
202
208
|
capabilities: { required: ['helix.scene-collision/1'], optional: [] }, runtimeExtensions: [], adapters: options.adapters,
|
|
203
209
|
};
|
|
204
|
-
return { scene, stats: { instances: boxes.length, boxes: boxes.length, skippedSmall: 0, skippedNoBounds: 0, sets: sets.length, maxPerSet: Math.max(...blocks.map((block) => block.length)) } };
|
|
210
|
+
return { scene, stats: { instances: boxes.length, boxes: boxes.length, skippedSmall: 0, skippedNoBounds: 0, sets: sets.length, maxPerSet: Math.max(...blocks.map((block) => block.length)) }, files };
|
|
205
211
|
}
|
|
206
212
|
/** The sealing order every Scene v2 builder uses: revision = first 16 hex of the digest with revision and integrity zeroed. */
|
|
207
213
|
function sealScene(scene) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildingBoxes.js","sourceRoot":"","sources":["../../../src/city/colliders/buildingBoxes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildingBoxes.js","sourceRoot":"","sources":["../../../src/city/colliders/buildingBoxes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CanonicalDocsResult {
|
|
2
|
+
documents: number;
|
|
3
|
+
rewritten: number;
|
|
4
|
+
/** Documents whose own integrity did not match their content; left byte-for-byte alone. */
|
|
5
|
+
mismatched: string[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Rewrite every sealed Scene document as its RFC 8785 text (sorted keys, no whitespace, no trailing newline). The integrity digest is
|
|
9
|
+
* defined over exactly those bytes minus the integrity member, so the engine can verify a document with one hash over the text it already
|
|
10
|
+
* holds instead of parsing, validating and re-canonicalising it (about 2.8 s of main thread on a phone for a city). The digest, and every
|
|
11
|
+
* mount that names a child by it, is unchanged: only the layout of the bytes changes.
|
|
12
|
+
*/
|
|
13
|
+
export declare function canonicaliseSceneDocuments(root: string): CanonicalDocsResult;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canonicaliseSceneDocuments = canonicaliseSceneDocuments;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
|
|
7
|
+
function* sceneDocuments(dir) {
|
|
8
|
+
for (const name of (0, node_fs_1.readdirSync)(dir)) {
|
|
9
|
+
const path = (0, node_path_1.join)(dir, name);
|
|
10
|
+
if ((0, node_fs_1.statSync)(path).isDirectory())
|
|
11
|
+
yield* sceneDocuments(path);
|
|
12
|
+
else if (name === 'scene.helix-scene.json')
|
|
13
|
+
yield path;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Rewrite every sealed Scene document as its RFC 8785 text (sorted keys, no whitespace, no trailing newline). The integrity digest is
|
|
18
|
+
* defined over exactly those bytes minus the integrity member, so the engine can verify a document with one hash over the text it already
|
|
19
|
+
* holds instead of parsing, validating and re-canonicalising it (about 2.8 s of main thread on a phone for a city). The digest, and every
|
|
20
|
+
* mount that names a child by it, is unchanged: only the layout of the bytes changes.
|
|
21
|
+
*/
|
|
22
|
+
function canonicaliseSceneDocuments(root) {
|
|
23
|
+
const result = { documents: 0, rewritten: 0, mismatched: [] };
|
|
24
|
+
for (const path of sceneDocuments(root)) {
|
|
25
|
+
result.documents += 1;
|
|
26
|
+
const text = (0, node_fs_1.readFileSync)(path, 'utf8');
|
|
27
|
+
const doc = JSON.parse(text);
|
|
28
|
+
if ((0, helix_manifest_1.computeSceneDocumentIntegrity)(doc) !== doc.integrity?.sha256) {
|
|
29
|
+
result.mismatched.push(path);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const canonical = (0, helix_manifest_1.canonicalJsonString)(doc);
|
|
33
|
+
if (canonical === text)
|
|
34
|
+
continue;
|
|
35
|
+
(0, node_fs_1.writeFileSync)(path, canonical);
|
|
36
|
+
result.rewritten += 1;
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=canonicalDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonicalDocs.js","sourceRoot":"","sources":["../../../src/city/convert/canonicalDocs.ts"],"names":[],"mappings":";;AAyBA,gEAaC;AAtCD,qCAA6E;AAC7E,yCAAiC;AACjC,mEAAoG;AASpG,QAAQ,CAAC,CAAC,cAAc,CAAC,GAAW;IAClC,KAAK,MAAM,IAAI,IAAI,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE;YAAE,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACzD,IAAI,IAAI,KAAK,wBAAwB;YAAE,MAAM,IAAI,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,IAAY;IACrD,MAAM,MAAM,GAAwB,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACnF,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwC,CAAC;QACpE,IAAI,IAAA,8CAA6B,EAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7G,MAAM,SAAS,GAAG,IAAA,oCAAmB,EAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,IAAI;YAAE,SAAS;QACjC,IAAA,uBAAa,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/B,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -35,8 +35,9 @@ exports.OPTIMIZATIONS = [
|
|
|
35
35
|
{ id: 'hlod.complete-bake', title: 'Complete HLOD over every part: the whole skyline is always drawn', ref: 'creator-cli #477 #485', stage: 'bake' },
|
|
36
36
|
{ id: 'compose.tier-roots', title: 'Per-tier World root mounting the baked parts (desktop 128 m near, phone 48 m near / 384 m stream)', ref: 'creator-cli #485', stage: 'compose' },
|
|
37
37
|
{ id: 'colliders.decks', roads: 'generated-roads', title: 'Collider cells for elevated decks, ramps and rails', ref: 'creator-cli #478', stage: 'colliders' },
|
|
38
|
-
{ id: 'colliders.building-boxes', title: '
|
|
38
|
+
{ id: 'colliders.building-boxes', title: 'Building boxes merged into one collider per block, inline in the root (the physics step pays per resident collider)', ref: 'creator-cli #478 #488', stage: 'colliders' },
|
|
39
39
|
{ id: 'colliders.lips', roads: 'generated-roads', title: 'Kerb and deck-seam lips bevelled so wheels roll up', ref: 'creator-cli #487', stage: 'colliders' },
|
|
40
|
+
{ id: 'publish.canonical-scene-text', title: 'Scene documents sealed as canonical (RFC 8785) text so the engine verifies each with one hash instead of parse, validate and re-canonicalise (about 2.8 s of phone main thread)', ref: 'engine sealedText / creator-cli canonical-docs', stage: 'canonical-docs' },
|
|
40
41
|
{ id: 'sea.ocean-bathymetry', title: 'Ocean bathymetry file (ocean.json + ocean.rgba): visual ocean, fly-landing guard and swim reset know the sea', ref: 'creator-cli #491', stage: 'world-data' },
|
|
41
42
|
{ id: 'visuals.derived-lighting', title: 'Per-map lighting (scene-visuals/<scene>.json): fog from the map extent, sun latitude, exposure compensation', ref: 'creator-cli #491', stage: 'world-data' },
|
|
42
43
|
{ id: 'publish.world-json', title: 'world.json names the desktop and phone documents; the shell boots a city from data, not source', ref: 'engine #1171', stage: 'world-data' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizations.js","sourceRoot":"","sources":["../../../src/city/convert/optimizations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"optimizations.js","sourceRoot":"","sources":["../../../src/city/convert/optimizations.ts"],"names":[],"mappings":";AAAA,6HAA6H;AAC7H,iIAAiI;AACjI,gIAAgI;;;AAQnH,QAAA,aAAa,GAA4B;IACpD,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,gDAAgD,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnI,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,gEAAgE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACjJ,EAAE,EAAE,EAAE,6BAA6B,EAAE,KAAK,EAAE,+EAA+E,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACvK,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,qGAAqG,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;IACrL,EAAE,EAAE,EAAE,+BAA+B,EAAE,KAAK,EAAE,8CAA8C,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;IAC3I,EAAE,EAAE,EAAE,iCAAiC,EAAE,KAAK,EAAE,kEAAkE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE;IACnK,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,qEAAqE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;IAC3J,EAAE,EAAE,EAAE,yBAAyB,EAAE,KAAK,EAAE,kDAAkD,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;IACzI,EAAE,EAAE,EAAE,6BAA6B,EAAE,KAAK,EAAE,wEAAwE,EAAE,GAAG,EAAE,sCAAsC,EAAE,KAAK,EAAE,WAAW,EAAE;IACvL,EAAE,EAAE,EAAE,8BAA8B,EAAE,KAAK,EAAE,6DAA6D,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE;IAC3J,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,yDAAyD,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;IACzI,EAAE,EAAE,EAAE,6BAA6B,EAAE,KAAK,EAAE,8FAA8F,EAAE,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,WAAW,EAAE;IACnM,EAAE,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,4JAA4J,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC9O,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,4DAA4D,EAAE,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,WAAW,EAAE;IACtJ,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iRAAiR,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE;IACjX,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,0GAA0G,EAAE,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,WAAW,EAAE;IAC7N,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,gNAAgN,EAAE,GAAG,EAAE,wDAAwD,EAAE,KAAK,EAAE,WAAW,EAAE;IAChW,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,8IAA8I,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,WAAW,EAAE;IAClO,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,sGAAsG,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1L,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,6EAA6E,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,WAAW,EAAE;IACpM,EAAE,EAAE,EAAE,8BAA8B,EAAE,KAAK,EAAE,0FAA0F,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE;IACvL,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,sHAAsH,EAAE,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,YAAY,EAAE;IACzN,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,4MAA4M,EAAE,GAAG,EAAE,iDAAiD,EAAE,KAAK,EAAE,YAAY,EAAE;IAC/T,EAAE,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,yOAAyO,EAAE,GAAG,EAAE,sFAAsF,EAAE,KAAK,EAAE,YAAY,EAAE;IACxY,EAAE,EAAE,EAAE,gCAAgC,EAAE,KAAK,EAAE,qJAAqJ,EAAE,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,YAAY,EAAE;IAC/P,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,wGAAwG,EAAE,GAAG,EAAE,kCAAkC,EAAE,KAAK,EAAE,YAAY,EAAE;IAC3M,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,oGAAoG,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE;IACxL,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,kEAAkE,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE;IACpJ,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,mGAAmG,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;IACnL,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,oDAAoD,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;IAC7J,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,qHAAqH,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,WAAW,EAAE;IAClN,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,oDAAoD,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;IAC5J,EAAE,EAAE,EAAE,8BAA8B,EAAE,KAAK,EAAE,iLAAiL,EAAE,GAAG,EAAE,gDAAgD,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAChT,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,8GAA8G,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE;IACnM,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,6GAA6G,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE;IACtM,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,gGAAgG,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE;IAC/K,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,6LAA6L,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;IAChR,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,qFAAqF,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE;IACxK,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,oNAAoN,EAAE,GAAG,EAAE,sCAAsC,EAAE,KAAK,EAAE,eAAe,EAAE;IACjU,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,6IAA6I,EAAE,GAAG,EAAE,sCAAsC,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC5P,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,yGAAyG,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtL,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,4KAA4K,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACxP,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,+HAA+H,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;CAC7M,CAAC;AAEF,uHAAuH;AAC1G,QAAA,mBAAmB,GAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAQ7D,QAAA,SAAS,GAAuB;IAC3C;QACE,EAAE,EAAE,0BAA0B;QAC9B,KAAK,EAAE,wFAAwF;QAC/F,GAAG,EAAE,4eAA4e;QACjf,KAAK,EAAE,qHAAqH;QAC5H,QAAQ,EAAE,sNAAsN;KACjO;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,sHAAsH;QAC7H,GAAG,EAAE,6gBAA6gB;QAClhB,KAAK,EAAE,yUAAyU;QAChV,QAAQ,EAAE,yJAAyJ;KACpK;IACD;QACE,EAAE,EAAE,uCAAuC;QAC3C,KAAK,EAAE,+EAA+E;QACtF,GAAG,EAAE,waAAwa;QAC7a,KAAK,EAAE,8RAA8R;QACrS,QAAQ,EAAE,qKAAqK;KAChL;CACF,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAgB,EAAE;IAC3D,MAAM,KAAK,GAAG,qBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B"}
|