Loading...
Searching...
No Matches
integrationscope.cpp
Go to the documentation of this file.
// Copyright 2021 Filippo Rusconi
// GPLv3+
/////////////////////// StdLib includes
#include <limits>
#include <cmath>
/////////////////////// Qt includes
#include <QDebug>
/////////////////////// Local includes
#include "integrationscope.h"
namespace pappso
{
IntegrationScope::IntegrationScope(QObject *parent_p)
: IntegrationScopeBase(parent_p)
{
// qDebug() << "Constructing" << this;
}
IntegrationScope::IntegrationScope(const QPointF &point, double width, QObject *parent_p)
: IntegrationScopeBase(parent_p)
, m_point(point)
, m_width(width)
{
// qDebug() << "Constructing" << this << "point:" << point << "width:" << width;
}
IntegrationScope::IntegrationScope(const QPointF &point,
double width,
Enums::DataKind data_kind,
QObject *parent_p)
: IntegrationScopeBase(parent_p)
, m_point(point)
, m_width(width)
, m_dataKindX(data_kind)
{
// qDebug() << "Constructing" << this << "point:" << point << "width:" << width;
}
IntegrationScope::IntegrationScope(const IntegrationScope &other, QObject *parent_p)
: IntegrationScopeBase(parent_p)
, m_point(other.m_point)
, m_width(other.m_width)
, m_dataKindX(other.m_dataKindX)
{
// qDebug() << "Constructing" << this << "point:" << point << "width:" << width;
}
IntegrationScope::~IntegrationScope()
{
// qDebug() << "Destructing" << this;
}
IntegrationScope &
IntegrationScope::operator=(const IntegrationScope &other)
{
if(this == &other)
return *this;
m_point = other.m_point;
m_width = other.m_width;
return *this;
}
void
IntegrationScope::setPoint(const QPointF &point)
{
m_point = point;
}
bool
IntegrationScope::getPoint(QPointF &point) const
{
point = m_point;
return true;
}
IntegrationScopeFeatures
IntegrationScope::getLeftMostPoint(QPointF &point) const
{
point = m_point;
return IntegrationScopeFeatures::SUCCESS;
}
IntegrationScopeFeatures
IntegrationScope::getRightMostPoint(QPointF &point) const
{
point = QPointF(m_point.x() + m_width, m_point.y());
return IntegrationScopeFeatures::SUCCESS;
}
IntegrationScopeFeatures
IntegrationScope::getTopMostPoint(QPointF &point) const
{
point = m_point;
return IntegrationScopeFeatures::SUCCESS;
}
IntegrationScopeFeatures
IntegrationScope::getBottomMostPoint(QPointF &point) const
{
point = m_point;
return IntegrationScopeFeatures::SUCCESS;
}
void
IntegrationScope::setWidth(double width)
{
m_width = width;
}
IntegrationScopeFeatures
IntegrationScope::getWidth(double &width) const
{
width = m_width;
return IntegrationScopeFeatures::SUCCESS;
}
bool
IntegrationScope::range(Enums::Axis axis, double &start, double &end) const
{
if(axis == Enums::Axis::x)
{
start = m_point.x();
end = start + m_width;
return true;
}
return false;
}
void
IntegrationScope::setDataKindX([[maybe_unused]] Enums::DataKind data_kind)
{
m_dataKindX = data_kind;
}
bool
IntegrationScope::getDataKindX([[maybe_unused]] Enums::DataKind &data_kind)
{
data_kind = m_dataKindX;
return true;
}
bool
IntegrationScope::is1D() const
{
return true;
}
bool
IntegrationScope::is2D() const
{
return !is1D();
}
bool
IntegrationScope::isRectangle() const
{
return false;
}
bool
IntegrationScope::isRhomboid() const
{
return false;
}
bool
IntegrationScope::transpose()
{
return false;
}
void
IntegrationScope::update(const QPointF &point, double width)
{
m_point = point;
m_width = width;
}
bool
IntegrationScope::contains(const QPointF &point) const
{
return (point.x() >= m_point.x() && point.x() <= m_point.x() + m_width);
}
QString
IntegrationScope::toString() const
{
return QString("(%1, %2)").arg(m_point.x(), 0, 'f', 3).arg(m_point.x() + m_width, 0, 'f', 3);
}
void
IntegrationScope::reset()
{
m_point.rx() = 0;
m_point.ry() = 0;
m_width = 0;
}
} // namespace pappso
pappso::IntegrationScopeBase
Definition integrationscopebase.h:61
pappso::IntegrationScopeBase::IntegrationScopeBase
IntegrationScopeBase(QObject *parent_p=nullptr)
Definition integrationscopebase.cpp:21
pappso::IntegrationScope
Definition integrationscope.h:38
pappso::IntegrationScope::range
virtual bool range(Enums::Axis axis, double &start, double &end) const override
Definition integrationscope.cpp:129
pappso::IntegrationScope::setDataKindX
virtual void setDataKindX(Enums::DataKind data_kind) override
Definition integrationscope.cpp:143
pappso::IntegrationScope::m_dataKindX
Enums::DataKind m_dataKindX
Definition integrationscope.h:94
pappso::IntegrationScope::getPoint
virtual bool getPoint(QPointF &point) const override
Definition integrationscope.cpp:81
pappso::IntegrationScope::point
QPointF point
Definition integrationscope.h:39
pappso::IntegrationScope::getDataKindX
virtual bool getDataKindX(Enums::DataKind &data_kind) override
Definition integrationscope.cpp:149
pappso::IntegrationScope::getRightMostPoint
virtual IntegrationScopeFeatures getRightMostPoint(QPointF &point) const override
Definition integrationscope.cpp:95
pappso::IntegrationScope::getTopMostPoint
virtual IntegrationScopeFeatures getTopMostPoint(QPointF &point) const override
Definition integrationscope.cpp:102
pappso::IntegrationScope::contains
virtual bool contains(const QPointF &point) const override
Definition integrationscope.cpp:193
pappso::IntegrationScope::~IntegrationScope
virtual ~IntegrationScope()
Definition integrationscope.cpp:56
pappso::IntegrationScope::m_width
double m_width
Definition integrationscope.h:93
pappso::IntegrationScope::toString
virtual QString toString() const override
Definition integrationscope.cpp:199
pappso::IntegrationScope::is1D
bool is1D() const override
Definition integrationscope.cpp:156
pappso::IntegrationScope::getBottomMostPoint
virtual IntegrationScopeFeatures getBottomMostPoint(QPointF &point) const override
Definition integrationscope.cpp:109
pappso::IntegrationScope::isRhomboid
virtual bool isRhomboid() const override
Definition integrationscope.cpp:174
pappso::IntegrationScope::is2D
bool is2D() const override
Definition integrationscope.cpp:162
pappso::IntegrationScope::setWidth
virtual void setWidth(double width)
Definition integrationscope.cpp:116
pappso::IntegrationScope::update
virtual void update(const QPointF &point, double width)
Definition integrationscope.cpp:186
pappso::IntegrationScope::getWidth
virtual IntegrationScopeFeatures getWidth(double &width) const override
Definition integrationscope.cpp:122
pappso::IntegrationScope::transpose
virtual bool transpose() override
Definition integrationscope.cpp:180
pappso::IntegrationScope::m_point
QPointF m_point
Definition integrationscope.h:92
pappso::IntegrationScope::operator=
virtual IntegrationScope & operator=(const IntegrationScope &other)
Definition integrationscope.cpp:62
pappso::IntegrationScope::setPoint
virtual void setPoint(const QPointF &point)
Definition integrationscope.cpp:75
pappso::IntegrationScope::IntegrationScope
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)
Definition integrationscope.cpp:27
pappso::IntegrationScope::getLeftMostPoint
virtual IntegrationScopeFeatures getLeftMostPoint(QPointF &point) const override
Definition integrationscope.cpp:88
pappso::IntegrationScope::isRectangle
virtual bool isRectangle() const override
Definition integrationscope.cpp:168
pappso::IntegrationScope::reset
virtual void reset() override
Definition integrationscope.cpp:205
integrationscope.h
pappso::Enums::DataKind
DataKind
Definition types.h:249
pappso::Enums::Axis
Axis
Definition types.h:258
pappso::Enums::Axis::x
@ x
Definition types.h:260
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
pappso::IntegrationScopeFeatures
IntegrationScopeFeatures
Definition integrationscopebase.h:47
pappso::SUCCESS
@ SUCCESS
Definition integrationscopebase.h:51