export namespace propagator { export class GroundtrackPoint { lat: number; lon: number; // Go type: time t: any; static createFrom(source: any = {}) { return new GroundtrackPoint(source); } constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); this.lat = source["lat"]; this.lon = source["lon"]; this.t = this.convertValues(source["t"], null); } convertValues(a: any, classs: any, asMap: boolean = false): any { if (!a) { return a; } if (a.slice && a.map) { return (a as any[]).map(elem => this.convertValues(elem, classs)); } else if ("object" === typeof a) { if (asMap) { for (const key of Object.keys(a)) { a[key] = new classs(a[key]); } return a; } return new classs(a); } return a; } } export class PassPoint { // Go type: time t: any; az: number; el: number; static createFrom(source: any = {}) { return new PassPoint(source); } constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); this.t = this.convertValues(source["t"], null); this.az = source["az"]; this.el = source["el"]; } convertValues(a: any, classs: any, asMap: boolean = false): any { if (!a) { return a; } if (a.slice && a.map) { return (a as any[]).map(elem => this.convertValues(elem, classs)); } else if ("object" === typeof a) { if (asMap) { for (const key of Object.keys(a)) { a[key] = new classs(a[key]); } return a; } return new classs(a); } return a; } } export class Pass { satName: string; // Go type: time aos: any; // Go type: time los: any; maxEl: number; // Go type: time maxElTime: any; aosAz: number; losAz: number; maxElAz: number; duration: number; points: PassPoint[]; static createFrom(source: any = {}) { return new Pass(source); } constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); this.satName = source["satName"]; this.aos = this.convertValues(source["aos"], null); this.los = this.convertValues(source["los"], null); this.maxEl = source["maxEl"]; this.maxElTime = this.convertValues(source["maxElTime"], null); this.aosAz = source["aosAz"]; this.losAz = source["losAz"]; this.maxElAz = source["maxElAz"]; this.duration = source["duration"]; this.points = this.convertValues(source["points"], PassPoint); } convertValues(a: any, classs: any, asMap: boolean = false): any { if (!a) { return a; } if (a.slice && a.map) { return (a as any[]).map(elem => this.convertValues(elem, classs)); } else if ("object" === typeof a) { if (asMap) { for (const key of Object.keys(a)) { a[key] = new classs(a[key]); } return a; } return new classs(a); } return a; } } export class SatPosition { name: string; lat: number; lon: number; alt: number; az: number; el: number; range: number; rangeRate: number; footprint: number; static createFrom(source: any = {}) { return new SatPosition(source); } constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); this.name = source["name"]; this.lat = source["lat"]; this.lon = source["lon"]; this.alt = source["alt"]; this.az = source["az"]; this.el = source["el"]; this.range = source["range"]; this.rangeRate = source["rangeRate"]; this.footprint = source["footprint"]; } } }