1 /*
2  *  This library is free software; you can redistribute it and/or
3  *  modify it under the terms of the GNU Lesser General Public
4  *  License as published by the Free Software Foundation; either
5  *  version 2 of the License, or (at your option) any later version.
6  *
7  *  This library is distributed in the hope that it will be useful,
8  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  *  Lesser General Public License for more details.
11  *
12  *  You should have received a copy of the GNU General Public License
13  *  along with this program; if not, write to the Free Software
14  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
15  *
16  *  Copyright (C) 2000 - 2005 Liam Girdwood
17  */
18 
19 #ifndef _LN_EARTH_H
20 #define _LN_EARTH_H
21 
22 #include <libnova/ln_types.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 
29 /*! \defgroup earth Earth
30 *
31 * Functions relating to the planet Earth.
32 *
33 * All angles are expressed in degrees.
34 */
35 
36 /*
37 ** Earth
38 */
39 
40 /*! \fn void ln_get_earth_helio_coords (double JD, struct ln_helio_posn * position);
41 * \brief Calculate Earth's heliocentric coordinates
42 * \ingroup earth
43 */
44 /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */
45 void LIBNOVA_EXPORT ln_get_earth_helio_coords (double JD, struct ln_helio_posn * position);
46 
47 /*! \fn void ln_get_earth_solar_dist (double JD);
48 * \brief Calculate the distance between Earth and the Sun.
49 * \ingroup earth
50 * \return Distance in AU
51 */
52 /* Chapter ?? */
53 double LIBNOVA_EXPORT ln_get_earth_solar_dist (double JD);
54 
55 /*! \fn void ln_get_earth_rect_helio (double JD, struct ln_rect_posn * position)
56 * \ingroup earth
57 * \brief Calculate the Earths rectangular heliocentric coordinates.
58 */
59 void LIBNOVA_EXPORT ln_get_earth_rect_helio (double JD, struct ln_rect_posn * position);
60 
61 /*! \fn void ln_get_earth_centre_dist (float height, double latitude, double * p_sin_o, double * p_cos_o);
62 * \ingroup earth
63 * \brief Calculate Earth globe centre distance.
64 */
65 void LIBNOVA_EXPORT ln_get_earth_centre_dist (float height, double latitude, double * p_sin_o, double * p_cos_o);
66 
67 #ifdef __cplusplus
68 };
69 #endif
70 
71 #endif
72