~ubuntu-branches/ubuntu/precise/stellarium/precise

« back to all changes in this revision

Viewing changes to src/planetsephems/stellplanet.c

  • Committer: Bazaar Package Importer
  • Author(s): Cédric Delfosse
  • Date: 2008-05-19 21:28:23 UTC
  • mfrom: (3.1.5 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080519212823-m5nfiuntxstxzxj7
Tags: 0.9.1-4
Add libxcursor-dev, libxfixes-dev, libxinerama-dev, libqt4-opengl-dev to
build-deps (Closes: #479906)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "vsop87.h"
 
2
#include "elp82b.h"
 
3
#include "marssat.h"
 
4
#include "l1.h"
 
5
#include "tass17.h"
 
6
#include "gust86.h"
 
7
 
 
8
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87
 
9
 * Calculate planets rectangular heliocentric ecliptical coordinates
 
10
 * for given julian day. Values are in UA.
 
11
 * params : Julian day, rect coords */
 
12
void get_pluto_helio_coords(double jd, double * X, double * Y, double * Z);
 
13
 
 
14
void get_pluto_helio_coordsv(double jd,double xyz[3])
 
15
  {get_pluto_helio_coords(jd, &xyz[0], &xyz[1], &xyz[2]);}
 
16
 
 
17
 
 
18
/* Return 0 of course... */
 
19
void get_sun_helio_coordsv(double jd,double xyz[3])
 
20
  {xyz[0]=0.; xyz[1]=0.; xyz[2]=0.;}
 
21
 
 
22
void get_mercury_helio_coordsv(double jd,double xyz[3])
 
23
  {GetVsop87Coor(jd,VSOP87_MERCURY,xyz);}
 
24
void get_venus_helio_coordsv(double jd,double xyz[3])
 
25
  {GetVsop87Coor(jd,VSOP87_VENUS,xyz);}
 
26
 
 
27
void get_earth_helio_coordsv(const double jd,double xyz[3]) {
 
28
  double moon[3];
 
29
  GetVsop87Coor(jd,VSOP87_EMB,xyz);
 
30
  GetElp82bCoor(jd,moon);
 
31
    /* Earth != EMB:
 
32
       0.0121505677733761 = mu_m/(1+mu_m),
 
33
       mu_m = mass(moon)/mass(earth) = 0.01230002 */
 
34
  xyz[0] -= 0.0121505677733761 * moon[0];
 
35
  xyz[1] -= 0.0121505677733761 * moon[1];
 
36
  xyz[2] -= 0.0121505677733761 * moon[2];
 
37
}
 
38
 
 
39
void get_mars_helio_coordsv(double jd,double xyz[3])
 
40
  {GetVsop87Coor(jd,VSOP87_MARS,xyz);}
 
41
void get_jupiter_helio_coordsv(double jd,double xyz[3])
 
42
  {GetVsop87Coor(jd,VSOP87_JUPITER,xyz);}
 
43
void get_saturn_helio_coordsv(double jd,double xyz[3])
 
44
  {GetVsop87Coor(jd,VSOP87_SATURN,xyz);}
 
45
void get_uranus_helio_coordsv(double jd,double xyz[3])
 
46
  {GetVsop87Coor(jd,VSOP87_URANUS,xyz);}
 
47
void get_neptune_helio_coordsv(double jd,double xyz[3])
 
48
  {GetVsop87Coor(jd,VSOP87_NEPTUNE,xyz);}
 
49
 
 
50
void get_mercury_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
51
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_MERCURY,xyz);}
 
52
void get_venus_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
53
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_VENUS,xyz);}
 
54
void get_earth_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
55
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_EMB,xyz);}
 
56
void get_mars_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
57
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_MARS,xyz);}
 
58
void get_jupiter_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
59
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_JUPITER,xyz);}
 
60
void get_saturn_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
61
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_SATURN,xyz);}
 
62
void get_uranus_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
63
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_URANUS,xyz);}
 
64
void get_neptune_helio_osculating_coords(double jd0,double jd,double xyz[3])
 
