source: trunk/Mars/mcore/nova.h @ 15203

Last change on this file since 15203 was 15203, checked in by tbretz, 7 years ago
Added GetEquFromHrz
File size: 1.9 KB
Line 
1#ifndef MARS_Nova
2#define MARS_Nova
3
4#include <libnova/solar.h>
5#include <libnova/lunar.h>
6#include <libnova/rise_set.h>
7#include <libnova/transform.h>
8
9namespace Nova
10{
11    typedef ln_lnlat_posn LnLatPosn;
12    typedef ln_hrz_posn   HrzPosn;
13    typedef ln_equ_posn   EquPosn;
14    typedef ln_rst_time   RstTime;
15
16    const LnLatPosn &ORM()
17    {
18        const static LnLatPosn obs = { -(17.+53./60+26.525/3600), 28.+45./60+42.462/3600 };
19        return obs;
20    }
21
22    HrzPosn GetHrzFromEqu(const EquPosn &equ, const LnLatPosn &obs, double jd)
23    {
24        HrzPosn hrz;
25        ln_get_hrz_from_equ(const_cast<EquPosn*>(&equ), const_cast<LnLatPosn*>(&obs), jd, &hrz);
26        return hrz;
27    }
28    HrzPosn GetHrzFromEqu(const EquPosn &equ, double jd)
29    {
30        return GetHrzFromEqu(equ, ORM(), jd);
31    }
32
33    EquPosn GetEquFromHrz(const HrzPosn &hrz, const LnLatPosn &obs, double jd)
34    {
35        EquPosn equ;
36        ln_get_equ_from_hrz(const_cast<HrzPosn*>(&hrz), const_cast<LnLatPosn*>(&obs), jd, &equ);
37        return equ;
38    }
39    EquPosn GetEquFromHrz(const HrzPosn &hrz, double jd)
40    {
41        return GetEquFromHrz(hrz, ORM(), jd);
42    }
43
44    RstTime GetSolarRst(double jd, const LnLatPosn &obs, double hrz=LN_SOLAR_STANDART_HORIZON)
45    {
46        RstTime rst;
47        ln_get_solar_rst_horizon(jd, const_cast<LnLatPosn*>(&obs), hrz, &rst);
48        return rst;
49    }
50    RstTime GetSolarRst(double jd, double hrz=LN_SOLAR_STANDART_HORIZON)
51    {
52        return GetSolarRst(jd, ORM(), hrz);
53    }
54
55    RstTime GetLunarRst(double jd, const LnLatPosn &obs=ORM())
56    {
57        RstTime rst;
58        ln_get_lunar_rst(jd, const_cast<LnLatPosn*>(&obs), &rst);
59        return rst;
60    }
61
62    double GetLunarDisk(double jd)
63    {
64        return ln_get_lunar_disk(jd);
65    }
66
67    EquPosn GetLunarEquCoords(double jd, double precision=0)
68    {
69        EquPosn equ;
70        ln_get_lunar_equ_coords_prec(jd, &equ, precision);
71        return equ;
72    }
73}
74
75#endif
Note: See TracBrowser for help on using the repository browser.