Compare commits
No commits in common. "main" and "1.x" have entirely different histories.
23
.gitignore
vendored
23
.gitignore
vendored
@ -14,7 +14,6 @@
|
||||
/.dirstamp
|
||||
*.gir
|
||||
*.typelib
|
||||
*.gschema.valid
|
||||
ChangeLog
|
||||
|
||||
# Files created by the build tools
|
||||
@ -52,17 +51,6 @@ Makefile.in
|
||||
/compile
|
||||
/so_locations
|
||||
|
||||
# Testing related files
|
||||
/test-driver
|
||||
/tests/*-test
|
||||
/tests/*-test.log
|
||||
/tests/*-test.trs
|
||||
/swe-glib-lcov*
|
||||
test-suite.log
|
||||
*.gcno
|
||||
*.gcda
|
||||
*.gcov
|
||||
|
||||
# Translation related files
|
||||
/ABOUT-NLS
|
||||
/po/POTFILES
|
||||
@ -88,17 +76,13 @@ test-suite.log
|
||||
/intltool-update.in
|
||||
|
||||
# SWE-GLib related files
|
||||
/src/gswe-enumtypes.c
|
||||
/src/gswe-enumtypes.h
|
||||
/src/gswetest
|
||||
src/gswe-enumtypes.c
|
||||
src/gswe-enumtypes.h
|
||||
src/gswetest
|
||||
/data/swe-glib.pc
|
||||
/data/swe-glib.spec
|
||||
/src/*.vapi
|
||||
/src/gswe-version.h
|
||||
/data/*.gschema.xml
|
||||
|
||||
# Documentation related files
|
||||
/docs/reference/*/*.actions
|
||||
/docs/reference/*/*.args
|
||||
/docs/reference/*/*.hierarchy
|
||||
/docs/reference/*/*.interfaces
|
||||
@ -111,6 +95,7 @@ test-suite.log
|
||||
/docs/reference/*/*-overrides.txt
|
||||
/docs/reference/*/*-undeclared.txt
|
||||
/docs/reference/*/version.xml
|
||||
/docs/reference/*/*-sections.txt
|
||||
/docs/reference/*/*-undocumented.txt
|
||||
/docs/reference/*/*-unused.txt
|
||||
/docs/reference/*/xml/
|
||||
|
17
.travis.yml
17
.travis.yml
@ -1,17 +0,0 @@
|
||||
sudo: false
|
||||
language: c
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libglib2.0-dev
|
||||
- gobject-introspection
|
||||
- gnome-common
|
||||
- autopoint
|
||||
before_script: ./autogen.sh
|
||||
script:
|
||||
- make
|
||||
- make check
|
||||
before_install:
|
||||
- pip install --user codecov
|
||||
after_success:
|
||||
- codecov
|
14
Makefile.am
14
Makefile.am
@ -1,21 +1,15 @@
|
||||
include $(top_srcdir)/swe-glib.mk
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
SUBDIRS = src po data tests
|
||||
|
||||
if ENABLE_GTK_DOC
|
||||
SUBDIRS += docs/reference/swe-glib
|
||||
endif
|
||||
SUBDIRS = swe swe/src swe/doc src po docs/reference/swe-glib data
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
|
||||
|
||||
intltool_extra = intltool-extract.in intltool-merge.in intltool-update.in
|
||||
|
||||
EXTRA_DIST += $(intltool_extra) $(header_DATA) autogen.sh
|
||||
EXTRA_DIST = $(intltool_extra) $(header_DATA) autogen.sh
|
||||
|
||||
DISTCLEANFILES += intltool-extract intltool-merge intltool-update
|
||||
DISTCLEANFILES = intltool-extract intltool-merge intltool-update
|
||||
|
||||
MAINTAINERCLEANFILES += ChangeLog
|
||||
MAINTAINERCLEANFILES = ChangeLog
|
||||
|
||||
distclean-local:
|
||||
if test "$(srcdir)" = "."; then :; else \
|
||||
|
90
README.md
90
README.md
@ -1,38 +1,26 @@
|
||||
# SWE-GLib
|
||||
|
||||
[](https://travis-ci.org/gergelypolonkai/swe-glib)
|
||||
[](https://codecov.io/github/gergelypolonkai/swe-glib?branch=master)
|
||||
SWE-GLib is a GLib style wrapper library around Astrodienst's [Swiss Ephemeris library](http://www.astro.com/swisseph/).
|
||||
|
||||
SWE-GLib is a GLib style wrapper library around Astrodienst's
|
||||
[Swiss Ephemeris library](http://www.astro.com/swisseph/).
|
||||
|
||||
The source tree contains Astrodienst's ephemeride files, as requested
|
||||
by Alois Treindl of Astrodienst in a mail written to me on 24 July,
|
||||
2013.
|
||||
The source tree contains Astrodienst's ephemeride files, as requested by Alois Treindl of Astrodienst in a mail written to me on 24 July, 2013.
|
||||
|
||||
## GTK-Doc
|
||||
|
||||
The project utilizes [GTK-Doc](http://www.gtk.org/gtk-doc/), requiring
|
||||
version 1.19 or later. Although the generated documentation is a bit
|
||||
messy (not everything is documented, and there are some unresolved
|
||||
variables, like [SERVER] on the generated index page.
|
||||
The project utilizes [GTK-Doc](http://www.gtk.org/gtk-doc/), requiring version 1.19 or later. Although the generated documentation is a bit messy (not everything is documented, and there are some unresolved variables, like [SERVER] on the generated index page.
|
||||
|
||||
Still, the documentation generates well, and at least gives a clue
|
||||
about object usage.
|
||||
|
||||
## Bindings
|
||||
|
||||
SWE-GLib utilizes
|
||||
[GObject Introspection](https://wiki.gnome.org/GObjectIntrospection),
|
||||
which means it is available for many languages. Check out the
|
||||
[examples](examples) directory for some sample code!
|
||||
Still, the documentation generates well, and at least gives a clue about object usage.
|
||||
|
||||
## Usage
|
||||
|
||||
Many functions return non-opaque C structs; their documentation can be
|
||||
found inline, and in the generated GTK-Doc. Unless otherwise stated,
|
||||
the returned values should never be freed.
|
||||
Many functions return non-opaque C structs; their documentation can be found inline, and in the generated GTK-Doc. Unless otherwise stated, the returned values should never be freed.
|
||||
|
||||
### Initialization
|
||||
|
||||
First of all, you have to initialize the library:
|
||||
|
||||
```c
|
||||
gswe_init();
|
||||
```
|
||||
### Creating the required objects
|
||||
|
||||
Then you need to create a `GsweTimestamp` object:
|
||||
@ -82,13 +70,11 @@ GList *sun_aspects = gswe_moment_get_planet_aspects(moment, GSWE_PLANET_SUN);
|
||||
GList *sun_antiscia = gswe_moment_get_planet_antiscia(moment, GSWE_PLANET_SUN);
|
||||
```
|
||||
|
||||
The returned GList objects hold zero or more `GsweAspectData` or
|
||||
`GsweAntiscionData` objects, respectively.
|
||||
The returned GList objects hold zero or more `GsweAspectData` or `GsweAntiscionData` objects, respectively.
|
||||
|
||||
### Getting the Moon phase
|
||||
|
||||
Last, but not least, SWE-GLib can calculate Moon's phase at the given
|
||||
moment. For that, you have to call `gswe_moment_get_moon_phase()`:
|
||||
Last, but not least, SWE-GLib can calculate Moon's phase at the given moment. For that, you have to call `gswe_moment_get_moon_phase()`:
|
||||
|
||||
```c
|
||||
GsweMoonPhaseData *moon_phase = gswe_moment_get_moon_phase(moment);
|
||||
@ -96,60 +82,34 @@ GsweMoonPhaseData *moon_phase = gswe_moment_get_moon_phase(moment);
|
||||
|
||||
### About altitude
|
||||
|
||||
The Swiss Ephemeris library requires the altitude value to be
|
||||
specified for several calculations. It also notifies how important it
|
||||
is:
|
||||
The Swiss Ephemeris library requires the altitude value to be specified for several calculations. It also notifies how important it is:
|
||||
|
||||
> the altitude above sea must be in meters. Neglecting the altitude
|
||||
> can result in an error of about 2 arc seconds with the moon and at
|
||||
> an altitude 3000m.
|
||||
> the altitude above sea must be in meters. Neglecting the altitude can result in an error of about 2 arc seconds with the moon and at an altitude 3000m.
|
||||
|
||||
2 arc seconds is about 0.000555 degrees of error, which is, well, kind
|
||||
of small. Of course, if you need very precise horoscopes or need
|
||||
planetary positions for a totally different thing, you should really
|
||||
provide a (close to) exact value; otherwise, it is safe to pass any
|
||||
value (well, which seems logical: the average level of all dry lands
|
||||
is about 840 meters; the average level of the whole planet Earth
|
||||
(including oceans and seas) is around 280 meters. Providing a value of
|
||||
~400 should be OK most of the time).
|
||||
2 arc seconds is about 0.000555 degrees of error, which is, well, kind of small. Of course, if you need very precise horoscopes or need planetary positions for a totally different thing, you should really provide a (close to) exact value; otherwise, it is safe to pass any value (well, which seems logical: the average level of all dry lands is about 840 meters; the average level of the whole planet Earth (including oceans and seas) is around 280 meters. Providing a value of ~400 should be OK most of the time).
|
||||
|
||||
## API stability
|
||||
|
||||
The project is currently transitioning to 2.0. master is a bit fragile
|
||||
at the moment, 1.x versions are considered to be stable (although see
|
||||
commit 8f52aba about a huge typo-bug).
|
||||
The project is currently marked as 1.0. This means that API and ABI changes are very unlikely to happen.
|
||||
|
||||
## Limitations
|
||||
|
||||
### Topocentric calculations only
|
||||
|
||||
Although the original Swiss Ephemeris library supports it, SWE-GLib
|
||||
can't do Heliocentric, nor Geocentric (as seen from the center of
|
||||
Earth) calculations, only Topocentric (as seen from a given point on
|
||||
Earth’s surface) calculations yet.
|
||||
Although the original Swiss Ephemeris library supports it, SWE-GLib can't do Heliocentric, nor Geocentric (as seen from the center of Earth) calculations, only Topocentric (as seen from a given point on Earth"s surface) calculations yet.
|
||||
|
||||
### Database size
|
||||
|
||||
The size of all data files provided by Astrodienst is around
|
||||
40MB. Although it should not be a problem with today's home hardware,
|
||||
it can be a hard requirement on embedded systems. For basic
|
||||
calculations, keeping the following files under $(datadir)/swe-glib is
|
||||
usually enough:
|
||||
The size of all data files provided by Astrodienst is around 40MB. Although it should not be a problem with today's home hardware, it can be a hard requirement on embedded systems. For basic calculations, keeping the following files under $(datadir)/swe-glib is usually enough:
|
||||
|
||||
* `seas_18.se1`
|
||||
* `semo_18.se1`
|
||||
* `sepl_18.se1`
|
||||
* seas_18.se1
|
||||
* semo_18.se1
|
||||
* sepl_18.se1
|
||||
|
||||
### Fixed stars are not known yet
|
||||
|
||||
Although Swiss Ephemeris has the functionality to calculate the
|
||||
position of fixed stars, SWE-GLib doesn't provide such
|
||||
functionality. This, however, is a planned feature for the close
|
||||
future.
|
||||
Although Swiss Ephemeris has the functionality to calculate the position of fixed stars, SWE-GLib doesn't provide such functionality. This, however, is a planned feature for the close future.
|
||||
|
||||
## Licencing
|
||||
|
||||
As the underlying Swiss Ephemeris is published under GPL (or a
|
||||
commercial license I can not afford), SWE-GLib is also uses that. This
|
||||
means that you can currently use SWE-GLib in software published under
|
||||
the GNU GPL v3 (or, at your option, any later version).
|
||||
As the underlying Swiss Ephemeris is published under GPL (or a commercial license I can not afford), SWE-GLib is also uses that. This means that you can currently use SWE-GLib in software published under the GNU GPL v3.
|
||||
|
51
autogen.sh
51
autogen.sh
@ -13,51 +13,10 @@ PKG_NAME="swe-glib"
|
||||
exit 1
|
||||
}
|
||||
|
||||
m4dir=`grep '^AC_CONFIG_MACRO_DIR' configure.ac | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
|
||||
if [ -n "$m4dir" ]; then
|
||||
m4dir="-I $m4dir"
|
||||
fi
|
||||
which gnome-autogen.sh || {
|
||||
echo "gnome-autogen.sh not found, you need to install gnome-common"
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "Running libtoolize"
|
||||
libtoolize --force --copy || exit $?
|
||||
|
||||
echo "Running autopoint"
|
||||
autopoint --force || exit $?
|
||||
|
||||
echo "Running intltoolize"
|
||||
intltoolize --force --copy --automake || exit $?
|
||||
|
||||
GTKDOCIZE=$(which gtkdocize 2>/dev/null)
|
||||
if test -z $GTKDOCIZE; then
|
||||
echo "You don't have gtk-doc installed, and thus won't be able to generate the documentation."
|
||||
rm -f gtk-doc.make
|
||||
rm -f $m4dir/gtk-doc.m4
|
||||
cat > gtk-doc.make <<EOF
|
||||
EXTRA_DIST =
|
||||
CLEANFILES =
|
||||
EOF
|
||||
else
|
||||
echo "Running gtkdocize"
|
||||
gtkdocize --copy || exit $?
|
||||
fi
|
||||
|
||||
echo "Running aclocal"
|
||||
aclocal $m4dir $ACLOCAL_FLAGS || exit $?
|
||||
|
||||
echo "Running autoconf"
|
||||
autoconf || exit $?
|
||||
|
||||
if grep "^A[CM]_CONFIG_HEADER" configure.ac >/dev/null; then
|
||||
echo "Running autoheader"
|
||||
autoheader || exit $?
|
||||
# this prevents automake from thinking config.h.in is out of
|
||||
# date, since autoheader doesn't touch the file if it doesn't
|
||||
# change.
|
||||
test -f config.h.in && touch config.h.in
|
||||
fi
|
||||
|
||||
echo "Running automake"
|
||||
automake --gnu --add-missing --copy -Wno-portability || exit $?
|
||||
|
||||
"$srcdir/configure" "$@"
|
||||
REQUIRED_AUTOMAKE_VERSION=1.9 . gnome-autogen.sh
|
||||
|
||||
|
147
configure.ac
147
configure.ac
@ -1,33 +1,17 @@
|
||||
m4_define([swe_glib_major_version], [2])
|
||||
m4_define([swe_glib_minor_version], [1])
|
||||
m4_define([swe_glib_micro_version], [0])
|
||||
m4_define([swe_glib_major_version], [1])
|
||||
m4_define([swe_glib_minor_version], [0])
|
||||
m4_define([swe_glib_micro_version], [5])
|
||||
m4_define([swe_glib_version], [swe_glib_major_version.swe_glib_minor_version.swe_glib_micro_version])
|
||||
m4_define([swe_glib_api_version], [swe_glib_major_version.0])
|
||||
m4_define([swe_major_version], [2])
|
||||
m4_define([swe_minor_version], [0])
|
||||
m4_define([swe_version], [swe_major_version.swe_minor_version])
|
||||
|
||||
AC_INIT([SWE-GLib], [swe_glib_version], [gergely@polonkai.eu], [swe-glib])
|
||||
AM_INIT_AUTOMAKE([-Wall foreign])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AM_SILENT_RULES([yes])
|
||||
|
||||
dnl ********************************
|
||||
dnl *** Enable debugging support ***
|
||||
dnl ********************************
|
||||
AC_ARG_ENABLE(debug,
|
||||
AC_HELP_STRING([--enable-debug],
|
||||
[compile with debugging support]),
|
||||
[enable_debug=$enableval], [enable_debug=no])
|
||||
AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug], [compile with debugging support])], , enable_debug=no)
|
||||
|
||||
if test "x$enable_debug" = "xyes" ; then
|
||||
AC_DEFINE([DEBUG], [1], [Define if debugging is enabled])
|
||||
if test x$cflags_set != xset ; then
|
||||
case " $CFLAGS " in
|
||||
*[[\ \ ]]-g[[\ \ ]]*) ;;
|
||||
*) CFLAGS="$CFLAGS -g" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST([SWE_GLIB_MAJOR_VERSION], [swe_glib_major_version])
|
||||
@ -36,7 +20,6 @@ AC_SUBST([SWE_GLIB_MICRO_VERSION], [swe_glib_micro_version])
|
||||
AC_SUBST([SWE_GLIB_VERSION], [swe_glib_version])
|
||||
AC_SUBST([SWE_GLIB_API_VERSION], [swe_glib_api_version])
|
||||
AC_SUBST([SWE_GLIB_API_VERSION_U], [AS_TR_SH([swe_glib_api_version])])
|
||||
AC_SUBST([SWE_VERSION], [swe_version])
|
||||
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
@ -50,133 +33,31 @@ AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([0.17])
|
||||
LT_INIT
|
||||
AC_CHECK_LIB([m], [atan])
|
||||
m4_ifdef([GTK_DOC_CHECK], [
|
||||
GTK_DOC_CHECK([1.19], [--flavour no-tmpl])
|
||||
],[
|
||||
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
|
||||
])
|
||||
GOBJECT_INTROSPECTION_CHECK([1.0])
|
||||
m4_ifdef([VALA_PROG_VAPIGEN], [
|
||||
VALA_PROG_VAPIGEN([0.21])
|
||||
AM_CONDITIONAL([HAVE_VAPIGEN], true)
|
||||
],[
|
||||
AM_CONDITIONAL([HAVE_VAPIGEN], false)
|
||||
])
|
||||
PKG_PROG_PKG_CONFIG
|
||||
AC_PATH_PROG([GLIB_MKENUMS], [glib-mkenums])
|
||||
AC_CANONICAL_HOST
|
||||
native_win32=no
|
||||
case "$host" in
|
||||
*-*-mingw*)
|
||||
native_win32=yes
|
||||
;;
|
||||
esac
|
||||
AM_CONDITIONAL(OS_WIN32, [test "$native_win32" = "yes"])
|
||||
AM_CONDITIONAL(OS_UNIX, [test "$native_win32" != "yes"])
|
||||
AC_PATH_PROG([GTESTER], [gtester])
|
||||
AC_PATH_PROG([GTESTER_REPORT], [gtester-report])
|
||||
|
||||
dnl ************************************
|
||||
dnl *** Enable lcov coverage reports ***
|
||||
dnl ************************************
|
||||
|
||||
AC_ARG_ENABLE(coverage,
|
||||
AS_HELP_STRING([--enable-coverage],
|
||||
[enable coverage testing with gcov]),
|
||||
[use_gcov=$enableval], [use_gcov=no])
|
||||
|
||||
AS_IF([ test "x$use_gcov" = "xyes"], [
|
||||
dnl we need gcc:
|
||||
if test "$GCC" != "yes"; then
|
||||
AC_MSG_ERROR([GCC is required for --enable-coverage])
|
||||
fi
|
||||
|
||||
dnl Check if ccache is being used
|
||||
AC_CHECK_PROG(SHTOOL, shtool, shtool)
|
||||
case `$SHTOOL path $CC` in
|
||||
*ccache*[)] gcc_ccache=yes;;
|
||||
*[)] gcc_ccache=no;;
|
||||
esac
|
||||
|
||||
if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
|
||||
AC_MSG_ERROR([ccache must be disabled when --enable-coverage option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
|
||||
fi
|
||||
|
||||
ltp_version_list="1.6 1.7 1.8 1.9 1.10 1.14"
|
||||
AC_CHECK_PROG(LTP, lcov, lcov)
|
||||
AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
|
||||
|
||||
AS_IF([ test "$LTP" ], [
|
||||
AC_CACHE_CHECK([for ltp version], sw_glib_cv_ltp_version, [
|
||||
swe_glib_cv_ltp_version=invalid
|
||||
ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'`
|
||||
for ltp_check_version in $ltp_version_list; do
|
||||
if test "$ltp_version" = "$ltp_check_version"; then
|
||||
swe_glib_cv_ltp_version="$ltp_check_version (ok)"
|
||||
fi
|
||||
done
|
||||
])
|
||||
], [
|
||||
ltp_msg="To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list"
|
||||
AC_MSG_ERROR([$ltp_msg])
|
||||
])
|
||||
|
||||
case $swe_glib_cv_ltp_version in
|
||||
""|invalid[)]
|
||||
ltp_msg="You must have one of the following versions of LTP: $ltp_version_list (found: $ltp_version)."
|
||||
AC_MSG_ERROR([$ltp_msg])
|
||||
LTP="exit 0;"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$LTP_GENHTML"; then
|
||||
AC_MSG_ERROR([Could not find genhtml from the LTP package])
|
||||
fi
|
||||
|
||||
dnl Remove all optimization flags from CFLAGS
|
||||
changequote({,})
|
||||
CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'`
|
||||
changequote([,])
|
||||
|
||||
dnl Add the special gcc flags
|
||||
CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage"
|
||||
LDFLAGS="$LDFLAGS -lgcov"
|
||||
])
|
||||
|
||||
if test "x$enable_debug" = "xyes" ; then
|
||||
AC_DEFINE([DEBUG], [1], [Define if debugging is enabled])
|
||||
if test x$cflags_set != xset ; then
|
||||
case " $CFLAGS " in
|
||||
*[[\ \ ]]-g[[\ \ ]]*) ;;
|
||||
*) CFLAGS="$CFLAGS -g" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.32.0])
|
||||
PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.32.0])
|
||||
PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.26])
|
||||
|
||||
GLIB_GSETTINGS
|
||||
PKG_CHECK_MODULES([GLIB], [glib-2.0])
|
||||
PKG_CHECK_MODULES([GOBJECT], [gobject-2.0])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
LIBSWE_LIBS='$(top_builddir)/swe/src/libswe-1.75.la'
|
||||
AC_SUBST(LIBSWE_LIBS)
|
||||
|
||||
LIBSWE_GLIB_LIBS='$(top_builddir)/src/libswe-glib-$(SWE_GLIB_API_VERSION).la'
|
||||
AC_SUBST(LIBSWE_GLIB_LIBS)
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
swe/Makefile
|
||||
swe/src/Makefile
|
||||
swe/doc/Makefile
|
||||
src/Makefile
|
||||
data/Makefile
|
||||
po/Makefile.in
|
||||
tests/Makefile
|
||||
docs/reference/swe-glib/version.xml
|
||||
docs/reference/swe-glib/Makefile
|
||||
data/swe-glib.pc
|
||||
data/swe-glib.spec
|
||||
src/gswe-version.h
|
||||
])
|
||||
AM_COND_IF([ENABLE_GTK_DOC], [
|
||||
AC_CONFIG_FILES([
|
||||
docs/reference/swe-glib/version.xml
|
||||
docs/reference/swe-glib/Makefile
|
||||
])
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
@ -1,16 +1,65 @@
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = swe-glib.pc $(NULL)
|
||||
|
||||
eu.polonkai.gergely.swe-glib.gschema.xml: gschema.template $(top_builddir)/src/gswe-types.h
|
||||
$(GLIB_MKENUMS) --comments "<!-- @comment@ -->" --template $(filter %.template,$^) $(filter-out %.template,$^) > \
|
||||
$@.tmp && mv $@.tmp $@
|
||||
|
||||
gsettings_SCHEMAS = eu.polonkai.gergely.swe-glib.gschema.xml
|
||||
|
||||
@GSETTINGS_RULES@
|
||||
swephdir = $(pkgdatadir)
|
||||
sweph_DATA = \
|
||||
sweph-data/seas_00.se1 \
|
||||
sweph-data/seas_06.se1 \
|
||||
sweph-data/seas_12.se1 \
|
||||
sweph-data/seas_18.se1 \
|
||||
sweph-data/seas_24.se1 \
|
||||
sweph-data/seas_30.se1 \
|
||||
sweph-data/seas_36.se1 \
|
||||
sweph-data/seas_42.se1 \
|
||||
sweph-data/seas_48.se1 \
|
||||
sweph-data/seasm06.se1 \
|
||||
sweph-data/seasm12.se1 \
|
||||
sweph-data/seasm18.se1 \
|
||||
sweph-data/seasm24.se1 \
|
||||
sweph-data/seasm30.se1 \
|
||||
sweph-data/seasm36.se1 \
|
||||
sweph-data/seasm42.se1 \
|
||||
sweph-data/seasm48.se1 \
|
||||
sweph-data/seasm54.se1 \
|
||||
sweph-data/semo_00.se1 \
|
||||
sweph-data/semo_06.se1 \
|
||||
sweph-data/semo_12.se1 \
|
||||
sweph-data/semo_18.se1 \
|
||||
sweph-data/semo_24.se1 \
|
||||
sweph-data/semo_30.se1 \
|
||||
sweph-data/semo_36.se1 \
|
||||
sweph-data/semo_42.se1 \
|
||||
sweph-data/semo_48.se1 \
|
||||
sweph-data/semom06.se1 \
|
||||
sweph-data/semom12.se1 \
|
||||
sweph-data/semom18.se1 \
|
||||
sweph-data/semom24.se1 \
|
||||
sweph-data/semom30.se1 \
|
||||
sweph-data/semom36.se1 \
|
||||
sweph-data/semom42.se1 \
|
||||
sweph-data/semom48.se1 \
|
||||
sweph-data/semom54.se1 \
|
||||
sweph-data/sepl_00.se1 \
|
||||
sweph-data/sepl_06.se1 \
|
||||
sweph-data/sepl_12.se1 \
|
||||
sweph-data/sepl_18.se1 \
|
||||
sweph-data/sepl_24.se1 \
|
||||
sweph-data/sepl_30.se1 \
|
||||
sweph-data/sepl_36.se1 \
|
||||
sweph-data/sepl_42.se1 \
|
||||
sweph-data/sepl_48.se1 \
|
||||
sweph-data/seplm06.se1 \
|
||||
sweph-data/seplm12.se1 \
|
||||
sweph-data/seplm18.se1 \
|
||||
sweph-data/seplm24.se1 \
|
||||
sweph-data/seplm30.se1 \
|
||||
sweph-data/seplm36.se1 \
|
||||
sweph-data/seplm42.se1 \
|
||||
sweph-data/seplm48.se1 \
|
||||
sweph-data/seplm54.se1 \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_DIST = \
|
||||
swe-glib.spec \
|
||||
gschema.template
|
||||
$(sweph_DATA) \
|
||||
swe-glib.spec
|
||||
|
||||
DISTCLEANFILES = $(gsettings_SCHEMAS)
|
||||
|
@ -1,22 +0,0 @@
|
||||
/*** BEGIN file-header ***/
|
||||
<schemalist>
|
||||
/*** END file-header ***/
|
||||
|
||||
/*** BEGIN file-production ***/
|
||||
/*** END file-production ***/
|
||||
|
||||
/*** BEGIN value-header ***/
|
||||
<enum id="eu.polonkai.gergely.swe-glib.@EnumName@">
|
||||
/*** END value-header ***/
|
||||
|
||||
/*** BEGIN value-production ***/
|
||||
<value nick="@valuenick@" value="@valuenum@"/>
|
||||
/*** END value-production ***/
|
||||
|
||||
/*** BEGIN value-tail ***/
|
||||
</enum>
|
||||
/*** END value-tail ***/
|
||||
|
||||
/*** BEGIN file-tail ***/
|
||||
</schemalist>
|
||||
/*** END file-tail ***/
|
@ -6,7 +6,7 @@ Summary: A GLib style wrapper library around the Swiss Ephemeris library, create
|
||||
Group: Development/Libraries
|
||||
License: LGPLv3+
|
||||
URL: http://gergely.polonkai.eu/swe-glib/
|
||||
Source: http://gergely.polonkai.eu/download/%{name}-%{version}.tar.gz
|
||||
Source: https://github.com/gergelypolonkai/%{name}/archive/v%{version}.tar.gz
|
||||
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: glib2-devel
|
||||
@ -70,13 +70,12 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/locale/hu/LC_MESSAGES/swe-glib.mo
|
||||
|
||||
%files
|
||||
%doc ChangeLog
|
||||
%{_libdir}/libswe-@SWE_VERSION@.so.*
|
||||
%{_libdir}/libswe-glib-@SWE_GLIB_API_VERSION@.so.*
|
||||
%{_libdir}/girepository-1.0/SweGlib-@SWE_GLIB_API_VERSION@.typelib
|
||||
%{_libdir}/libswe-1.75.so.*
|
||||
%{_libdir}/libswe-glib-1.0.so.*
|
||||
%{_libdir}/girepository-1.0/SweGlib-1.0.typelib
|
||||
|
||||
%files data
|
||||
%{_datadir}/swe-glib/*.se1
|
||||
%{_datadir}/swe-glib/seleapsec.txt
|
||||
|
||||
%files doc
|
||||
%doc %{_datadir}/gtk-doc/html/*
|
||||
@ -84,10 +83,9 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/locale/hu/LC_MESSAGES/swe-glib.mo
|
||||
%files devel
|
||||
%{_includedir}/*
|
||||
%{_libdir}/pkgconfig/*
|
||||
%{_datadir}/gir-1.0/SweGlib-@SWE_GLIB_API_VERSION@.gir
|
||||
%{_libdir}/libswe-@SWE_VERSION@.so
|
||||
%{_libdir}/libswe-glib-@SWE_GLIB_API_VERSION@.so
|
||||
%{_datadir}/vala/vapi/SweGlib-@SWE_GLIB_API_VERSION@.vapi
|
||||
%{_datadir}/gir-1.0/SweGlib-1.0.gir
|
||||
%{_libdir}/libswe-1.75.so
|
||||
%{_libdir}/libswe-glib-1.0.so
|
||||
|
||||
%changelog
|
||||
|
||||
|
BIN
data/sweph-data/seas_00.se1
Normal file
BIN
data/sweph-data/seas_00.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_06.se1
Normal file
BIN
data/sweph-data/seas_06.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_12.se1
Normal file
BIN
data/sweph-data/seas_12.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_18.se1
Normal file
BIN
data/sweph-data/seas_18.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_24.se1
Normal file
BIN
data/sweph-data/seas_24.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_30.se1
Normal file
BIN
data/sweph-data/seas_30.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_36.se1
Normal file
BIN
data/sweph-data/seas_36.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_42.se1
Normal file
BIN
data/sweph-data/seas_42.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seas_48.se1
Normal file
BIN
data/sweph-data/seas_48.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm06.se1
Normal file
BIN
data/sweph-data/seasm06.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm12.se1
Normal file
BIN
data/sweph-data/seasm12.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm18.se1
Normal file
BIN
data/sweph-data/seasm18.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm24.se1
Normal file
BIN
data/sweph-data/seasm24.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm30.se1
Normal file
BIN
data/sweph-data/seasm30.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm36.se1
Normal file
BIN
data/sweph-data/seasm36.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm42.se1
Normal file
BIN
data/sweph-data/seasm42.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm48.se1
Normal file
BIN
data/sweph-data/seasm48.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seasm54.se1
Normal file
BIN
data/sweph-data/seasm54.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_00.se1
Normal file
BIN
data/sweph-data/semo_00.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_06.se1
Normal file
BIN
data/sweph-data/semo_06.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_12.se1
Normal file
BIN
data/sweph-data/semo_12.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_18.se1
Normal file
BIN
data/sweph-data/semo_18.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_24.se1
Normal file
BIN
data/sweph-data/semo_24.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_30.se1
Normal file
BIN
data/sweph-data/semo_30.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_36.se1
Normal file
BIN
data/sweph-data/semo_36.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_42.se1
Normal file
BIN
data/sweph-data/semo_42.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semo_48.se1
Normal file
BIN
data/sweph-data/semo_48.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom06.se1
Normal file
BIN
data/sweph-data/semom06.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom12.se1
Normal file
BIN
data/sweph-data/semom12.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom18.se1
Normal file
BIN
data/sweph-data/semom18.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom24.se1
Normal file
BIN
data/sweph-data/semom24.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom30.se1
Normal file
BIN
data/sweph-data/semom30.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom36.se1
Normal file
BIN
data/sweph-data/semom36.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom42.se1
Normal file
BIN
data/sweph-data/semom42.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom48.se1
Normal file
BIN
data/sweph-data/semom48.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/semom54.se1
Normal file
BIN
data/sweph-data/semom54.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_00.se1
Normal file
BIN
data/sweph-data/sepl_00.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_06.se1
Normal file
BIN
data/sweph-data/sepl_06.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_12.se1
Normal file
BIN
data/sweph-data/sepl_12.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_18.se1
Normal file
BIN
data/sweph-data/sepl_18.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_24.se1
Normal file
BIN
data/sweph-data/sepl_24.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_30.se1
Normal file
BIN
data/sweph-data/sepl_30.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_36.se1
Normal file
BIN
data/sweph-data/sepl_36.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_42.se1
Normal file
BIN
data/sweph-data/sepl_42.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/sepl_48.se1
Normal file
BIN
data/sweph-data/sepl_48.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm06.se1
Normal file
BIN
data/sweph-data/seplm06.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm12.se1
Normal file
BIN
data/sweph-data/seplm12.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm18.se1
Normal file
BIN
data/sweph-data/seplm18.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm24.se1
Normal file
BIN
data/sweph-data/seplm24.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm30.se1
Normal file
BIN
data/sweph-data/seplm30.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm36.se1
Normal file
BIN
data/sweph-data/seplm36.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm42.se1
Normal file
BIN
data/sweph-data/seplm42.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm48.se1
Normal file
BIN
data/sweph-data/seplm48.se1
Normal file
Binary file not shown.
BIN
data/sweph-data/seplm54.se1
Normal file
BIN
data/sweph-data/seplm54.se1
Normal file
Binary file not shown.
@ -29,7 +29,7 @@ SCANGOBJ_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-scan.
|
||||
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||
SCAN_OPTIONS=--rebuild-types --deprecated-guards="GSWE_DISABLE_DEPRECATED"
|
||||
SCAN_OPTIONS=--rebuild-sections --rebuild-types
|
||||
|
||||
# Extra options to supply to gtkdoc-mkdb.
|
||||
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||
@ -58,20 +58,7 @@ EXTRA_HFILES=
|
||||
|
||||
# Header files or dirs to ignore when scanning. Use base file/dir names
|
||||
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
|
||||
IGNORE_HFILES = \
|
||||
swe-glib-private.h \
|
||||
gswe-enumtypes.h \
|
||||
gswe-moon-phase-data-private.h \
|
||||
gswe-sign-info-private.h \
|
||||
gswe-planet-info-private.h \
|
||||
gswe-planet-data-private.h \
|
||||
gswe-aspect-info-private.h \
|
||||
gswe-aspect-data-private.h \
|
||||
gswe-antiscion-axis-info-private.h \
|
||||
gswe-antiscion-data-private.h \
|
||||
gswe-house-system-info-private.h \
|
||||
gswe-house-data-private.h \
|
||||
$(NULL)
|
||||
IGNORE_HFILES=swe-glib-private.h gswe-enumtypes.h
|
||||
|
||||
# Images to copy into HTML directory.
|
||||
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||
@ -92,19 +79,19 @@ expand_content_files=
|
||||
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||
GTKDOC_CFLAGS=
|
||||
GTKDOC_LIBS=$(LIBSWE_GLIB_LIBS) -lswe -ldl $(NULL)
|
||||
GTKDOC_LIBS=$(LIBSWE_GLIB_LIBS) $(NULL)
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
# e.g. EXTRA_DIST += version.xml.in
|
||||
EXTRA_DIST += version.xml.in
|
||||
EXTRA_DIST +=
|
||||
|
||||
# Files not to distribute
|
||||
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
||||
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
|
||||
DISTCLEANFILES = $(DOC_MODULE).types
|
||||
#DISTCLEANFILES +=
|
||||
|
||||
# Comment this out if you want 'make check' to test you doc status
|
||||
# and run some sanity checks
|
||||
|
@ -19,20 +19,9 @@
|
||||
<chapter>
|
||||
<title>SWE-GLib</title>
|
||||
<xi:include href="xml/gswe-types.xml"/>
|
||||
<xi:include href="xml/gswe-sign-info.xml" />
|
||||
<xi:include href="xml/gswe-planet-info.xml" />
|
||||
<xi:include href="xml/gswe-planet-data.xml" />
|
||||
<xi:include href="xml/gswe-moon-phase-data.xml"/>
|
||||
<xi:include href="xml/gswe-aspect-data.xml" />
|
||||
<xi:include href="xml/gswe-aspect-info.xml" />
|
||||
<xi:include href="xml/gswe-antiscion-axis-info.xml" />
|
||||
<xi:include href="xml/gswe-antiscion-data.xml" />
|
||||
<xi:include href="xml/gswe-house-system-info.xml" />
|
||||
<xi:include href="xml/gswe-house-data.xml" />
|
||||
<xi:include href="xml/swe-glib.xml"/>
|
||||
<xi:include href="xml/gswe-moment.xml"/>
|
||||
<xi:include href="xml/gswe-timestamp.xml"/>
|
||||
<xi:include href="xml/gswe-version.xml"/>
|
||||
|
||||
</chapter>
|
||||
<chapter id="object-tree">
|
||||
|
@ -1,331 +0,0 @@
|
||||
<SECTION>
|
||||
<FILE>gswe-moment</FILE>
|
||||
<TITLE>GsweMoment</TITLE>
|
||||
GsweMoment
|
||||
GsweMomentClass
|
||||
gswe_moment_new
|
||||
gswe_moment_new_full
|
||||
gswe_moment_set_timestamp
|
||||
gswe_moment_get_timestamp
|
||||
gswe_moment_set_coordinates
|
||||
gswe_moment_get_coordinates
|
||||
gswe_moment_set_house_system
|
||||
gswe_moment_get_house_system
|
||||
gswe_moment_get_house_cusps
|
||||
gswe_moment_get_house
|
||||
gswe_moment_has_planet
|
||||
gswe_moment_add_planet
|
||||
gswe_moment_add_all_planets
|
||||
gswe_moment_get_all_planets
|
||||
gswe_moment_get_planet
|
||||
gswe_moment_get_sign_planets
|
||||
gswe_moment_get_house_planets
|
||||
gswe_moment_get_element_points
|
||||
gswe_moment_get_quality_points
|
||||
gswe_moment_get_moon_phase
|
||||
gswe_moment_get_all_aspects
|
||||
gswe_moment_get_planet_aspects
|
||||
gswe_moment_get_aspect_by_planets
|
||||
gswe_moment_get_all_antiscia
|
||||
gswe_moment_get_all_planet_antiscia
|
||||
gswe_moment_get_axis_all_antiscia
|
||||
gswe_moment_get_axis_planet_antiscia
|
||||
gswe_moment_get_antiscion_by_planets
|
||||
<SUBSECTION Standard>
|
||||
GSWE_IS_MOMENT
|
||||
GSWE_IS_MOMENT_CLASS
|
||||
GSWE_MOMENT
|
||||
GSWE_MOMENT_CLASS
|
||||
GSWE_MOMENT_GET_CLASS
|
||||
GSWE_TYPE_MOMENT
|
||||
GsweMomentPrivate
|
||||
gswe_moment_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-moon-phase-data</FILE>
|
||||
gswe_moon_phase_data_new
|
||||
gswe_moon_phase_data_ref
|
||||
gswe_moon_phase_data_unref
|
||||
gswe_moon_phase_data_calculate_by_timestamp
|
||||
gswe_moon_phase_data_calculate_by_jd
|
||||
gswe_moon_phase_data_get_phase
|
||||
gswe_moon_phase_data_get_illumination
|
||||
GsweMoonPhaseData
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_MOON_PHASE_DATA
|
||||
gswe_moon_phase_data_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-sign-info</FILE>
|
||||
GsweSignInfo
|
||||
gswe_find_sign_info_by_id
|
||||
gswe_sign_info_new
|
||||
gswe_sign_info_ref
|
||||
gswe_sign_info_unref
|
||||
gswe_sign_info_set_sign
|
||||
gswe_sign_info_get_sign
|
||||
gswe_sign_info_set_name
|
||||
gswe_sign_info_get_name
|
||||
gswe_sign_info_set_element
|
||||
gswe_sign_info_get_element
|
||||
gswe_sign_info_set_quality
|
||||
gswe_sign_info_get_quality
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_SIGN_INFO
|
||||
gswe_sign_info_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-planet-info</FILE>
|
||||
GswePlanetInfo
|
||||
gswe_find_planet_info_by_id
|
||||
gswe_all_planets
|
||||
gswe_planet_info_new
|
||||
gswe_planet_info_ref
|
||||
gswe_planet_info_unref
|
||||
gswe_planet_info_set_name
|
||||
gswe_planet_info_get_name
|
||||
gswe_planet_info_set_orb
|
||||
gswe_planet_info_get_orb
|
||||
gswe_planet_info_set_planet
|
||||
gswe_planet_info_get_planet
|
||||
gswe_planet_info_set_points
|
||||
gswe_planet_info_get_points
|
||||
gswe_planet_info_set_real_body
|
||||
gswe_planet_info_get_real_body
|
||||
gswe_planet_info_set_sweph_id
|
||||
gswe_planet_info_get_sweph_id
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_PLANET_INFO
|
||||
gswe_planet_info_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-planet-data</FILE>
|
||||
GswePlanetData
|
||||
gswe_planet_data_new
|
||||
gswe_planet_data_ref
|
||||
gswe_planet_data_unref
|
||||
gswe_planet_data_set_planet
|
||||
gswe_planet_data_get_planet
|
||||
gswe_planet_data_set_planet_info
|
||||
gswe_planet_data_get_planet_info
|
||||
gswe_planet_data_get_position
|
||||
gswe_planet_data_get_retrograde
|
||||
gswe_planet_data_get_house
|
||||
gswe_planet_data_get_sign
|
||||
gswe_planet_data_get_sign_info
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_PLANET_DATA
|
||||
gswe_planet_data_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-aspect-info</FILE>
|
||||
GsweAspectInfo
|
||||
gswe_find_aspect_info_by_id
|
||||
gswe_all_aspects
|
||||
gswe_aspect_info_new
|
||||
gswe_aspect_info_ref
|
||||
gswe_aspect_info_unref
|
||||
gswe_aspect_info_set_aspect
|
||||
gswe_aspect_info_get_aspect
|
||||
gswe_aspect_info_set_name
|
||||
gswe_aspect_info_get_name
|
||||
gswe_aspect_info_set_size
|
||||
gswe_aspect_info_get_size
|
||||
gswe_aspect_info_set_orb_modifier
|
||||
gswe_aspect_info_get_orb_modifier
|
||||
gswe_aspect_info_set_harmonic
|
||||
gswe_aspect_info_get_harmonic
|
||||
gswe_aspect_info_set_major
|
||||
gswe_aspect_info_get_major
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_ASPECT_INFO
|
||||
gswe_aspect_info_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-aspect-data</FILE>
|
||||
GsweAspectData
|
||||
gswe_aspect_data_new
|
||||
gswe_aspect_data_new_with_planets
|
||||
gswe_aspect_data_ref
|
||||
gswe_aspect_data_unref
|
||||
gswe_aspect_data_set_planet1
|
||||
gswe_aspect_data_get_planet1
|
||||
gswe_aspect_data_set_planet2
|
||||
gswe_aspect_data_get_planet2
|
||||
gswe_aspect_data_get_distance
|
||||
gswe_aspect_data_get_aspect
|
||||
gswe_aspect_data_get_aspect_info
|
||||
gswe_aspect_data_get_difference
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_ASPECT_DATA
|
||||
gswe_aspect_data_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-antiscion-axis-info</FILE>
|
||||
GsweAntiscionAxisInfo
|
||||
gswe_find_antiscion_axis_info_by_id
|
||||
gswe_all_antiscion_axes
|
||||
gswe_antiscion_axis_info_new
|
||||
gswe_antiscion_axis_info_ref
|
||||
gswe_antiscion_axis_info_unref
|
||||
gswe_antiscion_axis_info_set_axis
|
||||
gswe_antiscion_axis_info_get_axis
|
||||
gswe_antiscion_axis_info_set_name
|
||||
gswe_antiscion_axis_info_get_name
|
||||
gswe_antiscion_axis_info_set_sign_offset
|
||||
gswe_antiscion_axis_info_get_sign_offset
|
||||
gswe_antiscion_axis_info_set_start_sign_info
|
||||
gswe_antiscion_axis_info_get_start_sign_info
|
||||
gswe_antiscion_axis_info_set_start_sign
|
||||
gswe_antiscion_axis_info_get_start_sign
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_ANTISCION_AXIS_INFO
|
||||
gswe_antiscion_axis_info_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-antiscion-data</FILE>
|
||||
GsweAntiscionData
|
||||
gswe_antiscion_data_new
|
||||
gswe_antiscion_data_new_with_planets
|
||||
gswe_antiscion_data_ref
|
||||
gswe_antiscion_data_unref
|
||||
gswe_antiscion_data_set_planet1
|
||||
gswe_antiscion_data_get_planet1
|
||||
gswe_antiscion_data_set_planet2
|
||||
gswe_antiscion_data_get_planet2
|
||||
gswe_antiscion_data_calculate
|
||||
gswe_antiscion_data_get_axis
|
||||
gswe_antiscion_data_get_antiscion_axis_info
|
||||
gswe_antiscion_data_get_difference
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_ANTISCION_DATA
|
||||
gswe_antiscion_data_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-house-system-info</FILE>
|
||||
GsweHouseSystemInfo
|
||||
gswe_find_house_system_info_by_id
|
||||
gswe_all_house_systems
|
||||
gswe_house_system_info_new
|
||||
gswe_house_system_info_ref
|
||||
gswe_house_system_info_unref
|
||||
gswe_house_system_info_set_house_system
|
||||
gswe_house_system_info_get_house_system
|
||||
gswe_house_system_info_set_sweph_id
|
||||
gswe_house_system_info_get_sweph_id
|
||||
gswe_house_system_info_set_name
|
||||
gswe_house_system_info_get_name
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_HOUSE_SYSTEM_INFO
|
||||
gswe_house_system_info_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-house-data</FILE>
|
||||
GsweHouseData
|
||||
gswe_house_data_new
|
||||
gswe_house_data_ref
|
||||
gswe_house_data_unref
|
||||
gswe_house_data_get_house
|
||||
gswe_house_data_get_cusp_position
|
||||
gswe_house_data_get_sign
|
||||
gswe_house_data_get_sign_info
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_HOUSE_DATA
|
||||
gswe_house_data_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-timestamp</FILE>
|
||||
<TITLE>GsweTimestamp</TITLE>
|
||||
GsweTimestamp
|
||||
GsweTimestampClass
|
||||
GsweTimestampValidityFlags
|
||||
gswe_timestamp_new
|
||||
gswe_timestamp_new_from_julian_day
|
||||
gswe_timestamp_new_from_gregorian_full
|
||||
gswe_timestamp_new_from_now_local
|
||||
gswe_timestamp_set_gregorian_full
|
||||
gswe_timestamp_set_instant_recalc
|
||||
gswe_timestamp_get_instant_recalc
|
||||
gswe_timestamp_set_gregorian_year
|
||||
gswe_timestamp_get_gregorian_year
|
||||
gswe_timestamp_set_gregorian_month
|
||||
gswe_timestamp_get_gregorian_month
|
||||
gswe_timestamp_set_gregorian_day
|
||||
gswe_timestamp_get_gregorian_day
|
||||
gswe_timestamp_set_gregorian_hour
|
||||
gswe_timestamp_get_gregorian_hour
|
||||
gswe_timestamp_set_gregorian_minute
|
||||
gswe_timestamp_get_gregorian_minute
|
||||
gswe_timestamp_set_gregorian_second
|
||||
gswe_timestamp_get_gregorian_second
|
||||
gswe_timestamp_set_gregorian_microsecond
|
||||
gswe_timestamp_get_gregorian_microsecond
|
||||
gswe_timestamp_set_gregorian_timezone
|
||||
gswe_timestamp_get_gregorian_timezone
|
||||
gswe_timestamp_set_now_local
|
||||
gswe_timestamp_set_julian_day
|
||||
gswe_timestamp_get_julian_day
|
||||
gswe_timestamp_set_julian_day_et
|
||||
gswe_timestamp_get_julian_day_et
|
||||
gswe_timestamp_set_julian_day_ut
|
||||
gswe_timestamp_get_julian_day_ut
|
||||
gswe_timestamp_get_sidereal_time
|
||||
<SUBSECTION Standard>
|
||||
GSWE_IS_TIMESTAMP
|
||||
GSWE_IS_TIMESTAMP_CLASS
|
||||
GSWE_TIMESTAMP
|
||||
GSWE_TIMESTAMP_CLASS
|
||||
GSWE_TIMESTAMP_GET_CLASS
|
||||
GSWE_TYPE_TIMESTAMP
|
||||
GsweTimestampPrivate
|
||||
gswe_timestamp_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-types</FILE>
|
||||
GswePlanet
|
||||
GSWE_PLANET_LILITH
|
||||
GSWE_PLANET_OFFSET_VIRTUAL_NODES
|
||||
GSWE_PLANET_OFFSET_PLANETS
|
||||
GSWE_PLANET_OFFSET_ASTEROIDS
|
||||
GSWE_PLANET_OFFSET_CUSTOM
|
||||
GsweZodiac
|
||||
GsweAspect
|
||||
GsweAntiscionAxis
|
||||
GsweElement
|
||||
GsweQuality
|
||||
GsweHouseSystem
|
||||
GsweMoonPhase
|
||||
GsweCoordinates
|
||||
<SUBSECTION Standard>
|
||||
GSWE_TYPE_COORDINATES
|
||||
gswe_coordinates_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>swe-glib</FILE>
|
||||
GsweError
|
||||
gswe_error_quark
|
||||
GSWE_ERROR
|
||||
gswe_init
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gswe-version</FILE>
|
||||
GSWE_MAJOR_VERSION
|
||||
GSWE_MINOR_VERSION
|
||||
GSWE_MICRO_VERSION
|
||||
GSWE_CHECK_VERSION
|
||||
gswe_check_version
|
||||
</SECTION>
|
@ -1,52 +0,0 @@
|
||||
const GLib = imports.gi.GLib;
|
||||
const Swe = imports.gi.SweGlib;
|
||||
const Format = imports.format;
|
||||
|
||||
String.prototype.format = Format.format;
|
||||
|
||||
Swe.init();
|
||||
|
||||
var timestamp = new Swe.Timestamp();
|
||||
timestamp.set_gregorian_full(1983, 3, 7, 11, 54, 45, 0, 1);
|
||||
|
||||
var moment = new Swe.Moment();
|
||||
moment.add_all_planets();
|
||||
moment.set_timestamp(timestamp);
|
||||
moment.set_coordinates(19.03991, 47.49801, 280);
|
||||
moment.set_house_system(Swe.HouseSystem.PLACIDUS);
|
||||
|
||||
var all_planets = moment.get_all_planets()
|
||||
for (var i = 0; i < all_planets.length; i++) {
|
||||
var planet = all_planets[i];
|
||||
var position = planet.get_position();
|
||||
var sign_position = position % 30;
|
||||
var degree = Math.floor(sign_position);
|
||||
var minute = Math.floor((sign_position - degree) * 60);
|
||||
var second = Math.floor(((sign_position - degree) * 60 - minute) * 60)
|
||||
|
||||
print("%s: %.6f (%d°%d′%d″ %s)".format(planet.get_planet_info().get_name(), position, degree, minute, second, planet.get_sign_info().get_name()));
|
||||
}
|
||||
|
||||
var all_aspects = moment.get_all_aspects();
|
||||
for (var i = 0; i < all_aspects.length; i++) {
|
||||
var aspect = all_aspects[i];
|
||||
|
||||
if (aspect.get_aspect() != Swe.Aspect.NONE) {
|
||||
var planet1 = aspect.get_planet1();
|
||||
var planet2 = aspect.get_planet2();
|
||||
|
||||
print("%s in %s with %s (±%.2f%%)".format(planet1.get_planet_info().get_name(), aspect.get_aspect_info().get_name(), planet2.get_planet_info().get_name(), aspect.get_difference()));
|
||||
}
|
||||
}
|
||||
|
||||
var all_antiscia = moment.get_all_antiscia();
|
||||
for (var i = 0; i < all_antiscia.length; i++) {
|
||||
var antiscion = all_antiscia[i];
|
||||
|
||||
if (antiscion.get_axis() != Swe.AntiscionAxis.NONE) {
|
||||
var planet1 = antiscion.get_planet1();
|
||||
var planet2 = antiscion.get_planet2();
|
||||
|
||||
print("%s is antiscion of %s on axis %s (±%.2f%%)".format(planet1.get_planet_info().get_name(), planet2.get_planet_info().get_name(), antiscion.get_antiscion_axis_info().get_name(), antiscion.get_difference().toFixed(2)));
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
local lgi = require 'lgi'
|
||||
local SweGlib = lgi.require('SweGlib', '2.0')
|
||||
|
||||
SweGlib.init()
|
||||
|
||||
local timestamp = SweGlib.Timestamp.new()
|
||||
timestamp:set_gregorian_full(1983, 3, 7, 11, 54, 45, 0, 1)
|
||||
|
||||
local moment = SweGlib.Moment.new()
|
||||
moment:set_timestamp(timestamp)
|
||||
moment:set_timestamp(timestamp)
|
||||
moment:set_coordinates(19.03990999, 47.49801000, 280)
|
||||
moment:set_house_system(SweGlib.HouseSystem.PLACIDUS)
|
||||
moment:add_all_planets()
|
||||
|
||||
local all_planets = moment:get_all_planets()
|
||||
for _, planet in ipairs(all_planets) do
|
||||
local position = planet:get_position()
|
||||
local sign_position = math.fmod(position, 30)
|
||||
local degree = math.floor(sign_position)
|
||||
local minute = math.floor((sign_position - degree) * 60)
|
||||
local second = math.floor(((sign_position - degree) * 60 - minute) * 60)
|
||||
io.write(string.format("%s: %f (%d°%d′%d″ %s)\n", planet:get_planet_info():get_name(), position, degree, minute, second, planet:get_sign_info():get_name()))
|
||||
end
|
||||
|
||||
local all_aspects = moment:get_all_aspects()
|
||||
for _, aspect in ipairs(all_aspects) do
|
||||
if aspect:get_aspect() ~= "NONE" then
|
||||
local planet1 = aspect:get_planet1()
|
||||
local planet2 = aspect:get_planet2()
|
||||
|
||||
io.write(string.format("%s in %s with %s (±%.2f%%)\n", planet1:get_planet_info():get_name(), aspect:get_aspect_info():get_name(), planet2:get_planet_info():get_name(), aspect:get_difference()))
|
||||
end
|
||||
end
|
||||
|
||||
local all_antiscia = moment:get_all_antiscia()
|
||||
for _, antiscion in ipairs(all_antiscia) do
|
||||
if antiscion:get_axis() ~= "NONE" then
|
||||
local planet1 = antiscion:get_planet1()
|
||||
local planet2 = antiscion:get_planet2()
|
||||
|
||||
io.write(string.format("%s is antiscion of %s on axis %s (±%.2f%%)\n", planet1:get_planet_info():get_name(), planet2:get_planet_info():get_name(), antiscion:get_antiscion_axis_info():get_name(), antiscion:get_difference()))
|
||||
end
|
||||
end
|
@ -1,55 +0,0 @@
|
||||
#!/bin/env perl
|
||||
package SweGlib;
|
||||
|
||||
use utf8;
|
||||
use strict;
|
||||
use POSIX;
|
||||
use Glib::Object::Introspection;
|
||||
|
||||
binmode STDOUT, ':encoding(UTF-8)';
|
||||
|
||||
Glib::Object::Introspection->setup(basename => 'SweGlib', version => '2.0', package => 'SweGlib');
|
||||
|
||||
package main;
|
||||
|
||||
SweGlib::init();
|
||||
|
||||
my $timestamp = SweGlib::Timestamp->new();
|
||||
$timestamp->set_gregorian_full(1983, 3, 7, 11, 54, 45, 0, 1);
|
||||
|
||||
my $moment = SweGlib::Moment->new();
|
||||
$moment->set_timestamp($timestamp);
|
||||
$moment->set_coordinates(19.03991, 47.49801, 280);
|
||||
$moment->set_house_system("placidus");
|
||||
$moment->add_all_planets();
|
||||
|
||||
my $all_planets = $moment->get_all_planets();
|
||||
foreach my $planet (@{$all_planets}) {
|
||||
my $position = $planet->get_position();
|
||||
my $sign_position = POSIX::fmod($position, 30);
|
||||
my $degree = POSIX::floor($sign_position);
|
||||
my $minute = POSIX::floor(($sign_position - $degree) * 60);
|
||||
my $second = POSIX::floor((($sign_position - $degree) * 60 - $minute) * 60);
|
||||
|
||||
printf("%s: %f (%d°%d′%d″ %s)\n", $planet->get_planet_info()->get_name(), $position, $degree, $minute, $second, $planet->get_sign_info()->get_name());
|
||||
}
|
||||
|
||||
my $all_aspects = $moment->get_all_aspects();
|
||||
foreach my $aspect (@{$all_aspects}) {
|
||||
if ($aspect->get_aspect() ne "none") {
|
||||
my $planet1 = $aspect->get_planet1();
|
||||
my $planet2 = $aspect->get_planet2();
|
||||
|
||||
printf("%s in %s with %s (±%.2f%%)\n", $planet1->get_planet_info()->get_name(), $aspect->get_aspect_info->get_name(), $planet2->get_planet_info()->get_name(), $aspect->get_difference());
|
||||
}
|
||||
}
|
||||
|
||||
my $all_antiscia = $moment->get_all_antiscia();
|
||||
foreach my $antiscion (@{$all_antiscia}) {
|
||||
if ($antiscion->get_axis() ne "none") {
|
||||
my $planet1 = $antiscion->get_planet1();
|
||||
my $planet2 = $antiscion->get_planet2();
|
||||
|
||||
printf("%s is antiscion of %s on axis %s (±%.2f%%)\n", $planet1->get_planet_info()->get_name(), $planet2->get_planet_info()->get_name(), $antiscion->get_antiscion_axis_info()->get_name(), $antiscion->get_difference());
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from gi.repository import SweGlib
|
||||
import math
|
||||
import codecs
|
||||
import sys
|
||||
|
||||
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
|
||||
|
||||
SweGlib.init()
|
||||
|
||||
timestamp = SweGlib.Timestamp()
|
||||
timestamp.set_gregorian_full(1983, 3, 7, 11, 54, 45, 0, 1)
|
||||
|
||||
moment = SweGlib.Moment()
|
||||
moment.set_timestamp(timestamp)
|
||||
moment.set_coordinates(19.03991, 47.49801, 280)
|
||||
moment.set_house_system(SweGlib.HouseSystem.PLACIDUS)
|
||||
moment.add_all_planets()
|
||||
|
||||
all_planets = moment.get_all_planets()
|
||||
for planet in all_planets:
|
||||
position = planet.get_position()
|
||||
sign_position = position % 30
|
||||
degree = math.floor(sign_position)
|
||||
minute = math.floor((sign_position - degree) * 60)
|
||||
second = math.floor(((sign_position - degree) * 60 - minute) * 60)
|
||||
|
||||
print u"%s: %f (%d°%d′%d″ %s)" % (planet.get_planet_info().get_name(), position, degree, minute, second, planet.get_sign_info().get_name())
|
||||
|
||||
all_aspects = moment.get_all_aspects()
|
||||
for aspect in all_aspects:
|
||||
if aspect.get_aspect() != SweGlib.Aspect.NONE:
|
||||
planet1 = aspect.get_planet1()
|
||||
planet2 = aspect.get_planet2()
|
||||
|
||||
print u"%s in %s with %s (±%.2f%%)" % (planet1.get_planet_info().get_name(), aspect.get_aspect_info().get_name(), planet2.get_planet_info().get_name(), aspect.get_difference())
|
||||
|
||||
all_antiscia = moment.get_all_antiscia()
|
||||
for antiscion in all_antiscia:
|
||||
if antiscion.get_axis() != SweGlib.AntiscionAxis.NONE:
|
||||
planet1 = antiscion.get_planet1()
|
||||
planet2 = antiscion.get_planet2()
|
||||
|
||||
print u"%s is antiscion of %s on axis %s (±%.2f%%)" % (planet1.get_planet_info().get_name(), planet2.get_planet_info().get_name(), antiscion.get_antiscion_axis_info().get_name(), antiscion.get_difference())
|
2
po/hu.po
2
po/hu.po
@ -86,7 +86,7 @@ msgid "Dark Moon"
|
||||
msgstr "Sötét Hold"
|
||||
|
||||
#: ../src/swe-glib.c:133
|
||||
msgid "Ascendant"
|
||||
msgid "Ascendent"
|
||||
msgstr "Aszcendens"
|
||||
|
||||
#: ../src/swe-glib.c:134
|
||||
|
105
src/Makefile.am
105
src/Makefile.am
@ -1,100 +1,52 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
include $(top_srcdir)/swe-glib.mk
|
||||
|
||||
AM_CPPFLAGS = -DG_LOG_DOMAIN=\"SWE-GLib\" -DLOCALEDIR=\"$(localedir)\" -D__SWE_GLIB_BUILDING__ -DPKGDATADIR=\"$(pkgdatadir)\"
|
||||
|
||||
lib_LTLIBRARIES = libswe-glib-2.0.la
|
||||
lib_LTLIBRARIES = libswe-glib-1.0.la
|
||||
|
||||
INST_H_SRC_FILES = \
|
||||
swe-glib.h \
|
||||
gswe-types.h \
|
||||
gswe-moon-phase-data.h \
|
||||
gswe-sign-info.h \
|
||||
gswe-planet-info.h \
|
||||
gswe-planet-data.h \
|
||||
gswe-aspect-info.h \
|
||||
gswe-aspect-data.h \
|
||||
gswe-antiscion-axis-info.h \
|
||||
gswe-antiscion-data.h \
|
||||
gswe-house-system-info.h \
|
||||
gswe-house-data.h \
|
||||
gswe-moment.h \
|
||||
gswe-timestamp.h \
|
||||
$(NULL)
|
||||
swe-glib.h \
|
||||
gswe-types.h \
|
||||
gswe-moment.h \
|
||||
gswe-timestamp.h
|
||||
|
||||
INST_H_BUILT_FILES = \
|
||||
gswe-enumtypes.h \
|
||||
gswe-version.h \
|
||||
$(NULL)
|
||||
gswe-enumtypes.h
|
||||
|
||||
PRIV_H_SRC_FILES = \
|
||||
swe-glib-private.h \
|
||||
gswe-moon-phase-data-private.h \
|
||||
gswe-sign-info-private.h \
|
||||
gswe-planet-info-private.h \
|
||||
gswe-planet-data-private.h \
|
||||
gswe-aspect-info-private.h \
|
||||
gswe-aspect-data-private.h \
|
||||
gswe-antiscion-axis-info-private.h \
|
||||
gswe-antiscion-data-private.h \
|
||||
gswe-house-system-info-private.h \
|
||||
gswe-house-data-private.h \
|
||||
$(NULL)
|
||||
gswe_headers = gswe-timestamp.h gswe-types.h
|
||||
|
||||
gswe_enum_headers = gswe-timestamp.h gswe-types.h
|
||||
|
||||
libswe_glib_2_0_la_SOURCES = \
|
||||
swe-glib.c \
|
||||
gswe-types.c \
|
||||
gswe-moon-phase-data.c \
|
||||
gswe-sign-info.c \
|
||||
gswe-planet-info.c \
|
||||
gswe-planet-data.c \
|
||||
gswe-aspect-info.c \
|
||||
gswe-aspect-data.c \
|
||||
gswe-antiscion-axis-info.c \
|
||||
gswe-antiscion-data.c \
|
||||
gswe-house-system-info.c \
|
||||
gswe-house-data.c \
|
||||
gswe-moment.c \
|
||||
gswe-timestamp.c \
|
||||
gswe-enumtypes.c \
|
||||
gswe-version.c \
|
||||
$(NULL)
|
||||
|
||||
libswe_glib_2_0_la_CFLAGS = $(GLIB_CFLAGS) $(GOBJECT_CFLAGS) -Wall
|
||||
libswe_glib_2_0_la_LIBADD = $(GLIB_LIBS) $(GOBJECT_LIBS) -lswe
|
||||
libswe_glib_2_0_la_DEPENDENCIES = \
|
||||
libswe_glib_1_0_la_SOURCES = \
|
||||
swe-glib.c \
|
||||
gswe-types.c \
|
||||
gswe-moment.c \
|
||||
gswe-timestamp.c \
|
||||
gswe-enumtypes.c \
|
||||
$(NULL)
|
||||
libswe_glib_1_0_la_CFLAGS = $(GLIB_CFLAGS) $(GOBJECT_CFLAGS) -Wall
|
||||
libswe_glib_1_0_la_LIBADD = $(GLIB_LIBS) $(GOBJECT_LIBS) $(LIBSWE_LIBS)
|
||||
|
||||
BUILT_SOURCES = gswe-enumtypes.c gswe-enumtypes.h
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
EXTRA_DIST = gswe-enumtypes.h.template gswe-enumtypes.c.template $(PRIV_H_SRC_FILES) $(INST_H_SRC_FILES)
|
||||
EXTRA_DIST = gswe-enumtypes.h.template gswe-enumtypes.c.template swe-glib-private.h $(INST_H_SRC_FILES)
|
||||
|
||||
gswe-enumtypes.h: $(gswe_enum_headers) gswe-enumtypes.h.template
|
||||
gswe-enumtypes.h: $(gswe_headers) gswe-enumtypes.h.template
|
||||
$(GLIB_MKENUMS) --template $(filter %.template,$^) $(filter-out %.template,$^) > \
|
||||
gswe-enumtypes.h.tmp && mv gswe-enumtypes.h.tmp gswe-enumtypes.h
|
||||
|
||||
gswe-enumtypes.c: $(gswe_enum_headers) gswe-enumtypes.h gswe-enumtypes.c.template
|
||||
gswe-enumtypes.c: $(gswe_headers) gswe-enumtypes.h gswe-enumtypes.c.template
|
||||
$(GLIB_MKENUMS) --template $(filter %.template,$^) $(filter-out %.template,$^) > \
|
||||
gswe-enumtypes.c.tmp && mv gswe-enumtypes.c.tmp gswe-enumtypes.c
|
||||
|
||||
SweGlib-2.0.vapi: SweGlib-$(SWE_GLIB_API_VERSION).gir
|
||||
$(AM_V_GEN)$(VAPIGEN) --library=SweGlib-2.0 SweGlib-2.0.gir
|
||||
|
||||
if HAVE_INTROSPECTION
|
||||
|
||||
include $(INTROSPECTION_MAKEFILE)
|
||||
SweGlib-$(SWE_GLIB_API_VERSION).gir: libswe-glib-2.0.la
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_FILES = $(INST_H_SRC_FILES) $(INST_H_BUILT_FILES) $(filter %.c,$(libswe_glib_2_0_la_SOURCES))
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_LIBS = libswe-glib-2.0.la
|
||||
SweGlib-$(SWE_GLIB_API_VERSION).gir: libswe-glib-1.0.la
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_FILES = $(INST_H_SRC_FILES) $(INST_H_BUILT_FILES) $(filter %.c,$(libswe_glib_1_0_la_SOURCES))
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_LIBS = libswe-glib-1.0.la
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_SCANNERFLAGS = --identifier-prefix=Gswe --symbol-prefix=gswe --warn-all
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_INCLUDES = GLib-2.0 GObject-2.0
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_CFLAGS = -D__SWE_GLIB_BUILDING__ -I$(top_srcdir) -I$(srcdir) -I$(builddir)
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_LDFLAGS = $(GLIB_LIBS) $(GOBJECT_LIBS) -lswe
|
||||
SweGlib_@SWE_GLIB_API_VERSION_U@_gir_EXPORT_PACKAGES = swe-glib
|
||||
INTROSPECTION_GIRS = SweGlib-$(SWE_GLIB_API_VERSION).gir
|
||||
|
||||
@ -105,16 +57,15 @@ typelibsdir = $(libdir)/girepository-1.0
|
||||
typelibs_DATA = SweGlib-$(SWE_GLIB_API_VERSION).typelib
|
||||
|
||||
headerdir = $(includedir)/swe-glib
|
||||
header_DATA = \
|
||||
$(INST_H_SRC_FILES) \
|
||||
$(INST_H_BUILT_FILES) \
|
||||
header_DATA = \
|
||||
swe-glib.h \
|
||||
gswe-types.h \
|
||||
gswe-enumtypes.h \
|
||||
gswe-moment.h \
|
||||
gswe-timestamp.h \
|
||||
$(NULL)
|
||||
|
||||
|
||||
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
|
||||
|
||||
if HAVE_VAPIGEN
|
||||
vapidir = $(datadir)/vala/vapi
|
||||
vapi_DATA = SweGlib-$(SWE_GLIB_API_VERSION).vapi
|
||||
endif
|
||||
|
||||
endif
|
||||
|
@ -1,46 +0,0 @@
|
||||
/* gswe-antiscion-axis-info-private.h: Private parts of GsweAntiscionAxisInfo
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_ANTISCION_AXIS_INFO_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_ANTISCION_AXIS_INFO_PRIVATE_H__
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-antiscion-axis-info.h"
|
||||
|
||||
struct _GsweAntiscionAxisInfo {
|
||||
/* the identifier of this mirror's axis */
|
||||
GsweAntiscionAxis axis;
|
||||
|
||||
/* represents the sign in whict the mirror axis starts */
|
||||
GsweSignInfo *start_sign;
|
||||
|
||||
/* the name of the mirror */
|
||||
gchar *name;
|
||||
|
||||
/* if TRUE, the axis runs through the middle of its starting sign */
|
||||
gdouble sign_offset;
|
||||
|
||||
/* Reference counter */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ANTISCION_AXIS_INFO_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
@ -1,290 +0,0 @@
|
||||
/* gswe-antiscion-axis-info.c: Antiscion axis related information
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "swe-glib.h"
|
||||
#include "swe-glib-private.h"
|
||||
#include "gswe-antiscion-axis-info.h"
|
||||
#include "gswe-antiscion-axis-info-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:gswe-antiscion-axis-info
|
||||
* @short_description: a structure storing information about antiscion axes
|
||||
* @title: GsweAntiscionAxisInfo
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
*
|
||||
* The #GsweAntiscionAxisInfo stores information about an antiscion axis.
|
||||
*/
|
||||
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GsweAntiscionAxisInfo,
|
||||
gswe_antiscion_axis_info,
|
||||
(GBoxedCopyFunc)gswe_antiscion_axis_info_ref,
|
||||
(GBoxedFreeFunc)gswe_antiscion_axis_info_unref
|
||||
);
|
||||
|
||||
static void
|
||||
gswe_antiscion_axis_info_free(GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
if (antiscion_axis_info->name) {
|
||||
g_free(antiscion_axis_info->name);
|
||||
}
|
||||
|
||||
if (antiscion_axis_info->start_sign != NULL) {
|
||||
gswe_sign_info_unref(antiscion_axis_info->start_sign);
|
||||
}
|
||||
|
||||
g_free(antiscion_axis_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_new:
|
||||
*
|
||||
* Creates a new #GsweAntiscionAxisInfo object with reference count set to 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweAntiscionAxisInfo
|
||||
*/
|
||||
GsweAntiscionAxisInfo *
|
||||
gswe_antiscion_axis_info_new(void)
|
||||
{
|
||||
GsweAntiscionAxisInfo *ret;
|
||||
|
||||
ret = g_new0(GsweAntiscionAxisInfo, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_ref:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Increases reference count on @antiscion_axis_info.
|
||||
*
|
||||
* Returns: (transfer none): the same #GsweAntiscionAxisInfo
|
||||
*/
|
||||
GsweAntiscionAxisInfo *
|
||||
gswe_antiscion_axis_info_ref(GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
antiscion_axis_info->refcount++;
|
||||
|
||||
return antiscion_axis_info;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_unref:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Decreases reference count on @antiscion_axis_info. If reference count
|
||||
* reaches zero, @antiscion_axis_info is freed.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_axis_info_unref(GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
if (--antiscion_axis_info->refcount == 0) {
|
||||
gswe_antiscion_axis_info_free(antiscion_axis_info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_set_axis:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
* @axis: the new axis
|
||||
*
|
||||
* Sets the axis ID.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_axis_info_set_axis(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
GsweAntiscionAxis axis)
|
||||
{
|
||||
antiscion_axis_info->axis = axis;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_get_axis:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Gets the axis ID.
|
||||
*
|
||||
* Returns: the axis this #GsweAntiscionAxisInfo represents
|
||||
*/
|
||||
GsweAntiscionAxis
|
||||
gswe_antiscion_axis_info_get_axis(GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
return antiscion_axis_info->axis;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_set_start_sign_info:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
* @sign_info: a #GsweSignInfo to set as the starting sign of
|
||||
* @antiscion_axis_info
|
||||
*
|
||||
* Sets the starting sign of the axis.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_axis_info_set_start_sign_info(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
GsweSignInfo *sign_info)
|
||||
{
|
||||
if (antiscion_axis_info->start_sign != NULL) {
|
||||
gswe_sign_info_unref(antiscion_axis_info->start_sign);
|
||||
}
|
||||
|
||||
antiscion_axis_info->start_sign = gswe_sign_info_ref(sign_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_get_start_sign_info:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Gets the starting sign of the axis.
|
||||
*
|
||||
* Returns: (transfer none): the #GsweSignInfo of the sign in which this axis
|
||||
* starts
|
||||
*/
|
||||
GsweSignInfo *
|
||||
gswe_antiscion_axis_info_get_start_sign_info(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
return antiscion_axis_info->start_sign;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_set_start_sign:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
* @sign: the new starting sign of @antiscion_axis_info
|
||||
* @err: a #GError
|
||||
*
|
||||
* Sets the starting sign of the axis. Unlike
|
||||
* gswe_antiscion_axis_info_set_start_sign(), this method searches through the
|
||||
* registered signs for a #GsweSignInfo record, and sets that as the starting
|
||||
* sign. @err is populated with GSWE_ERROR_UNKNOWN_SIGN if such record can not
|
||||
* be found.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_axis_info_set_start_sign(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
GsweZodiac sign,
|
||||
GError **err)
|
||||
{
|
||||
GsweSignInfo *sign_info;
|
||||
|
||||
if ((sign_info = g_hash_table_lookup(
|
||||
gswe_sign_info_table,
|
||||
GINT_TO_POINTER(sign)
|
||||
)) == NULL) {
|
||||
g_warning("Trying to fetch an unregistered sign");
|
||||
g_set_error(
|
||||
err,
|
||||
GSWE_ERROR, GSWE_ERROR_UNKNOWN_SIGN,
|
||||
"The requested sign is not registered"
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (antiscion_axis_info->start_sign != NULL) {
|
||||
gswe_sign_info_unref(antiscion_axis_info->start_sign);
|
||||
}
|
||||
|
||||
antiscion_axis_info->start_sign = gswe_sign_info_ref(sign_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_get_start_sign:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Gets the starting sign of the axis.
|
||||
*
|
||||
* Returns: the corresponding sign ID
|
||||
*/
|
||||
GsweZodiac
|
||||
gswe_antiscion_axis_info_get_start_sign(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
if (antiscion_axis_info->start_sign) {
|
||||
return antiscion_axis_info->start_sign->sign;
|
||||
} else {
|
||||
return GSWE_SIGN_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_set_name:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
* @name: the new name of the axis
|
||||
*
|
||||
* Sets the name of the axis
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_axis_info_set_name(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
const gchar *name)
|
||||
{
|
||||
if (antiscion_axis_info->name != NULL) {
|
||||
g_free(antiscion_axis_info->name);
|
||||
}
|
||||
|
||||
antiscion_axis_info->name = g_strdup(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_get_name:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Gets the name of the axis.
|
||||
*
|
||||
* Returns: (transfer none): the name of the axis
|
||||
*/
|
||||
const gchar *
|
||||
gswe_antiscion_axis_info_get_name(GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
return antiscion_axis_info->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_set_sign_offset:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
* @sign_offset: the new sign offset, in degree
|
||||
*
|
||||
* Sets the offset at which the axis starts.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_axis_info_set_sign_offset(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
gdouble sign_offset)
|
||||
{
|
||||
antiscion_axis_info->sign_offset = sign_offset;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_axis_info_get_sign_offset:
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Gets the offset at which the axis starts.
|
||||
*
|
||||
* Returns: the offset, in degrees
|
||||
*/
|
||||
gdouble
|
||||
gswe_antiscion_axis_info_get_sign_offset(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
return antiscion_axis_info->sign_offset;
|
||||
}
|
||||
|
@ -1,88 +0,0 @@
|
||||
/* gswe-antiscion-axis-info.h: Antiscion axis related information
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_ANTISCION_AXIS_INFO_H__
|
||||
#define __SWE_GLIB_GSWE_ANTISCION_AXIS_INFO_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-sign-info.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GsweAntiscionAxisInfo:
|
||||
*
|
||||
* <structname>GsweAntiscionAxisInfo</structname> is an opaque structure whose
|
||||
* members cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GsweAntiscionAxisInfo GsweAntiscionAxisInfo;
|
||||
|
||||
GType gswe_antiscion_axis_info_get_type(void);
|
||||
#define GSWE_TYPE_ANTISCION_AXIS_INFO (gswe_antiscion_axis_info_get_type())
|
||||
|
||||
GsweAntiscionAxisInfo *gswe_antiscion_axis_info_new(void);
|
||||
|
||||
GsweAntiscionAxisInfo *gswe_antiscion_axis_info_ref(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info);
|
||||
|
||||
void gswe_antiscion_axis_info_unref(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info);
|
||||
|
||||
void gswe_antiscion_axis_info_set_axis(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
GsweAntiscionAxis axis);
|
||||
|
||||
GsweAntiscionAxis gswe_antiscion_axis_info_get_axis(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info);
|
||||
|
||||
void gswe_antiscion_axis_info_set_start_sign_info(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
GsweSignInfo *sign_info);
|
||||
|
||||
GsweSignInfo *gswe_antiscion_axis_info_get_start_sign_info(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info);
|
||||
|
||||
void gswe_antiscion_axis_info_set_start_sign(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
GsweZodiac sign,
|
||||
GError **err);
|
||||
|
||||
GsweZodiac gswe_antiscion_axis_info_get_start_sign(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info);
|
||||
|
||||
void gswe_antiscion_axis_info_set_name(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
const gchar *name);
|
||||
|
||||
const gchar *gswe_antiscion_axis_info_get_name(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info);
|
||||
|
||||
void gswe_antiscion_axis_info_set_sign_offset(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
gdouble sign_offset);
|
||||
|
||||
gdouble gswe_antiscion_axis_info_get_sign_offset(
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ANTISCION_AXIS_INFO_H__ */
|
||||
|
@ -1,48 +0,0 @@
|
||||
/* gswe-antiscion-data-private.h: Private parts of GsweAntiscionData
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_ANTISCION_DATA_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_ANTISCION_DATA_PRIVATE_H__
|
||||
|
||||
#include "gswe-planet-data.h"
|
||||
|
||||
#include "gswe-antiscion-data.h"
|
||||
|
||||
struct _GsweAntiscionData {
|
||||
/* the first planet in the antiscion */
|
||||
GswePlanetData *planet1;
|
||||
|
||||
/* the second planet in the antiscion */
|
||||
GswePlanetData *planet2;
|
||||
|
||||
/* the #GsweAntiscionAxisInfo structure associated with this antiscion */
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info;
|
||||
|
||||
/* the difference in degrees between an exact antiscion and this given
|
||||
* antiscion */
|
||||
gdouble difference;
|
||||
|
||||
/* reference count */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ANTISCION_DATA_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
@ -1,425 +0,0 @@
|
||||
/* gswe-antiscion-data.c: Antiscia related data
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include <math.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "swe-glib-private.h"
|
||||
#include "swe-glib.h"
|
||||
#include "gswe-antiscion-data.h"
|
||||
#include "gswe-antiscion-data-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:gswe-antiscion-data
|
||||
* @short_description: a structure representing a planet's position-related data
|
||||
* @title: GsweAntiscionData
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
* @see_also: #GsweAntiscionAxisInfo
|
||||
*
|
||||
* #GsweAntiscionData is a structure that represents an antiscion relationship
|
||||
* between two planets, based on a specified axis.
|
||||
*/
|
||||
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GsweAntiscionData,
|
||||
gswe_antiscion_data,
|
||||
(GBoxedCopyFunc)gswe_antiscion_data_ref,
|
||||
(GBoxedFreeFunc)gswe_antiscion_data_unref
|
||||
);
|
||||
|
||||
static void
|
||||
gswe_antiscion_data_free(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
if (antiscion_data->planet1) {
|
||||
gswe_planet_data_unref(antiscion_data->planet1);
|
||||
}
|
||||
|
||||
if (antiscion_data->planet2) {
|
||||
gswe_planet_data_unref(antiscion_data->planet2);
|
||||
}
|
||||
|
||||
if (antiscion_data->antiscion_axis_info) {
|
||||
gswe_antiscion_axis_info_unref(antiscion_data->antiscion_axis_info);
|
||||
}
|
||||
|
||||
g_free(antiscion_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_new:
|
||||
*
|
||||
* Creates a new #GsweAntiscionData object with reference count set to 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweAntiscionData object
|
||||
*/
|
||||
GsweAntiscionData *
|
||||
gswe_antiscion_data_new(void)
|
||||
{
|
||||
GsweAntiscionData *ret;
|
||||
|
||||
ret = g_new0(GsweAntiscionData, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* find_antiscion:
|
||||
* @axis_p: a pointer made with GINT_TO_POINTER(), holding the antiscion axis ID
|
||||
* @antiscion_axis_info: a GsweAntiscionAxisInfo, which will be checked against
|
||||
* @antiscion_data
|
||||
* @antiscion_data: a GsweAntiscionData, whose planets' positions will be
|
||||
* checked against @antiscion_axis_info
|
||||
*
|
||||
* This function is called internally by gswe_antiscion_data_calculate() to
|
||||
* check if the two planets in @antiscion_data are antiscia of each other on
|
||||
* the axis in @antiscion_axis_info
|
||||
*/
|
||||
static gboolean
|
||||
find_antiscion(
|
||||
gpointer axis_p,
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info,
|
||||
GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
GsweAntiscionAxis axis;
|
||||
gdouble start_point,
|
||||
axis_position,
|
||||
planet_orb;
|
||||
|
||||
if ((axis = GPOINTER_TO_INT(axis_p)) == GSWE_ANTISCION_AXIS_NONE) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
planet_orb = fmin(
|
||||
antiscion_data->planet1->planet_info->orb,
|
||||
antiscion_data->planet2->planet_info->orb
|
||||
);
|
||||
start_point = (antiscion_axis_info->start_sign->sign - 1) * 30.0;
|
||||
|
||||
start_point += antiscion_axis_info->sign_offset;
|
||||
|
||||
axis_position = 2 * start_point - antiscion_data->planet1->position;
|
||||
|
||||
if (axis_position < 0) {
|
||||
axis_position += 360.0;
|
||||
}
|
||||
|
||||
if ((antiscion_data->difference = fabs(
|
||||
antiscion_data->planet2->position - axis_position
|
||||
)) <= planet_orb) {
|
||||
antiscion_data->antiscion_axis_info = antiscion_axis_info;
|
||||
|
||||
return TRUE;
|
||||
} else {
|
||||
antiscion_data->difference = 0.0;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_calculate:
|
||||
* @antiscion_data: a #GsweAntiscionData
|
||||
*
|
||||
* Calculates the antiscion between the planets set in @antiscion_data. Planets
|
||||
* can be set either by calling gswe_antiscion_data_set_planet1() and
|
||||
* gswe_antiscion_data_set_planet2(), or by creating the #GsweAntiscionData
|
||||
* with gswe_antiscion_data_new_with_planets().
|
||||
*
|
||||
* <note><para>If the object is created by
|
||||
* gswe_antiscion_data_new_with_planets(), or when both planets are set by
|
||||
* calling gswe_antiscion_data_set_planet1() and
|
||||
* gswe_antiscion_data_set_planet2(), the antiscion information is
|
||||
* automatically calculated. However, when either planet's data changes, the
|
||||
* antiscion data is not calculated automatically, so if you expect the planets
|
||||
* to get a new position (e.g. the #GsweTimestamp changes in a #GsweMoment
|
||||
* which holds the @antiscion_data, in which case the planet positions are
|
||||
* automatically adjusted), this function should be called.</para></note>
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_data_calculate(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
if ((antiscion_data->antiscion_axis_info = g_hash_table_find(
|
||||
gswe_antiscion_axis_info_table,
|
||||
(GHRFunc)find_antiscion,
|
||||
antiscion_data
|
||||
)) == NULL) {
|
||||
antiscion_data->antiscion_axis_info = gswe_antiscion_axis_info_ref(
|
||||
g_hash_table_lookup(
|
||||
gswe_antiscion_axis_info_table,
|
||||
GINT_TO_POINTER(GSWE_ANTISCION_AXIS_NONE)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
gswe_antiscion_axis_info_ref(antiscion_data->antiscion_axis_info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_new_with_planets:
|
||||
* @planet1: a #GswePlanetData
|
||||
* @planet2: a #GswePlanetData
|
||||
*
|
||||
* Creates a new #GsweAntiscionData object with both planets initially set. The
|
||||
* respective antiscion is instantly calculated.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweAntiscionData
|
||||
*/
|
||||
GsweAntiscionData *
|
||||
gswe_antiscion_data_new_with_planets(
|
||||
GswePlanetData *planet1,
|
||||
GswePlanetData *planet2)
|
||||
{
|
||||
GsweAntiscionData *ret;
|
||||
|
||||
ret = gswe_antiscion_data_new();
|
||||
ret->planet1 = gswe_planet_data_ref(planet1);
|
||||
ret->planet2 = gswe_planet_data_ref(planet2);
|
||||
|
||||
gswe_antiscion_data_calculate(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_ref:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
*
|
||||
* Increases reference count on @antiscion_data.
|
||||
*
|
||||
* Returns: (transfer none): the same #GsweAntiscionData
|
||||
*/
|
||||
GsweAntiscionData *
|
||||
gswe_antiscion_data_ref(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
antiscion_data->refcount++;
|
||||
|
||||
return antiscion_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_unref:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
*
|
||||
* Decreases reference count on @antiscion_data. If reference count reaches
|
||||
* zero, @antiscion_data is freed.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_data_unref(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
if (antiscion_data == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (--antiscion_data->refcount == 0) {
|
||||
gswe_antiscion_data_free(antiscion_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_set_planet1:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
* @planet1: (in): a #GswePlanetData
|
||||
*
|
||||
* Sets @planet1 as the first planet of the antiscion.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_data_set_planet1(
|
||||
GsweAntiscionData *antiscion_data,
|
||||
GswePlanetData *planet1)
|
||||
{
|
||||
if (antiscion_data->planet1) {
|
||||
gswe_planet_data_unref(antiscion_data->planet1);
|
||||
}
|
||||
|
||||
antiscion_data->planet1 = gswe_planet_data_ref(planet1);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_get_planet1:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
*
|
||||
* Gets the first in the antiscion relationship.
|
||||
*
|
||||
* Returns: (transfer none): The #GswePlanetData associated with the first
|
||||
* planet.
|
||||
*/
|
||||
GswePlanetData *
|
||||
gswe_antiscion_data_get_planet1(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
return antiscion_data->planet1;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_set_planet2:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
* @planet2: (in): a #GswePlanetData
|
||||
*
|
||||
* Sets @planet2 as the second planet of the antiscion.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_data_set_planet2(
|
||||
GsweAntiscionData *antiscion_data,
|
||||
GswePlanetData *planet2)
|
||||
{
|
||||
if (antiscion_data->planet2) {
|
||||
gswe_planet_data_unref(antiscion_data->planet2);
|
||||
}
|
||||
|
||||
antiscion_data->planet2 = gswe_planet_data_ref(planet2);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_get_planet2:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
*
|
||||
* Gets the second in the antiscion relationship.
|
||||
*
|
||||
* Returns: (transfer none): The #GswePlanetData associated with the second
|
||||
* planet.
|
||||
*/
|
||||
GswePlanetData *
|
||||
gswe_antiscion_data_get_planet2(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
return antiscion_data->planet2;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_set_axis:
|
||||
* @antiscion_data: a #GsweAntiscionData
|
||||
* @axis: the axis to set in @antiscion_data
|
||||
* @err: a #GError
|
||||
*
|
||||
* Sets the antiscion axis, which must be known by SWE-GLib (e.g. by calling
|
||||
* gswe_init()). @err is populated with GSWE_ERROR_UNKNOWN_ANTISCION_AXIS if
|
||||
* the axis is not known.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_data_set_axis(
|
||||
GsweAntiscionData *antiscion_data,
|
||||
GsweAntiscionAxis axis,
|
||||
GError **err)
|
||||
{
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info;
|
||||
|
||||
if ((antiscion_axis_info = g_hash_table_lookup(
|
||||
gswe_antiscion_axis_info_table,
|
||||
GINT_TO_POINTER(axis)
|
||||
)) == NULL) {
|
||||
g_set_error(
|
||||
err,
|
||||
GSWE_ERROR, GSWE_ERROR_UNKNOWN_ANTISCION_AXIS,
|
||||
"Unknown antiscion axis"
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (antiscion_data->antiscion_axis_info) {
|
||||
gswe_antiscion_axis_info_unref(antiscion_data->antiscion_axis_info);
|
||||
}
|
||||
|
||||
antiscion_data->antiscion_axis_info = gswe_antiscion_axis_info_ref(
|
||||
antiscion_axis_info
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_get_axis:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
*
|
||||
* Gets the axis on which the antiscion relationship exists.
|
||||
*
|
||||
* Returns: the axis ID
|
||||
*/
|
||||
GsweAntiscionAxis
|
||||
gswe_antiscion_data_get_axis(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
if (antiscion_data->antiscion_axis_info) {
|
||||
return antiscion_data->antiscion_axis_info->axis;
|
||||
} else {
|
||||
return GSWE_ANTISCION_AXIS_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_set_antiscion_axis_info:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
* @antiscion_axis_info: (in): a #GsweAntiscionAxisInfo
|
||||
*
|
||||
* Sets @antiscion_axis_info as the axis of this #GsweAntiscionData.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_data_set_antiscion_axis_info(
|
||||
GsweAntiscionData *antiscion_data,
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info)
|
||||
{
|
||||
if (antiscion_data->antiscion_axis_info) {
|
||||
gswe_antiscion_axis_info_unref(antiscion_data->antiscion_axis_info);
|
||||
}
|
||||
|
||||
antiscion_data->antiscion_axis_info = gswe_antiscion_axis_info_ref(
|
||||
antiscion_axis_info
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_get_antiscion_axis_info:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
*
|
||||
* Gets the axis information related to the antiscion relationship's axis.
|
||||
*
|
||||
* Returns: (transfer none): the #GsweAntiscionAxisInfo associated with this
|
||||
* axis
|
||||
*/
|
||||
GsweAntiscionAxisInfo *
|
||||
gswe_antiscion_data_get_antiscion_axis_info(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
return antiscion_data->antiscion_axis_info;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_set_difference:
|
||||
* @antiscion_data: a #GsweAntiscionData
|
||||
* @difference: the difference from an exact antiscion, in degrees
|
||||
*
|
||||
* Sets the difference of this antiscion from an exact antiscion.
|
||||
*/
|
||||
void
|
||||
gswe_antiscion_data_set_difference(
|
||||
GsweAntiscionData *antiscion_data,
|
||||
gdouble difference)
|
||||
{
|
||||
antiscion_data->difference = difference;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_antiscion_data_get_difference:
|
||||
* @antiscion_data: (in): a #GsweAntiscionData
|
||||
*
|
||||
* Gets the difference between an exact antiscion and this antiscion
|
||||
* relationship.
|
||||
*
|
||||
* Returns: the difference, in degrees
|
||||
*/
|
||||
gdouble
|
||||
gswe_antiscion_data_get_difference(GsweAntiscionData *antiscion_data)
|
||||
{
|
||||
return antiscion_data->difference;
|
||||
}
|
||||
|
@ -1,78 +0,0 @@
|
||||
/* gswe-antiscion-data.h: Antiscia related data
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_ANTISCION_DATA_H__
|
||||
#define __SWE_GLIB_GSWE_ANTISCION_DATA_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-planet-data.h"
|
||||
#include "gswe-antiscion-axis-info.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GsweAntiscionData:
|
||||
*
|
||||
* <structname>GsweAntiscionData</structname> is an opaque structure whose
|
||||
* members cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GsweAntiscionData GsweAntiscionData;
|
||||
|
||||
GType gswe_antiscion_data_get_type(void);
|
||||
#define GSWE_TYPE_ANTISCION_DATA (gswe_antiscion_data_get_type())
|
||||
|
||||
GsweAntiscionData *gswe_antiscion_data_new(void);
|
||||
|
||||
GsweAntiscionData *gswe_antiscion_data_new_with_planets(
|
||||
GswePlanetData *planet1,
|
||||
GswePlanetData *planet2);
|
||||
|
||||
GsweAntiscionData *gswe_antiscion_data_ref(GsweAntiscionData *antiscion_data);
|
||||
|
||||
void gswe_antiscion_data_unref(GsweAntiscionData *antiscion_data);
|
||||
|
||||
void gswe_antiscion_data_calculate(GsweAntiscionData *antiscion_data);
|
||||
|
||||
void gswe_antiscion_data_set_planet1(
|
||||
GsweAntiscionData *antiscion_data,
|
||||
GswePlanetData *planet1);
|
||||
|
||||
GswePlanetData *gswe_antiscion_data_get_planet1(
|
||||
GsweAntiscionData *antiscion_data);
|
||||
|
||||
void gswe_antiscion_data_set_planet2(
|
||||
GsweAntiscionData *antiscion_data,
|
||||
GswePlanetData *planet2);
|
||||
|
||||
GswePlanetData *gswe_antiscion_data_get_planet2(
|
||||
GsweAntiscionData *antiscion_data);
|
||||
|
||||
GsweAntiscionAxis gswe_antiscion_data_get_axis(
|
||||
GsweAntiscionData *antiscion_data);
|
||||
|
||||
GsweAntiscionAxisInfo *gswe_antiscion_data_get_antiscion_axis_info(
|
||||
GsweAntiscionData *antiscion_data);
|
||||
|
||||
gdouble gswe_antiscion_data_get_difference(GsweAntiscionData *antiscion_data);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ANTISCION_DATA_H__ */
|
||||
|
@ -1,51 +0,0 @@
|
||||
/* gswe-aspect-data-private.h: Private parts of GsweAspectData
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_ASPECT_DATA_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_ASPECT_DATA_PRIVATE_H__
|
||||
|
||||
#include "gswe-aspect-data.h"
|
||||
#include "gswe-planet-data.h"
|
||||
|
||||
struct _GsweAspectData {
|
||||
/* the first planet in the aspect */
|
||||
GswePlanetData *planet1;
|
||||
|
||||
/* the second planet in the aspect */
|
||||
GswePlanetData *planet2;
|
||||
|
||||
/* the distance between the two planets, in degrees */
|
||||
gdouble distance;
|
||||
|
||||
/* the #GsweAspectInfo structure associated with the aspect */
|
||||
GsweAspectInfo *aspect_info;
|
||||
|
||||
/* the difference in percent between an exact aspect and this given
|
||||
* aspect */
|
||||
gdouble difference;
|
||||
|
||||
/* reference count */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
void gswe_aspect_data_calculate(GsweAspectData *aspect_data);
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ASPECT_DATA_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
@ -1,350 +0,0 @@
|
||||
/* gswe-aspect-data.c: Aspect related data
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include <math.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "swe-glib-private.h"
|
||||
#include "swe-glib.h"
|
||||
#include "gswe-planet-data-private.h"
|
||||
#include "gswe-planet-info-private.h"
|
||||
#include "gswe-aspect-info.h"
|
||||
#include "gswe-aspect-info-private.h"
|
||||
#include "gswe-aspect-data.h"
|
||||
#include "gswe-aspect-data-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:gswe-aspect-data
|
||||
* @short_description: a structure representing an aspect between two planets
|
||||
* @title: GsweAspectData
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
* @see_also: #GsweAspectInfo
|
||||
*
|
||||
* #GsweAspectData is a structure that represents two planets relation to each
|
||||
* other, like their aspect and the aspect's difference from an exact aspect.
|
||||
*/
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GsweAspectData,
|
||||
gswe_aspect_data,
|
||||
(GBoxedCopyFunc)gswe_aspect_data_ref,
|
||||
(GBoxedFreeFunc)gswe_aspect_data_unref
|
||||
);
|
||||
|
||||
static void
|
||||
gswe_aspect_data_free(GsweAspectData *aspect_data)
|
||||
{
|
||||
if (aspect_data->planet1) {
|
||||
gswe_planet_data_unref(aspect_data->planet1);
|
||||
}
|
||||
|
||||
if (aspect_data->planet2) {
|
||||
gswe_planet_data_unref(aspect_data->planet2);
|
||||
}
|
||||
|
||||
if (aspect_data->aspect_info) {
|
||||
gswe_aspect_info_unref(aspect_data->aspect_info);
|
||||
}
|
||||
|
||||
g_free(aspect_data);
|
||||
}
|
||||
|
||||
/*
|
||||
* find_aspect:
|
||||
* @aspect_p: a pointer made with GINT_TO_POINTER(), holding the aspect ID
|
||||
* @aspect_info: a GsweAspectInfo, which will be checked against @aspect_data
|
||||
* @aspect_data: a GsweAspectData, whose planets' positions will be checked
|
||||
* against @aspect_info
|
||||
*
|
||||
* This function is called internally by gswe_aspect_data_calculate() to check
|
||||
* if the two planets in @aspect_data are in aspect according to @aspect_info
|
||||
*/
|
||||
static gboolean
|
||||
find_aspect(
|
||||
gpointer aspect_p,
|
||||
GsweAspectInfo *aspect_info,
|
||||
GsweAspectData *aspect_data)
|
||||
{
|
||||
gdouble diff,
|
||||
planet_orb,
|
||||
aspect_orb;
|
||||
|
||||
diff = fabs(aspect_info->size - aspect_data->distance);
|
||||
planet_orb = fmin(
|
||||
aspect_data->planet1->planet_info->orb,
|
||||
aspect_data->planet2->planet_info->orb
|
||||
);
|
||||
aspect_orb = fmax(1.0, planet_orb - aspect_info->orb_modifier);
|
||||
|
||||
if (diff < aspect_orb) {
|
||||
aspect_data->aspect_info = gswe_aspect_info_ref(aspect_info);
|
||||
|
||||
if (aspect_info->size == 0) {
|
||||
aspect_data->difference = (1 - ((360.0 - diff) / 360.0)) * 100.0;
|
||||
} else {
|
||||
aspect_data->difference = (1
|
||||
- ((aspect_info->size - diff) / aspect_info->size)) * 100.0;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
gswe_aspect_data_calculate(GsweAspectData *aspect_data)
|
||||
{
|
||||
if ((aspect_data->distance = fabs(
|
||||
aspect_data->planet1->position
|
||||
- aspect_data->planet2->position
|
||||
)) > 180.0) {
|
||||
aspect_data->distance = 360.0 - aspect_data->distance;
|
||||
}
|
||||
|
||||
if ((aspect_data->aspect_info = g_hash_table_find(
|
||||
gswe_aspect_info_table,
|
||||
(GHRFunc)find_aspect, aspect_data
|
||||
)) == NULL) {
|
||||
aspect_data->aspect_info = gswe_aspect_info_ref(
|
||||
g_hash_table_lookup(
|
||||
gswe_aspect_info_table,
|
||||
GINT_TO_POINTER(GSWE_ASPECT_NONE)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
gswe_aspect_info_ref(aspect_data->aspect_info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_new:
|
||||
*
|
||||
* Creates a new #GsweAspectData with reference count set to 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweAspectData
|
||||
*/
|
||||
GsweAspectData *
|
||||
gswe_aspect_data_new(void)
|
||||
{
|
||||
GsweAspectData *ret;
|
||||
|
||||
gswe_init();
|
||||
|
||||
ret = g_new0(GsweAspectData, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_new_with_planets:
|
||||
* @planet1: (in): a #GswePlanetData
|
||||
* @planet2: (in): a #GswePlanetData
|
||||
*
|
||||
* Creates a new #GsweAspectData with a reference count of 1, and both planets
|
||||
* initially set. Also calculates the aspect between them.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweAspectData with all data set.
|
||||
*/
|
||||
GsweAspectData *
|
||||
gswe_aspect_data_new_with_planets(
|
||||
GswePlanetData *planet1,
|
||||
GswePlanetData *planet2)
|
||||
{
|
||||
GsweAspectData *ret;
|
||||
|
||||
ret = gswe_aspect_data_new();
|
||||
ret->planet1 = gswe_planet_data_ref(planet1);
|
||||
ret->planet2 = gswe_planet_data_ref(planet2);
|
||||
|
||||
gswe_aspect_data_calculate(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_ref:
|
||||
* @aspect_data: a #GsweAspectData
|
||||
*
|
||||
* Increases reference count of @aspect_data.
|
||||
*
|
||||
* Returns: (transfer none): the same #GsweAspectData
|
||||
*/
|
||||
GsweAspectData *
|
||||
gswe_aspect_data_ref(GsweAspectData *aspect_data)
|
||||
{
|
||||
aspect_data->refcount++;
|
||||
|
||||
return aspect_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_unref:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
*
|
||||
* Decreases reference count on @aspect_data. If reference count reaches zero,
|
||||
* @aspect_data is freed.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_data_unref(GsweAspectData *aspect_data)
|
||||
{
|
||||
if (aspect_data == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (--aspect_data->refcount == 0) {
|
||||
gswe_aspect_data_free(aspect_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_set_planet1:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
* @planet1: (in): a #GswePlanetData
|
||||
*
|
||||
* Sets @planet1 as the first planet of the aspect.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_data_set_planet1(
|
||||
GsweAspectData *aspect_data,
|
||||
GswePlanetData *planet1)
|
||||
{
|
||||
if (aspect_data->planet1) {
|
||||
gswe_planet_data_unref(aspect_data->planet1);
|
||||
}
|
||||
|
||||
aspect_data->planet1 = gswe_planet_data_ref(planet1);
|
||||
|
||||
if (planet1 && aspect_data->planet2) {
|
||||
gswe_aspect_data_calculate(aspect_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_get_planet1:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
*
|
||||
* Gets the first planet in the aspect.
|
||||
*
|
||||
* Returns: (transfer none): The #GswePlanetData associated with the first
|
||||
* planet
|
||||
*/
|
||||
GswePlanetData *
|
||||
gswe_aspect_data_get_planet1(GsweAspectData *aspect_data)
|
||||
{
|
||||
return aspect_data->planet1;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_set_planet2:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
* @planet2: (in): a #GswePlanetData
|
||||
*
|
||||
* Sets @planet2 as the second planet of the aspect.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_data_set_planet2(
|
||||
GsweAspectData *aspect_data,
|
||||
GswePlanetData *planet2)
|
||||
{
|
||||
if (aspect_data->planet2) {
|
||||
gswe_planet_data_unref(aspect_data->planet2);
|
||||
}
|
||||
|
||||
aspect_data->planet2 = gswe_planet_data_ref(planet2);
|
||||
|
||||
if (aspect_data->planet1 && planet2) {
|
||||
gswe_aspect_data_calculate(aspect_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_get_planet2:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
*
|
||||
* Gets the second planet in the aspect.
|
||||
*
|
||||
* Returns: (transfer none): The #GswePlanetData associated with the second
|
||||
* planet
|
||||
*/
|
||||
GswePlanetData *
|
||||
gswe_aspect_data_get_planet2(GsweAspectData *aspect_data)
|
||||
{
|
||||
return aspect_data->planet2;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_get_distance:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
*
|
||||
* Gets the exact distance between the two planets in the aspect.
|
||||
*
|
||||
* Returns: the distance, in degrees
|
||||
*/
|
||||
gdouble
|
||||
gswe_aspect_data_get_distance(GsweAspectData *aspect_data)
|
||||
{
|
||||
return aspect_data->distance;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_get_aspect:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
*
|
||||
* Gets the actual aspect between the two planets.
|
||||
*
|
||||
* Returns: the aspect ID
|
||||
*/
|
||||
GsweAspect
|
||||
gswe_aspect_data_get_aspect(GsweAspectData *aspect_data)
|
||||
{
|
||||
if (aspect_data->aspect_info) {
|
||||
return aspect_data->aspect_info->aspect;
|
||||
} else {
|
||||
return GSWE_ASPECT_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_get_aspect_info:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
*
|
||||
* Gets the the #GsweAspectInfo object for this aspect.
|
||||
*
|
||||
* Returns: (transfer none): a #GsweAspectInfo
|
||||
*/
|
||||
GsweAspectInfo *
|
||||
gswe_aspect_data_get_aspect_info(GsweAspectData *aspect_data)
|
||||
{
|
||||
return aspect_data->aspect_info;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_data_get_difference:
|
||||
* @aspect_data: (in): a #GsweAspectData
|
||||
*
|
||||
* Gets the difference between an exact aspect and this one.
|
||||
*
|
||||
* Returns: the difference in percent.
|
||||
*/
|
||||
gdouble
|
||||
gswe_aspect_data_get_difference(GsweAspectData *aspect_data)
|
||||
{
|
||||
return aspect_data->difference;
|
||||
}
|
||||
|
@ -1,76 +0,0 @@
|
||||
/* gswe-aspect-data.h: Aspect related data
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_ASPECT_DATA_H__
|
||||
#define __SWE_GLIB_GSWE_ASPECT_DATA_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-aspect-info.h"
|
||||
#include "gswe-planet-data.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GsweAspectData:
|
||||
*
|
||||
* <structname>GsweAspectData</structname> is an opaque structure whose members
|
||||
* cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GsweAspectData GsweAspectData;
|
||||
|
||||
GType gswe_aspect_data_get_type(void);
|
||||
|
||||
#define GSWE_TYPE_ASPECT_DATA (gswe_aspect_data_get_type())
|
||||
|
||||
GsweAspectData *gswe_aspect_data_new(void);
|
||||
|
||||
GsweAspectData *gswe_aspect_data_new_with_planets(
|
||||
GswePlanetData *planet1,
|
||||
GswePlanetData *planet2);
|
||||
|
||||
GsweAspectData *gswe_aspect_data_ref(GsweAspectData *aspect_data);
|
||||
|
||||
void gswe_aspect_data_unref(GsweAspectData *aspect_data);
|
||||
|
||||
void gswe_aspect_data_set_planet1(
|
||||
GsweAspectData *aspect_data,
|
||||
GswePlanetData *planet1);
|
||||
|
||||
GswePlanetData *gswe_aspect_data_get_planet1(GsweAspectData *aspect_data);
|
||||
|
||||
void gswe_aspect_data_set_planet2(
|
||||
GsweAspectData *aspect_data,
|
||||
GswePlanetData *planet2);
|
||||
|
||||
GswePlanetData *gswe_aspect_data_get_planet2(GsweAspectData *aspect_data);
|
||||
|
||||
gdouble gswe_aspect_data_get_distance(GsweAspectData *aspect_data);
|
||||
|
||||
GsweAspect gswe_aspect_data_get_aspect(GsweAspectData *aspect_data);
|
||||
|
||||
GsweAspectInfo *gswe_aspect_data_get_aspect_info(GsweAspectData *aspect_data);
|
||||
|
||||
gdouble gswe_aspect_data_get_difference(GsweAspectData *aspect_data);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ASPECT_DATA_H__ */
|
||||
|
@ -1,53 +0,0 @@
|
||||
/* gswe-aspect-info-private.h: Private parts of GsweAspectInfo
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_ASPECT_INFO_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_ASPECT_INFO_PRIVATE_H__
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-aspect-info.h"
|
||||
|
||||
struct _GsweAspectInfo {
|
||||
/* the identifier of this aspect */
|
||||
GsweAspect aspect;
|
||||
|
||||
/* the name of the aspect */
|
||||
gchar *name;
|
||||
|
||||
/* the size of the aspect, in degrees */
|
||||
guint size;
|
||||
|
||||
/* the modifier of the orb (the maximum allowable difference from an exact
|
||||
* orb) */
|
||||
gdouble orb_modifier;
|
||||
|
||||
/* shows whether this aspect is harmonic or not */
|
||||
gboolean harmonic;
|
||||
|
||||
/* shows whether this aspect is major (Ptolemaic) or not */
|
||||
gboolean major;
|
||||
|
||||
/** reference count */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ASPECT_INFO_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
@ -1,282 +0,0 @@
|
||||
/* gswe-aspect-info.c: Aspect related information
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-aspect-info.h"
|
||||
#include "gswe-aspect-info-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:gswe-aspect-info
|
||||
* @short_description: a structure storing information about an aspect
|
||||
* @title: GsweAspectInfo
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
*
|
||||
* The #GsweAspectInfo stores information about an aspect.
|
||||
*
|
||||
* <warning><para>Using set_* type of funcions on an already registered
|
||||
* #GsweAspectInfo can currently cause undocumented side effects, if a
|
||||
* #GsweMoment is already instantiated. Currently, this covers all
|
||||
* #GsweAspectInfo objects. In the future, registering custom aspects may be
|
||||
* possible; until then, you should never use such functions.</para></warning>
|
||||
*/
|
||||
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GsweAspectInfo,
|
||||
gswe_aspect_info,
|
||||
(GBoxedCopyFunc)gswe_aspect_info_ref,
|
||||
(GBoxedFreeFunc)gswe_aspect_info_unref
|
||||
);
|
||||
|
||||
static void
|
||||
gswe_aspect_info_free(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
if (aspect_info->name) {
|
||||
g_free(aspect_info->name);
|
||||
}
|
||||
|
||||
g_free(aspect_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_new:
|
||||
*
|
||||
* Creates a new #GsweAspectInfo with reference count set to 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweAspectInfo
|
||||
*/
|
||||
GsweAspectInfo *
|
||||
gswe_aspect_info_new(void)
|
||||
{
|
||||
GsweAspectInfo *ret;
|
||||
|
||||
ret = g_new0(GsweAspectInfo, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_ref:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Increases reference count on @aspect_info by one.
|
||||
*
|
||||
* Returns: (transfer none): the same #GsweAspectInfo
|
||||
*/
|
||||
GsweAspectInfo *
|
||||
gswe_aspect_info_ref(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
aspect_info->refcount++;
|
||||
|
||||
return aspect_info;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_unref:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Decreases reference count of @aspect_info by one. If reference count drops
|
||||
* to zero, @aspect_info is freed.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_info_unref(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
if (--aspect_info->refcount == 0) {
|
||||
gswe_aspect_info_free(aspect_info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_set_aspect:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
* @aspect: the aspect to set in @aspect_info
|
||||
*
|
||||
* Sets @aspect_info to represenc @aspect.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_info_set_aspect(GsweAspectInfo *aspect_info, GsweAspect aspect)
|
||||
{
|
||||
aspect_info->aspect = aspect;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_get_aspect:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Gets the aspect ID
|
||||
*/
|
||||
GsweAspect
|
||||
gswe_aspect_info_get_aspect(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
return aspect_info->aspect;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_set_name:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
* @name: (in): the name to be set as @aspect_info’s name
|
||||
*
|
||||
* Sets the name of @aspect_info to @name.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_info_set_name(GsweAspectInfo *aspect_info, const gchar *name)
|
||||
{
|
||||
if (aspect_info->name) {
|
||||
g_free(aspect_info->name);
|
||||
}
|
||||
|
||||
aspect_info->name = g_strdup(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_get_name:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Gets the name of this aspect. If NLS is enabled, name is translated in
|
||||
* gswe_init(), so if you switch locale in your program, it will remain in the
|
||||
* old locale. The returned string should not be freed or modified. It remains
|
||||
* valid until @aspect_info exists.
|
||||
*
|
||||
* Returns: (transfer none): the name of the aspect
|
||||
*/
|
||||
const gchar *
|
||||
gswe_aspect_info_get_name(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
return aspect_info->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_set_size:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
* @size: the new size for @aspect_info, in degrees
|
||||
*
|
||||
* Sets the size of @aspect info.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_info_set_size(GsweAspectInfo *aspect_info, gdouble size)
|
||||
{
|
||||
aspect_info->size = size;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_get_size:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Gets the size of the aspect.
|
||||
*
|
||||
* Returns: the size of the aspect, in degrees
|
||||
*/
|
||||
gdouble
|
||||
gswe_aspect_info_get_size(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
return aspect_info->size;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_set_orb_modifier:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
* @orb_modifier: the new orb modifier of @aspect_info
|
||||
*
|
||||
* Sets the orb modifier for @aspect_info. The orb modifier is used in aspect
|
||||
* calculation; if the difference between an exact aspect and the distance
|
||||
* between two positions exceeds this limit, the aspect is not considered.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_info_set_orb_modifier(
|
||||
GsweAspectInfo *aspect_info,
|
||||
gdouble orb_modifier)
|
||||
{
|
||||
aspect_info->orb_modifier = orb_modifier;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_get_orb_modifier:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Gets the orb modifier of this aspect. The orb modifier is subtracted from
|
||||
* the planets' orb during aspect calculation.
|
||||
*
|
||||
* Returns: the orb modifier, in degrees
|
||||
*/
|
||||
gdouble
|
||||
gswe_aspect_info_get_orb_modifier(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
return aspect_info->orb_modifier;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_set_harmonic:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
* @harmonic: TRUE, if @aspect_info should be considered harmonic; FALSE
|
||||
* otherwise
|
||||
*
|
||||
* Sets the harmonic state of @aspect_info.
|
||||
*/
|
||||
void
|
||||
gswe_aspect_info_set_harmonic(GsweAspectInfo *aspect_info, gboolean harmonic)
|
||||
{
|
||||
aspect_info->harmonic = harmonic;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_get_harmonic:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Tells if this aspect is considered harmonic.
|
||||
*
|
||||
* Returns: TRUE if the aspect is harmonic; FALSE otherwise
|
||||
*/
|
||||
gboolean
|
||||
gswe_aspect_info_get_harmonic(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
return aspect_info->harmonic;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_set_major:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
* @major: TRUE, if @aspect_info should be considered major (Ptolemaic); FALSE
|
||||
* otherwise
|
||||
*
|
||||
* Sets the major state of @aspect_info.
|
||||
*
|
||||
* <note><para>As all Ptolemaic aspects are registered during gswe_init(), you
|
||||
* should never set @major to TRUE on new aspects.</para></note>
|
||||
*/
|
||||
void
|
||||
gswe_aspect_info_set_major(GsweAspectInfo *aspect_info, gboolean major)
|
||||
{
|
||||
aspect_info->major = major;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_aspect_info_get_major:
|
||||
* @aspect_info: (in): a #GsweAspectInfo
|
||||
*
|
||||
* Gets the significance of the aspect, e.g. if its Ptolemaic or note.
|
||||
*
|
||||
* Returns: TRUE if the aspect is a major (Ptolemaic) one; FALSE otherwise
|
||||
*/
|
||||
gboolean
|
||||
gswe_aspect_info_get_major(GsweAspectInfo *aspect_info)
|
||||
{
|
||||
return aspect_info->major;
|
||||
}
|
||||
|
@ -1,78 +0,0 @@
|
||||
/* gswe-aspect-info.h: Aspect related information
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_ASPECT_INFO_H__
|
||||
#define __SWE_GLIB_GSWE_ASPECT_INFO_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GsweAspectInfo:
|
||||
*
|
||||
* <structname>GsweAspectInfo</structname> is an opaque structure whose members
|
||||
* cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GsweAspectInfo GsweAspectInfo;
|
||||
|
||||
GType gswe_aspect_info_get_type(void);
|
||||
#define GSWE_TYPE_ASPECT_INFO (gswe_aspect_info_get_type())
|
||||
|
||||
GsweAspectInfo *gswe_aspect_info_new(void);
|
||||
|
||||
GsweAspectInfo *gswe_aspect_info_ref(GsweAspectInfo *aspect_info);
|
||||
|
||||
void gswe_aspect_info_unref(GsweAspectInfo *aspect_info);
|
||||
|
||||
void gswe_aspect_info_set_aspect(
|
||||
GsweAspectInfo *aspect_info,
|
||||
GsweAspect aspect);
|
||||
|
||||
GsweAspect gswe_aspect_info_get_aspect(GsweAspectInfo *aspect_info);
|
||||
|
||||
void gswe_aspect_info_set_name(GsweAspectInfo *aspect_info, const gchar *name);
|
||||
|
||||
const gchar *gswe_aspect_info_get_name(GsweAspectInfo *aspect_info);
|
||||
|
||||
void gswe_aspect_info_set_size(GsweAspectInfo *aspect_info, gdouble size);
|
||||
|
||||
gdouble gswe_aspect_info_get_size(GsweAspectInfo *aspect_info);
|
||||
|
||||
void gswe_aspect_info_set_orb_modifier(
|
||||
GsweAspectInfo *aspect_info,
|
||||
gdouble orb_modifier);
|
||||
|
||||
gdouble gswe_aspect_info_get_orb_modifier(GsweAspectInfo *aspect_info);
|
||||
|
||||
void gswe_aspect_info_set_harmonic(
|
||||
GsweAspectInfo *aspect_info,
|
||||
gboolean harmonic);
|
||||
|
||||
gboolean gswe_aspect_info_get_harmonic(GsweAspectInfo *aspect_info);
|
||||
|
||||
void gswe_aspect_info_set_major(GsweAspectInfo *aspect_info, gboolean major);
|
||||
gboolean gswe_aspect_info_get_major(GsweAspectInfo *aspect_info);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_ASPECT_INFO_H__ */
|
||||
|
@ -16,13 +16,12 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "swe-glib.h"
|
||||
#include "gswe-enumtypes.h"
|
||||
#include "@filename@"
|
||||
|
||||
/*** END file-header ***/
|
||||
|
||||
/*** BEGIN file-production ***/
|
||||
#include "@filename@"
|
||||
/* enumerations from "@filename@" */
|
||||
/*** END file-production ***/
|
||||
|
||||
@ -32,28 +31,19 @@ GType
|
||||
{
|
||||
static volatile gsize g_define_type_id__volatile = 0;
|
||||
|
||||
gswe_init();
|
||||
|
||||
if (g_once_init_enter(&g_define_type_id__volatile)) {
|
||||
static const G@Type@Value values[] = {
|
||||
/*** END value-header ***/
|
||||
|
||||
/*** BEGIN value-production ***/
|
||||
{
|
||||
@VALUENAME@,
|
||||
"@VALUENAME@",
|
||||
"@valuenick@"
|
||||
},
|
||||
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
|
||||
/*** END value-production ***/
|
||||
|
||||
/*** BEGIN value-tail ***/
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
|
||||
GType g_define_type_id = g_@type@_register_static(
|
||||
g_intern_static_string("@EnumName@"),
|
||||
values
|
||||
);
|
||||
GType g_define_type_id = g_@type@_register_static(g_intern_static_string("@EnumName@"), values);
|
||||
|
||||
g_once_init_leave(&g_define_type_id__volatile, g_define_type_id);
|
||||
}
|
||||
|
@ -1,44 +0,0 @@
|
||||
/* gswe-house-data-private.h: Private parts of GsweHouseData
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_HOUSE_DATA_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_HOUSE_DATA_PRIVATE_H__
|
||||
|
||||
#include "gswe-house-data.h"
|
||||
|
||||
struct _GsweHouseData {
|
||||
/* the number of the house (usually in the range [1;12]. Sometimes may be
|
||||
* [1;36]) */
|
||||
guint house;
|
||||
|
||||
/* the position of the house's cusp on the sky */
|
||||
gdouble cusp_position;
|
||||
|
||||
/* the #GsweSignInfo structure associated with the sign in which the house
|
||||
* cusp is in */
|
||||
GsweSignInfo *sign_info;
|
||||
|
||||
/* reference count */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_HOUSE_DATA_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
@ -1,165 +0,0 @@
|
||||
/* gswe-house-data.c: House related data
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "gswe-types.h"
|
||||
|
||||
#include "swe-glib-private.h"
|
||||
#include "swe-glib.h"
|
||||
#include "gswe-house-data.h"
|
||||
#include "gswe-house-data-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:gswe-house-data
|
||||
* @short_description: a structure representing a house's position-related data
|
||||
* @title: GsweHouseData
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
* @see_also: #GsweHouseSystemInfo
|
||||
*
|
||||
* #GsweHouseData is a structure that represents a house's position.
|
||||
*/
|
||||
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GsweHouseData,
|
||||
gswe_house_data,
|
||||
(GBoxedCopyFunc)gswe_house_data_ref,
|
||||
(GBoxedFreeFunc)gswe_house_data_unref
|
||||
);
|
||||
|
||||
static void
|
||||
gswe_house_data_free(GsweHouseData *house_data)
|
||||
{
|
||||
if (house_data->sign_info) {
|
||||
gswe_sign_info_unref(house_data->sign_info);
|
||||
}
|
||||
|
||||
g_free(house_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_data_new:
|
||||
*
|
||||
* Creates a new #GsweHouseData with reference count set to 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweHouseData
|
||||
*/
|
||||
GsweHouseData *
|
||||
gswe_house_data_new(void)
|
||||
{
|
||||
GsweHouseData *ret;
|
||||
|
||||
ret = g_new0(GsweHouseData, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_data_ref:
|
||||
* @house_data: a #GsweHouseData
|
||||
*
|
||||
* Increases reference count on @house_data by one.
|
||||
*
|
||||
* Returns: (transfer none): the same #GsweHouseData
|
||||
*/
|
||||
GsweHouseData *
|
||||
gswe_house_data_ref(GsweHouseData *house_data)
|
||||
{
|
||||
house_data->refcount++;
|
||||
|
||||
return house_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_data_unref:
|
||||
* @house_data: a #GsweHouseData
|
||||
*
|
||||
* Decreases reference count on @house_data by one. If reference count drops to
|
||||
* zero, @house_data is freed.
|
||||
*/
|
||||
void
|
||||
gswe_house_data_unref(GsweHouseData *house_data)
|
||||
{
|
||||
if (house_data == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (--house_data->refcount == 0) {
|
||||
gswe_house_data_free(house_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_data_get_house:
|
||||
* @house_data: (in): a #GsweHouseData
|
||||
*
|
||||
* Gets the number of the house.
|
||||
*
|
||||
* Returns: the house number
|
||||
*/
|
||||
guint
|
||||
gswe_house_data_get_house(GsweHouseData *house_data)
|
||||
{
|
||||
return house_data->house;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_data_get_cusp_position:
|
||||
* @house_data: (in): a #GsweHouseData
|
||||
*
|
||||
* Gets the position of the house's cusp.
|
||||
*
|
||||
* Returns: the cusp position, in degrees
|
||||
*/
|
||||
gdouble
|
||||
gswe_house_data_get_cusp_position(GsweHouseData *house_data)
|
||||
{
|
||||
return house_data->cusp_position;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_data_get_sign:
|
||||
* @house_data: a #GsweHouseData
|
||||
*
|
||||
* Gets the sign which the house's cusp is in.
|
||||
*
|
||||
* Returns: the GsweZodiac of the house cusp's sign
|
||||
*/
|
||||
GsweZodiac
|
||||
gswe_house_data_get_sign(GsweHouseData *house_data)
|
||||
{
|
||||
if (house_data->sign_info) {
|
||||
return house_data->sign_info->sign;
|
||||
} else {
|
||||
return GSWE_SIGN_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_data_get_sign_info:
|
||||
* @house_data: (in): a #GsweHouseData
|
||||
*
|
||||
* Gets the #GsweSignInfo that represents the sign which the house's cusp is in.
|
||||
*
|
||||
* Returns: (transfer none): a #GsweSignInfo representing the sign
|
||||
*/
|
||||
GsweSignInfo *
|
||||
gswe_house_data_get_sign_info(GsweHouseData *house_data)
|
||||
{
|
||||
return house_data->sign_info;
|
||||
}
|
||||
|
@ -1,53 +0,0 @@
|
||||
/* gswe-house-data.h: House related data
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_HOUSE_DATA_H__
|
||||
#define __SWE_GLIB_GSWE_HOUSE_DATA_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-sign-info.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GsweHouseData:
|
||||
*
|
||||
* <structname>GsweHouseData</structname> is an opaque structure whose members
|
||||
* cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GsweHouseData GsweHouseData;
|
||||
|
||||
GType gswe_house_data_get_type(void);
|
||||
#define GSWE_TYPE_HOUSE_DATA (gswe_house_data_get_type())
|
||||
|
||||
GsweHouseData *gswe_house_data_new(void);
|
||||
|
||||
GsweHouseData *gswe_house_data_ref(GsweHouseData *house_data);
|
||||
void gswe_house_data_unref(GsweHouseData *house_data);
|
||||
|
||||
guint gswe_house_data_get_house(GsweHouseData *house_data);
|
||||
gdouble gswe_house_data_get_cusp_position(GsweHouseData *house_data);
|
||||
GsweZodiac gswe_house_data_get_sign(GsweHouseData *house_data);
|
||||
GsweSignInfo *gswe_house_data_get_sign_info(GsweHouseData *house_data);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_HOUSE_DATA_H__ */
|
||||
|
@ -1,45 +0,0 @@
|
||||
/* gswe-house-system-info-private.h: Private parts of GsweHouseSystemInfo
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_HOUSE_SYSTEM_INFO_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_HOUSE_SYSTEM_INFO_PRIVATE_H__
|
||||
|
||||
#include "gswe-types.h"
|
||||
|
||||
#include "gswe-house-system-info.h"
|
||||
|
||||
struct _GsweHouseSystemInfo {
|
||||
/* the house system's ID */
|
||||
GsweHouseSystem house_system;
|
||||
|
||||
/* the character value that represents this house system in the Swiss
|
||||
* Ephemeris library */
|
||||
gchar sweph_id;
|
||||
|
||||
/* the name of this house system */
|
||||
gchar *name;
|
||||
|
||||
/* reference count */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_HOUSE_SYSTEM_INFO_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
@ -1,189 +0,0 @@
|
||||
/* gswe-house-system-info.c: House system information
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-house-system-info.h"
|
||||
#include "gswe-house-system-info-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:gswe-house-system-info
|
||||
* @short_description: a structure storing information about a house system
|
||||
* @title: GsweHouseSystemInfo
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
*
|
||||
* #GsweHouseSystemInfo stores information of a house system.
|
||||
*/
|
||||
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GsweHouseSystemInfo,
|
||||
gswe_house_system_info,
|
||||
(GBoxedCopyFunc)gswe_house_system_info_ref,
|
||||
(GBoxedFreeFunc)gswe_house_system_info_unref
|
||||
);
|
||||
|
||||
static void
|
||||
gswe_house_system_info_free(GsweHouseSystemInfo *house_system_info)
|
||||
{
|
||||
if (house_system_info->name) {
|
||||
g_free(house_system_info->name);
|
||||
}
|
||||
|
||||
g_free(house_system_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_new:
|
||||
*
|
||||
* Creates a new #GsweHouseSystemInfo with reference count of 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweHouseSystemInfo
|
||||
*/
|
||||
GsweHouseSystemInfo *
|
||||
gswe_house_system_info_new(void)
|
||||
{
|
||||
GsweHouseSystemInfo *ret;
|
||||
|
||||
ret = g_new0(GsweHouseSystemInfo, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_ref:
|
||||
* @house_system_info: (in): a #GsweHouseSystemInfo
|
||||
*
|
||||
* Increases reference count on @house_system_info by one.
|
||||
*
|
||||
* Returns: (transfer none): the same #GsweHouseSystemInfo
|
||||
*/
|
||||
GsweHouseSystemInfo *
|
||||
gswe_house_system_info_ref(GsweHouseSystemInfo *house_system_info)
|
||||
{
|
||||
house_system_info->refcount++;
|
||||
|
||||
return house_system_info;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_unref:
|
||||
* @house_system_info: a #GsweHouseSystemInfo
|
||||
*
|
||||
* Decreases reference count on @house_system_info by one. If reference count
|
||||
* drops to zero, @house_system_info is freed.
|
||||
*/
|
||||
void
|
||||
gswe_house_system_info_unref(GsweHouseSystemInfo *house_system_info)
|
||||
{
|
||||
if (--house_system_info->refcount == 0) {
|
||||
gswe_house_system_info_free(house_system_info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_set_house_system:
|
||||
* @house_system_info: (in): a #GsweHouseSystemInfo
|
||||
* @house_system: a #GsweHouseSystem
|
||||
*
|
||||
* Sets up @house_system_info to represent @house_system.
|
||||
*/
|
||||
void
|
||||
gswe_house_system_info_set_house_system(
|
||||
GsweHouseSystemInfo *house_system_info,
|
||||
GsweHouseSystem house_system)
|
||||
{
|
||||
house_system_info->house_system = house_system;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_get_house_system:
|
||||
* @house_system_info: (in): a #GsweHouseSystemInfo
|
||||
*
|
||||
* Gets the house system ID this #GsweHouseSystemInfo represents.
|
||||
*
|
||||
* Returns: the house system ID
|
||||
*/
|
||||
GsweHouseSystem
|
||||
gswe_house_system_info_get_house_system(GsweHouseSystemInfo *house_system_info)
|
||||
{
|
||||
return house_system_info->house_system;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_set_sweph_id:
|
||||
* @house_system_info: a #GsweHouseSystemInfo
|
||||
* @sweph_id: a character recognized by Swiss Ephemeris as a house system
|
||||
*
|
||||
* Sets up @house_system_info to represent the Swiss Ephemeris house system
|
||||
* marked by @sweph_id.
|
||||
*/
|
||||
void
|
||||
gswe_house_system_info_set_sweph_id(
|
||||
GsweHouseSystemInfo *house_system_info,
|
||||
gchar sweph_id)
|
||||
{
|
||||
house_system_info->sweph_id = sweph_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_get_sweph_id:
|
||||
* @house_system_info: (in): a #GsweHouseSystemInfo
|
||||
*
|
||||
* Gets the Swiss Ephemeris ID for the house system.
|
||||
*
|
||||
* Returns: the character representing this house system in Swiss Ephemeris
|
||||
*/
|
||||
gchar
|
||||
gswe_house_system_info_get_sweph_id(GsweHouseSystemInfo *house_system_info)
|
||||
{
|
||||
return house_system_info->sweph_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_set_name:
|
||||
* @house_system_info: a #GsweHouseSystemInfo
|
||||
* @name: the new name for this house system
|
||||
*
|
||||
* Sets the name of @house_system_info.
|
||||
*/
|
||||
void
|
||||
gswe_house_system_info_set_name(
|
||||
GsweHouseSystemInfo *house_system_info,
|
||||
const gchar *name)
|
||||
{
|
||||
if (house_system_info->name) {
|
||||
g_free(house_system_info->name);
|
||||
}
|
||||
|
||||
house_system_info->name = g_strdup(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_house_system_info_get_name:
|
||||
* @house_system_info: (in): a #GsweHouseSystemInfo
|
||||
*
|
||||
* Gets the name of the house system.
|
||||
*
|
||||
* Returns: (transfer none): the name of the house system
|
||||
*/
|
||||
const gchar *
|
||||
gswe_house_system_info_get_name(GsweHouseSystemInfo *house_system_info)
|
||||
{
|
||||
return house_system_info->name;
|
||||
}
|
||||
|
@ -1,71 +0,0 @@
|
||||
/* gswe-house-system-info.h: House system information
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_HOUSE_SYSTEM_INFO_H__
|
||||
#define __SWE_GLIB_GSWE_HOUSE_SYSTEM_INFO_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GsweHouseSystemInfo:
|
||||
*
|
||||
* <structname>GsweHouseSystemInfo</structname> is an opaque structure whose
|
||||
* members cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GsweHouseSystemInfo GsweHouseSystemInfo;
|
||||
|
||||
GType gswe_house_system_info_get_type(void);
|
||||
#define GSWE_TYPE_HOUSE_SYSTEM_INFO (gswe_house_system_info_get_type())
|
||||
|
||||
GsweHouseSystemInfo *gswe_house_system_info_new(void);
|
||||
|
||||
GsweHouseSystemInfo *gswe_house_system_info_ref(
|
||||
GsweHouseSystemInfo *house_system_info);
|
||||
|
||||
void gswe_house_system_info_unref(GsweHouseSystemInfo *house_system_info);
|
||||
|
||||
void gswe_house_system_info_set_house_system(
|
||||
GsweHouseSystemInfo *house_system_info,
|
||||
GsweHouseSystem house_system);
|
||||
|
||||
GsweHouseSystem gswe_house_system_info_get_house_system(
|
||||
GsweHouseSystemInfo *house_system_info);
|
||||
|
||||
void gswe_house_system_info_set_sweph_id(
|
||||
GsweHouseSystemInfo *house_system_info,
|
||||
gchar sweph_id);
|
||||
|
||||
gchar gswe_house_system_info_get_sweph_id(
|
||||
GsweHouseSystemInfo *house_system_info);
|
||||
|
||||
void gswe_house_system_info_set_name(
|
||||
GsweHouseSystemInfo *house_system_info,
|
||||
const gchar *name);
|
||||
|
||||
const gchar *gswe_house_system_info_get_name(
|
||||
GsweHouseSystemInfo *house_system_info);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_HOUSE_SYSTEM_INFO_H__ */
|
||||
|
1120
src/gswe-moment.c
1120
src/gswe-moment.c
File diff suppressed because it is too large
Load Diff
@ -21,34 +21,54 @@
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-timestamp.h"
|
||||
#include "gswe-moon-phase-data.h"
|
||||
#include "gswe-planet-data.h"
|
||||
#include "gswe-types.h"
|
||||
|
||||
#define GSWE_TYPE_MOMENT (gswe_moment_get_type())
|
||||
#define GSWE_MOMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST( \
|
||||
(obj), \
|
||||
GSWE_TYPE_MOMENT, \
|
||||
GsweMoment))
|
||||
#define GSWE_IS_MOMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE( \
|
||||
(obj), \
|
||||
GSWE_TYPE_MOMENT))
|
||||
#define GSWE_MOMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST( \
|
||||
(klass), \
|
||||
GSWE_TYPE_MOMENT, \
|
||||
GsweMomentClass))
|
||||
#define GSWE_IS_MOMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE( \
|
||||
(klass), \
|
||||
GSWE_TYPE_MOMENT))
|
||||
#define GSWE_MOMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS( \
|
||||
(obj), \
|
||||
GSWE_TYPE_MOMENT, \
|
||||
GsweMomentClass))
|
||||
#define GSWE_MOMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GSWE_TYPE_MOMENT, GsweMoment))
|
||||
#define GSWE_IS_MOMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GSWE_TYPE_MOMENT))
|
||||
#define GSWE_MOMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GSWE_TYPE_MOMENT, GsweMomentClass))
|
||||
#define GSWE_IS_MOMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GSWE_TYPE_MOMENT))
|
||||
#define GSWE_MOMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GSWE_TYPE_MOMENT, GsweMomentClass))
|
||||
|
||||
typedef struct _GsweMoment GsweMoment;
|
||||
typedef struct _GsweMomentClass GsweMomentClass;
|
||||
typedef struct _GsweMomentPrivate GsweMomentPrivate;
|
||||
|
||||
/**
|
||||
* GSWE_MOMENT_ERROR:
|
||||
*
|
||||
* Error domain for GsweMoment. Errors in this domain will be from
|
||||
* #GsweMomentError enumeration. See #GError for more information on error
|
||||
* domains.
|
||||
*/
|
||||
#define GSWE_MOMENT_ERROR gswe_moment_error_quark()
|
||||
GQuark gswe_moment_error_quark(void);
|
||||
|
||||
/**
|
||||
* GsweMomentError:
|
||||
* @GSWE_MOMENT_ERROR_SUCCESS: no error
|
||||
* @GSWE_MOMENT_ERROR_UNKNOWN_HSYS: house system provided is unknown (a
|
||||
* #GsweHouseSystem value must be passed)
|
||||
* @GSWE_MOMENT_ERROR_UNKNOWN_SIGN: an unknown zodiac sign is calculated
|
||||
* @GSWE_MOMENT_ERROR_NONADDED_PLANET: the referenced planet is not added to
|
||||
* the GsweMoment object
|
||||
* @GSWE_MOMENT_ERROR_SWE_ERROR_NONFATAL: an error reported by the Swiss
|
||||
* Ephemeris library. Errors marked with
|
||||
* this value are not fatal, so it's
|
||||
* more like a warning
|
||||
* @GSWE_MOMENT_ERROR_SWE_ERROR_FATAL: a fatal error reported by the Swiss
|
||||
* Ephemeris library
|
||||
*
|
||||
* Error codes returned by GsweMoment functions.
|
||||
*/
|
||||
typedef enum {
|
||||
GSWE_MOMENT_ERROR_SUCCESS,
|
||||
GSWE_MOMENT_ERROR_UNKNOWN_HSYS,
|
||||
GSWE_MOMENT_ERROR_UNKNOWN_SIGN,
|
||||
GSWE_MOMENT_ERROR_NONADDED_PLANET,
|
||||
GSWE_MOMENT_ERROR_SWE_ERROR_NONFATAL,
|
||||
GSWE_MOMENT_ERROR_SWE_ERROR_FATAL
|
||||
} GsweMomentError;
|
||||
|
||||
/**
|
||||
* GsweMoment:
|
||||
*
|
||||
@ -103,97 +123,40 @@ GType gswe_moment_get_type(void);
|
||||
|
||||
/* Method definitions */
|
||||
GsweMoment *gswe_moment_new(void);
|
||||
|
||||
GsweMoment *gswe_moment_new_full(
|
||||
GsweTimestamp *timestamp,
|
||||
gdouble longitude,
|
||||
gdouble latitude,
|
||||
gdouble altitude,
|
||||
GsweHouseSystem house_system);
|
||||
GsweMoment *gswe_moment_new_full(GsweTimestamp *timestamp, gdouble longitude, gdouble latitude, gdouble altitude, GsweHouseSystem house_system);
|
||||
|
||||
void gswe_moment_set_timestamp(GsweMoment *moment, GsweTimestamp *timestamp);
|
||||
|
||||
GsweTimestamp *gswe_moment_get_timestamp(GsweMoment *moment);
|
||||
|
||||
void gswe_moment_set_coordinates(
|
||||
GsweMoment *moment,
|
||||
gdouble longitude,
|
||||
gdouble latitude,
|
||||
gdouble altitude);
|
||||
|
||||
void gswe_moment_set_coordinates(GsweMoment *moment, gdouble longitude, gdouble latitude, gdouble altitude);
|
||||
GsweCoordinates *gswe_moment_get_coordinates(GsweMoment *moment);
|
||||
|
||||
void gswe_moment_set_house_system(
|
||||
GsweMoment *moment,
|
||||
GsweHouseSystem house_system);
|
||||
|
||||
void gswe_moment_set_house_system(GsweMoment *moment, GsweHouseSystem house_system);
|
||||
GsweHouseSystem gswe_moment_get_house_system(GsweMoment *moment);
|
||||
|
||||
GList *gswe_moment_get_house_cusps(GsweMoment *moment, GError **err);
|
||||
|
||||
gint gswe_moment_get_house(GsweMoment *moment, gdouble position, GError **err);
|
||||
|
||||
gboolean gswe_moment_has_planet(GsweMoment *moment, GswePlanet planet);
|
||||
|
||||
void gswe_moment_add_planet(
|
||||
GsweMoment *moment,
|
||||
GswePlanet planet,
|
||||
GError **err);
|
||||
|
||||
void gswe_moment_add_planet(GsweMoment *moment, GswePlanet planet);
|
||||
void gswe_moment_add_all_planets(GsweMoment *moment);
|
||||
|
||||
GList *gswe_moment_get_all_planets(GsweMoment *moment);
|
||||
|
||||
GswePlanetData *gswe_moment_get_planet(
|
||||
GsweMoment *moment,
|
||||
GswePlanet planet,
|
||||
GError **err);
|
||||
|
||||
const GswePlanetData *gswe_moment_get_planet(GsweMoment *moment, GswePlanet planet, GError **err);
|
||||
GList *gswe_moment_get_sign_planets(GsweMoment *moment, GsweZodiac sign);
|
||||
|
||||
GList *gswe_moment_get_house_planets(GsweMoment *moment, guint house);
|
||||
|
||||
guint gswe_moment_get_element_points(GsweMoment *moment, GsweElement element);
|
||||
|
||||
guint gswe_moment_get_quality_points(GsweMoment *moment, GsweQuality quality);
|
||||
|
||||
GsweMoonPhaseData *gswe_moment_get_moon_phase(GsweMoment *moment, GError **err);
|
||||
const GsweMoonPhaseData *gswe_moment_get_moon_phase(GsweMoment *moment, GError **err);
|
||||
|
||||
GList *gswe_moment_get_all_aspects(GsweMoment *moment);
|
||||
|
||||
GList *gswe_moment_get_planet_aspects(
|
||||
GsweMoment *moment,
|
||||
GswePlanet planet,
|
||||
GError **err);
|
||||
|
||||
GsweAspectData *gswe_moment_get_aspect_by_planets(
|
||||
GsweMoment *moment,
|
||||
GswePlanet planet1,
|
||||
GswePlanet planet2,
|
||||
GError **err);
|
||||
GList *gswe_moment_get_planet_aspects(GsweMoment *moment, GswePlanet planet, GError **err);
|
||||
|
||||
GList *gswe_moment_get_all_antiscia(GsweMoment *moment);
|
||||
|
||||
GList *gswe_moment_get_all_planet_antiscia(
|
||||
GsweMoment *moment,
|
||||
GswePlanet planet,
|
||||
GError **err);
|
||||
|
||||
GList *gswe_moment_get_axis_all_antiscia(
|
||||
GsweMoment *moment,
|
||||
GsweAntiscionAxis axis);
|
||||
|
||||
GList *gswe_moment_get_axis_planet_antiscia(
|
||||
GsweMoment *moment,
|
||||
GsweAntiscionAxis axis,
|
||||
GswePlanet planet,
|
||||
GError **err);
|
||||
|
||||
GsweAntiscionData *gswe_moment_get_antiscion_by_planets(
|
||||
GsweMoment *moment,
|
||||
GswePlanet planet1,
|
||||
GswePlanet planet2,
|
||||
GError **err);
|
||||
GList *gswe_moment_get_all_planet_antiscia(GsweMoment *moment, GswePlanet planet, GError **err);
|
||||
GList *gswe_moment_get_axis_all_antiscia(GsweMoment *moment, GsweAntiscionAxis axis);
|
||||
GList *gswe_moment_get_axis_planet_antiscia(GsweMoment *moment, GsweAntiscionAxis axis, GswePlanet planet, GError **err);
|
||||
|
||||
#endif /* __GSWE_MOMENT_H__ */
|
||||
|
||||
|
@ -1,40 +0,0 @@
|
||||
/* gswe-moon-phase-data-private.h: Private parts of GsweMoonPhaseData
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_MOON_PHASE_DATA_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_MOON_PHASE_DATA_PRIVATE_H__
|
||||
|
||||
#include "gswe-moon-phase-data.h"
|
||||
#include "gswe-types.h"
|
||||
|
||||
struct _GsweMoonPhaseData {
|
||||
/* the actual phase of the Moon */
|
||||
GsweMoonPhase phase;
|
||||
|
||||
/* the illumination percentage of the Moon */
|
||||
gdouble illumination;
|
||||
|
||||
/* reference count */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_MOON_PHASE_DATA_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
@ -1,206 +0,0 @@
|
||||
/* gswe-moon-phase-data.c: Moon phase representation
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include <math.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
|
||||
#include "swe-glib-private.h"
|
||||
#include "gswe-moon-phase-data.h"
|
||||
#include "gswe-moon-phase-data-private.h"
|
||||
#include "gswe-timestamp.h"
|
||||
|
||||
#define SYNODIC 29.53058867
|
||||
|
||||
/**
|
||||
* SECTION:gswe-moon-phase-data
|
||||
* @short_description: a structure representing the phase of the Moon
|
||||
* @title: GsweMoonPhaseData
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
* @see_also: #GsweMoonPhase
|
||||
*
|
||||
* #GsweMoonPhaseData is a structure that represents the actual phase of the
|
||||
* Moon, including its illumination percentage.
|
||||
*/
|
||||
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GsweMoonPhaseData,
|
||||
gswe_moon_phase_data,
|
||||
(GBoxedCopyFunc)gswe_moon_phase_data_ref,
|
||||
(GBoxedFreeFunc)gswe_moon_phase_data_unref);
|
||||
|
||||
/**
|
||||
* gswe_moon_phase_data_new:
|
||||
*
|
||||
* Creates a new #GsweMoonPhaseData object with reference count set to 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GsweMoonPhaseData object
|
||||
*/
|
||||
GsweMoonPhaseData *
|
||||
gswe_moon_phase_data_new(void)
|
||||
{
|
||||
GsweMoonPhaseData *ret;
|
||||
|
||||
ret = g_new0(GsweMoonPhaseData, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_moon_phase_data_ref:
|
||||
* @moon_phase_data: (in): a #GsweMoonPhaseData
|
||||
*
|
||||
* Increases reference count on @moon_phase_data by one.
|
||||
*
|
||||
* Returns: (transfer none): the same #GsweMoonPhaseData
|
||||
*/
|
||||
GsweMoonPhaseData *
|
||||
gswe_moon_phase_data_ref(GsweMoonPhaseData *moon_phase_data)
|
||||
{
|
||||
moon_phase_data->refcount++;
|
||||
|
||||
return moon_phase_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_moon_phase_data_unref:
|
||||
* @moon_phase_data: (in): a #GsweMoonPhaseData
|
||||
*
|
||||
* Decreases reference count on @moon_phase_data by one. If reference count
|
||||
* drops to zero, @moon_phase_data is freed.
|
||||
*/
|
||||
void
|
||||
gswe_moon_phase_data_unref(GsweMoonPhaseData *moon_phase_data)
|
||||
{
|
||||
if (moon_phase_data == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (--moon_phase_data->refcount == 0) {
|
||||
g_free(moon_phase_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_moon_phase_data_calculate_by_jd:
|
||||
* @moon_phase_data: a #GsweMoonPhaseData
|
||||
* @jd: a Julian Day number, with hours as fractions
|
||||
* @err: a #GError
|
||||
*
|
||||
* Calculates the moon at a given time, specified by @jd.
|
||||
*/
|
||||
void
|
||||
gswe_moon_phase_data_calculate_by_jd(
|
||||
GsweMoonPhaseData *moon_phase_data,
|
||||
gdouble jd,
|
||||
GError **err)
|
||||
{
|
||||
gdouble jdb,
|
||||
phase_percent;
|
||||
|
||||
jdb = gswe_timestamp_get_julian_day_et(gswe_full_moon_base_date, err);
|
||||
|
||||
if ((err) && (*err)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((phase_percent = fmod(((jd - jdb) * 100) / SYNODIC, 100)) < 0) {
|
||||
phase_percent += 100.0;
|
||||
}
|
||||
|
||||
if ((phase_percent < 0) || (phase_percent > 100)) {
|
||||
g_error("Error during Moon phase calculation!");
|
||||
}
|
||||
|
||||
moon_phase_data->illumination = (50.0 - fabs(phase_percent - 50.0)) * 2;
|
||||
|
||||
if (phase_percent == 0) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_NEW;
|
||||
} else if (phase_percent < 25) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_WAXING_CRESCENT;
|
||||
} else if (phase_percent == 25) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_WAXING_HALF;
|
||||
} else if (phase_percent < 50) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_WAXING_GIBBOUS;
|
||||
} else if (phase_percent == 50) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_FULL;
|
||||
} else if (phase_percent < 75) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_WANING_GIBBOUS;
|
||||
} else if (phase_percent == 75) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_WANING_HALF;
|
||||
} else if (phase_percent < 100) {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_WANING_CRESCENT;
|
||||
} else {
|
||||
moon_phase_data->phase = GSWE_MOON_PHASE_DARK;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_moon_phase_data_calculate_by_timestamp:
|
||||
* @moon_phase_data: a #GsweMoonPhaseData
|
||||
* @timestamp: a #GsweTimestamp with a valid timestamp set
|
||||
* @err: a #GError
|
||||
*
|
||||
* Calculates the moon at a given time, specified by @timestamp.
|
||||
*/
|
||||
void
|
||||
gswe_moon_phase_data_calculate_by_timestamp(
|
||||
GsweMoonPhaseData *moon_phase_data,
|
||||
GsweTimestamp *timestamp,
|
||||
GError **err)
|
||||
{
|
||||
gdouble jd;
|
||||
|
||||
jd = gswe_timestamp_get_julian_day_et(timestamp, err);
|
||||
|
||||
if (err && *err) {
|
||||
return;
|
||||
}
|
||||
|
||||
gswe_moon_phase_data_calculate_by_jd(moon_phase_data, jd, err);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_moon_phase_data_get_phase:
|
||||
* @moon_phase_data: (in): a GsweMoonPhaseData
|
||||
*
|
||||
* Gets the phase of the Moon in the given GsweMoonPhaseData.
|
||||
*
|
||||
* Returns: the Moon phase
|
||||
*/
|
||||
GsweMoonPhase
|
||||
gswe_moon_phase_data_get_phase(GsweMoonPhaseData *moon_phase_data)
|
||||
{
|
||||
return moon_phase_data->phase;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_moon_phase_data_get_illumination:
|
||||
* @moon_phase_data: (in): a GsweMoonPhaseData
|
||||
*
|
||||
* Gets the illumination percentage from the given GsweMoonPhaseData.
|
||||
*
|
||||
* Returns: the illumination percentage
|
||||
*/
|
||||
gdouble
|
||||
gswe_moon_phase_data_get_illumination(GsweMoonPhaseData *moon_phase_data)
|
||||
{
|
||||
return moon_phase_data->illumination;
|
||||
}
|
||||
|
@ -1,66 +0,0 @@
|
||||
/* gswe-moon-phase-data.h: Moon phase representation
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_MOON_PHASE_DATA_H__
|
||||
#define __SWE_GLIB_GSWE_MOON_PHASE_DATA_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-timestamp.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GsweMoonPhaseData:
|
||||
*
|
||||
* <structname>GsweMoonPhaseData</structname> is an opaque structure whose
|
||||
* members cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GsweMoonPhaseData GsweMoonPhaseData;
|
||||
|
||||
GsweMoonPhaseData *gswe_moon_phase_data_new(void);
|
||||
|
||||
GsweMoonPhaseData *gswe_moon_phase_data_ref(GsweMoonPhaseData *moon_phase_data);
|
||||
|
||||
void gswe_moon_phase_data_unref(GsweMoonPhaseData *moon_phase_data);
|
||||
|
||||
void gswe_moon_phase_data_calculate_by_jd(
|
||||
GsweMoonPhaseData *moon_phase_data,
|
||||
gdouble jd,
|
||||
GError **err);
|
||||
|
||||
void gswe_moon_phase_data_calculate_by_timestamp(
|
||||
GsweMoonPhaseData *moon_phase_data,
|
||||
GsweTimestamp *timestamp,
|
||||
GError **err);
|
||||
|
||||
GsweMoonPhase gswe_moon_phase_data_get_phase(
|
||||
GsweMoonPhaseData *moon_phase_data);
|
||||
|
||||
gdouble gswe_moon_phase_data_get_illumination(
|
||||
GsweMoonPhaseData *moon_phase_data);
|
||||
|
||||
GType gswe_moon_phase_data_get_type(void);
|
||||
#define GSWE_TYPE_MOON_PHASE_DATA (gswe_moon_phase_data_get_type())
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_MOON_PHASE_DATA_H__ */
|
||||
|
@ -1,53 +0,0 @@
|
||||
/* gswe-planet-data-private.h: Private parts of GswePlanetData
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_PLANET_DATA_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_PLANET_DATA_PRIVATE_H__
|
||||
|
||||
#include "gswe-planet-data.h"
|
||||
#include "gswe-planet-info.h"
|
||||
|
||||
struct _GswePlanetData {
|
||||
/* A GswePlanetInfo structure, holding every information about the planet */
|
||||
GswePlanetInfo *planet_info;
|
||||
|
||||
/* The longitude position of the planet */
|
||||
gdouble position;
|
||||
|
||||
/* TRUE if the planet is in retrograde motion */
|
||||
gboolean retrograde;
|
||||
|
||||
/* Number of the house in which the planet is in */
|
||||
gint house;
|
||||
|
||||
/* A GsweSignInfo structure, holding every information about the sign the
|
||||
* planet is in */
|
||||
GsweSignInfo *sign_info;
|
||||
|
||||
/* An internal version number of the calculation */
|
||||
guint revision;
|
||||
|
||||
/* reference count */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_PLANET_DATA_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
@ -1,306 +0,0 @@
|
||||
/* gswe-planet-data.c: Planetary positions
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "gswe-types.h"
|
||||
|
||||
#include "swe-glib-private.h"
|
||||
#include "swe-glib.h"
|
||||
#include "gswe-planet-data.h"
|
||||
#include "gswe-planet-data-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:gswe-planet-data
|
||||
* @short_description: a structure representing a planet's position-related data
|
||||
* @title: GswePlanetData
|
||||
* @stability: Stable
|
||||
* @include: swe-glib.h
|
||||
* @see_also: #GswePlanetInfo
|
||||
*
|
||||
* #GswePlanetData is a structure that represents a planet's position-related
|
||||
* data, like its actual position on the sky or the house and sign the planet
|
||||
* is in.
|
||||
*/
|
||||
|
||||
G_DEFINE_BOXED_TYPE(
|
||||
GswePlanetData,
|
||||
gswe_planet_data,
|
||||
(GBoxedCopyFunc)gswe_planet_data_ref,
|
||||
(GBoxedFreeFunc)gswe_planet_data_unref);
|
||||
|
||||
static void
|
||||
gswe_planet_data_free(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data->planet_info) {
|
||||
gswe_planet_info_unref(planet_data->planet_info);
|
||||
}
|
||||
|
||||
if (planet_data->sign_info) {
|
||||
gswe_sign_info_unref(planet_data->sign_info);
|
||||
}
|
||||
|
||||
g_free(planet_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_new:
|
||||
*
|
||||
* Creates a new #GswePlanetData object with reference count set to 1.
|
||||
*
|
||||
* Returns: (transfer full): a new #GswePlanetData
|
||||
*/
|
||||
GswePlanetData *
|
||||
gswe_planet_data_new(void)
|
||||
{
|
||||
GswePlanetData *ret;
|
||||
|
||||
ret = g_new0(GswePlanetData, 1);
|
||||
ret->refcount = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_ref:
|
||||
* @planet_data: a #GswePlanetData
|
||||
*
|
||||
* Increases reference count on @planet_data by one.
|
||||
*
|
||||
* Returns: (transfer none): the same #GswePlanetData
|
||||
*/
|
||||
GswePlanetData *
|
||||
gswe_planet_data_ref(GswePlanetData *planet_data)
|
||||
{
|
||||
planet_data->refcount++;
|
||||
|
||||
return planet_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_unref:
|
||||
* @planet_data: a #GswePlanetData
|
||||
*
|
||||
* Decreases reference count on @planet_data by one. If reference count drops
|
||||
* to zero, @planet_data is freed.
|
||||
*/
|
||||
void
|
||||
gswe_planet_data_unref(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (--planet_data->refcount == 0) {
|
||||
gswe_planet_data_free(planet_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_set_planet:
|
||||
* @planet_data: (in): a #GswePlanetData
|
||||
* @planet: the planet to add
|
||||
* @err: a #GError
|
||||
*
|
||||
* Sets @planet as the planet ID of @planet_data. @planet must be registered
|
||||
* via gswe_init(); otherwise, @err is populated with
|
||||
* GSWE_ERROR_UNKNOWN_PLANET, and the planet ID is not set.
|
||||
*/
|
||||
void
|
||||
gswe_planet_data_set_planet(
|
||||
GswePlanetData *planet_data,
|
||||
GswePlanet planet,
|
||||
GError **err)
|
||||
{
|
||||
GswePlanetInfo *planet_info;
|
||||
|
||||
if ((planet_info = g_hash_table_lookup(
|
||||
gswe_planet_info_table,
|
||||
GINT_TO_POINTER(planet)
|
||||
)) == NULL) {
|
||||
g_set_error(err,
|
||||
GSWE_ERROR, GSWE_ERROR_UNKNOWN_PLANET,
|
||||
"Planet is unknown"
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (planet_data->planet_info) {
|
||||
gswe_planet_info_unref(planet_data->planet_info);
|
||||
}
|
||||
|
||||
planet_data->planet_info = gswe_planet_info_ref(planet_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_get_planet:
|
||||
* @planet_data: (in): a #GswePlanetData
|
||||
*
|
||||
* Gets the planet ID for this #GswePlanetData.
|
||||
*
|
||||
* Returns: the planet ID
|
||||
*/
|
||||
GswePlanet
|
||||
gswe_planet_data_get_planet(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return GSWE_PLANET_NONE;
|
||||
}
|
||||
|
||||
if (planet_data->planet_info) {
|
||||
return planet_data->planet_info->planet;
|
||||
} else {
|
||||
return GSWE_PLANET_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_set_planet_info:
|
||||
* @planet_data: a #GswePlanetData
|
||||
* @planet_info: a #GswePlanetInfo
|
||||
*
|
||||
* Sets @planet_info as the planet information for @planet_data.
|
||||
*/
|
||||
void
|
||||
gswe_planet_data_set_planet_info(
|
||||
GswePlanetData *planet_data,
|
||||
GswePlanetInfo *planet_info)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (planet_data->planet_info) {
|
||||
gswe_planet_info_unref(planet_data->planet_info);
|
||||
}
|
||||
|
||||
planet_data->planet_info = gswe_planet_info_ref(planet_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_get_planet_info:
|
||||
* @planet_data: (in): a #GswePlanetData
|
||||
*
|
||||
* Gets the planet info related to this #GswePlanetData.
|
||||
*
|
||||
* Returns: (transfer none): the #GswePlanetInfo associated with this planet
|
||||
*/
|
||||
GswePlanetInfo *
|
||||
gswe_planet_data_get_planet_info(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return planet_data->planet_info;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_get_position:
|
||||
* @planet_data: (in): a #GswePlanetData
|
||||
*
|
||||
* Gets the position of the planet on the sky.
|
||||
*
|
||||
* Returns: the position, in degrees
|
||||
*/
|
||||
gdouble
|
||||
gswe_planet_data_get_position(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
return planet_data->position;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_get_retrograde:
|
||||
* @planet_data: (in): a #GswePlanetData
|
||||
*
|
||||
* Returns the planet's retrograde status, e.g. if it looks like it moves
|
||||
* backwards on the sky.
|
||||
*
|
||||
* Returns: TRUE, if the planet is in retrograde motion; FALSE otherwise
|
||||
*/
|
||||
gboolean
|
||||
gswe_planet_data_get_retrograde(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return planet_data->retrograde;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_get_house:
|
||||
* @planet_data: (in): a #GswePlanetData
|
||||
*
|
||||
* Gets the house number which the planet is in.
|
||||
*
|
||||
* Returns: a house number
|
||||
*/
|
||||
guint
|
||||
gswe_planet_data_get_house(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return planet_data->house;
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_get_sign:
|
||||
* @planet_data: a #GswePlanetData
|
||||
*
|
||||
* Gets the zodiac sign in which the planet is currently in. If the planet's
|
||||
* data is not calculated yet, this function yields GSWE_PLANET_NONE.
|
||||
*
|
||||
* Returns: a #GsweZodiac, which @planet_data is currently in
|
||||
*/
|
||||
GsweZodiac
|
||||
gswe_planet_data_get_sign(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return GSWE_SIGN_NONE;
|
||||
}
|
||||
|
||||
if (planet_data->sign_info) {
|
||||
return planet_data->sign_info->sign;
|
||||
} else {
|
||||
return GSWE_SIGN_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gswe_planet_data_get_sign_info:
|
||||
* @planet_data: (in): a #GswePlanetData
|
||||
*
|
||||
* Gets the sign which the planet is in.
|
||||
*
|
||||
* Returns: (transfer none): a #GsweSignInfo
|
||||
*/
|
||||
GsweSignInfo *
|
||||
gswe_planet_data_get_sign_info(GswePlanetData *planet_data)
|
||||
{
|
||||
if (planet_data == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return planet_data->sign_info;
|
||||
}
|
||||
|
@ -1,74 +0,0 @@
|
||||
/* gswe-planet-data.h: Planetary positions
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __SWE_GLIB_GSWE_PLANET_DATA_H__
|
||||
#define __SWE_GLIB_GSWE_PLANET_DATA_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-planet-info.h"
|
||||
#include "gswe-sign-info.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GswePlanetData:
|
||||
*
|
||||
* <structname>GswePlanetData</structname> is an opaque structure whose members
|
||||
* cannot be accessed directly.
|
||||
*
|
||||
* Since: 1.1
|
||||
*/
|
||||
typedef struct _GswePlanetData GswePlanetData;
|
||||
|
||||
GType gswe_planet_data_get_type(void);
|
||||
#define GSWE_TYPE_PLANET_DATA (gswe_planet_data_get_type())
|
||||
|
||||
GswePlanetData *gswe_planet_data_new(void);
|
||||
|
||||
GswePlanetData *gswe_planet_data_ref(GswePlanetData *planet_data);
|
||||
|
||||
void gswe_planet_data_unref(GswePlanetData *planet_data);
|
||||
|
||||
void gswe_planet_data_set_planet(
|
||||
GswePlanetData *planet_data,
|
||||
GswePlanet planet,
|
||||
GError **err);
|
||||
|
||||
GswePlanet gswe_planet_data_get_planet(GswePlanetData *planet_data);
|
||||
|
||||
void gswe_planet_data_set_planet_info(
|
||||
GswePlanetData *planet_data,
|
||||
GswePlanetInfo *planet_info);
|
||||
|
||||
GswePlanetInfo *gswe_planet_data_get_planet_info(GswePlanetData *planet_data);
|
||||
|
||||
gdouble gswe_planet_data_get_position(GswePlanetData *planet_data);
|
||||
|
||||
gboolean gswe_planet_data_get_retrograde(GswePlanetData *planet_data);
|
||||
|
||||
guint gswe_planet_data_get_house(GswePlanetData *planet_data);
|
||||
|
||||
GsweZodiac gswe_planet_data_get_sign(GswePlanetData *planet_data);
|
||||
|
||||
GsweSignInfo *gswe_planet_data_get_sign_info(GswePlanetData *planet_data);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_PLANET_DATA_H__ */
|
||||
|
@ -1,55 +0,0 @@
|
||||
/* gswe-planet-info-private.h: Private parts of GswePlanetInfo
|
||||
*
|
||||
* Copyright © 2013 Gergely Polonkai
|
||||
*
|
||||
* SWE-GLib is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SWE-GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifdef __SWE_GLIB_BUILDING__
|
||||
#ifndef __SWE_GLIB_GSWE_PLANET_INFO_PRIVATE_H__
|
||||
#define __SWE_GLIB_GSWE_PLANET_INFO_PRIVATE_H__
|
||||
|
||||
#include "gswe-types.h"
|
||||
#include "gswe-planet-info.h"
|
||||
|
||||
struct _GswePlanetInfo {
|
||||
/* the planet ID */
|
||||
GswePlanet planet;
|
||||
|
||||
/* the planet ID according to the Swiss Ephemeris libarary (or -1, if the
|
||||
* planet has no such ID) */
|
||||
gint32 sweph_id;
|
||||
|
||||
/* 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. */
|
||||
gboolean real_body;
|
||||
|
||||
/* the planet's “personal” orb */
|
||||
gdouble orb;
|
||||
|
||||
/* the planet's name */
|
||||
gchar *name;
|
||||
|
||||
/* the value this planet counts in the element/quality points table */
|
||||
gint points;
|
||||
|
||||
/* reference counter */
|
||||
guint refcount;
|
||||
};
|
||||
|
||||
#endif /* __SWE_GLIB_GSWE_PLANET_INFO_PRIVATE_H__ */
|
||||
#else /* not defined __SWE_GLIB_BUILDING__ */
|
||||
#error __FILE__ "Can not be included, unless building SWE-GLib"
|
||||
#endif /* __SWE_GLIB_BUILDING__ */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user