X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgrits-viewer.h;h=fa9fc079694b2789153840d7d54032e9e26de5d8;hb=ecb7a9abd329d604506ea1734d2db72760fcb4f4;hp=b7ff2166029a18d1bc02dd67624a8a873dde9716;hpb=fe727bbe62d293878e0a75a9cf9f420c0eae03cb;p=grits diff --git a/src/grits-viewer.h b/src/grits-viewer.h index b7ff216..fa9fc07 100644 --- a/src/grits-viewer.h +++ b/src/grits-viewer.h @@ -39,10 +39,10 @@ #include /* Projections */ -enum { +typedef enum { + GRITS_PROJ_LATLON, GRITS_PROJ_MERCATOR, - GRITS_PROJ_EQUIRECTANGULAR, -} GritsProjection; +} GritsProj; /* Rendering levels */ /** @@ -119,6 +119,9 @@ struct _GritsViewer { /* For dragging */ gint drag_mode; gdouble drag_x, drag_y; + + /* For queue_draw */ + guint draw_source; }; struct _GritsViewerClass { @@ -131,15 +134,18 @@ 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); @@ -171,14 +177,19 @@ void grits_viewer_center_position(GritsViewer *viewer, 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