1 throw new Error("Description for built in functions. Must not be included!");
  2 /**
  3  * @fileOverview
  4  *    Documentation of Moon class built into dimctrl.
  5  */
  6 
  7 /**
  8  * @class
  9  *
 10  * Calculates the moon's sky position at a given time.
 11  *
 12  * When instantiated, the class members are set to the sky position
 13  * of the moon at the given time. The calculation is done using
 14  * libnova's ln_get_lunar_equ_coords. A different time can be provided
 15  * by the user. The sky coordinates are stored together with the time.
 16  * A function is provided to convert the moon's position to celestial
 17  * coordinates. A function to calculate the illuminated fraction of
 18  * the moon's disk.
 19  *
 20  * @param {Date} [time=new Date()]
 21  *    Reference time for the calculation of the moon's position.
 22  *
 23  * @example
 24  *    var moon = new Moon();
 25  *    var local = moon.toLocal();
 26  *
 27  * @author <a href="mailto:thomas.bretz@epfl.ch">Thomas Bretz</a>
 28  */
 29 function Moon(time)
 30 {
 31     /**
 32      * Right ascension of the moon in hours.
 33      *
 34      * @type Number
 35      * @constant
 36      *
 37      */
 38     this.ra = 0;
 39 
 40     /**
 41      * Declination of the moon in degrees.
 42      *
 43      * @type Number
 44      * @constant
 45      *
 46      */
 47     this.dec = 0;
 48 
 49     /**
 50      * Time corresponding to the calculated sky coordinates of the moon.
 51      *
 52      * @type Date
 53      * @constant
 54      */
 55     this.time = time;
 56 
 57     /**
 58      * Converts the moon's sky coordinates to celestial coordinates.
 59      * As observatory location the FACT telescope is assumed. For the
 60      * time, the time corresponding to the stored sky coordinates is used.
 61      * The conversion is done using libnova's ln_get_hrz_from_equ.
 62      *
 63      * @returns {Local}
 64      *     A Local object with the converted coordinates and
 65      *     the corresponding time.
 66      */
 67     this.toLocal = function() { /* [native code] */  }
 68 }
 69 
 70 /**
 71  * Calculates the illuminated fraction of the moon's disk.
 72  *
 73  * Calculates the illuminated fraction of the moon's disk for the
 74  * provided time. If no time is provided, the current system time
 75  * is used. The calculation is done using libnova's ln_get_lunar_disk.
 76  *
 77  * @param {Date} [time=new Date()]
 78  *    Time for which the moon disk should be calculated. If no time is
 79  *    given, the current time is used.
 80  *
 81  * @type Number
 82  *
 83  * @returns
 84  *    The illuminated fraction of the moon's disk corresponding
 85  *    to the time argument
 86  *
 87  */
 88 Moon.disk = function() { /* [native code] */ }
 89 
 90 /**
 91  * Calculate moon rise, set and transit times.
 92  *
 93  * Calculates the moon rise and set time, above and below horizon,
 94  * and the time of culmination (transit time) for the given time.
 95  * The calculation is done using libnova's ln_get_lunar_rst and is
 96  * always performed for the FACT site at La Palma.
 97  *
 98  * @param {Date} [time=new Date()]
 99  *    Date for which the times should be calculated. Note that the date
100  *    is converted to UTC and the times are calculated such that the
101  *    Date (yy/mm/dd) is identical for all returned values.
102  *
103  * @type {Object}
104  *
105  * @returns
106  *    An object with the following properties is returned: time {Date}
107  *    the provided time; rise, transit, set {Date} times of rise, set and
108  *    transit; isUp {Boolean} whether the moon is above or below horizon
109  *    at the provided time. If the moon does not rise or set, the properties
110  *    rise, transit and set will be undefined.
111  *
112  * @example
113  *    var date = new Date("2012-10-25 16:30 GMT"); // Date in UTC
114  *    console.out(JSON.stringify(Moon.horizon(date));
115  */
116 Moon.horizon = function() { /* [native code] */ }
117