mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
statistics: use dive instead of count bins
If we want to make bar charts selectable (when clicking on a bar select the dives the bar represents), then we must store the dives behind bars. Therefore, use dive-based bins instead of count based bins in bar charts and pie charts. This gave some churn because every structure where a count is stored has to be changed to store a vector of dives. Try to use move semantics where possible to avoid duplication of dive lists. On a positive note, the count_dives() function of the binners can now be removed, since it is unused. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
622e9ba373
commit
18a5b5b593
7 changed files with 136 additions and 153 deletions
|
@ -33,7 +33,7 @@ enum class StatsOperation : int {
|
|||
|
||||
// Results of the above operations
|
||||
struct StatsOperationResults {
|
||||
int count;
|
||||
std::vector<dive *> dives;
|
||||
double median;
|
||||
double mean;
|
||||
double timeWeightedMean;
|
||||
|
@ -77,7 +77,6 @@ struct StatsBinValue {
|
|||
};
|
||||
using StatsBinDives = StatsBinValue<std::vector<dive *>>;
|
||||
using StatsBinValues = StatsBinValue<std::vector<StatsValue>>;
|
||||
using StatsBinCount = StatsBinValue<int>;
|
||||
using StatsBinQuartiles = StatsBinValue<StatsQuartiles>;
|
||||
using StatsBinOp = StatsBinValue<StatsOperationResults>;
|
||||
|
||||
|
@ -89,7 +88,6 @@ struct StatsBinner {
|
|||
// The binning functions have a parameter "fill_empty". If true, missing
|
||||
// bins in the range will be filled with empty bins. This only works for continuous variables.
|
||||
virtual std::vector<StatsBinDives> bin_dives(const std::vector<dive *> &dives, bool fill_empty) const = 0;
|
||||
virtual std::vector<StatsBinCount> count_dives(const std::vector<dive *> &dives, bool fill_empty) const = 0;
|
||||
|
||||
// Note: these functions will crash with an exception if passed incompatible bins!
|
||||
virtual QString format(const StatsBin &bin) const = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue