If we have more than four identical depth readings, the old code would see
those as local maxima and minima and print spurious depth values in the
profile plot.
Yes, in real sample data identical readings won't happen - but in
synthetic data they can and there this looks really bogus.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
static const text_render_options_t deep = {14, 1.0, 0.2, 0.2, CENTER, TOP};
static const text_render_options_t shallow = {14, 1.0, 0.2, 0.2, CENTER, BOTTOM};
int i;
static const text_render_options_t deep = {14, 1.0, 0.2, 0.2, CENTER, TOP};
static const text_render_options_t shallow = {14, 1.0, 0.2, 0.2, CENTER, BOTTOM};
int i;
for (i = 0; i < pi->nr; i++) {
struct plot_data *entry = pi->entry + i;
for (i = 0; i < pi->nr; i++) {
struct plot_data *entry = pi->entry + i;
if (entry->depth < 2000)
continue;
if (entry->depth < 2000)
continue;
- if (entry == entry->max[2])
+ if ((entry == entry->max[2]) && entry->depth != last) {
render_depth_sample(gc, entry, &deep);
render_depth_sample(gc, entry, &deep);
+ last = entry->depth;
+ }
- if (entry == entry->min[2])
+ if ((entry == entry->min[2]) && entry->depth != last) {
render_depth_sample(gc, entry, &shallow);
render_depth_sample(gc, entry, &shallow);
+ last = entry->depth;
+ }
+
+ if (entry->depth != last)
+ last = -1;