From e0d3e93a283104a622a76176617b3e41caead0c7 Mon Sep 17 00:00:00 2001 From: German Khokhlov Date: Tue, 10 Nov 2026 16:14:14 +0400 Subject: [PATCH] Move the wind's Cesium rendering into the Cesium adapter The particle canvas, its GPU path and the relief shading move unchanged from src/layers/wind/ to src/globe/cesium/; the adapter reads the Cesium viewer itself, so the layer no longer hands one in. --- scripts/qa-wind-canvas.mjs | 2 +- src/globe/cesium/windFlow.js | 4 ++-- .../cesium/windGpuRendering.js} | 2 +- .../wind/relief.js => globe/cesium/windRelief.js} | 0 .../rendering.js => globe/cesium/windRendering.js} | 12 ++++++++---- src/layers/wind/gpuRendering.test.mjs | 2 +- src/layers/wind/relief.test.mjs | 2 +- src/layers/wind/rendering.test.mjs | 2 +- 8 files changed, 15 insertions(+), 11 deletions(-) rename src/{layers/wind/gpuRendering.js => globe/cesium/windGpuRendering.js} (99%) rename src/{layers/wind/relief.js => globe/cesium/windRelief.js} (100%) rename src/{layers/wind/rendering.js => globe/cesium/windRendering.js} (98%) diff --git a/scripts/qa-wind-canvas.mjs b/scripts/qa-wind-canvas.mjs index dd93cc588..885a52c47 100644 --- a/scripts/qa-wind-canvas.mjs +++ b/scripts/qa-wind-canvas.mjs @@ -6,7 +6,7 @@ try { const page = await browser.newPage(); await page.goto(`${process.env.QA_BASE_URL || 'http://localhost:4173'}/`, { waitUntil: 'domcontentloaded' }); const result = await page.evaluate(async () => { - const { createWindRendering } = await import('/src/layers/wind/rendering.js'); + const { createWindRendering } = await import('/src/globe/cesium/windRendering.js'); const raf = window.requestAnimationFrame; const caf = window.cancelAnimationFrame; const callbacks = new Map(); let sequence = 0; window.requestAnimationFrame = callback => { callbacks.set(++sequence, callback); return sequence; }; diff --git a/src/globe/cesium/windFlow.js b/src/globe/cesium/windFlow.js index f14467ca1..10c185287 100644 --- a/src/globe/cesium/windFlow.js +++ b/src/globe/cesium/windFlow.js @@ -1,7 +1,7 @@ // Cesium's backend of the wind display: the wind renderer's streamlines -// (src/layers/wind/rendering.js) over the viewer, read only once a Cesium globe draws. +// over the viewer, read only once a Cesium globe draws. import * as Cesium from 'cesium'; -import { createWindRendering } from '../../layers/wind/rendering.js'; +import { createWindRendering } from './windRendering.js'; export function createWindCesiumFlow(engine, { onStatusChange } = {}) { return createWindRendering({ diff --git a/src/layers/wind/gpuRendering.js b/src/globe/cesium/windGpuRendering.js similarity index 99% rename from src/layers/wind/gpuRendering.js rename to src/globe/cesium/windGpuRendering.js index 0873fa63b..e6f16d7a5 100644 --- a/src/layers/wind/gpuRendering.js +++ b/src/globe/cesium/windGpuRendering.js @@ -4,7 +4,7 @@ import { WIND_DISPLAY_HEIGHT_METERS, WIND_PATH_LIMIT, WIND_NARROW_PATH_LIMIT, -} from './streamlines.js'; +} from '../../layers/wind/streamlines.js'; const WIND_FADE_LOW_METERS = 15000; const WIND_FADE_HIGH_METERS = 60000; diff --git a/src/layers/wind/relief.js b/src/globe/cesium/windRelief.js similarity index 100% rename from src/layers/wind/relief.js rename to src/globe/cesium/windRelief.js diff --git a/src/layers/wind/rendering.js b/src/globe/cesium/windRendering.js similarity index 98% rename from src/layers/wind/rendering.js rename to src/globe/cesium/windRendering.js index 3314e1b9d..f9669181f 100644 --- a/src/layers/wind/rendering.js +++ b/src/globe/cesium/windRendering.js @@ -1,7 +1,11 @@ -import { createWindRelief } from './relief.js'; -import { createWindGpuRendering } from './gpuRendering.js'; -import { advectParticle, sampleWind, sameWind } from './model.js'; -import { trailEraseAlpha, windTrailColor } from './fields.js'; +import { createWindRelief } from './windRelief.js'; +import { createWindGpuRendering } from './windGpuRendering.js'; +import { + advectParticle, + sampleWind, + sameWind, +} from '../../layers/wind/model.js'; +import { trailEraseAlpha, windTrailColor } from '../../layers/wind/fields.js'; /** The wind's streamlines on Cesium (the wind display's flow backend, * render/display.js, which draws the colour field): globe-projected surface diff --git a/src/layers/wind/gpuRendering.test.mjs b/src/layers/wind/gpuRendering.test.mjs index 1a420e23b..9c886b291 100644 --- a/src/layers/wind/gpuRendering.test.mjs +++ b/src/layers/wind/gpuRendering.test.mjs @@ -1,6 +1,6 @@ import test from 'node:test'; import assert from 'node:assert/strict'; -import { createWindGpuRendering } from './gpuRendering.js'; +import { createWindGpuRendering } from '../../globe/cesium/windGpuRendering.js'; import { BoundingSphere, Cartesian3, diff --git a/src/layers/wind/relief.test.mjs b/src/layers/wind/relief.test.mjs index 9e1b94b33..0258178e2 100644 --- a/src/layers/wind/relief.test.mjs +++ b/src/layers/wind/relief.test.mjs @@ -1,6 +1,6 @@ import test from 'node:test'; import assert from 'node:assert/strict'; -import { createWindRelief } from './relief.js'; +import { createWindRelief } from '../../globe/cesium/windRelief.js'; function fixture({ material = undefined, normals = true } = {}) { const materials = []; diff --git a/src/layers/wind/rendering.test.mjs b/src/layers/wind/rendering.test.mjs index 9ed0334e5..b1d35d992 100644 --- a/src/layers/wind/rendering.test.mjs +++ b/src/layers/wind/rendering.test.mjs @@ -4,7 +4,7 @@ import test from 'node:test'; import assert from 'node:assert/strict'; -import { createWindRendering } from './rendering.js'; +import { createWindRendering } from '../../globe/cesium/windRendering.js'; function event() { const listeners = new Set();