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