mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
profile: implement adaptive depth markings
The old code used the maximum / minimum values of nine-minute intervals to indicate maximum / minimum depths. This does not work well when zooming, since the labels will get sparse. Instead implement a primitive peak finding algorithm, that searches for the deepest peak in the whole plot and then repeats the procedure for the right and left sides, leaving out a certain distance to the origninal peak. This is repeated until there are no more peaks found. Only peaks of a certain prominence are considered, which conveniently gives us the valleys. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
efc89b9d9c
commit
7ef0ae02a8
2 changed files with 83 additions and 22 deletions
|
@ -60,7 +60,7 @@ public:
|
|||
DiveProfileItem(const DivePlotDataModel &model, const DiveCartesianAxis &hAxis, int hColumn, const DiveCartesianAxis &vAxis, int vColumn, double dpr);
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) override;
|
||||
void replot(const dive *d, int from, int to, bool in_planner) override;
|
||||
void plot_depth_sample(struct plot_data *entry, QFlags<Qt::AlignmentFlag> flags, const QColor &color);
|
||||
void plot_depth_sample(const struct plot_data &entry, QFlags<Qt::AlignmentFlag> flags, const QColor &color);
|
||||
int maxCeiling(int row);
|
||||
|
||||
private:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue