ootk
Version:
Orbital Object Toolkit including Multiple Propagators, Initial Orbit Determination, and Maneuver Calculations.
61 lines (56 loc) • 1.99 kB
text/typescript
/**
* @author @thkruz Theodore Kruczek
* @license AGPL-3.0-or-later
* @copyright (c) 2025 Kruczek Labs LLC
*
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
* terms of the GNU Affero General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License along with
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
*/
import { Sensor } from './Sensor.js';
import { Milliseconds } from '../main.js';
import { DetailedSensorParams, ZoomValue } from '../types/types.js';
import { CommLink } from '../enums/CommLink.js';
export class DetailedSensor extends Sensor {
sensorId?: number;
objName?: string;
shortName?: string;
uiName?: string;
country?: string;
dwellTime?: Milliseconds;
freqBand?: string;
commLinks: CommLink[];
/** Is this sensor volumetric? */
isVolumetric?: boolean;
/** The ideal zoom to see the sensor's full FOV */
zoom?: ZoomValue | number;
system?: string;
operator?: string;
url?: string;
constructor(info: DetailedSensorParams) {
super(info);
this.commLinks = info.commLinks ?? [];
this.country = info.country;
this.dwellTime = info.changeObjectInterval;
this.freqBand = info.freqBand;
this.isVolumetric = info.volume;
this.objName = info.objName;
this.operator = info.operator;
this.sensorId = info.sensorId;
this.shortName = info.shortName;
this.system = info.system;
this.uiName = info.uiName;
this.url = info.url;
this.zoom = info.zoom;
}
isStatic(): boolean {
return true;
}
}