mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-22 11:05:26 +01:00
gui shows roi now
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "SlsQt1DZoomer.h"
|
||||
#include "sls/ansi.h"
|
||||
#include "sls/sls_detector_defs.h"
|
||||
|
||||
#include <array>
|
||||
#include <qwt_plot.h>
|
||||
#include <qwt_plot_curve.h>
|
||||
@@ -141,8 +143,9 @@ class SlsQt1DPlot : public QwtPlot {
|
||||
void SetLogX(bool yes = 1);
|
||||
void SetLogY(bool yes = 1);
|
||||
|
||||
void EnableRoiBox(std::array<int, 4> roi);
|
||||
void DisableRoiBox();
|
||||
void EnableRoiBoxes(std::vector<slsDetectorDefs::ROI> roi, int ymin,
|
||||
int ymax);
|
||||
void DisableRoiBoxes();
|
||||
|
||||
private:
|
||||
bool gainPlot{false};
|
||||
@@ -169,6 +172,7 @@ class SlsQt1DPlot : public QwtPlot {
|
||||
friend void SlsQtH1D::Attach(SlsQt1DPlot *p);
|
||||
friend void SlsQtH1D::Detach(SlsQt1DPlot *p);
|
||||
|
||||
std::vector<std::unique_ptr<QwtPlotShapeItem>> roiBoxes{};
|
||||
QwtPlotShapeItem *roiBox{nullptr};
|
||||
|
||||
signals:
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
#pragma once
|
||||
#include "SlsQt2DHist.h"
|
||||
#include "SlsQt2DZoomer.h"
|
||||
#include "sls/sls_detector_defs.h"
|
||||
|
||||
#include <array>
|
||||
#include <qlist.h>
|
||||
#include <qwt_plot.h>
|
||||
@@ -71,8 +73,8 @@ class SlsQt2DPlot : public QwtPlot {
|
||||
void SetLogz(bool enable, bool isMin, bool isMax, double min, double max);
|
||||
void SetZRange(bool isMin, bool isMax, double min, double max);
|
||||
void LogZ(bool on = 1);
|
||||
void EnableRoiBox(std::array<int, 4> roi);
|
||||
void DisableRoiBox();
|
||||
void EnableRoiBoxes(std::vector<slsDetectorDefs::ROI> roi);
|
||||
void DisableRoiBoxes();
|
||||
|
||||
public slots:
|
||||
void showSpectrogram(bool on);
|
||||
@@ -101,7 +103,7 @@ class SlsQt2DPlot : public QwtPlot {
|
||||
QList<double> contourLevelsLog;
|
||||
bool disableZoom{false};
|
||||
int isLog;
|
||||
QwtPlotShapeItem *roiBox{nullptr};
|
||||
std::vector<std::unique_ptr<QwtPlotShapeItem>> roiBoxes{};
|
||||
};
|
||||
|
||||
} // namespace sls
|
||||
|
||||
@@ -462,24 +462,26 @@ void SlsQt1DPlot::SetLog(int axisId, bool yes) {
|
||||
Update();
|
||||
}
|
||||
|
||||
void SlsQt1DPlot::EnableRoiBox(std::array<int, 4> roi) {
|
||||
if (roiBox == nullptr) {
|
||||
roiBox = new QwtPlotShapeItem();
|
||||
roiBox->attach(this);
|
||||
roiBox->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine);
|
||||
void SlsQt1DPlot::EnableRoiBoxes(std::vector<slsDetectorDefs::ROI> roi,
|
||||
int ymin, int ymax) {
|
||||
roiBoxes.clear();
|
||||
for (auto &r : roi) {
|
||||
auto box = std::make_unique<QwtPlotShapeItem>();
|
||||
box->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine);
|
||||
// TopLeft - BottomRight (max points are +1 on graph)
|
||||
QRectF myRect(QPointF(r.xmin, ymin), QPointF(r.xmax - 1, ymax - 1));
|
||||
box->setRect(myRect);
|
||||
box->attach(this);
|
||||
roiBoxes.push_back(std::move(box));
|
||||
}
|
||||
|
||||
// TopLeft - BottomRight (max points are +1 on graph)
|
||||
QRect myRect(QPoint(roi[0], roi[2]), QPoint(roi[1] - 1, roi[3] - 1));
|
||||
roiBox->setRect(QRectF(myRect));
|
||||
replot();
|
||||
}
|
||||
|
||||
void SlsQt1DPlot::DisableRoiBox() {
|
||||
if (roiBox != nullptr) {
|
||||
roiBox->detach();
|
||||
replot();
|
||||
void SlsQt1DPlot::DisableRoiBoxes() {
|
||||
for (auto &r : roiBoxes) {
|
||||
r->detach();
|
||||
}
|
||||
replot();
|
||||
}
|
||||
|
||||
void SlsQt1DPlot::SetZoomX(const QRectF &rect) {
|
||||
|
||||
@@ -350,25 +350,25 @@ void SlsQt2DPlot::showSpectrogram(bool on) {
|
||||
Update();
|
||||
}
|
||||
|
||||
void SlsQt2DPlot::EnableRoiBox(std::array<int, 4> roi) {
|
||||
if (roiBox == nullptr) {
|
||||
roiBox = new QwtPlotShapeItem();
|
||||
void SlsQt2DPlot::EnableRoiBoxes(std::vector<slsDetectorDefs::ROI> roi) {
|
||||
roiBoxes.clear();
|
||||
for (auto &r : roi) {
|
||||
auto box = std::make_unique<QwtPlotShapeItem>();
|
||||
box->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine);
|
||||
// TopLeft - BottomRight (max points are +1 on graph)
|
||||
QRectF myRect(QPointF(r.xmin, r.ymin), QPointF(r.xmax - 1, r.ymax - 1));
|
||||
box->setRect(myRect);
|
||||
box->attach(this);
|
||||
roiBoxes.push_back(std::move(box));
|
||||
}
|
||||
roiBox->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine);
|
||||
|
||||
// TopLeft - BottomRight (max points are +1 on graph)
|
||||
QRect myRect(QPoint(roi[0], roi[2]), QPoint(roi[1] - 1, roi[3] - 1));
|
||||
roiBox->setRect(QRectF(myRect));
|
||||
|
||||
roiBox->attach(this);
|
||||
replot();
|
||||
}
|
||||
|
||||
void SlsQt2DPlot::DisableRoiBox() {
|
||||
if (roiBox != nullptr) {
|
||||
roiBox->detach();
|
||||
replot();
|
||||
void SlsQt2DPlot::DisableRoiBoxes() {
|
||||
for (auto &r : roiBoxes) {
|
||||
r->detach();
|
||||
}
|
||||
replot();
|
||||
}
|
||||
|
||||
} // namespace sls
|
||||
|
||||
Reference in New Issue
Block a user