libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
integrationscope.h
Go to the documentation of this file.
1// Copyright 2021 Filippo Rusconi
2// GPLv3+
3
4#pragma once
5
6/////////////////////// StdLib includes
7#include <vector>
8#include <limits>
9
10/////////////////////// Qt includes
11#include <QString>
12#include <QPointF>
13
14
15/////////////////////// Local includes
17#include "../../types.h"
19
20namespace pappso
21{
22
23// This class represents the case where the user draws a line in a trace plot
24// widget, with the aim of integrating data in single-dimension manner (over a
25// range in the X axis). Having no height, this IntegrationScope is like a line.
26
27/* Like this:
28
29P---------------------------+
30
31|--------- m_width ---------|
32
33With P the m_point.
34
35 */
36
38{
39 Q_PROPERTY(QPointF point READ getPoint() WRITE setPoint() NOTIFY pointChanged() FINAL)
40 Q_PROPERTY(double width READ getWidth() WRITE setWidth() NOTIFY widthChanged() FINAL)
41public:
42 IntegrationScope(QObject *parent_p = nullptr);
43 IntegrationScope(const QPointF &point, double width, QObject *parent_p = nullptr);
44 IntegrationScope(const QPointF &point,
45 double width,
46 Enums::DataKind data_kind,
47 QObject *parent_p = nullptr);
48 IntegrationScope(const IntegrationScope &other, QObject *parent_p = nullptr);
49
50 virtual ~IntegrationScope();
51
52 virtual IntegrationScope &operator=(const IntegrationScope &other);
53
54 virtual void setPoint(const QPointF &point);
55 virtual bool getPoint(QPointF &point) const override;
56
57 virtual IntegrationScopeFeatures getLeftMostPoint(QPointF &point) const override;
58 virtual IntegrationScopeFeatures getRightMostPoint(QPointF &point) const override;
59
60 virtual IntegrationScopeFeatures getTopMostPoint(QPointF &point) const override;
61 virtual IntegrationScopeFeatures getBottomMostPoint(QPointF &point) const override;
62
63 virtual void setWidth(double width);
64 virtual IntegrationScopeFeatures getWidth(double &width) const override;
65
66 virtual bool range(Enums::Axis axis, double &start, double &end) const override;
67
68 virtual void setDataKindX(Enums::DataKind data_kind) override;
69 virtual bool getDataKindX(Enums::DataKind &data_kind) override;
70
71 bool is1D() const override;
72 bool is2D() const override;
73
74 virtual bool isRectangle() const override;
75 virtual bool isRhomboid() const override;
76
77 virtual bool transpose() override;
78
79 virtual void update(const QPointF &point, double width);
80
81 virtual bool contains(const QPointF &point) const override;
82
83 virtual QString toString() const override;
84
85 virtual void reset() override;
86
87signals:
90
91protected:
92 QPointF m_point;
93 double m_width;
95};
96
97typedef std::shared_ptr<IntegrationScope> IntegrationScopeSPtr;
98typedef std::shared_ptr<const IntegrationScope> IntegrationScopeCstSPtr;
99
100} // namespace pappso
IntegrationScopeBase(QObject *parent_p=nullptr)
virtual bool range(Enums::Axis axis, double &start, double &end) const override
virtual void setDataKindX(Enums::DataKind data_kind) override
virtual bool getPoint(QPointF &point) const override
virtual bool getDataKindX(Enums::DataKind &data_kind) override
virtual IntegrationScopeFeatures getRightMostPoint(QPointF &point) const override
virtual IntegrationScopeFeatures getTopMostPoint(QPointF &point) const override
virtual bool contains(const QPointF &point) const override
virtual QString toString() const override
bool is1D() const override
virtual IntegrationScopeFeatures getBottomMostPoint(QPointF &point) const override
virtual bool isRhomboid() const override
bool is2D() const override
virtual void setWidth(double width)
virtual void update(const QPointF &point, double width)
virtual IntegrationScopeFeatures getWidth(double &width) const override
virtual bool transpose() override
virtual IntegrationScope & operator=(const IntegrationScope &other)
virtual void setPoint(const QPointF &point)
WRITE setPoint() NOTIFY pointChanged() FINAL) Q_PROPERTY(double width READ getWidth() WRITE setWidth() NOTIFY widthChanged() FINAL) public IntegrationScope(const QPointF &point, double width, QObject *parent_p=nullptr)
virtual IntegrationScopeFeatures getLeftMostPoint(QPointF &point) const override
virtual bool isRectangle() const override
virtual void reset() override
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
std::shared_ptr< IntegrationScope > IntegrationScopeSPtr
std::shared_ptr< const IntegrationScope > IntegrationScopeCstSPtr