Build the catalog from one layer manifest and attach one tools tree

src/app/layers/renderers.js now holds LAYER_MANIFEST, one entry per
layer in directory order: a display (the same render/display.js on every
engine, with the contract primitives it needs and, for CCTV and Global
Context, a Navara backend loaded by import()), a layer that draws itself
through the contract, or per-engine renderers for the layers not on a
display yet (weather, wind, Bhote Koshi, sea marks, ski pistes). A layer
is available where the engine has the primitives it needs. The Cesium
renderer table, CESIUM_BUILTIN, the registry and the Navara mode's map of
about 35 loaders go; the application loads a kind's renderers before it
builds the catalog.

The tools attach through one tree over the engine, in Cesium's order.
Each engine kind adds its own tools from one backend that reads its
extension once: the Cesium backend holds the viewer-only tools, the
Navara backend the annotation renderer, draw surface and file import
drawing.

Coupling: engine.extensions reads fall from 12 to 8, engine-name literal
lines from 73 to 66.
This commit is contained in:
German Khokhlov committed 2026-11-07 09:41:02 +04:00
1 parent f1ec9d4a22
commit 48885d9e61
46 files changed
+1057 -899

No files matched your search

+17 -3
View File
@@ -3402,7 +3402,6 @@
"src/globe/navara/viewOptions.js",
"src/app/engineChoice.js",
"src/app/navaraMode.js",
"src/app/navaraTools.js",
"src/annotations/navaraAnnotationRenderer.js",
"src/annotations/drawInputNavara.js",
"src/data/render/cesiumProjection.js",
@@ -4316,7 +4315,18 @@
"src/layers/directions/render/display.js",
"src/layers/streetLevel/render/display.js",
"src/layers/traffic/render/display.js",
"src/layers/recentImagery/render/display.js"
"src/layers/recentImagery/render/display.js",
"src/layers/shared/render/navaraStory.js",
"src/layers/cctv/render/navaraMeshes.js",
"src/layers/recentImagery/render/navaraGround.js",
"src/layers/shared/render/navaraGroundSurface.js",
"src/layers/wind/render/flowMesh.js",
"src/layers/wind/render/navara.js",
"src/layers/shared/render/navaraGroundEffect.js",
"src/layers/awareness/render/navaraPulses.js",
"src/layers/weather/render/navaraSurface.js",
"src/layers/weather/render/navara.js",
"src/layers/bhoteKoshi/render/navara.js"
],
"external": [
"hls.js",
@@ -4331,7 +4341,11 @@
"vue",
"pinia",
"vue-i18n",
"kdbush"
"kdbush",
"postprocessing",
"@navaramap/three",
"@navaramap/three-default-plugin",
"three"
]
},
"application-operations": {