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:
42explicit IntegrationScope();
43explicit IntegrationScope(const QPointF &point, double width);
44explicit IntegrationScope(const QPointF &point, double width, Enums::DataKind data_kind);
45explicit IntegrationScope(const IntegrationScope &other);
46
47virtual ~IntegrationScope();
48
49virtual IntegrationScope *clone() const;
50
51using IntegrationScopeBase::operator=;
52virtual IntegrationScope &operator=(const IntegrationScope &other);
53
54virtual void setPoint(const QPointF &point);
55virtual bool getPoint(QPointF &point) const override;
56
57virtual IntegrationScopeFeatures getLeftMostPoint(QPointF &point) const override;
58virtual IntegrationScopeFeatures getRightMostPoint(QPointF &point) const override;
59
60virtual IntegrationScopeFeatures getTopMostPoint(QPointF &point) const override;
61virtual IntegrationScopeFeatures getBottomMostPoint(QPointF &point) const override;
62
63virtual void setWidth(double width);
64virtual IntegrationScopeFeatures getWidth(double &width) const override;
65
66virtual bool range(Enums::Axis axis, double &start, double &end) const override;
67
68virtual void setDataKindX(Enums::DataKind data_kind) override;
69virtual bool getDataKindX(Enums::DataKind &data_kind) override;
70
71bool is1D() const override;
72bool is2D() const override;
73
74virtual bool isRectangle() const override;
75virtual bool isRhomboid() const override;
76
77virtual bool transpose() override;
78
79virtual void update(const QPointF &point, double width);
80
81virtual bool contains(const QPointF &point) const override;
82
83virtual QString toString() const override;
84
85virtual 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
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 IntegrationScope * clone() const
virtual IntegrationScopeFeatures getRightMostPoint(QPointF &point) const override
virtual IntegrationScopeFeatures getTopMostPoint(QPointF &point) const override
WRITE setPoint() NOTIFY pointChanged() FINAL) Q_PROPERTY(double width READ getWidth() WRITE setWidth() NOTIFY widthChanged() FINAL) public IntegrationScope(const QPointF &point, double width)
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)
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