mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-12 06:12:18 +00:00
Fix the follow-up review findings in import, layers, startup and engines
- KML/KMZ import: a per-file canvas budget and cache for ground overlays, limits on rings and vertices of raised polygons, overlays across 360° and near the poles, degenerate holes, polar and single-latitude fills, absolute overlays at their altitude, overlay order by drawOrder as on Cesium, and pins on tiles keep their measured height. - Points on the surface: OSM Places and Street Level cones share the surface sampler and sit on the terrain before they are measured, within a sampling budget per pass; Cockpit's contact-dot bank keeps the dot atlas, and a failed fleet model loads again after a pause. - Startup: the loading screen lifts after the share-link view is restored, the retry screen names the failed engine and takes focus, and the fallback toast stays for 6 s. - Engines: an engine switch lands a running camera flight at its destination (camera.completeFlight on both engines), the sighting card leaves focus on the engine picker after a switch, and a Cesium model error stays with the instance that failed. - The MCP panel builds again: its wind-mesh alias resolves to the stub. - QA: the wildlife switch waits for the camera to rest, GBFS --w2 says it needs the dev server, and test fixtures are shared instead of copied.
This commit is contained in:
1 parent
0ef29781e5
commit
60fb8fee07
82 files changed
+2363
-1574
No files matched your search
+1
-1
@@ -30,7 +30,7 @@ export function panelBuildConfig(config) {
|
||||
// The panel runs Cesium: the Navara mode and Navara's wind mesh
|
||||
// (the panel's only paths to Navara and three) become stubs.
|
||||
{
|
||||
find: /^(?:\.\/|.*\/app\/)navaraMode\.js$|\/globe\/navara\/windFlowMesh\.js$/,
|
||||
find: /^(?:\.\/|.*\/app\/)navaraMode\.js$|^.*\/globe\/navara\/windFlowMesh\.js$/,
|
||||
replacement: fileURLToPath(
|
||||
new URL('./panelNavara.js', import.meta.url),
|
||||
),
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
// A Vite build through the panel alias resolves renderers.js's relative
|
||||
// import of Navara's wind mesh to the stub (scripts/build-panel.mjs uses the
|
||||
// same alias).
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
||||
import { tmpdir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
import { build } from 'vite';
|
||||
import { panelBuildConfig } from './panel.js';
|
||||
|
||||
test('a Vite build resolves the relative wind-mesh import through the panel alias', async (t) => {
|
||||
const root = mkdtempSync(join(tmpdir(), 'panel-alias-'));
|
||||
t.after(() => rmSync(root, { recursive: true, force: true }));
|
||||
mkdirSync(join(root, 'src/app/layers'), { recursive: true });
|
||||
mkdirSync(join(root, 'src/globe/navara'), { recursive: true });
|
||||
writeFileSync(
|
||||
join(root, 'src/app/layers/renderers.js'),
|
||||
"export const load = () => import('../../globe/navara/windFlowMesh.js');\n",
|
||||
);
|
||||
writeFileSync(
|
||||
join(root, 'src/globe/navara/windFlowMesh.js'),
|
||||
'export const real = true;\n',
|
||||
);
|
||||
const { resolve } = panelBuildConfig({ plugins: [] });
|
||||
const [output] = await build({
|
||||
configFile: false,
|
||||
root,
|
||||
logLevel: 'silent',
|
||||
resolve,
|
||||
build: {
|
||||
outDir: join(root, 'out'),
|
||||
write: false,
|
||||
lib: {
|
||||
entry: join(root, 'src/app/layers/renderers.js'),
|
||||
formats: ['es'],
|
||||
fileName: 'x',
|
||||
},
|
||||
rollupOptions: { output: { inlineDynamicImports: true } },
|
||||
},
|
||||
});
|
||||
const [chunk] = output.output;
|
||||
assert.match(chunk.code, /Navara is unavailable in the panel/);
|
||||
assert.doesNotMatch(chunk.code, /real = true/);
|
||||
});
|
||||
@@ -27,7 +27,10 @@ test('the panel replaces Navara entry points and retains browser aliases', () =>
|
||||
);
|
||||
assert.ok(alias.replacement.endsWith('/build/panelNavara.js'));
|
||||
// Navara's wind mesh imports three; the Cesium wind backend stays.
|
||||
assert.ok(alias.find.test('../../globe/navara/windFlowMesh.js'));
|
||||
assert.equal(
|
||||
'../../globe/navara/windFlowMesh.js'.replace(alias.find, alias.replacement),
|
||||
alias.replacement,
|
||||
);
|
||||
assert.equal(alias.find.test('../../globe/cesium/windFlow.js'), false);
|
||||
assert.ok(config.resolve.alias.includes(browser.resolve.alias[0]));
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user