/*
- * Copyright (C) 2009-2010 Andy Spencer <andy753421@gmail.com>
+ * Copyright (C) 2009-2011 Andy Spencer <andy753421@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef __GIS_UTIL_H__
-#define __GIS_UTIL_H__
+#ifndef __GRITS_UTIL_H__
+#define __GRITS_UTIL_H__
#include <glib.h>
* Datatypes *
*************/
-/* GisPoint */
-typedef struct _GisPoint GisPoint;
-struct _GisPoint {
+/* GritsPoint */
+typedef struct _GritsPoint GritsPoint;
+struct _GritsPoint {
gdouble lat, lon, elev;
};
-void gis_point_set_lle(GisPoint *point,
+void grits_point_set_lle(GritsPoint *point,
gdouble lat, gdouble lon, gdouble elev);
-/* GisBounds */
-typedef struct _GisBounds GisBounds;
-struct _GisBounds {
+/* GritsPoints */
+typedef gdouble (*GritsPoints)[3];
+
+/* GritsBounds */
+typedef struct _GritsBounds GritsBounds;
+struct _GritsBounds {
gdouble n, s, e, w;
};
-void gis_bounds_set_bounds(GisBounds *bounds,
+void grits_bounds_set_bounds(GritsBounds *bounds,
gdouble n, gdouble s, gdouble e, gdouble w);
/**
* FOV_DIST:
*
- * Used by GisOpenGL to set up the drawing window
+ * Used by GritsOpenGL to set up the drawing window
*/
-#define FOV_DIST 2000.0
+#define FOV_DIST (1039.23)
/**
* MPPX:
*
* Returns: the resolution in meters per pixel
*/
-#define MPPX(dist) (4*dist/FOV_DIST)
+#define MPPX(dist) (dist/FOV_DIST)
void lle2xyz(gdouble lat, gdouble lon, gdouble elev,
gdouble *x, gdouble *y, gdouble *z);
gdouble distd(gdouble *a, gdouble *b);
+void crossd(gdouble *a, gdouble *b, gdouble *out);
+
+void crossd3(gdouble *a, gdouble *b, gdouble *c, gdouble *out);
+
+gdouble lengthd(gdouble *a);
+
+void normd(gdouble *a);
+
gdouble lon_avg(gdouble a, gdouble b);
+GritsPoints *parse_points(const gchar *string,
+ const gchar *group_sep, const gchar *point_sep, const gchar *coord_sep,
+ GritsBounds *bounds, GritsPoint *center);
+
+void free_points(GritsPoints *points);
+
#endif