2 * Copyright (C) 2009 Andy Spencer <spenceal@rose-hulman.edu>
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 #ifndef __GIS_OBJECT_H__
19 #define __GIS_OBJECT_H__
25 typedef struct _GisPoint GisPoint;
28 gdouble lat, lon, elev;
31 GisPoint *gis_point_new();
32 void gis_point_set_lle(GisPoint *point, gdouble lat, gdouble lon, gdouble elev);
33 void gis_point_free(GisPoint *point);
37 #define GIS_OBJECT(object) ((GisObject *)object)
45 typedef struct _GisObject GisObject;
53 static inline GisPoint *gis_object_center(GisObject *object)
55 return &GIS_OBJECT(object)->center;
60 #define GIS_MARKER(marker) ((GisMarker *)marker)
62 typedef struct _GisMarker GisMarker;
72 GisMarker *gis_marker_new(const gchar *label);
73 void gis_marker_free(GisMarker *marker);
77 #define GIS_CALLBACK(callback) ((GisCallback*)callback)
79 typedef struct _GisCallback GisCallback;
80 typedef gpointer (*GisCallbackFunc)(GisCallback *callback, gpointer user_data);
84 GisCallbackFunc callback;
88 GisCallback *gis_callback_new(GisCallbackFunc callback, gpointer user_data);
89 void gis_callback_free(GisCallback *cb);