@hypersoniclabs/helix-cli 0.1.27-helix3.539 → 0.1.27-helix3.540
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/sceneHlod/allocateTileSizes.d.ts +16 -0
- package/dist/sceneHlod/allocateTileSizes.js +21 -0
- package/dist/sceneHlod/allocateTileSizes.js.map +1 -0
- package/dist/sceneHlod/commands.js +5 -1
- package/dist/sceneHlod/commands.js.map +1 -1
- package/dist/sceneHlod/complete.d.ts +22 -0
- package/dist/sceneHlod/complete.js +29 -5
- package/dist/sceneHlod/complete.js.map +1 -1
- package/dist/sceneHlod/completePrototype.d.ts +6 -0
- package/dist/sceneHlod/completePrototype.js +15 -2
- package/dist/sceneHlod/completePrototype.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
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tile sizes from surface area. One texel density tau (texels per metre of wall side) is solved by bisection so that the sum of tile^2 does not exceed
|
|
3
|
+
* `budgetTexels`: tile = clamp(2^ceil(log2(sqrt(areaM2) x tau)), minTile, maxTile). Pure; every prototype gets one of TILE_SIZES.
|
|
4
|
+
*/
|
|
5
|
+
export declare function allocateTileSizes(items: readonly {
|
|
6
|
+
id: string;
|
|
7
|
+
areaM2: number;
|
|
8
|
+
}[], options: {
|
|
9
|
+
budgetTexels: number;
|
|
10
|
+
minTile: number;
|
|
11
|
+
maxTile: number;
|
|
12
|
+
}): {
|
|
13
|
+
sizes: Map<string, number>;
|
|
14
|
+
tau: number;
|
|
15
|
+
texels: number;
|
|
16
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allocateTileSizes = allocateTileSizes;
|
|
4
|
+
/**
|
|
5
|
+
* Tile sizes from surface area. One texel density tau (texels per metre of wall side) is solved by bisection so that the sum of tile^2 does not exceed
|
|
6
|
+
* `budgetTexels`: tile = clamp(2^ceil(log2(sqrt(areaM2) x tau)), minTile, maxTile). Pure; every prototype gets one of TILE_SIZES.
|
|
7
|
+
*/
|
|
8
|
+
function allocateTileSizes(items, options) {
|
|
9
|
+
const sizeAt = (area, tau) => Math.max(options.minTile, Math.min(options.maxTile, 2 ** Math.ceil(Math.log2(Math.max(1e-6, Math.sqrt(area) * tau)))));
|
|
10
|
+
const total = (tau) => items.reduce((sum, item) => sum + sizeAt(item.areaM2, tau) ** 2, 0);
|
|
11
|
+
let lo = 0, hi = 64;
|
|
12
|
+
for (let i = 0; i < 60; i++) {
|
|
13
|
+
const mid = (lo + hi) / 2;
|
|
14
|
+
if (total(mid) <= options.budgetTexels)
|
|
15
|
+
lo = mid;
|
|
16
|
+
else
|
|
17
|
+
hi = mid;
|
|
18
|
+
}
|
|
19
|
+
return { sizes: new Map(items.map(item => [item.id, sizeAt(item.areaM2, lo)])), tau: lo, texels: total(lo) };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=allocateTileSizes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allocateTileSizes.js","sourceRoot":"","sources":["../../src/sceneHlod/allocateTileSizes.ts"],"names":[],"mappings":";;AAIA,8CAMC;AAVD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAgD,EAAE,OAAmE;IACrJ,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrK,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,YAAY;YAAE,EAAE,GAAG,GAAG,CAAC;;YAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC;IAC5H,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/G,CAAC"}
|
|
@@ -92,15 +92,19 @@ function registerSceneHlodCommands(scene, fail) {
|
|
|
92
92
|
.option('--texels-per-metre <density>', 'shared appearance density (default 1)', Number)
|
|
93
93
|
.option('--min-tile <pixels>', 'minimum prototype tile: 32, 64, 128, 256, 512 or 1024 (default 64)', Number)
|
|
94
94
|
.option('--max-tile <pixels>', 'maximum prototype tile: 32, 64, 128, 256, 512 or 1024 (default 256)', Number)
|
|
95
|
+
.option('--allocation <rule>', 'tile size rule: extent (default; largest dimension x density) or area (sqrt of exterior wall area, one density solved to a texel budget)', 'extent')
|
|
96
|
+
.option('--atlas-budget <texels>', 'area rule: total texels of all tiles (default: what the extent rule would spend on the same prototypes)', Number)
|
|
95
97
|
.option('--compression <format>', 'ktx2 (GPU compressed) or png', 'ktx2').option('--force', 'ignore cached prototype bakes')
|
|
96
98
|
.action(async (files, options) => {
|
|
99
|
+
if (options.allocation && !['extent', 'area'].includes(options.allocation))
|
|
100
|
+
return fail('--allocation is extent or area');
|
|
97
101
|
const controller = new AbortController(), cancel = () => controller.abort();
|
|
98
102
|
process.once('SIGINT', cancel);
|
|
99
103
|
try {
|
|
100
104
|
const settings = Object.fromEntries(Object.entries({ cellSizeM: options.cellSize, voxelSizeM: options.voxelSize,
|
|
101
105
|
texelsPerM: options.texelsPerMetre, minTileSize: options.minTile, maxTileSize: options.maxTile }).filter(([, value]) => value !== undefined));
|
|
102
106
|
const result = await (0, complete_1.bakeCompleteSceneHlod)(files, { ...settings, compression: options.compression,
|
|
103
|
-
force: options.force, signal: controller.signal, onProgress: progress => console.error(`HLOD ${progress.phase} ${progress.completed}/${progress.total} ${progress.id}${progress.cached ? ' (cached)' : ''}`) });
|
|
107
|
+
allocation: options.allocation, atlasBudgetTexels: options.atlasBudget, force: options.force, signal: controller.signal, onProgress: progress => console.error(`HLOD ${progress.phase} ${progress.completed}/${progress.total} ${progress.id}${progress.cached ? ' (cached)' : ''}`) });
|
|
104
108
|
console.log(JSON.stringify(result, null, 2));
|
|
105
109
|
}
|
|
106
110
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/sceneHlod/commands.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/sceneHlod/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,15 @@ export interface CompleteSceneHlodOptions extends Partial<SceneHlodCompleteBakeS
|
|
|
6
6
|
compression?: 'png' | 'ktx2';
|
|
7
7
|
force?: boolean;
|
|
8
8
|
signal?: AbortSignal;
|
|
9
|
+
/**
|
|
10
|
+
* How a prototype's atlas tile is sized. `extent` (default, the shipped rule): the next power of two of its largest dimension times texelsPerM, so a
|
|
11
|
+
* 100 m tower and a 100 m-long warehouse get the same tile however much wall they have. `area`: the tile follows the square root of the exterior surface
|
|
12
|
+
* area of the simplified mesh (the wall a viewer actually sees), with one texel density for the whole city solved so that the tiles together cost
|
|
13
|
+
* `atlasBudgetTexels` (default: what the `extent` rule would have spent on the same prototypes), so towers gain texels from the many small buildings
|
|
14
|
+
* that were floored at minTileSize. Prototypes are baked once at maxTileSize and resampled into their slot.
|
|
15
|
+
*/
|
|
16
|
+
allocation?: 'extent' | 'area';
|
|
17
|
+
atlasBudgetTexels?: number;
|
|
9
18
|
onProgress?: (progress: {
|
|
10
19
|
phase: 'prototype' | 'material' | 'cell';
|
|
11
20
|
completed: number;
|
|
@@ -15,6 +24,10 @@ export interface CompleteSceneHlodOptions extends Partial<SceneHlodCompleteBakeS
|
|
|
15
24
|
}) => void;
|
|
16
25
|
}
|
|
17
26
|
export declare const DEFAULT_COMPLETE_HLOD_SETTINGS: SceneHlodCompleteBakeSettings;
|
|
27
|
+
export { allocateTileSizes } from './allocateTileSizes';
|
|
28
|
+
export declare const TILE_SIZES: readonly [32, 64, 128, 256, 512, 1024];
|
|
29
|
+
/** The shipped rule: next power of two of (largest extent x texels per metre), clamped. */
|
|
30
|
+
export declare function extentTileSize(extentM: number, settings: Pick<SceneHlodCompleteBakeSettings, 'texelsPerM' | 'minTileSize' | 'maxTileSize'>): number;
|
|
18
31
|
export interface Instance {
|
|
19
32
|
node: SceneNode;
|
|
20
33
|
matrix: Matrix4;
|
|
@@ -67,6 +80,15 @@ export declare function bakeCompleteSceneHlod(files: string | readonly string[],
|
|
|
67
80
|
uri: string;
|
|
68
81
|
bytes: number;
|
|
69
82
|
};
|
|
83
|
+
allocation: {
|
|
84
|
+
tau: number;
|
|
85
|
+
texels: number;
|
|
86
|
+
budgetTexels: number;
|
|
87
|
+
extentTexels: number;
|
|
88
|
+
} | undefined;
|
|
89
|
+
tileHistogram: {
|
|
90
|
+
[k: string]: number;
|
|
91
|
+
};
|
|
70
92
|
totalMs: number;
|
|
71
93
|
}>;
|
|
72
94
|
export declare function mergeCompleteCell(instances: Instance[], slots: Map<string, HlodAtlasSlot>, get: (key: string) => Promise<CompletePrototype>, origin: [number, number, number], signal?: AbortSignal): Promise<{
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_COMPLETE_HLOD_SETTINGS = void 0;
|
|
3
|
+
exports.TILE_SIZES = exports.allocateTileSizes = exports.DEFAULT_COMPLETE_HLOD_SETTINGS = void 0;
|
|
4
|
+
exports.extentTileSize = extentTileSize;
|
|
4
5
|
exports.sceneMatrices = sceneMatrices;
|
|
5
6
|
exports.scaleBound = scaleBound;
|
|
6
7
|
exports.durableArtifact = durableArtifact;
|
|
@@ -19,6 +20,14 @@ const cellArtifact_1 = require("./cellArtifact");
|
|
|
19
20
|
exports.DEFAULT_COMPLETE_HLOD_SETTINGS = {
|
|
20
21
|
cellSizeM: 512, voxelSizeM: 2, texelsPerM: 1, minTileSize: 64, maxTileSize: 256,
|
|
21
22
|
};
|
|
23
|
+
var allocateTileSizes_1 = require("./allocateTileSizes");
|
|
24
|
+
Object.defineProperty(exports, "allocateTileSizes", { enumerable: true, get: function () { return allocateTileSizes_1.allocateTileSizes; } });
|
|
25
|
+
const allocateTileSizes_2 = require("./allocateTileSizes");
|
|
26
|
+
exports.TILE_SIZES = [32, 64, 128, 256, 512, 1024];
|
|
27
|
+
/** The shipped rule: next power of two of (largest extent x texels per metre), clamped. */
|
|
28
|
+
function extentTileSize(extentM, settings) {
|
|
29
|
+
return Math.max(settings.minTileSize, Math.min(settings.maxTileSize, 2 ** Math.ceil(Math.log2(Math.max(1e-6, extentM * settings.texelsPerM)))));
|
|
30
|
+
}
|
|
22
31
|
function sceneMatrices(scene) {
|
|
23
32
|
const nodes = new Map(scene.nodes.map(node => [node.id, node])), matrices = new Map(), pending = new Set();
|
|
24
33
|
const get = (node) => {
|
|
@@ -114,12 +123,13 @@ async function bakeCompleteSceneHlod(files, options = {}) {
|
|
|
114
123
|
throw new Error(`HLOD ${id}: bake authored material overrides into the immutable source first`);
|
|
115
124
|
}
|
|
116
125
|
const identity = (0, source_1.hlodDigest)(JSON.stringify({ source: source?.integrity.sha256, bytes: source?.bytes, primitive,
|
|
117
|
-
error: layer.maxErrorM, ratio: layer.triangleRatio, settings, bakerVersion: completePrototype_1.COMPLETE_HLOD_BAKER_VERSION
|
|
126
|
+
error: layer.maxErrorM, ratio: layer.triangleRatio, settings, bakerVersion: completePrototype_1.COMPLETE_HLOD_BAKER_VERSION,
|
|
127
|
+
...(options.allocation === 'area' ? { allocation: 'area' } : {}) }));
|
|
118
128
|
const existing = prototypes.get(identity);
|
|
119
129
|
if (existing)
|
|
120
130
|
existing.scale = Math.max(existing.scale, scale);
|
|
121
131
|
else
|
|
122
|
-
prototypes.set(identity, { key: identity, scene, node, scale, layer, settings });
|
|
132
|
+
prototypes.set(identity, { key: identity, scene, node, scale, layer, settings, ...(options.allocation === 'area' ? { allocation: 'area' } : {}) });
|
|
123
133
|
selected.push({ node, matrix, scale, key: identity, cell: cell.cell, layer: cell.layer });
|
|
124
134
|
}
|
|
125
135
|
instances.set(scene.id, selected);
|
|
@@ -137,16 +147,29 @@ async function bakeCompleteSceneHlod(files, options = {}) {
|
|
|
137
147
|
const output = await (0, scene_1.bundleDirectory)(root, ['hlod-complete']), cache = await (0, scene_1.bundleDirectory)(root, ['.helix', 'hlod-complete-cache']);
|
|
138
148
|
const records = new Map();
|
|
139
149
|
let completed = 0, cachedPrototypes = 0;
|
|
150
|
+
const areas = new Map();
|
|
140
151
|
for (const [identity, input] of [...prototypes].sort(([a], [b]) => a.localeCompare(b))) {
|
|
141
152
|
input.key = (0, source_1.hlodDigest)(JSON.stringify({ identity, scale: input.scale }));
|
|
142
153
|
const { prototype, cached } = await (0, completePrototype_1.bakeCompletePrototype)(input, root, cache, options);
|
|
143
154
|
const extent = Math.max(...prototype.bounds.max.map((value, axis) => value - prototype.bounds.min[axis])) * input.scale;
|
|
144
|
-
const size =
|
|
155
|
+
const size = extentTileSize(extent, input.settings);
|
|
156
|
+
areas.set(identity, (prototype.metrics.areaM2 ?? 0) * input.scale ** 2);
|
|
145
157
|
records.set(identity, { key: input.key, bounds: prototype.bounds, metrics: prototype.metrics, size, emissive: !!prototype.emissive });
|
|
146
158
|
if (cached)
|
|
147
159
|
cachedPrototypes++;
|
|
148
160
|
options.onProgress?.({ phase: 'prototype', completed: ++completed, total: prototypes.size, id: input.node.id, cached });
|
|
149
161
|
}
|
|
162
|
+
let allocation;
|
|
163
|
+
if (options.allocation === 'area') {
|
|
164
|
+
const settings = [...prototypes.values()][0].settings, extentTexels = [...records.values()].reduce((sum, record) => sum + record.size ** 2, 0);
|
|
165
|
+
if ([...areas.values()].some(area => !(area > 0)))
|
|
166
|
+
throw new Error('Area allocation needs the surface area of every prototype; rebake with --force');
|
|
167
|
+
const budgetTexels = options.atlasBudgetTexels ?? extentTexels;
|
|
168
|
+
const solved = (0, allocateTileSizes_2.allocateTileSizes)([...areas].map(([id, areaM2]) => ({ id, areaM2 })), { budgetTexels, minTile: settings.minTileSize, maxTile: settings.maxTileSize });
|
|
169
|
+
for (const [id, size] of solved.sizes)
|
|
170
|
+
records.get(id).size = size;
|
|
171
|
+
allocation = { tau: solved.tau, texels: solved.texels, budgetTexels, extentTexels };
|
|
172
|
+
}
|
|
150
173
|
const atlasPlan = (0, sharedAtlas_1.planSharedHlodAtlas)([...records].map(([id, value]) => ({ id, size: value.size })));
|
|
151
174
|
const atlas = await (0, sharedAtlas_1.bakeSharedHlodAtlas)(atlasPlan, async (id) => {
|
|
152
175
|
const prototype = await (0, completePrototype_1.readCompletePrototype)(cache, records.get(id).key);
|
|
@@ -231,7 +254,8 @@ async function bakeCompleteSceneHlod(files, options = {}) {
|
|
|
231
254
|
integrity: input.scene.integrity })), prototypes: prototypes.size, cachedPrototypes, cells: receipts,
|
|
232
255
|
sources: receipts.reduce((n, receipt) => n + receipt.sources, 0), triangles: receipts.reduce((n, receipt) => n + receipt.triangles, 0),
|
|
233
256
|
geometryBytes: receipts.reduce((n, receipt) => n + receipt.bytes, 0), geometryEstimatedBytes: receipts.reduce((n, receipt) => n + receipt.estimatedBytes, 0),
|
|
234
|
-
material: { ...materialArtifact, estimatedBytes: material.estimatedBytes, width: atlasPlan.width, height: atlasPlan.height },
|
|
257
|
+
material: { ...materialArtifact, estimatedBytes: material.estimatedBytes, width: atlasPlan.width, height: atlasPlan.height }, allocation,
|
|
258
|
+
tileHistogram: Object.fromEntries(exports.TILE_SIZES.map(size => [size, [...records.values()].filter(record => record.size === size).length])), totalMs: performance.now() - started };
|
|
235
259
|
}
|
|
236
260
|
async function mergeCompleteCell(instances, slots, get, origin, signal) {
|
|
237
261
|
const positions = [], normals = [], uvs = [], indices = [], sources = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../../src/sceneHlod/complete.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../../src/sceneHlod/complete.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,8 @@ export interface CompletePrototype {
|
|
|
16
16
|
method: string;
|
|
17
17
|
sampled: number;
|
|
18
18
|
projectionDistanceM: number;
|
|
19
|
+
/** Exterior surface area of the simplified mesh in the prototype's own units (m2 before the instance scale). Area allocation reads it. */
|
|
20
|
+
areaM2?: number;
|
|
19
21
|
};
|
|
20
22
|
}
|
|
21
23
|
export interface PrototypeInput {
|
|
@@ -25,7 +27,11 @@ export interface PrototypeInput {
|
|
|
25
27
|
layer: SceneHlodLayer;
|
|
26
28
|
scale: number;
|
|
27
29
|
settings: SceneHlodCompleteBakeSettings;
|
|
30
|
+
/** `area`: bake every prototype at the largest tile so the atlas slot (see allocateTileSizes) can be chosen afterwards from the cached bake. */
|
|
31
|
+
allocation?: 'extent' | 'area';
|
|
28
32
|
}
|
|
33
|
+
/** Sum of triangle areas of an indexed mesh. */
|
|
34
|
+
export declare function surfaceAreaM2(geometry: Pick<HlodGeometry, 'positions' | 'indices'>): number;
|
|
29
35
|
export declare function atomicHlodCache(file: string, text: string): Promise<void>;
|
|
30
36
|
export declare function encodeCompletePrototype(prototype: CompletePrototype): string;
|
|
31
37
|
export declare function readCompletePrototype(cache: string, key: string): Promise<CompletePrototype | null>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.COMPLETE_HLOD_BAKER_VERSION = void 0;
|
|
4
|
+
exports.surfaceAreaM2 = surfaceAreaM2;
|
|
4
5
|
exports.atomicHlodCache = atomicHlodCache;
|
|
5
6
|
exports.encodeCompletePrototype = encodeCompletePrototype;
|
|
6
7
|
exports.readCompletePrototype = readCompletePrototype;
|
|
@@ -13,6 +14,17 @@ const geometry_1 = require("./geometry");
|
|
|
13
14
|
const transfer_1 = require("./transfer");
|
|
14
15
|
const source_1 = require("./source");
|
|
15
16
|
exports.COMPLETE_HLOD_BAKER_VERSION = 2;
|
|
17
|
+
/** Sum of triangle areas of an indexed mesh. */
|
|
18
|
+
function surfaceAreaM2(geometry) {
|
|
19
|
+
const p = geometry.positions, ix = geometry.indices;
|
|
20
|
+
let area = 0;
|
|
21
|
+
for (let i = 0; i < ix.length; i += 3) {
|
|
22
|
+
const a = ix[i] * 3, b = ix[i + 1] * 3, c = ix[i + 2] * 3;
|
|
23
|
+
const ux = p[b] - p[a], uy = p[b + 1] - p[a + 1], uz = p[b + 2] - p[a + 2], vx = p[c] - p[a], vy = p[c + 1] - p[a + 1], vz = p[c + 2] - p[a + 2];
|
|
24
|
+
area += .5 * Math.hypot(uy * vz - uz * vy, uz * vx - ux * vz, ux * vy - uy * vx);
|
|
25
|
+
}
|
|
26
|
+
return area;
|
|
27
|
+
}
|
|
16
28
|
async function atomicHlodCache(file, text) {
|
|
17
29
|
const temporary = file + '.' + (0, node_crypto_1.randomUUID)() + '.pending';
|
|
18
30
|
try {
|
|
@@ -95,7 +107,8 @@ async function bakeCompletePrototype(input, root, cache, options) {
|
|
|
95
107
|
throw simplifyFailure ?? new Error('HLOD source could not be approximated within the bounded grid');
|
|
96
108
|
let method = chosen === approximation ? 'exterior' : 'simplify';
|
|
97
109
|
const extent = Math.max(...source.bounds.max.map((value, axis) => value - source.bounds.min[axis])) * input.scale;
|
|
98
|
-
const tile =
|
|
110
|
+
const tile = input.allocation === 'area' ? input.settings.maxTileSize
|
|
111
|
+
: Math.max(input.settings.minTileSize, Math.min(input.settings.maxTileSize, 2 ** Math.ceil(Math.log2(Math.max(1e-6, extent * input.settings.texelsPerM)))));
|
|
99
112
|
const size = Math.max(128, tile);
|
|
100
113
|
let geometry = await (0, geometry_1.unwrapHlodGeometry)(chosen.geometry, size, options.signal);
|
|
101
114
|
let transferred = (0, transfer_1.transferHlodSurface)(source.surface, source.materials, geometry, size, Math.max(1e-4, maxErrorM * 2, voxelSizeM * 4), options.signal);
|
|
@@ -113,7 +126,7 @@ async function bakeCompletePrototype(input, root, cache, options) {
|
|
|
113
126
|
const prototype = { key: input.key, bounds: source.bounds, geometry, baseColor: transferred.baseColor,
|
|
114
127
|
normal: transferred.normal, orm: transferred.orm, ...(transferred.emissive ? { emissive: transferred.emissive } : {}),
|
|
115
128
|
metrics: { sourceTriangles: source.surface.indices.length / 3, sourceDraws: source.drawCalls, triangles: geometry.indices.length / 3,
|
|
116
|
-
method, sampled: transferred.sampled, projectionDistanceM: transferred.maxDistanceM } };
|
|
129
|
+
method, sampled: transferred.sampled, projectionDistanceM: transferred.maxDistanceM, areaM2: surfaceAreaM2(geometry) } };
|
|
117
130
|
options.signal?.throwIfAborted();
|
|
118
131
|
await atomicHlodCache((0, node_path_1.resolve)(cache, input.key + '.json'), encodeCompletePrototype(prototype));
|
|
119
132
|
return { prototype, cached: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completePrototype.js","sourceRoot":"","sources":["../../src/sceneHlod/completePrototype.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"completePrototype.js","sourceRoot":"","sources":["../../src/sceneHlod/completePrototype.ts"],"names":[],"mappings":";;;AAyBA,sCAQC;AAED,0CAIC;AAED,0DAQC;AAED,sDAgBC;AAGD,sDAuCC;AA7GD,+CAA6E;AAC7E,yCAAoC;AACpC,6CAAyC;AAEzC,+CAAwD;AACxD,yCAAqE;AACrE,yCAAiD;AACjD,qCAA4E;AAG/D,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAc7C,gDAAgD;AAChD,SAAgB,aAAa,CAAC,QAAqD;IACjF,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjJ,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IAC9D,MAAM,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,IAAA,wBAAU,GAAE,GAAG,UAAU,CAAC;IACzD,IAAI,CAAC;QAAC,MAAM,IAAA,oBAAS,EAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,MAAM,IAAA,iBAAM,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;YAChF,CAAC;QAAC,MAAM,IAAA,iBAAM,EAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACpG,CAAC;AAED,SAAgB,uBAAuB,CAAC,SAA4B;IAClE,MAAM,MAAM,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5H,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO;QACrF,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5G,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAChF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAkB,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,CAAC,CAAC,CAAC,EAAE,CAAC;IACR,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAA,mBAAU,EAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACtG,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,KAAa,EAAE,GAAW;IACpE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,sBAAa,EAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,IAAA,eAAI,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9G,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,IAAI,IAAA,mBAAU,EAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAkC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YAChH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7H,OAAO,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,CAAC,CAAC,CAA4B,CAAC;QAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ;YAClE,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAuB,CAAC;IAClK,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,YAAY,WAAW;YAAE,OAAO,IAAI,CAAC;QAAC,MAAM,KAAK,CAAC;IACnH,CAAC;AACH,CAAC;AAED,yGAAyG;AAClG,KAAK,UAAU,qBAAqB,CAAC,KAAqB,EAAE,IAAY,EAAE,KAAa,EAC5F,OAAkD;IAClD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAAC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,MAAM;YAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAAC,CAAC;IAC7I,MAAM,IAAI,GAAc,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAAC,OAAO,IAAI,CAAC,MAAM,CAAC;IAC5I,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAqB,EAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1H,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5G,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,GAAY,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxH,IAAI,UAAuE,EAAE,aAAgC,CAAC;IAC9G,IAAI,eAAwB,CAAC;IAC7B,IAAI,CAAC;QAAC,UAAU,GAAG,MAAM,IAAA,8BAAmB,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAAC,eAAe,GAAG,KAAK,CAAC;IAAC,CAAC;IACpJ,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC;YAAC,aAAa,GAAG,MAAM,IAAA,qCAAuB,EAAC,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC;gBACxG,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAAC,CAAC;IACjH,CAAC;IACD,IAAI,MAAM,GAAG,aAAa,IAAI,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7J,IAAI,CAAC,MAAM;QAAE,MAAM,eAAe,IAAI,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACjH,IAAI,MAAM,GAAG,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAClH,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW;QACnE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9J,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,IAAI,WAAW,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvJ,uHAAuH;IACvH,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO;YAAE,MAAM;QACtD,MAAM,GAAG,MAAM,IAAA,8BAAmB,EAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClI,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,WAAW,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACnI,MAAM,GAAG,uBAAuB,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,mDAAmD,CAAC,CAAC;IACpI,MAAM,SAAS,GAAsB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS;QACtH,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrH,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAClI,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAC7H,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IAAC,MAAM,eAAe,CAAC,IAAA,mBAAO,EAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;IACjI,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC"}
|