import { ref } from 'vue' import { useSatellite } from '../../Satellite/hooks/satellite' export function useMultiSatTraj() { const multiSatTrajMap = new Map() const satellitePayloadStatusMap = ref(new Map()) const { addSatellite } = useSatellite() function addSatelliteTraj(satelliteList = [], timeRange) { satelliteList.forEach(({ id, tle }) => { if (!multiSatTrajMap.has(id)) { const satellite = addSatellite( { id, tle }, { startTime: new Date(timeRange[0]).toISOString() || new Date(), totalSeconds: timeRange[1] - timeRange[0], } ) console.log(timeRange[1] - timeRange[0], 'timeRange[1] - timeRange[0]') satellite.sensor = true multiSatTrajMap.set(id, satellite) satellitePayloadStatusMap.value.set(id, satellite.sensor) } }) } function changeSatellitePayloadStatus(id, status) { multiSatTrajMap.has(id) && (multiSatTrajMap.get(id).sensor = status) } function removeAllMultiSatelliteTraj() { for (let [key, satellite] of multiSatTrajMap.entries()) { satellite.destroy() multiSatTrajMap.delete(key) } } return { addSatelliteTraj, removeAllMultiSatelliteTraj, satellitePayloadStatusMap, changeSatellitePayloadStatus, } }