]> Pileus Git - aweather/blobdiff - src/plugins/level2.c
Use correct datatype for elev
[aweather] / src / plugins / level2.c
index 74333e886f608936f9a6997221965e98e8d5bbdb..b5ac6f5b3976ee63689b3b80dcaf4fb07f544d4c 100644 (file)
@@ -19,7 +19,7 @@
 #include <math.h>
 #include <GL/gl.h>
 #include <glib/gstdio.h>
-#include <gis.h>
+#include <grits.h>
 #include <rsl.h>
 
 #include "level2.h"
@@ -130,7 +130,7 @@ static gboolean _decompress_radar(const gchar *file, const gchar *raw)
 /*********************
  * Drawing functions *
  *********************/
-void aweather_level2_draw(GisObject *_self, GisOpenGL *opengl)
+void aweather_level2_draw(GritsObject *_self, GritsOpenGL *opengl)
 {
        AWeatherLevel2 *self = AWEATHER_LEVEL2(_self);
        if (!self->sweep || !self->sweep_tex)
@@ -138,12 +138,6 @@ void aweather_level2_draw(GisObject *_self, GisOpenGL *opengl)
 
        /* Draw wsr88d */
        Sweep *sweep = self->sweep;
-       Radar_header *h = &self->radar->h;
-       gdouble lat  = (double)h->latd + (double)h->latm/60 + (double)h->lats/(60*60);
-       gdouble lon  = (double)h->lond + (double)h->lonm/60 + (double)h->lons/(60*60);
-       gdouble elev = h->height;
-       gis_viewer_center_position(GIS_VIEWER(opengl), lat, lon, elev);
-
        glDisable(GL_ALPHA_TEST);
        glDisable(GL_CULL_FACE);
        glDisable(GL_LIGHTING);
@@ -172,8 +166,8 @@ void aweather_level2_draw(GisObject *_self, GisOpenGL *opengl)
                double lx = sin(angle);
                double ly = cos(angle);
 
-               double near_dist = ray->h.range_bin1;
-               double far_dist  = ray->h.nbins*ray->h.gate_size + ray->h.range_bin1;
+               double near_dist = ray->h.range_bin1 - ((double)ray->h.gate_size/2.);
+               double far_dist  = near_dist + (double)ray->h.nbins*ray->h.gate_size;
 
                /* (find middle of bin) / scale for opengl */
                // near left
@@ -234,7 +228,7 @@ void aweather_level2_set_sweep(AWeatherLevel2 *self,
        g_idle_add(_set_sweep_cb, self);
 }
 
-AWeatherLevel2 *aweather_level2_new(GisViewer *viewer,
+AWeatherLevel2 *aweather_level2_new(GritsViewer *viewer,
                AWeatherColormap *colormap, Radar *radar)
 {
        g_debug("AWeatherLevel2: new - %s", radar->h.radar_name);
@@ -243,10 +237,17 @@ AWeatherLevel2 *aweather_level2_new(GisViewer *viewer,
        self->radar    = radar;
        self->colormap = colormap;
        aweather_level2_set_sweep(self, DZ_INDEX, 0);
+
+       GritsPoint center;
+       Radar_header *h = &radar->h;
+       center.lat  = (double)h->latd + (double)h->latm/60 + (double)h->lats/(60*60);
+       center.lon  = (double)h->lond + (double)h->lonm/60 + (double)h->lons/(60*60);
+       center.elev = h->height;
+       GRITS_OBJECT(self)->center = center;
        return self;
 }
 
-AWeatherLevel2 *aweather_level2_new_from_file(GisViewer *viewer,
+AWeatherLevel2 *aweather_level2_new_from_file(GritsViewer *viewer,
                AWeatherColormap *colormap,
                const gchar *file, const gchar *site)
 {
@@ -292,7 +293,7 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2)
        Radar *radar = level2->radar;
        g_debug("AWeatherLevel2: get_config - %p, %p", level2, radar);
        /* Clear existing items */
-       gdouble elev;
+       gfloat elev;
        guint rows = 1, cols = 1, cur_cols;
        gchar row_label_str[64], col_label_str[64], button_str[64];
        GtkWidget *row_label, *col_label, *button = NULL, *elev_box = NULL;
@@ -367,7 +368,7 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2)
 /****************
  * GObject code *
  ****************/
-G_DEFINE_TYPE(AWeatherLevel2, aweather_level2, GIS_TYPE_OBJECT);
+G_DEFINE_TYPE(AWeatherLevel2, aweather_level2, GRITS_TYPE_OBJECT);
 static void aweather_level2_init(AWeatherLevel2 *self)
 {
 }
@@ -383,5 +384,5 @@ static void aweather_level2_finalize(GObject *_self)
 static void aweather_level2_class_init(AWeatherLevel2Class *klass)
 {
        G_OBJECT_CLASS(klass)->finalize = aweather_level2_finalize;
-       GIS_OBJECT_CLASS(klass)->draw   = aweather_level2_draw;
+       GRITS_OBJECT_CLASS(klass)->draw   = aweather_level2_draw;
 }