Added GswePlanetInfo.real_body field
It shows if the given astrological body's position can be calculated with Swiss Ephemeris' swe_calc() function.
This commit is contained in:
		| @@ -86,6 +86,10 @@ typedef enum { | ||||
|  * @planet:          the planet ID | ||||
|  * @sweph_id:        the planet ID according to the Swiss Ephemeris libarary | ||||
|  *                   (or -1, if the planet has no such ID) | ||||
|  * @real_body:       TRUE if the planet is a "real" celestial body on the sky. | ||||
|  *                   Please note that this will be true for Dark Moon (Lilith). | ||||
|  *                   Everything that has a planet ID in Swiss Ephemeris is | ||||
|  *                   treated as a real celestial body. | ||||
|  * @orb:             the planet's “personal” orb | ||||
|  * @name:            the planet's name | ||||
|  * @points:          the value this planet counts in the element/quality points | ||||
| @@ -100,6 +104,7 @@ typedef enum { | ||||
| typedef struct { | ||||
|     GswePlanet planet; | ||||
|     gint sweph_id; | ||||
|     gboolean real_body; | ||||
|     gdouble orb; | ||||
|     gchar *name; | ||||
|     gint points; | ||||
|   | ||||
| @@ -11,19 +11,20 @@ GHashTable *gswe_planet_info_table; | ||||
| GHashTable *gswe_sign_info_table; | ||||
| GHashTable *gswe_house_system_info_table; | ||||
|  | ||||
| #define ADD_PLANET(ht, v, i, s, n, o, h, dom1, dom2, exi1, exi2, exa, fal) (v) = g_new0(GswePlanetInfo, 1); \ | ||||
|                                                                            (v)->planet = (i); \ | ||||
|                                                                            (v)->sweph_id = (s); \ | ||||
|                                                                            (v)->orb = (o); \ | ||||
|                                                                            (v)->name = g_strdup(n); \ | ||||
|                                                                            (v)->points = (h); \ | ||||
|                                                                            (v)->domicile_sign_1 = (dom1); \ | ||||
|                                                                            (v)->domicile_sign_2 = (dom2); \ | ||||
|                                                                            (v)->exile_sign_1 = (exi1); \ | ||||
|                                                                            (v)->exile_sign_2 = (exi2); \ | ||||
|                                                                            (v)->exalted_sign = (exa); \ | ||||
|                                                                            (v)->fall_sign = (fal); \ | ||||
|                                                                            g_hash_table_replace((ht), GINT_TO_POINTER(i), (v)); | ||||
| #define ADD_PLANET(ht, v, i, s, r, n, o, h, dom1, dom2, exi1, exi2, exa, fal) (v) = g_new0(GswePlanetInfo, 1); \ | ||||
|                                                                               (v)->planet = (i); \ | ||||
|                                                                               (v)->sweph_id = (s); \ | ||||
|                                                                               (v)->real_body = (r); \ | ||||
|                                                                               (v)->orb = (o); \ | ||||
|                                                                               (v)->name = g_strdup(n); \ | ||||
|                                                                               (v)->points = (h); \ | ||||
|                                                                               (v)->domicile_sign_1 = (dom1); \ | ||||
|                                                                               (v)->domicile_sign_2 = (dom2); \ | ||||
|                                                                               (v)->exile_sign_1 = (exi1); \ | ||||
|                                                                               (v)->exile_sign_2 = (exi2); \ | ||||
|                                                                               (v)->exalted_sign = (exa); \ | ||||
|                                                                               (v)->fall_sign = (fal); \ | ||||
|                                                                               g_hash_table_replace((ht), GINT_TO_POINTER(i), (v)); | ||||
|  | ||||
| #define ADD_SIGN(ht, v, s, n, e, q) (v) = g_new0(GsweSignInfo, 1); \ | ||||
|                                     (v)->sign_id = (s); \ | ||||
| @@ -78,26 +79,26 @@ gswe_init(gchar *sweph_path) | ||||
|  | ||||
|     gswe_planet_info_table = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, gswe_free_planet_info); | ||||
|  | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_SUN,         SE_SUN,       _("Sun"),                 13.0, 2, GSWE_SIGN_LEO,         GSWE_SIGN_NONE,     GSWE_SIGN_AQUARIUS,    GSWE_SIGN_NONE,   GSWE_SIGN_ARIES,     GSWE_SIGN_LIBRA); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MOON,        SE_MOON,      _("Moon"),                9.0,  2, GSWE_SIGN_CANCER,      GSWE_SIGN_NONE,     GSWE_SIGN_CAPRICORN,   GSWE_SIGN_NONE,   GSWE_SIGN_TAURUS,    GSWE_SIGN_SCORPIO); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MERCURY,     SE_MERCURY,   _("Mercury"),             7.0,  2, GSWE_SIGN_GEMINI,      GSWE_SIGN_VIRGO,    GSWE_SIGN_SAGITTARIUS, GSWE_SIGN_PISCES, GSWE_SIGN_VIRGO,     GSWE_SIGN_PISCES); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_VENUS,       SE_VENUS,     _("Venus"),               7.0,  1, GSWE_SIGN_TAURUS,      GSWE_SIGN_LIBRA,    GSWE_SIGN_SCORPIO,     GSWE_SIGN_ARIES,  GSWE_SIGN_PISCES,    GSWE_SIGN_VIRGO); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MARS,        SE_MARS,      _("Mars"),                7.0,  1, GSWE_SIGN_ARIES,       GSWE_SIGN_SCORPIO,  GSWE_SIGN_LIBRA,       GSWE_SIGN_TAURUS, GSWE_SIGN_CAPRICORN, GSWE_SIGN_CANCER); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_JUPITER,     SE_JUPITER,   _("Jupiter"),             9.0,  1, GSWE_SIGN_SAGITTARIUS, GSWE_SIGN_PISCES,   GSWE_SIGN_GEMINI,      GSWE_SIGN_VIRGO,  GSWE_SIGN_CANCER,    GSWE_SIGN_CAPRICORN); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_SATURN,      SE_SATURN,    _("Saturn"),              7.0,  1, GSWE_SIGN_CAPRICORN,   GSWE_SIGN_AQUARIUS, GSWE_SIGN_CANCER,      GSWE_SIGN_LEO,    GSWE_SIGN_LIBRA,     GSWE_SIGN_ARIES); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_URANUS,      SE_URANUS,    _("Uranus"),              5.0,  1, GSWE_SIGN_AQUARIUS,    GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_NEPTUNE,     SE_NEPTUNE,   _("Neptune"),             5.0,  1, GSWE_SIGN_PISCES,      GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_PLUTO,       SE_PLUTO,     _("Pluto"),               3.0,  1, GSWE_SIGN_SCORPIO,     GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_CHIRON,      SE_CHIRON,    _("Chiron"),              2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_CERES,       SE_CERES,     _("Ceres"),               2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_PALLAS,      SE_PALLAS,    _("Pallas"),              2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_JUNO,        SE_JUNO,      _("Juno"),                2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_VESTA,       SE_VESTA,     _("Vesta"),               2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MOON_NODE,   SE_MEAN_NODE, _("Ascending Moon Node"), 2.0,  1, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MOON_APOGEE, SE_MEAN_APOG, _("Dark Moon"),           2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_ASCENDENT,   -1,           _("Ascendent"),           9.0,  2, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MC,          -1,           _("Midheaven"),           5.0,  1, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_VERTEX,      -1,           _("Vertex"),              2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_SUN,         SE_SUN,       TRUE,  _("Sun"),                 13.0, 2, GSWE_SIGN_LEO,         GSWE_SIGN_NONE,     GSWE_SIGN_AQUARIUS,    GSWE_SIGN_NONE,   GSWE_SIGN_ARIES,     GSWE_SIGN_LIBRA); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MOON,        SE_MOON,      TRUE,  _("Moon"),                9.0,  2, GSWE_SIGN_CANCER,      GSWE_SIGN_NONE,     GSWE_SIGN_CAPRICORN,   GSWE_SIGN_NONE,   GSWE_SIGN_TAURUS,    GSWE_SIGN_SCORPIO); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MERCURY,     SE_MERCURY,   TRUE,  _("Mercury"),             7.0,  2, GSWE_SIGN_GEMINI,      GSWE_SIGN_VIRGO,    GSWE_SIGN_SAGITTARIUS, GSWE_SIGN_PISCES, GSWE_SIGN_VIRGO,     GSWE_SIGN_PISCES); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_VENUS,       SE_VENUS,     TRUE,  _("Venus"),               7.0,  1, GSWE_SIGN_TAURUS,      GSWE_SIGN_LIBRA,    GSWE_SIGN_SCORPIO,     GSWE_SIGN_ARIES,  GSWE_SIGN_PISCES,    GSWE_SIGN_VIRGO); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MARS,        SE_MARS,      TRUE,  _("Mars"),                7.0,  1, GSWE_SIGN_ARIES,       GSWE_SIGN_SCORPIO,  GSWE_SIGN_LIBRA,       GSWE_SIGN_TAURUS, GSWE_SIGN_CAPRICORN, GSWE_SIGN_CANCER); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_JUPITER,     SE_JUPITER,   TRUE,  _("Jupiter"),             9.0,  1, GSWE_SIGN_SAGITTARIUS, GSWE_SIGN_PISCES,   GSWE_SIGN_GEMINI,      GSWE_SIGN_VIRGO,  GSWE_SIGN_CANCER,    GSWE_SIGN_CAPRICORN); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_SATURN,      SE_SATURN,    TRUE,  _("Saturn"),              7.0,  1, GSWE_SIGN_CAPRICORN,   GSWE_SIGN_AQUARIUS, GSWE_SIGN_CANCER,      GSWE_SIGN_LEO,    GSWE_SIGN_LIBRA,     GSWE_SIGN_ARIES); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_URANUS,      SE_URANUS,    TRUE,  _("Uranus"),              5.0,  1, GSWE_SIGN_AQUARIUS,    GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_NEPTUNE,     SE_NEPTUNE,   TRUE,  _("Neptune"),             5.0,  1, GSWE_SIGN_PISCES,      GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_PLUTO,       SE_PLUTO,     TRUE,  _("Pluto"),               3.0,  1, GSWE_SIGN_SCORPIO,     GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_CHIRON,      SE_CHIRON,    TRUE,  _("Chiron"),              2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_CERES,       SE_CERES,     TRUE,  _("Ceres"),               2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_PALLAS,      SE_PALLAS,    TRUE,  _("Pallas"),              2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_JUNO,        SE_JUNO,      TRUE,  _("Juno"),                2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_VESTA,       SE_VESTA,     TRUE,  _("Vesta"),               2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MOON_NODE,   SE_MEAN_NODE, TRUE,  _("Ascending Moon Node"), 2.0,  1, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MOON_APOGEE, SE_MEAN_APOG, TRUE,  _("Dark Moon"),           2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_ASCENDENT,   -1,           FALSE, _("Ascendent"),           9.0,  2, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_MC,          -1,           FALSE, _("Midheaven"),           5.0,  1, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|     ADD_PLANET(gswe_planet_info_table, planet_info, GSWE_PLANET_VERTEX,      -1,           FALSE, _("Vertex"),              2.0,  0, GSWE_SIGN_NONE,        GSWE_SIGN_NONE,     GSWE_SIGN_NONE,        GSWE_SIGN_NONE,   GSWE_SIGN_NONE,      GSWE_SIGN_NONE); | ||||
|  | ||||
|     gswe_sign_info_table = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, gswe_free_sign_info); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user