/*
- * Copyright (C) 2009 Andy Spencer <spenceal@rose-hulman.edu>
+ * Copyright (C) 2009-2010 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
#include <gtk/gtk.h>
#include <glib-object.h>
+/* Rendering levels */
+#define GIS_LEVEL_BACKGROUND -100
+#define GIS_LEVEL_WORLD 0
+#define GIS_LEVEL_OVERLAY 100
+#define GIS_LEVEL_HUD 200
+
/* Type macros */
#define GIS_TYPE_VIEWER (gis_viewer_get_type())
#define GIS_VIEWER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GIS_TYPE_VIEWER, GisViewer))
#include "gis-tile.h"
#include "gis-plugin.h"
+#include "gis-prefs.h"
#include "gis-object.h"
struct _GisViewer {
/* instance members */
GisPlugins *plugins;
+ GisPrefs *prefs;
gchar *time;
- gchar *site;
gdouble location[3];
gdouble rotation[3];
gboolean offline;
void (*begin) (GisViewer *viewer);
void (*end) (GisViewer *viewer);
- void (*add) (GisViewer *viewer, GisObject *object);
- void (*remove) (GisViewer *viewer, GisObject *object);
+ gpointer (*add) (GisViewer *viewer, GisObject *object,
+ gint level, gboolean sort);
+ void (*remove) (GisViewer *viewer, gpointer ref);
};
GType gis_viewer_get_type(void);
/* Methods */
-GisViewer *gis_viewer_new();
+void gis_viewer_setup(GisViewer *viewer, GisPlugins *plugins, GisPrefs *prefs);
void gis_viewer_set_time(GisViewer *viewer, const gchar *time);
gchar *gis_viewer_get_time(GisViewer *viewer);
void gis_viewer_get_rotation(GisViewer *viewer, gdouble *x, gdouble *y, gdouble *z);
void gis_viewer_rotate (GisViewer *viewer, gdouble x, gdouble y, gdouble z);
-/* To be deprecated, use {get,set}_location */
-void gis_viewer_set_site(GisViewer *viewer, const gchar *site);
-gchar *gis_viewer_get_site(GisViewer *viewer);
-
void gis_viewer_refresh(GisViewer *viewer);
void gis_viewer_set_offline(GisViewer *viewer, gboolean offline);
void gis_viewer_begin(GisViewer *viewer);
void gis_viewer_end (GisViewer *viewer);
-void gis_viewer_add(GisViewer *self, GisObject *object);
-void gis_viewer_remove(GisViewer *self, GisObject *object);
+gpointer gis_viewer_add(GisViewer *self, GisObject *object,
+ gint level, gboolean sort);
+void gis_viewer_remove(GisViewer *self, gpointer ref);
#endif