mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
profile: turn plotdata::ceiling into depth_t
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
9cf753fa56
commit
58d096adfc
4 changed files with 18 additions and 18 deletions
|
@ -903,11 +903,11 @@ static void calculate_deco_information(struct deco_state *ds, const struct deco_
|
|||
if (!first_iteration || in_planner)
|
||||
vpmb_next_gradient(ds, ds->deco_time, surface_pressure / 1000.0, in_planner);
|
||||
}
|
||||
entry.ceiling = deco_allowed_depth(tissue_tolerance_calc(ds, dive, dive->depth_to_bar(entry.depth), in_planner), surface_pressure, dive, !prefs.calcceiling3m).mm;
|
||||
entry.ceiling = deco_allowed_depth(tissue_tolerance_calc(ds, dive, dive->depth_to_bar(entry.depth), in_planner), surface_pressure, dive, !prefs.calcceiling3m);
|
||||
if (prefs.calcceiling3m)
|
||||
current_ceiling = deco_allowed_depth(tissue_tolerance_calc(ds, dive, dive->depth_to_bar(entry.depth), in_planner), surface_pressure, dive, true);
|
||||
else
|
||||
current_ceiling.mm = entry.ceiling;
|
||||
current_ceiling = entry.ceiling;
|
||||
last_ceiling = current_ceiling;
|
||||
/* If using VPM-B, take first_ceiling_pressure as the deepest ceiling */
|
||||
if (decoMode(in_planner) == VPMB) {
|
||||
|
@ -939,9 +939,9 @@ static void calculate_deco_information(struct deco_state *ds, const struct deco_
|
|||
for (int j = 0; j < 16; j++) {
|
||||
double m_value = ds->buehlmann_inertgas_a[j] + entry.ambpressure / ds->buehlmann_inertgas_b[j];
|
||||
double surface_m_value = ds->buehlmann_inertgas_a[j] + surface_pressure / ds->buehlmann_inertgas_b[j];
|
||||
entry.ceilings[j] = deco_allowed_depth(ds->tolerated_by_tissue[j], surface_pressure, dive, 1).mm;
|
||||
if (entry.ceilings[j] > max_ceiling.mm)
|
||||
max_ceiling.mm = entry.ceilings[j];
|
||||
entry.ceilings[j] = deco_allowed_depth(ds->tolerated_by_tissue[j], surface_pressure, dive, 1);
|
||||
if (entry.ceilings[j].mm > max_ceiling.mm)
|
||||
max_ceiling = entry.ceilings[j];
|
||||
double current_gf = (ds->tissue_inertgas_saturation[j] - entry.ambpressure) / (m_value - entry.ambpressure);
|
||||
entry.percentages[j] = ds->tissue_inertgas_saturation[j] < entry.ambpressure ?
|
||||
lrint(ds->tissue_inertgas_saturation[j] / entry.ambpressure * AMB_PERCENTAGE) :
|
||||
|
@ -1388,14 +1388,14 @@ static std::vector<std::string> plot_string(const struct dive *d, const struct p
|
|||
res.push_back(casprintf_loc(translate("gettextFromC", "GF %d%%"), (int)(100.0 * entry.current_gf)));
|
||||
if (entry.surface_gf > 0.0)
|
||||
res.push_back(casprintf_loc(translate("gettextFromC", "Surface GF %.0f%%"), entry.surface_gf));
|
||||
if (entry.ceiling) {
|
||||
depthvalue = get_depth_units(entry.ceiling, NULL, &depth_unit);
|
||||
if (entry.ceiling.mm > 0) {
|
||||
depthvalue = get_depth_units(entry.ceiling.mm, NULL, &depth_unit);
|
||||
res.push_back(casprintf_loc(translate("gettextFromC", "Calculated ceiling %.1f%s"), depthvalue, depth_unit));
|
||||
if (prefs.calcalltissues) {
|
||||
int k;
|
||||
for (k = 0; k < 16; k++) {
|
||||
if (entry.ceilings[k]) {
|
||||
depthvalue = get_depth_units(entry.ceilings[k], NULL, &depth_unit);
|
||||
if (entry.ceilings[k].mm > 0) {
|
||||
depthvalue = get_depth_units(entry.ceilings[k].mm, NULL, &depth_unit);
|
||||
res.push_back(casprintf_loc(translate("gettextFromC", "Tissue %.0fmin: %.1f%s"), buehlmann_N2_t_halflife[k], depthvalue, depth_unit));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,8 +42,8 @@ struct plot_data {
|
|||
int temperature = 0;
|
||||
/* Depth info */
|
||||
depth_t depth;
|
||||
int ceiling = 0;
|
||||
std::array<int, 16> ceilings;
|
||||
depth_t ceiling;
|
||||
std::array<depth_t, 16> ceilings;
|
||||
std::array<int, 16> percentages;
|
||||
int ndl = 0;
|
||||
int tts = 0;
|
||||
|
|
|
@ -70,9 +70,9 @@ static void put_pd(struct membuffer *b, const struct plot_info &pi, int idx)
|
|||
}
|
||||
put_int(b, entry.temperature);
|
||||
put_int(b, entry.depth.mm);
|
||||
put_int(b, entry.ceiling);
|
||||
put_int(b, entry.ceiling.mm);
|
||||
for (int i = 0; i < 16; i++)
|
||||
put_int(b, entry.ceilings[i]);
|
||||
put_int(b, entry.ceilings[i].mm);
|
||||
for (int i = 0; i < 16; i++)
|
||||
put_int(b, entry.percentages[i]);
|
||||
put_int(b, entry.ndl);
|
||||
|
@ -209,8 +209,8 @@ static std::string format_st_event(const plot_data &entry, const plot_data &next
|
|||
replace_all(format_string, "[temperature]", "");
|
||||
}
|
||||
|
||||
if (entry.ceiling) {
|
||||
value = get_depth_units(entry.ceiling, &decimals, &unit);
|
||||
if (entry.ceiling.mm > 0) {
|
||||
value = get_depth_units(entry.ceiling.mm, &decimals, &unit);
|
||||
replace_all(format_string,"[ceiling]", format_string_std("%02.2f %s", value, unit));
|
||||
} else {
|
||||
replace_all(format_string, "[ceiling]", "");
|
||||
|
|
|
@ -71,7 +71,7 @@ PartialPressureGasItem *ProfileScene::createPPGas(DataAccessor accessor, color_i
|
|||
template <int IDX>
|
||||
double accessTissue(const plot_data &item)
|
||||
{
|
||||
return item.ceilings[IDX];
|
||||
return static_cast<double>(item.ceilings[IDX].mm);
|
||||
}
|
||||
|
||||
// For now, the accessor functions for the profile data do not possess a payload.
|
||||
|
@ -124,7 +124,7 @@ ProfileScene::ProfileScene(double dpr, bool printMode, bool isGrayscale) :
|
|||
1, dpr)),
|
||||
diveComputerText(new DiveTextItem(dpr, 1.0, Qt::AlignRight | Qt::AlignTop, nullptr)),
|
||||
reportedCeiling(createItem<DiveReportedCeiling>(*profileYAxis,
|
||||
[](const plot_data &item) { return (double)item.ceiling; },
|
||||
[](const plot_data &item) { return (double)item.ceiling.mm; },
|
||||
1, dpr)),
|
||||
pn2GasItem(createPPGas([](const plot_data &item) { return (double)item.pressures.n2; },
|
||||
PN2, PN2_ALERT, NULL, &prefs.pp_graphs.pn2_threshold)),
|
||||
|
@ -143,7 +143,7 @@ ProfileScene::ProfileScene(double dpr, bool printMode, bool isGrayscale) :
|
|||
ocpo2GasItem(createPPGas([](const plot_data &item) { return item.scr_OC_pO2.mbar / 1000.0; },
|
||||
SCR_OCPO2, PO2_ALERT, &prefs.pp_graphs.po2_threshold_min, &prefs.pp_graphs.po2_threshold_max)),
|
||||
diveCeiling(createItem<DiveCalculatedCeiling>(*profileYAxis,
|
||||
[](const plot_data &item) { return (double)item.ceiling; },
|
||||
[](const plot_data &item) { return (double)item.ceiling.mm; },
|
||||
1, dpr)),
|
||||
decoModelParameters(new DiveTextItem(dpr, 1.0, Qt::AlignHCenter | Qt::AlignTop, nullptr)),
|
||||
heartBeatItem(createItem<DiveHeartrateItem>(*heartBeatAxis,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue