File indexing completed on 2024-04-14 03:43:12

0001 /*
0002     SPDX-FileCopyrightText: 2011 Jerome SONRIER <jsid@emor3j.fr.eu.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QString>
0010 #include <QUrl>
0011 
0012 class Satellite;
0013 
0014 /**
0015  * @class SatelliteGroup
0016  * Represents a group of artificial satellites.
0017  * @author Jérôme SONRIER
0018  * @version 1.0
0019  */
0020 class SatelliteGroup : public QList<Satellite *>
0021 {
0022   public:
0023     /**
0024      * @short Constructor
0025      */
0026     SatelliteGroup(const QString& name, const QString& tle_filename, const QUrl& update_url);
0027 
0028     virtual ~SatelliteGroup() = default;
0029 
0030     /**
0031      * Read TLE file of the group and create all satellites found in the file.
0032      */
0033     void readTLE();
0034 
0035     /**
0036      * Compute current position of the each satellites in the group.
0037      */
0038     void updateSatellitesPos();
0039 
0040     /**
0041      * @return TLE filename
0042      */
0043     QUrl tleFilename();
0044 
0045     /**
0046      * @return URL from which new TLE file must be download
0047      */
0048     QUrl tleUrl();
0049 
0050     /**
0051      * @return Name of the group
0052      */
0053     QString name();
0054 
0055   private:
0056     /// Group name
0057     QString m_name;
0058     /// TLE filename
0059     QString m_tle_file;
0060     /// URL used to update TLE file
0061     QUrl m_tle_url;
0062 };