mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 18:34:02 +00:00
66 lines
2.3 KiB
JavaScript
66 lines
2.3 KiB
JavaScript
import { createFlightSnapshotRenderer } from './snapshotRenderer.js';
|
|
import { createFlightState } from './state.js';
|
|
import { createRendering } from './rendering.js';
|
|
import { createMotion } from './motion.js';
|
|
import { createTracking } from './tracking.js';
|
|
import { createController } from './controller.js';
|
|
import { createEnrichment } from './enrichment.js';
|
|
import { createIngestion } from './ingestion.js';
|
|
import { createLifecycle } from './lifecycle.js';
|
|
import { createEvidence } from './evidence.js';
|
|
import { createTesting } from './testing.js';
|
|
import { createQueries } from './queries.js';
|
|
/** Compose one civil-flight layer with application-owned scene services. */
|
|
export function createCivilFlightLayer({
|
|
source,
|
|
services,
|
|
resolveAsset = (url) => url,
|
|
} = {}) {
|
|
const flightState = createFlightState({ source, services });
|
|
const parts = {};
|
|
const layer = {};
|
|
const context = { flightState, services, parts, layer, resolveAsset };
|
|
parts.rendering = createRendering(context);
|
|
parts.motion = createMotion(context);
|
|
parts.tracking = createTracking(context);
|
|
parts.controller = createController(context);
|
|
parts.enrichment = createEnrichment(context);
|
|
parts.lifecycle = createLifecycle(context);
|
|
parts.evidence = createEvidence(context);
|
|
parts.testing = createTesting(context);
|
|
parts.queries = createQueries(context);
|
|
const applySnapshot = createFlightSnapshotRenderer({
|
|
flightState,
|
|
records: flightState.records,
|
|
militaryRegistry: services.militaryRegistry,
|
|
groundFloor: services.groundFloor,
|
|
meshFloor: services.meshFloor,
|
|
rendering: parts.rendering,
|
|
tracking: parts.tracking,
|
|
motion: parts.motion,
|
|
enrichment: parts.enrichment,
|
|
queries: parts.queries,
|
|
});
|
|
parts.ingestion = createIngestion({
|
|
feed: flightState.feed,
|
|
getQuery: (viewer) =>
|
|
parts.controller._flightQuery(viewer || flightState._viewer),
|
|
applySnapshot,
|
|
setSourceLabel: (source) => {
|
|
layer.source = source;
|
|
},
|
|
applyPendingTrackingRestore: () =>
|
|
parts.tracking._applyPendingTrackingRestore(),
|
|
});
|
|
|
|
Object.assign(
|
|
layer,
|
|
parts.queries.methods,
|
|
parts.lifecycle.methods,
|
|
parts.ingestion.methods,
|
|
);
|
|
Object.defineProperty(layer, 'testing', { value: parts.testing });
|
|
return layer;
|
|
}
|
|
export { TRACKED_MODEL_MAX_PX } from './policy.js';
|