#ifndef MARS_Nova #define MARS_Nova #include #include #include #include namespace Nova { typedef ln_lnlat_posn LnLatPosn; typedef ln_hrz_posn HrzPosn; typedef ln_equ_posn EquPosn; typedef ln_rst_time RstTime; const LnLatPosn &ORM() { const static LnLatPosn obs = { -(17.+53./60+26.525/3600), 28.+45./60+42.462/3600 }; return obs; } HrzPosn GetHrzFromEqu(const EquPosn &obj, const LnLatPosn &obs, double jd) { HrzPosn hrz; ln_get_hrz_from_equ(const_cast(&obj), const_cast(&obs), jd, &hrz); return hrz; } HrzPosn GetHrzFromEqu(const EquPosn &obj, double jd) { return GetHrzFromEqu(obj, ORM(), jd); } RstTime GetSolarRst(double jd, const LnLatPosn &obs, double hrz=LN_SOLAR_STANDART_HORIZON) { RstTime rst; ln_get_solar_rst_horizon(jd, const_cast(&obs), hrz, &rst); return rst; } RstTime GetSolarRst(double jd, double hrz=LN_SOLAR_STANDART_HORIZON) { return GetSolarRst(jd, ORM(), hrz); } RstTime GetLunarRst(double jd, const LnLatPosn &obs=ORM()) { RstTime rst; ln_get_lunar_rst(jd, const_cast(&obs), &rst); return rst; } double GetLunarDisk(double jd) { return ln_get_lunar_disk(jd); } EquPosn GetLunarEquCoords(double jd, double precision=0) { EquPosn equ; ln_get_lunar_equ_coords_prec(jd, &equ, precision); return equ; } } #endif