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

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • astro
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 #include "astrolib_export.h"
16 
17 class ASTROLIB_EXPORT PlanetarySats // Calculate spacecraft around other planets
18 {
19  public:
20  PlanetarySats();
21  ~PlanetarySats();
22 
23  void setStepWidth(double s); // set the step width (seconds)
24  void setDeltaTAI_UTC(double d); // set IERS Parameter TAI - UTC
25  void setAutoTAI_UTC(); // IERS Parameter TAI - UTC to auto
26  void getTime (); // Get System Time and Date
27  void setDeltaRT(double drt);
28  void setMJD(int year, int month, int day, int hour, int min, double sec);// set time
29  static void getDatefromMJD(double mjd, int &year, int &month, int &day, int &hour, int &min, double &sec);
30  void setSatFile(char* fname);
31  void setPlanet(char* pname);
32  int selectSat(char* sname);
33  void getSatName(char* sname) const;
34  void setStateVector(double mjd, double x, double y, double z, double vx, double vy, double vz);
35  int getStateVector(int nsat);
36  void stateToKepler();
37  void getKeplerElements(double &perc, double &apoc, double &inc, double &ecc, double &ra, double &tano, double &m0, double &a, double &n0);
38  void getPlanetographic(double &lng, double &lat, double &height) const;
39  void getFixedFrame(double &x, double &y, double &z, double &vx, double &vy, double &vz);
40  void currentPos();
41  void nextStep();
42  double getLastMJD() const;
43 
44  private:
45  void plsatinit(); // initialize PlanetarySats
46  static double atan23 (double y, double x); // atan without singularity for x,y=0
47  void getMercury();
48  void getVenus();
49  void getMoon();
50  void getMars();
51  void getSatPos (double t);
52  static Mat3 getSelenographic (double jd);
53 
54  // data fields
55 
56  char pls_satelmfl[205]; // name of file for satellite state vectors
57  char pls_satname[40]; // name of satellite
58  char pls_plntname[40]; // name of planet
59 
60  bool pls_moonflg; // true if Moon, false if other body
61 
62  int pls_day; // date
63  int pls_month;
64  int pls_year;
65  int pls_hour;
66  int pls_minute;
67  int pls_second;
68  double pls_time; // current time in MJD (UTC)
69  double pls_del_tdut; // TDT - UT in sec
70  int pls_del_auto; // 1 = automatic del_tdut, 0 = manual
71  double pls_step; // stepwidth in sec
72  double pls_delta_rt; // delta time to R/T in hours
73 
74  double pls_tepoch; // MJD epoch of state vector (TT)
75  Vec3 pls_rep; // state vector km and km/s
76  Vec3 pls_vep;
77 
78  double pls_ra; // Right Ascension
79  double pls_per; // argument of perige center
80  double pls_m0; // mean anomaly
81  double pls_ecc; // eccentricity
82  double pls_inc; // inclination
83  double pls_a; // semi-major axis (km)
84  double pls_n0; // mean motion (rev/day)
85 
86  double pls_GM; // graviatational constant (m^3/s^2)
87  double pls_J2; // J2 gravitational term
88  double pls_R0; // equatorial radius (km)
89  double pls_flat; // flattening factor
90  double pls_axl0; // l-direction of rotation axis
91  double pls_axl1; // delta of axl0
92  double pls_axb0; // b-direction of rotation axis
93  double pls_axb1; // delta of axb0
94  double pls_W; // location of prime meridian
95  double pls_Wd; // daily variation of W.
96 
97  Vec3 pls_r; // current state vector m and m/s
98  Vec3 pls_v;
99  double pls_lat; // planetary latitude (decimal degrees)
100  double pls_lng; // planetary longitude (decimal degrees)
101  double pls_height; // height above reference ellipsoid (km)
102 };
103 
104 #endif // __planetarysats_h sentry.
105 
Mat3
Definition: attlib.h:63
Vec3
Definition: attlib.h:27
ASTROLIB_EXPORT
#define ASTROLIB_EXPORT
Definition: astrolib_export.h:20
attlib.h
astrolib_export.h
mjd
double mjd(int day, int month, int year, double hour)
Definition: astrolib.cpp:94
PlanetarySats
Definition: planetarySats.h:17
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:41 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
  • 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