Astro-Nova

 view release on metacpan or  search on metacpan

XS/RiseSet.xs  view on Meta::CPAN


MODULE = Astro::Nova		PACKAGE = Astro::Nova		PREFIX=ln_

void
ln_get_object_rst(double JD, struct ln_lnlat_posn* observer, struct ln_equ_posn* object)
    INIT:
      struct ln_rst_time* rst;
    PPCODE:
      Newx(rst, 1, struct ln_rst_time);
      int res = ln_get_object_rst(JD, observer, object, rst);
      EXTEND(SP, 2);
      PUSHs(sv_2mortal(newSViv(res)));
      PUSHs(sv_newmortal());
      sv_setref_pv(ST(1), "Astro::Nova::RstTime", (void*)rst);

void
ln_get_object_rst_horizon(double JD, struct ln_lnlat_posn* observer, struct ln_equ_posn* object, double horizon)
    INIT:
      struct ln_rst_time* rst;
    PPCODE:
      Newx(rst, 1, struct ln_rst_time);
      int res = ln_get_object_rst_horizon(JD, observer, object, horizon, rst);
      EXTEND(SP, 2);
      PUSHs(sv_2mortal(newSViv(res)));
      PUSHs(sv_newmortal());
      sv_setref_pv(ST(1), "Astro::Nova::RstTime", (void*)rst);

void
ln_get_object_next_rst(double JD, struct ln_lnlat_posn* observer, struct ln_equ_posn* object)
    INIT:
      struct ln_rst_time* rst;
    PPCODE:
      Newx(rst, 1, struct ln_rst_time);
      int res = ln_get_object_next_rst(JD, observer, object, rst);
      EXTEND(SP, 2);
      PUSHs(sv_2mortal(newSViv(res)));
      PUSHs(sv_newmortal());
      sv_setref_pv(ST(1), "Astro::Nova::RstTime", (void*)rst);

void
ln_get_object_next_rst_horizon(double JD, struct ln_lnlat_posn* observer, struct ln_equ_posn* object, double horizon)
    INIT:
      struct ln_rst_time* rst;
    PPCODE:
      Newx(rst, 1, struct ln_rst_time);
      int res = ln_get_object_next_rst_horizon(JD, observer, object, horizon, rst);
      EXTEND(SP, 2);
      PUSHs(sv_2mortal(newSViv(res)));
      PUSHs(sv_newmortal());
      sv_setref_pv(ST(1), "Astro::Nova::RstTime", (void*)rst);

####  NOT IMPLEMENTED DUE TO FUNCTION POINTER MADNESS!
#### 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);
#### 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);
#### 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);
#### typedef void (*get_motion_body_coords_t) (double, void * orbit, struct ln_equ_posn *);
#### 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);
#### 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);
#### 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);



( run in 1.497 second using v1.01-cache-2.11-cpan-71847e10f99 )