/* For dragging */
gint drag_mode;
gdouble drag_x, drag_y;
+
+ /* For queue_draw */
+ guint draw_source;
+ GMutex draw_lock;
};
struct _GritsViewerClass {
void (*project) (GritsViewer *viewer,
gdouble lat, gdouble lon, gdouble elev,
gdouble *px, gdouble *py, gdouble *pz);
+ void (*unproject) (GritsViewer *viewer,
+ gdouble px, gdouble py,gdouble pz,
+ gdouble *lat, gdouble *lon, gdouble *elev);
void (*clear_height_func)(GritsViewer *viewer);
void (*set_height_func) (GritsViewer *viewer, GritsBounds *bounds,
GritsHeightFunc height_func, gpointer user_data,
gboolean update);
- gpointer (*add) (GritsViewer *viewer, GritsObject *object,
+ void (*add) (GritsViewer *viewer, GritsObject *object,
gint level, gboolean sort);
- GritsObject *(*remove) (GritsViewer *viewer, GritsObject *object);
+ void (*remove) (GritsViewer *viewer, GritsObject *object);
};
GType grits_viewer_get_type(void);
void grits_viewer_project(GritsViewer *viewer,
gdouble lat, gdouble lon, gdouble elev,
gdouble *px, gdouble *py, gdouble *pz);
+void grits_viewer_unproject(GritsViewer *viewer,
+ gdouble px, gdouble py, gdouble pz,
+ gdouble *lat, gdouble *lon, gdouble *elev);
void grits_viewer_clear_height_func(GritsViewer *viewer);
void grits_viewer_set_height_func(GritsViewer *viewer, GritsBounds *bounds,
GritsHeightFunc height_func, gpointer user_data,
gboolean update);
-gpointer grits_viewer_add(GritsViewer *viewer, GritsObject *object,
+void grits_viewer_add(GritsViewer *viewer, GritsObject *object,
gint level, gboolean sort);
-GritsObject *grits_viewer_remove(GritsViewer *viewer, GritsObject *object);
+void grits_viewer_remove(GritsViewer *viewer, GritsObject *object);
+
+void grits_viewer_queue_draw(GritsViewer *viewer);
#endif