]> git.tdb.fi Git - ext/subsurface.git/blobdiff - profile.c
plot a fancier 'filled' depth profile
[ext/subsurface.git] / profile.c
index 3649bc1319aae494d42632e688a2d61cda03ff54..b67557088762f330d31e07e20da699193d62bdf4 100644 (file)
--- a/profile.c
+++ b/profile.c
@@ -29,6 +29,7 @@ static void plot(cairo_t *cr, int w, int h, struct dive *dive, int samples, stru
        double topx, topy, maxx, maxy;
        double scalex, scaley;
        int maxtime, maxdepth;
+       int begins, sec, depth;
 
        topx = w / 20.0;
        topy = h / 20.0;
@@ -63,11 +64,21 @@ static void plot(cairo_t *cr, int w, int h, struct dive *dive, int samples, stru
 
        /* Depth profile */
        cairo_set_source_rgba(cr, 1, 0.2, 0.2, 0.80);
+       begins = sample->time.seconds;
        cairo_move_to(cr, SCALE(sample->time.seconds, to_feet(sample->depth)));
        for (i = 1; i < dive->samples; i++) {
                sample++;
-               cairo_line_to(cr, SCALE(sample->time.seconds, to_feet(sample->depth)));
+               sec = sample->time.seconds;
+               depth = to_feet(sample->depth);
+               cairo_line_to(cr, SCALE(sec, depth));
        }
+       scaley = 1.0;
+       cairo_line_to(cr, SCALE(sec, 0));
+       cairo_line_to(cr, SCALE(begins, 0));
+       cairo_close_path(cr);
+       cairo_set_source_rgba(cr, 1, 0.2, 0.2, 0.20);
+       cairo_fill_preserve(cr);
+       cairo_set_source_rgba(cr, 1, 0.2, 0.2, 0.80);
        cairo_stroke(cr);
 
        /* Bounding box last */