• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.12
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • satellites
  • mex
planetarySats.h
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2012 Gerhard HOLTKAMP
9 //
10 
11 #if !defined(__planetarysats_h)
12 #define __planetarysats_h
13 
14 #include "attlib.h"
15 
16 class PlanetarySats // Calculate spacecraft around other planets
17 {
18  public:
19  PlanetarySats();
20  ~PlanetarySats();
21 
22  void setStepWidth(double s); // set the step width (seconds)
23  void setDeltaTAI_UTC(double d); // set IERS Parameter TAI - UTC
24  void setAutoTAI_UTC(); // IERS Parameter TAI - UTC to auto
25  void getTime (); // Get System Time and Date
26  void setDeltaRT(double drt);
27  void setMJD(int year, int month, int day, int hour, int min, double sec);// set time
28  void getDatefromMJD(double mjd, int &year, int &month, int &day, int &hour, int &min, double &sec);
29  void setSatFile(char* fname);
30  void setPlanet(char* pname);
31  int selectSat(char* sname);
32  void getSatName(char* sname);
33  void setStateVector(double mjd, double x, double y, double z, double vx, double vy, double vz);
34  int getStateVector(int nsat);
35  void stateToKepler();
36  void getKeplerElements(double &perc, double &apoc, double &inc, double &ecc, double &ra, double &tano, double &m0, double &a, double &n0);
37  void getPlanetographic(double &lng, double &lat, double &height);
38  void getFixedFrame(double &x, double &y, double &z, double &vx, double &vy, double &vz);
39  void currentPos();
40  void nextStep();
41  double getLastMJD();
42 
43  private:
44  void plsatinit(); // initialize PlanetarySats
45  double atan23 (double y, double x); // atan without singularity for x,y=0
46  void getMercury();
47  void getVenus();
48  void getMoon();
49  void getMars();
50  void getSatPos (double t);
51  Mat3 getSelenographic (double jd);
52 
53  // data fields
54 
55  char pls_satelmfl[205]; // name of file for satellite state vectors
56  char pls_satname[40]; // name of satellite
57  char pls_plntname[40]; // name of planet
58 
59  bool pls_moonflg; // true if Moon, false if other body
60 
61  int pls_day; // date
62  int pls_month;
63  int pls_year;
64  int pls_hour;
65  int pls_minute;
66  int pls_second;
67  double pls_time; // current time in MJD (UTC)
68  double pls_del_tdut; // TDT - UT in sec
69  int pls_del_auto; // 1 = automatic del_tdut, 0 = manual
70  double pls_step; // stepwidth in sec
71  double pls_delta_rt; // delta time to R/T in hours
72 
73  double pls_tepoch; // MJD epoch of state vector (TT)
74  Vec3 pls_rep; // state vector km and km/s
75  Vec3 pls_vep;
76 
77  double pls_ra; // Right Ascension
78  double pls_per; // argument of perige center
79  double pls_m0; // mean anomaly
80  double pls_ecc; // eccentricity
81  double pls_inc; // inclination
82  double pls_a; // semi-major axis (km)
83  double pls_n0; // mean motion (rev/day)
84 
85  double pls_GM; // graviatational constant (m^3/s^2)
86  double pls_J2; // J2 gravitational term
87  double pls_R0; // equatorial radius (km)
88  double pls_flat; // flattening factor
89  double pls_axl0; // l-direction of rotation axis
90  double pls_axl1; // delta of axl0
91  double pls_axb0; // b-direction of rotation axis
92  double pls_axb1; // delta of axb0
93  double pls_W; // location of prime meridian
94  double pls_Wd; // daily variation of W.
95 
96  Vec3 pls_r; // current state vector m and m/s
97  Vec3 pls_v;
98  double pls_lat; // planetary latitude (decimal degrees)
99  double pls_lng; // planetary longitude (decimal degrees)
100  double pls_height; // height above reference ellipsoid (km)
101 };
102 
103 #endif // __planetarysats_h sentry.
104 
Mat3
Definition: attlib.h:62
PlanetarySats::setAutoTAI_UTC
void setAutoTAI_UTC()
Definition: planetarySats.cpp:121
PlanetarySats::getTime
void getTime()
Definition: planetarySats.cpp:76
PlanetarySats::getDatefromMJD
void getDatefromMJD(double mjd, int &year, int &month, int &day, int &hour, int &min, double &sec)
Definition: planetarySats.cpp:149
PlanetarySats::~PlanetarySats
~PlanetarySats()
Definition: planetarySats.cpp:40
PlanetarySats::getSatName
void getSatName(char *sname)
Definition: planetarySats.cpp:454
Vec3
Definition: attlib.h:26
PlanetarySats::PlanetarySats
PlanetarySats()
Definition: planetarySats.cpp:35
PlanetarySats::nextStep
void nextStep()
Definition: planetarySats.cpp:464
PlanetarySats::setMJD
void setMJD(int year, int month, int day, int hour, int min, double sec)
Definition: planetarySats.cpp:128
PlanetarySats::getPlanetographic
void getPlanetographic(double &lng, double &lat, double &height)
Definition: planetarySats.cpp:475
PlanetarySats::getLastMJD
double getLastMJD()
Definition: planetarySats.cpp:470
PlanetarySats::setSatFile
void setSatFile(char *fname)
Definition: planetarySats.cpp:165
attlib.h
PlanetarySats::setDeltaRT
void setDeltaRT(double drt)
Definition: planetarySats.cpp:106
PlanetarySats::setStepWidth
void setStepWidth(double s)
Definition: planetarySats.cpp:99
PlanetarySats::getStateVector
int getStateVector(int nsat)
Definition: planetarySats.cpp:192
PlanetarySats::getKeplerElements
void getKeplerElements(double &perc, double &apoc, double &inc, double &ecc, double &ra, double &tano, double &m0, double &a, double &n0)
Definition: planetarySats.cpp:386
PlanetarySats::setStateVector
void setStateVector(double mjd, double x, double y, double z, double vx, double vy, double vz)
Definition: planetarySats.cpp:171
PlanetarySats::setDeltaTAI_UTC
void setDeltaTAI_UTC(double d)
Definition: planetarySats.cpp:111
PlanetarySats::selectSat
int selectSat(char *sname)
Definition: planetarySats.cpp:428
PlanetarySats::currentPos
void currentPos()
Definition: planetarySats.cpp:459
mjd
double mjd(int day, int month, int year, double hour)
Definition: astrolib.cpp:93
PlanetarySats::getFixedFrame
void getFixedFrame(double &x, double &y, double &z, double &vx, double &vy, double &vz)
Definition: planetarySats.cpp:485
PlanetarySats::setPlanet
void setPlanet(char *pname)
Definition: planetarySats.cpp:310
PlanetarySats::stateToKepler
void stateToKepler()
Definition: planetarySats.cpp:320
PlanetarySats
Definition: planetarySats.h:16
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:52 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal