libnova  v 0.16.0
rise_set.h
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_RISE_SET_H
20 #define _LN_RISE_SET_H
21 
22 #include <libnova/ln_types.h>
23 
24 #define LN_STAR_STANDART_HORIZON -0.5667
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 
42 int LIBNOVA_EXPORT ln_get_object_rst(double JD, struct ln_lnlat_posn *observer, struct ln_equ_posn *object, struct ln_rst_time *rst);
43 
49 int LIBNOVA_EXPORT ln_get_object_rst_horizon(double JD, struct ln_lnlat_posn *observer,
50  struct ln_equ_posn *object, long double horizon, struct ln_rst_time *rst);
51 
52 int LIBNOVA_EXPORT ln_get_object_rst_horizon_offset(double JD, struct ln_lnlat_posn *observer,
53  struct ln_equ_posn *object, long double horizon, struct ln_rst_time *rst, double ut_offset);
54 
61 int LIBNOVA_EXPORT ln_get_object_next_rst(double JD, struct ln_lnlat_posn *observer, struct ln_equ_posn *object, struct ln_rst_time *rst);
62 
68 int LIBNOVA_EXPORT ln_get_object_next_rst_horizon(double JD, struct ln_lnlat_posn *observer, struct ln_equ_posn *object,
69  double horizon, struct ln_rst_time *rst);
70 
75 int LIBNOVA_EXPORT ln_get_body_rst_horizon(double JD, struct ln_lnlat_posn *observer, void (*get_equ_body_coords)(double, struct ln_equ_posn *), double horizon, struct ln_rst_time *rst);
76 
77 int LIBNOVA_EXPORT ln_get_body_rst_horizon_offset(double JD, struct ln_lnlat_posn *observer, void (*get_equ_body_coords)(double, struct ln_equ_posn *), double horizon, struct ln_rst_time *rst, double ut_offset);
78 
84 int LIBNOVA_EXPORT ln_get_body_next_rst_horizon(double JD, struct ln_lnlat_posn *observer, void (*get_equ_body_coords)(double, struct ln_equ_posn *), double horizon, struct ln_rst_time *rst);
85 
91 int LIBNOVA_EXPORT ln_get_body_next_rst_horizon_future(double JD, struct ln_lnlat_posn *observer, void (*get_equ_body_coords)(double, struct ln_equ_posn *), double horizon, int day_limit, struct ln_rst_time *rst);
92 
93 typedef void (*get_motion_body_coords_t)(double, void * orbit, struct ln_equ_posn *);
94 
99 int LIBNOVA_EXPORT ln_get_motion_body_rst_horizon(double JD, struct ln_lnlat_posn *observer, get_motion_body_coords_t get_motion_body_coords, void * orbit, double horizon, struct ln_rst_time *rst);
100 
101 int LIBNOVA_EXPORT ln_get_motion_body_rst_horizon_offset(double JD, struct ln_lnlat_posn *observer, get_motion_body_coords_t get_motion_body_coords, void * orbit, double horizon, struct ln_rst_time *rst, double offset);
102 
108 int LIBNOVA_EXPORT ln_get_motion_body_next_rst_horizon(double JD, struct ln_lnlat_posn *observer, get_motion_body_coords_t get_motion_body_coords, void * orbit, double horizon, struct ln_rst_time *rst);
109 
115 int LIBNOVA_EXPORT ln_get_motion_body_next_rst_horizon_future(double JD, struct ln_lnlat_posn *observer, get_motion_body_coords_t get_motion_body_coords, void * orbit, double horizon, int day_limit, struct ln_rst_time *rst);
116 
117 #ifdef __cplusplus
118 };
119 #endif
120 
121 #endif
int LIBNOVA_EXPORT ln_get_body_next_rst_horizon(double JD, struct ln_lnlat_posn *observer, void(*get_equ_body_coords)(double, struct ln_equ_posn *), double horizon, struct ln_rst_time *rst)
Calculate the time of next rise, set and transit for an object a body, usually Sun, a planet or Moon. E.g. it's sure, that rise, set and transit will be in range.
Definition: rise_set.c:497
int LIBNOVA_EXPORT ln_get_body_next_rst_horizon_future(double JD, struct ln_lnlat_posn *observer, void(*get_equ_body_coords)(double, struct ln_equ_posn *), double horizon, int day_limit, struct ln_rst_time *rst)
Calculate the time of next rise, set and transit for an object a body, usually Sun, a planet or Moon. E.g. it's sure, that rise, set and transit will be in range.
Definition: rise_set.c:528
Equatorial Coordinates.
Definition: ln_types.h:176
int LIBNOVA_EXPORT ln_get_object_next_rst(double JD, struct ln_lnlat_posn *observer, struct ln_equ_posn *object, struct ln_rst_time *rst)
Calculate the time of next rise, set and transit for an object not orbiting the Sun. E.g. it's sure, that rise, set and transit will be in range. This function is not too precise, it's good to get general idea when object will rise.
Definition: rise_set.c:219
int LIBNOVA_EXPORT ln_get_object_next_rst_horizon(double JD, struct ln_lnlat_posn *observer, struct ln_equ_posn *object, double horizon, struct ln_rst_time *rst)
Calculate the time of next rise, set and transit for an object not orbiting the Sun. E.g. it's sure, that rise, set and transit will be in range.
Definition: rise_set.c:265
Ecliptical (or celestial) Longitude and Latitude.
Definition: ln_types.h:204
Rise, Set and Transit times.
Definition: ln_types.h:314
int LIBNOVA_EXPORT ln_get_body_rst_horizon(double JD, struct ln_lnlat_posn *observer, void(*get_equ_body_coords)(double, struct ln_equ_posn *), double horizon, struct ln_rst_time *rst)
Calculate the time of rise, set and transit for an object a body, usually Sun, a planet or Moon...
Definition: rise_set.c:320
int LIBNOVA_EXPORT ln_get_object_rst(double JD, struct ln_lnlat_posn *observer, struct ln_equ_posn *object, struct ln_rst_time *rst)
Calculate the time of rise, set and transit for an object not orbiting the Sun.
Definition: rise_set.c:63