]> Pileus Git - grits/blobdiff - src/gis-viewer.h
Sort of fix panning when rotated
[grits] / src / gis-viewer.h
index 5e84e439157fb991656f76a0a03d4d98d74a5eca..ea07348cc823c319ba5ad81119fd7584e555ba52 100644 (file)
@@ -55,6 +55,10 @@ struct _GisViewer {
        gdouble     location[3];
        gdouble     rotation[3];
        gboolean    offline;
+
+       /* For dragging */
+       gint    drag_mode;
+       gdouble drag_x, drag_y;
 };
 
 struct _GisViewerClass {
@@ -73,12 +77,9 @@ struct _GisViewerClass {
                                  GisHeightFunc height_func, gpointer user_data,
                                  gboolean update);
 
-       void (*begin)            (GisViewer *viewer);
-       void (*end)              (GisViewer *viewer);
-
        gpointer (*add)          (GisViewer *viewer, GisObject *object,
                                  gint level, gboolean sort);
-       void (*remove)           (GisViewer *viewer, gpointer ref);
+       GisObject *(*remove)     (GisViewer *viewer, gpointer ref);
 };
 
 GType gis_viewer_get_type(void);
@@ -91,8 +92,8 @@ gchar *gis_viewer_get_time(GisViewer *viewer);
 
 void gis_viewer_set_location(GisViewer *viewer, gdouble  lat, gdouble  lon, gdouble  elev);
 void gis_viewer_get_location(GisViewer *viewer, gdouble *lat, gdouble *lon, gdouble *elev);
-void gis_viewer_pan         (GisViewer *viewer, gdouble  lat, gdouble  lon, gdouble  elev);
-void gis_viewer_zoom        (GisViewer *viewer, gdouble  scale);
+void gis_viewer_pan(GisViewer *self, gdouble forward, gdouble sideways, gdouble up);
+void gis_viewer_zoom(GisViewer *viewer, gdouble  scale);
 
 void gis_viewer_set_rotation(GisViewer *viewer, gdouble  x, gdouble  y, gdouble  z);
 void gis_viewer_get_rotation(GisViewer *viewer, gdouble *x, gdouble *y, gdouble *z);
@@ -116,11 +117,8 @@ void gis_viewer_set_height_func(GisViewer *self, GisTile *tile,
                GisHeightFunc height_func, gpointer user_data,
                gboolean update);
 
-void gis_viewer_begin(GisViewer *viewer);
-void gis_viewer_end  (GisViewer *viewer);
-
 gpointer gis_viewer_add(GisViewer *self, GisObject *object,
                gint level, gboolean sort);
-void gis_viewer_remove(GisViewer *self, gpointer ref);
+GisObject *gis_viewer_remove(GisViewer *self, gpointer ref);
 
 #endif