65
  {GetVsop87OsculatingCoor(jd0,jd,VSOP87_NEPTUNE,xyz);}
 
66
 
 
67
/* Calculate the rectangular geocentric lunar coordinates to the inertial mean
 
68
 * ecliptic and equinox of J2000.
 
69
 * The geocentric coordinates returned are in units of UA.
 
70
 * This function is based upon the Lunar Solution ELP2000-82B by
 
71
 * Michelle Chapront-Touze and Jean Chapront of the Bureau des Longitudes,
 
72
 * Paris. ELP 2000-82B theory
 
73
 * param jd Julian day, rect pos */
 
74
void get_lunar_parent_coordsv(double jd,double xyz[3])
 
75
  {GetElp82bCoor(jd,xyz);}
 
76
 
 
77
void get_phobos_parent_coordsv(double jd,double xyz[3])
 
78
  {GetMarsSatCoor(jd,MARS_SAT_PHOBOS,xyz);}
 
79
void get_deimos_parent_coordsv(double jd,double xyz[3])
 
80
  {GetMarsSatCoor(jd,MARS_SAT_DEIMOS,xyz);}
 
81
 
 
82
void get_io_parent_coordsv(double jd,double xyz[3])
 
83
  {GetL1Coor(jd,L1_IO,xyz);}
 
84
void get_europa_parent_coordsv(double jd,double xyz[3])
 
85
  {GetL1Coor(jd,L1_EUROPA,xyz);}
 
86
void get_ganymede_parent_coordsv(double jd,double xyz[3])
 
87
  {GetL1Coor(jd,L1_GANYMEDE,xyz);}
 
88
void get_callisto_parent_coordsv(double jd,double xyz[3])
 
89
  {GetL1Coor(jd,L1_CALLISTO,xyz);}
 
90
 
 
91
void get_mimas_parent_coordsv(double jd,double xyz[3])
 
92
  {GetTass17Coor(jd,TASS17_MIMAS,xyz);}
 
93
void get_enceladus_parent_coordsv(double jd,double xyz[3])
 
94
  {GetTass17Coor(jd,TASS17_ENCELADUS,xyz);}
 
95
void get_tethys_parent_coordsv(double jd,double xyz[3])
 
96
  {GetTass17Coor(jd,TASS17_TETHYS,xyz);}
 
97
void get_dione_parent_coordsv(double jd,double xyz[3])
 
98
  {GetTass17Coor(jd,TASS17_DIONE,xyz);}
 
99
void get_rhea_parent_coordsv(double jd,double xyz[3])
 
100
  {GetTass17Coor(jd,TASS17_RHEA,xyz);}
 
101
void get_titan_parent_coordsv(double jd,double xyz[3])
 
102
  {GetTass17Coor(jd,TASS17_TITAN,xyz);}
 
103
void get_hyperion_parent_coordsv(double jd,double xyz[3])
 
104
  {GetTass17Coor(jd,TASS17_HYPERION,xyz);}
 
105
void get_iapetus_parent_coordsv(double jd,double xyz[3])
 
106
  {GetTass17Coor(jd,TASS17_IAPETUS,xyz);}
 
107
 
 
108
void get_miranda_parent_coordsv(double jd,double xyz[3])
 
109
  {GetGust86Coor(jd,GUST86_MIRANDA,xyz);}
 
110
void get_ariel_parent_coordsv(double jd,double xyz[3])
 
111
  {GetGust86Coor(jd,GUST86_ARIEL,xyz);}
 
112
void get_umbriel_parent_coordsv(double jd,double xyz[3])
 
113
  {GetGust86Coor(jd,GUST86_UMBRIEL,xyz);}
 
114
void get_titania_parent_coordsv(double jd,double xyz[3])
 
115
  {GetGust86Coor(jd,GUST86_TITANIA,xyz);}
 
116
void get_oberon_parent_coordsv(double jd,double xyz[3])
 
117
  {GetGust86Coor(jd,GUST86_OBERON,xyz);}
 
118