+/* To be implemented by subclasses */
+void gis_viewer_center_position(GisViewer *self,
+ gdouble lat, gdouble lon, gdouble elev)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->center_position)
+ g_warning("GisViewer: center_position - Unimplemented");
+ klass->center_position(self, lat, lon, elev);
+}
+
+void gis_viewer_project(GisViewer *self,
+ gdouble lat, gdouble lon, gdouble elev,
+ gdouble *px, gdouble *py, gdouble *pz)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->project)
+ g_warning("GisViewer: project - Unimplemented");
+ klass->project(self, lat, lon, elev, px, py, pz);
+}
+
+void gis_viewer_clear_height_func(GisViewer *self)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->clear_height_func)
+ g_warning("GisViewer: clear_height_func - Unimplemented");
+ klass->clear_height_func(self);
+}
+
+void gis_viewer_set_height_func(GisViewer *self, GisTile *tile,
+ GisHeightFunc height_func, gpointer user_data,
+ gboolean update)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->set_height_func)
+ g_warning("GisViewer: set_height_func - Unimplemented");
+ klass->set_height_func(self, tile, height_func, user_data, update);
+}
+
+void gis_viewer_render_tile(GisViewer *self, GisTile *tile)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->render_tile)
+ g_warning("GisViewer: render_tile - Unimplemented");
+ klass->render_tile(self, tile);
+}
+
+void gis_viewer_render_tiles(GisViewer *self, GisTile *root)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->render_tiles)
+ g_warning("GisViewer: render_tiles - Unimplemented");
+ klass->render_tiles(self, root);
+}
+
+void gis_viewer_begin(GisViewer *self)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->begin)
+ g_warning("GisViewer: begin - Unimplemented");
+ klass->begin(self);
+}
+
+void gis_viewer_end(GisViewer *self)
+{
+ GisViewerClass *klass = GIS_VIEWER_GET_CLASS(self);
+ if (!klass->end)
+ g_warning("GisViewer: end - Unimplemented");
+ klass->end(self);
+}