libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
integrationscoperect.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"
18#include "integrationscope.h"
19
20namespace pappso
21{
22
23// This class represents the case where the user draws a rectangle in a colormap
24// plot widget, with the aim of integrating data in two-dimension manner (over a
25// range in the X axis and a range in the Y axis). The rectangle is not a
26// rhomboid, it has squared angles.
27
28/* Like this:
29
30+---------------------------+ -
31| | |
32| | |
33| | m_height
34| | |
35| | |
36P---------------------------+ -
37
38|--------- m_width ---------|
39
40With P the m_point.
41
42*/
43
45{
46 public:
48 IntegrationScopeRect(const QPointF &point, double width, double height);
49 IntegrationScopeRect(const QPointF &point, double width, Enums::DataKind data_kind_x, double height, Enums::DataKind data_kind_y);
51
52 virtual ~IntegrationScopeRect();
53
54 virtual IntegrationScopeRect *clone() const;
55
56 using IntegrationScope::operator=;
58
59 virtual IntegrationScopeFeatures getTopMostPoint(QPointF &point) const override;
60 virtual IntegrationScopeFeatures getBottomMostPoint(QPointF &point) const override;
61
62 virtual void setHeight(double height);
63 virtual IntegrationScopeFeatures getHeight(double &height) const override;
64
65 virtual bool range(Enums::Axis axis, double &start, double &end) const override;
66
67 virtual void setDataKindX(Enums::DataKind data_kind) override;
68 virtual bool getDataKindX(Enums::DataKind &data_kind) override;
69
70 virtual void setDataKindY(Enums::DataKind data_kind) override;
71 virtual bool getDataKindY(Enums::DataKind &data_kind) override;
72
73 bool is1D() const override;
74 bool is2D() const override;
75
76 virtual bool isRectangle() const override;
77 virtual bool isRhomboid() const override;
78
79 virtual bool transpose() override;
80
82 virtual void update(const QPointF &point, double width, double height);
83
84 virtual bool contains(const QPointF &point) const override;
85
86 virtual QString toString() const override;
87
88 virtual void reset() override;
89
90 protected:
91 double m_height;
93};
94
95typedef std::shared_ptr<IntegrationScopeRect> IntegrationScopeRectSPtr;
96typedef std::shared_ptr<const IntegrationScopeRect> IntegrationScopeRectCstSPtr;
97
98} // namespace pappso
virtual IntegrationScopeFeatures getBottomMostPoint(QPointF &point) const override
virtual void update(const QPointF &point, double width, double height)
virtual IntegrationScopeRect & operator=(const IntegrationScopeRect &other)
virtual bool isRectangle() const override
virtual IntegrationScopeFeatures getHeight(double &height) const override
virtual QString toString() const override
virtual void setDataKindY(Enums::DataKind data_kind) override
virtual void setDataKindX(Enums::DataKind data_kind) override
virtual bool getDataKindX(Enums::DataKind &data_kind) override
virtual IntegrationScopeRect * clone() const
virtual bool range(Enums::Axis axis, double &start, double &end) const override
virtual IntegrationScopeFeatures getTopMostPoint(QPointF &point) const override
virtual bool getDataKindY(Enums::DataKind &data_kind) override
virtual void setHeight(double height)
virtual bool contains(const QPointF &point) const override
virtual bool isRhomboid() 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 void update(const QPointF &point, double width)
#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< IntegrationScopeRect > IntegrationScopeRectSPtr
std::shared_ptr< const IntegrationScopeRect > IntegrationScopeRectCstSPtr