Stellarium 0.12.3
gSatTEME.hpp
1 /***************************************************************************
2  * Name: gSatTeme.hpp
3  *
4  * Description: gSatTEME classes declaration.
5  * This class abstract all the SGP4 complexity. It uses the
6  * revised David. A. Vallado code for SGP4 Calculation.
7  *
8  * Reference:
9  * Revisiting Spacetrack Report #3 AIAA 2006-6753
10  * Vallado, David A., Paul Crawford, Richard Hujsak, and T.S.
11  * Kelso, "Revisiting Spacetrack Report #3,"
12  * presented at the AIAA/AAS Astrodynamics Specialist
13  * Conference, Keystone, CO, 2006 August 21–24.
14  * http://celestrak.com/publications/AIAA/2006-6753/
15  ***************************************************************************/
16 
17 /***************************************************************************
18  * Copyright (C) 2006 by J.L. Canales *
19  * jlcanales.gasco@gmail.com *
20  * *
21  * This program is free software; you can redistribute it and/or modify *
22  * it under the terms of the GNU General Public License as published by *
23  * the Free Software Foundation; either version 2 of the License, or *
24  * (at your option) any later version. *
25  * *
26  * This program is distributed in the hope that it will be useful, *
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
29  * GNU General Public License for more details. *
30  * *
31  * You should have received a copy of the GNU General Public License *
32  * along with this program; if not, write to the *
33  * Free Software Foundation, Inc., *
34  * 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. *
35  ***************************************************************************/
36 
37 #ifndef _GSATTEME_HPP_
38 #define _GSATTEME_HPP_ 1
39 
40 #include "gTime.hpp"
41 #include "gVector.hpp"
42 
43 #include "sgp4unit.h"
44 #include "sgp4ext.h"
45 
46 
53 class gSatTEME
54 {
55 public:
56 
57  // Operation: gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2)
64  gSatTEME(const char *pstrName, char *pstrTleLine1, char *pstrTleLine2);
65 
66  // Operation: setEpoch( gTime ai_time)
69  void setEpoch(gTime ai_time);
70 
71  // Operation: setEpoch( double ai_time)
74  void setEpoch(double ai_time)
75  {
76  gTime time(ai_time);
77  return setEpoch( time);
78  }
79 
80  // Operation: setMinSinceKepEpoch( double ai_minSinceKepEpoch)
84  void setMinSinceKepEpoch(double ai_minSinceKepEpoch);
85 
86  // Operation: getPos()
94  {
95  return m_Position;
96  }
97 
98  // Operation: getVel()
105  {
106  return m_Vel;
107  }
108 
109 
110 
111 
112  // Operation: getSubPoint
122  {
123  return m_SubPoint;
124  }
125 
126  int getErrorCode()
127  {
128  return satrec.error;
129  }
130 
131 private:
132  // Operation: computeSubPoint
143  gVector computeSubPoint( gTime ai_time);
144 
145 
146  // sgp4 proceses variables
147  double tumin, mu, radiusearthkm, xke, j2, j3, j4, j3oj2;
148  elsetrec satrec;
149 
150  std::string m_SatName;
151  gVector m_Position;
152  gVector m_Vel;
153  gVector m_SubPoint;
154 };
155 
156 #endif // _GSATTEME_HPP_