File indexing completed on 2024-04-28 03:50:24

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2012 Rene Kuettner <rene@bitkanal.net>
0004 //
0005 
0006 #ifndef MARBLE_SATELLITESMSCITEM_H
0007 #define MARBLE_SATELLITESMSCITEM_H
0008 
0009 #include "TrackerPluginItem.h"
0010 
0011 #include <QString>
0012 #include <QDateTime>
0013 
0014 #include <planetarySats.h>
0015 
0016 class QColor;
0017 
0018 namespace Marble {
0019 
0020 class GeoDataTrack;
0021 class MarbleClock;
0022 
0023 /**
0024  * An instance of SatellitesMSCItem represents an item of a Marble
0025  * satellites catalog.
0026  */
0027 class SatellitesMSCItem : public TrackerPluginItem
0028 {
0029 public:
0030     SatellitesMSCItem( const QString &name,
0031                        const QString &category,
0032                        const QString &relatedBody,
0033                        const QString &catalog,
0034                        const QDateTime &missionStart,
0035                        const QDateTime &missionEnd,
0036                        int catalogIndex,
0037                        PlanetarySats *planSat,
0038                        const MarbleClock *clock );
0039     ~SatellitesMSCItem() override;
0040 
0041     QString category() const;
0042     QString relatedBody() const;
0043     QString catalog() const;
0044     int catalogIndex() const;
0045     QString id() const;
0046 
0047     const QDateTime& missionStart() const;
0048     const QDateTime& missionEnd() const;
0049 
0050     void update() override;
0051 
0052 private:
0053     GeoDataTrack *m_track;
0054     const MarbleClock *m_clock;
0055     PlanetarySats *m_planSat;
0056     const QString m_category;
0057     const QString m_relatedBody;
0058     const QString m_catalog;
0059     const int m_catalogIndex;
0060 
0061     double m_perc;
0062     double m_apoc;
0063     double m_inc;
0064     double m_ecc;
0065     double m_ra;
0066     double m_tano;
0067     double m_m0;
0068     double m_a;
0069     double m_n0;
0070     double m_period;
0071     int m_step_secs;
0072 
0073     const QDateTime m_missionStart;
0074     const QDateTime m_missionEnd;
0075 
0076     void setDescription();
0077     void addTrackPointAt( const QDateTime &dateTime );
0078 };
0079 
0080 } // namespace Marble
0081 
0082 #endif // MARBLE_SATELLITESMSCITEM_H