mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-14 23:32:20 +00:00
Run the Navara paths without the Cesium SDK, and load it on demand for the features that still build on it
Every Cesium read that a Navara page made was surveyed with the strict acceptance (GEV_QA_CESIUM_TRAP=record). Math on those paths now uses src/geo: screen annotations, weather and wind center readings, cyclone picks, scene data pack polygons and images (new navaraGeometry.js), the awareness subject, the orbit offset of camera verbs, voice frame_overhead, the agent world packet and Directions colours and ground picks. The celestial ring's Sun and Moon come from a bit-identical port of Cesium's Simon1994 model, JulianDate and TEME rotation (src/geo/simon1994.js, julianDate.js, transforms.js); a Cesium globe still applies its ICRF rotation once loaded. Traffic, Street Level, the Nepal event and locator and geo import build on Cesium's math or entity model on either globe; their enable (or the import) now loads the SDK first through src/app/loadCesium.js, synchronously when it is already there. A production page guards the global so a missed read is reported and starts the load. No module reads Cesium while it loads (scripts/check-cesium-load-time.mjs, run by npm test). Cesium.js is still loaded by index.html here.
This commit is contained in:
1 parent
f87da8523e
commit
b8305de14b
58 files changed
+2130
-325
No files matched your search
@@ -7,22 +7,9 @@ import { inspectWindAtCenter } from './inspection.js';
|
||||
import { windReadingResult } from './presentation.js';
|
||||
import { sampleWind, windColor, windSpeed } from './model.js';
|
||||
import { windStats } from './index.js';
|
||||
import * as geo from '../../geo/index.js';
|
||||
|
||||
const cesium = {
|
||||
Cartesian2: class {
|
||||
constructor(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
},
|
||||
Ellipsoid: { WGS84: {} },
|
||||
Cartographic: { fromCartesian: (p) => p },
|
||||
Math: { toDegrees: (x) => (x * 180) / Math.PI },
|
||||
};
|
||||
const at = (lonDeg, latDeg) => ({
|
||||
longitude: (lonDeg * Math.PI) / 180,
|
||||
latitude: (latDeg * Math.PI) / 180,
|
||||
});
|
||||
const at = (lonDeg, latDeg) => geo.cartesian3.fromDegrees(lonDeg, latDeg);
|
||||
const grid = { nx: 4, ny: 3, lo1: 0, la1: 90, dx: 90, dy: 90 };
|
||||
const field = (u, v) => ({
|
||||
grid,
|
||||
@@ -44,11 +31,10 @@ const viaViewer = (snapshot, point) =>
|
||||
camera: { pickEllipsoid: () => point },
|
||||
scene: { canvas: { clientWidth: 800, clientHeight: 600 } },
|
||||
},
|
||||
cesium,
|
||||
options,
|
||||
);
|
||||
const viaPosition = (snapshot, point) =>
|
||||
inspectWindAtCenter(snapshot, null, cesium, { ...options, position: point });
|
||||
inspectWindAtCenter(snapshot, null, { ...options, position: point });
|
||||
const windLine = (reading) =>
|
||||
windReadingResult(reading).lines.find(({ id }) => id === 'wind').text;
|
||||
|
||||
|
||||
Reference in new issue
Block a user