Stellarium 0.14.3
gSatWrapper.hpp
1 /***************************************************************************
2  * Name: gSatStelWrapper.hpp
3  *
4  * Description: Wrapper over gSatTEME class.
5  * This class allow use Satellite orbit calculation module (gSAt) in
6  * Stellarium 'native' mode using Stellarium objects.
7  *
8  ***************************************************************************/
9 /***************************************************************************
10  * Copyright (C) 2006 by J.L. Canales *
11  * jlcanales.gasco@gmail.com *
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  * This program is distributed in the hope that it will be useful, *
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
21  * GNU General Public License for more details. *
22  * *
23  * You should have received a copy of the GNU General Public License *
24  * along with this program; if not, write to the *
25  * Free Software Foundation, Inc., *
26  * 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. *
27  ***************************************************************************/
28 
29 #ifndef _GSATWRAPPER_HPP_
30 #define _GSATWRAPPER_HPP_ 1
31 
32 #include <QString>
33 
34 #include "VecMath.hpp"
35 
36 #include "gsatellite/gSatTEME.hpp"
37 #include "gsatellite/gTime.hpp"
38 
39 //constants for predict visibility
40 #define RADAR_SUN 1
41 #define VISIBLE 2
42 #define RADAR_NIGHT 3
43 #define NOT_VISIBLE 4
44 
48 {
49 
50 public:
51  gSatWrapper(QString designation, QString tle1,QString tle2);
52  ~gSatWrapper();
53 
54  // Operation updateEpoch
57  void updateEpoch();
58 
59  void setEpoch(double ai_julianDaysEpoch);
60 
61  // Operation getTEMEPos
64  Vec3d getTEMEPos();
65 
66  // Operation getSunECIPos
69  Vec3d getSunECIPos();
70 
71  // Operation getTEMEVel
74  Vec3d getTEMEVel();
75 
76  // Operation: getSubPoint
82  Vec3d getSubPoint();
83 
84  // Operation getAltAz
91  Vec3d getAltAz();
92 
93  // Operation getSlantRange
99  void getSlantRange(double &ao_slantRange, double &ao_slantRangeRate); //meassured in km and km/s
100 
101 
102  // Operation getVisibilityPredict
117  int getVisibilityPredict();
118 
119  double getPhaseAngle();
120  gTime getEpoch() { return epoch; }
121 
122 
123 //private:
124  // Operation calcObserverECIPosition
136  void calcObserverECIPosition(Vec3d& ao_position, Vec3d& ao_vel);
137 
138 
139 private:
140  gSatTEME *pSatellite;
141  gTime epoch;
142 
143 };
144 
145 #endif
Vec3d getSunECIPos()
Get Sun positions in ECI system.
Sat position and velocity predictions over TEME reference system.
Definition: gSatTEME.hpp:54
Wrapper allowing compatibility between gsat and Stellarium/Qt.
Definition: gSatWrapper.hpp:47
int getVisibilityPredict()
This operation predicts the satellite visibility contidions.
void getSlantRange(double &ao_slantRange, double &ao_slantRangeRate)
This operation compute the slant range (distance between the satellite and the observer) and its vari...
Vec3d getTEMEPos()
This operation isolate gSatTEME getPos operation.
void updateEpoch()
This operation update Epoch timestamp for gSatTEME object from Stellarium Julian Date.
Vec3d getAltAz()
This operation compute the coordinates in StelCore::FrameAltAz.
This class implements time calculations.
Definition: gTime.hpp:143
void calcObserverECIPosition(Vec3d &ao_position, Vec3d &ao_vel)
This operation compute the observer ECI coordinates in Geocentric Ecuatorial Coordinate System (IJK) ...
Vec3d getSubPoint()
This operation isolate getSubPoint method of gSatTEME object.
Vec3d getTEMEVel()
This operation isolate gSatTEME getVel operation.