mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 02:14:01 +00:00
141 lines
2.7 KiB
JavaScript
141 lines
2.7 KiB
JavaScript
import * as Cesium from 'cesium';
|
|
|
|
export function createState({ services }) {
|
|
const { setOverlayEntries, setOverlaySourceVisible, clearOverlaySource } =
|
|
services.overlays;
|
|
const state = {};
|
|
|
|
state.DEFAULT_OVERLAY_HOST = Object.freeze({
|
|
setEntries: setOverlayEntries,
|
|
setVisible: setOverlaySourceVisible,
|
|
clearSource: clearOverlaySource,
|
|
});
|
|
|
|
state._dataSource = null;
|
|
|
|
state._count = 0;
|
|
|
|
state._lastUpdate = null;
|
|
|
|
state._lastError = null;
|
|
|
|
state._stale = false;
|
|
|
|
state._orbitMatches = 0;
|
|
|
|
state._clickHandler = null;
|
|
|
|
state._moveHandler = null;
|
|
|
|
state._viewer = null;
|
|
|
|
state._declutterHandler = null;
|
|
|
|
state._dataManager = null;
|
|
|
|
state._retryTimer = null;
|
|
|
|
state._postTleRetryCount = 0;
|
|
|
|
state._updatePromise = null;
|
|
|
|
state._updatePromiseToken = 0;
|
|
|
|
state._updateDirty = false;
|
|
|
|
state._lifecycleToken = 0;
|
|
|
|
state._enabled = false;
|
|
|
|
state._selectedLaunchId = null;
|
|
|
|
state._explicitSelection = false;
|
|
|
|
state._launches = [];
|
|
|
|
state._missionPanel = null;
|
|
|
|
state._missionRoster = null;
|
|
|
|
state._missionRosterHoverTimer = null;
|
|
|
|
state._hoveredRosterLaunchId = null;
|
|
|
|
state._missionRosterPreviewOwnership = null;
|
|
|
|
state._missionHoverReticleImage = null;
|
|
|
|
state._replayVehicleOverlay = null;
|
|
|
|
state._replayVehicleOverlayText = '';
|
|
|
|
state._animationStarts = new Map();
|
|
|
|
state._satelliteTelemetry = new Map();
|
|
|
|
state._lastPanelTelemetryMs = 0;
|
|
|
|
state._lastMissionRingRotationMs = 0;
|
|
|
|
state._activeTleText = null;
|
|
|
|
state._activeTlePromise = null;
|
|
|
|
state._activeTlePromiseToken = 0;
|
|
|
|
state._renderedTleText = null;
|
|
|
|
state._focusAfterActiveLookup = false;
|
|
|
|
state._satelliteStateBeforeMission = null;
|
|
|
|
state._satelliteActivationPromise = null;
|
|
|
|
state._replayCameraRemover = null;
|
|
|
|
state._replayCameraLaunchId = null;
|
|
|
|
state._replayCameraToken = 0;
|
|
|
|
state._replayPaused = false;
|
|
|
|
state._replayPausedAtMs = null;
|
|
|
|
state._replaySpeed = 1;
|
|
|
|
state._replayTracks = new Map();
|
|
|
|
state._missionOverlayRecords = new Map();
|
|
|
|
state._missionOverlayHost = state.DEFAULT_OVERLAY_HOST;
|
|
|
|
state._selectedMissionOverlayTimeText = null;
|
|
|
|
state._missionZoomAnchorRemover = null;
|
|
|
|
state._missionZoomAnchorId = null;
|
|
|
|
state._launchPadZonePrimitive = null;
|
|
|
|
state._launchPadZoneRemover = null;
|
|
|
|
state._launchPadZoneLaunchId = null;
|
|
|
|
state._missionOrbitPrimitives = new Map();
|
|
|
|
state._declutterTime = new Cesium.JulianDate();
|
|
|
|
state._declutterOccluder = new Cesium.EllipsoidalOccluder(
|
|
Cesium.Ellipsoid.WGS84,
|
|
new Cesium.Cartesian3(),
|
|
);
|
|
|
|
state._missionRingDate = new Date(0);
|
|
|
|
state._missionOrbitPatternRegistered = false;
|
|
|
|
state._pathDistanceCache = new WeakMap();
|
|
state._sourceController = new AbortController();
|
|
return state;
|
|
}
|