Stellarium 0.12.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 
47 {
48 
49 public:
50  gSatWrapper(QString designation, QString tle1,QString tle2);
51  ~gSatWrapper();
52 
53  // Operation updateEpoch
56  void updateEpoch();
57 
58  void setEpoch(double ai_julianDaysEpoch);
59 
60  // Operation getTEMEPos
63  Vec3d getTEMEPos();
64 
65  // Operation getTEMEVel
68  Vec3d getTEMEVel();
69 
70  // Operation: getSubPoint
77 
78  // Operation getAltAz
85  Vec3d getAltAz();
86 
87  // Operation getSlantRange
93  void getSlantRange(double &ao_slantRange, double &ao_slantRangeRate); //meassured in km and km/s
94 
95 
96  // Operation getVisibilityPredict
111  int getVisibilityPredict();
112 
113 
114 private:
115  // Operation calcObserverECIPosition
127  void calcObserverECIPosition(Vec3d& ao_position, Vec3d& ao_vel);
128 
129 
130 private:
131  gSatTEME *pSatellite;
132  gTime epoch;
133 
134 };
135 
136 #endif