mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
Plotting depth text.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
c62e8e5baa
commit
d6d1a10195
3 changed files with 60 additions and 52 deletions
51
profile.c
51
profile.c
|
@ -221,57 +221,6 @@ int setup_temperature_limits(struct graphics_context *gc)
|
|||
}
|
||||
|
||||
#if 0
|
||||
static void render_depth_sample(struct graphics_context *gc, struct plot_data *entry, const text_render_options_t *tro)
|
||||
{
|
||||
int sec = entry->sec, decimals;
|
||||
double d;
|
||||
|
||||
d = get_depth_units(entry->depth, &decimals, NULL);
|
||||
|
||||
plot_text(gc, tro, sec, entry->depth, "%.*f", decimals, d);
|
||||
}
|
||||
|
||||
static void plot_text_samples(struct graphics_context *gc, struct plot_info *pi)
|
||||
{
|
||||
static const text_render_options_t deep = {14, SAMPLE_DEEP, CENTER, TOP};
|
||||
static const text_render_options_t shallow = {14, SAMPLE_SHALLOW, CENTER, BOTTOM};
|
||||
int i;
|
||||
int last = -1;
|
||||
|
||||
for (i = 0; i < pi->nr; i++) {
|
||||
struct plot_data *entry = pi->entry + i;
|
||||
|
||||
if (entry->depth < 2000)
|
||||
continue;
|
||||
|
||||
if ((entry == entry->max[2]) && entry->depth != last) {
|
||||
render_depth_sample(gc, entry, &deep);
|
||||
last = entry->depth;
|
||||
}
|
||||
|
||||
if ((entry == entry->min[2]) && entry->depth != last) {
|
||||
render_depth_sample(gc, entry, &shallow);
|
||||
last = entry->depth;
|
||||
}
|
||||
|
||||
if (entry->depth != last)
|
||||
last = -1;
|
||||
}
|
||||
}
|
||||
|
||||
static void plot_depth_text(struct graphics_context *gc, struct plot_info *pi)
|
||||
{
|
||||
int maxtime, maxdepth;
|
||||
|
||||
/* Get plot scaling limits */
|
||||
maxtime = get_maxtime(pi);
|
||||
maxdepth = get_maxdepth(pi);
|
||||
|
||||
gc->leftx = 0; gc->rightx = maxtime;
|
||||
gc->topy = 0; gc->bottomy = maxdepth;
|
||||
|
||||
plot_text_samples(gc, pi);
|
||||
}
|
||||
|
||||
static void plot_smoothed_profile(struct graphics_context *gc, struct plot_info *pi)
|
||||
{
|
||||
|
|
|
@ -246,7 +246,7 @@ void ProfileGraphicsView::plot(struct dive *dive)
|
|||
/* Text on top of all graphs.. */
|
||||
plot_temperature_text();
|
||||
|
||||
plot_depth_text(gc, pi);
|
||||
plot_depth_text();
|
||||
|
||||
#if 0
|
||||
plot_cylinder_pressure_text(gc, pi);
|
||||
|
@ -292,6 +292,61 @@ void ProfileGraphicsView::plot(struct dive *dive)
|
|||
#endif
|
||||
}
|
||||
|
||||
void ProfileGraphicsView::plot_depth_text()
|
||||
{
|
||||
int maxtime, maxdepth;
|
||||
|
||||
/* Get plot scaling limits */
|
||||
maxtime = get_maxtime(&gc.pi);
|
||||
maxdepth = get_maxdepth(&gc.pi);
|
||||
|
||||
gc.leftx = 0; gc.rightx = maxtime;
|
||||
gc.topy = 0; gc.bottomy = maxdepth;
|
||||
|
||||
plot_text_samples();
|
||||
}
|
||||
|
||||
void ProfileGraphicsView::plot_text_samples()
|
||||
{
|
||||
static text_render_options_t deep = {14, SAMPLE_DEEP, CENTER, TOP};
|
||||
static text_render_options_t shallow = {14, SAMPLE_SHALLOW, CENTER, BOTTOM};
|
||||
int i;
|
||||
int last = -1;
|
||||
|
||||
struct plot_info* pi = &gc.pi;
|
||||
|
||||
for (i = 0; i < pi->nr; i++) {
|
||||
struct plot_data *entry = pi->entry + i;
|
||||
|
||||
if (entry->depth < 2000)
|
||||
continue;
|
||||
|
||||
if ((entry == entry->max[2]) && entry->depth != last) {
|
||||
plot_depth_sample(entry, &deep);
|
||||
last = entry->depth;
|
||||
}
|
||||
|
||||
if ((entry == entry->min[2]) && entry->depth != last) {
|
||||
plot_depth_sample(entry, &shallow);
|
||||
last = entry->depth;
|
||||
}
|
||||
|
||||
if (entry->depth != last)
|
||||
last = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void ProfileGraphicsView::plot_depth_sample(struct plot_data *entry,text_render_options_t *tro)
|
||||
{
|
||||
int sec = entry->sec, decimals;
|
||||
double d;
|
||||
|
||||
d = get_depth_units(entry->depth, &decimals, NULL);
|
||||
|
||||
plot_text(tro, sec, entry->depth, QString("%1").arg(d)); // , decimals, d);
|
||||
}
|
||||
|
||||
|
||||
void ProfileGraphicsView::plot_temperature_text()
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -99,6 +99,10 @@ private:
|
|||
void plot_cylinder_pressure(struct dive *dive, struct divecomputer *dc);
|
||||
void plot_temperature_text();
|
||||
void plot_single_temp_text(int sec, int mkelvin);
|
||||
void plot_depth_text();
|
||||
void plot_text_samples();
|
||||
void plot_depth_sample(struct plot_data *entry, text_render_options_t *tro);
|
||||
|
||||
QColor get_sac_color(int sac, int avg_sac);
|
||||
|
||||
QPen defaultPen;
|
||||
|
|
Loading…
Reference in a new issue