1 #ifndef CTL_CHUNK2DVIEW_H 2 #define CTL_CHUNK2DVIEW_H 4 #include <QGraphicsView> 7 #include "mat/matrix.h" 99 QPair<double,double> windowing = qMakePair(0.0, 0.0),
double zoom = 1.0);
101 QPair<double,double> windowing = qMakePair(0.0, 0.0),
double zoom = 1.0);
119 QImage
image(
const QSize& renderSize = QSize());
125 bool save(
const QString& fileName);
135 void keyPressEvent(QKeyEvent *event)
override;
136 void mouseDoubleClickEvent(QMouseEvent* event)
override;
137 void mouseMoveEvent(QMouseEvent* event)
override;
138 void mousePressEvent(QMouseEvent* event)
override;
139 void wheelEvent(QWheelEvent* event)
override;
142 void pixelInfoUnderCursor(
int x,
int y,
float value);
143 void viewChangeRequested(
int requestedChange);
144 void windowingChanged(
double from,
double to);
145 void zoomChanged(
double zoom);
148 QGraphicsScene _scene;
149 QGraphicsPixmapItem* _imageItem;
150 QGraphicsLineItem* _contrastLineItem;
153 QVector<QRgb> _colorTable;
154 QPair<double, double> _window;
156 QPointF _actualZoom = QPointF(1.0, 1.0);
157 QString _contrLineLabelX = QStringLiteral(
"Position on line");
158 QString _contrLineLabelY = QStringLiteral(
"Value");
161 QPoint _mouseDragStart;
162 QPair<double, double> _windowDragStartValue;
163 QPair<double, double> _mouseWindowingScaling = {1.0, 1.0};
164 double _wheelZoomPerTurn = 0.25;
166 QPixmap checkerboard()
const;
167 void contrastLineFromClipbord();
168 void contrastLineToClipbord()
const;
169 QPoint pixelIdxFromPos(
const QPoint& pos);
170 void setGrayscaleColorTable();
197 QPair<double,double> windowing = qMakePair(0.0, 0.0),
double zoom = 1.0)
202 QPair<double,double> windowing = qMakePair(0.0, 0.0),
double zoom = 1.0)
205 template<u
int Rows, u
int Cols>
206 void plot(mat::Matrix<Rows, Cols> data,
207 QPair<double,double> windowing = qMakePair(0.0, 0.0),
double zoom = 50.0)
209 Chunk2D<float> chunk(Cols, Rows);
210 chunk.allocateMemory();
211 std::copy(data.constBegin(), data.constEnd(), chunk.rawData());
218 inline QVector<QRgb> colortableGrayscale()
220 QVector<QRgb> ret(256);
222 for(
int i = 0; i <= 255; ++i)
223 ret[i] = qRgb(i,i,i);
227 inline QVector<QRgb> colortableHue()
229 QVector<QRgb> ret(256);
231 for(
int i = 0; i <= 255; ++i)
232 ret[i] = QColor::fromHsvF(
double(i)/255.0, 1.0, 1.0).rgb();
236 inline QVector<QRgb> colortableJet()
238 QVector<QRgb> ret(256);
240 for(
int i = 0; i <= 255; ++i)
241 ret[i] = QColor::fromHsv(240 -
int(240.0 *
double(i)/255.0), 255, 255).rgb();
250 #endif // CTL_CHUNK2DVIEW_H void setWindowingMinMax()
Definition: chunk2dview.cpp:322
void autoResize()
Definition: chunk2dview.cpp:276
QPixmap pixmap() const
Definition: chunk2dview.cpp:247
static void plot(const Chunk2D< T > &data, QPair< double, double > windowing=qMakePair(0.0, 0.0), double zoom=1.0)
Definition: chunk2dview.h:189
void setLivePixelDataEnabled(bool enabled)
Definition: chunk2dview.cpp:298
const Chunk2D< float > & data() const
Definition: chunk2dview.cpp:242
QPair< double, double > windowingCenterWidth() const
Definition: chunk2dview.cpp:257
bool save(const QString &fileName)
Definition: chunk2dview.cpp:398
void setMouseWindowingScaling(double centerScale, double widthScale)
Definition: chunk2dview.cpp:151
QPair< double, double > windowingFromTo() const
Definition: chunk2dview.cpp:252
double zoom() const
Definition: chunk2dview.cpp:269
void setData(const Chunk2D< T > &data)
Definition: chunk2dview.h:179
Chunk2DView(QWidget *parent=nullptr)
Definition: chunk2dview.cpp:28
void setColorTable(const QVector< QRgb > &colorTable)
Definition: chunk2dview.cpp:117
void setWindowingCenterWidth(double center, double width)
Definition: chunk2dview.cpp:337
void saveDialog()
Definition: chunk2dview.cpp:408
void setWindowing(double from, double to)
Definition: chunk2dview.cpp:303
The Chunk2DView class provides basic visualization of Chunk2D data.
Definition: chunk2dview.h:87
void setWheelZoomPerTurn(double zoomPerTurn)
Definition: chunk2dview.cpp:163
void setContrastLinePlotLabels(const QString &labelX, const QString &labelY)
Definition: chunk2dview.cpp:217
void setZoom(double zoom)
Definition: chunk2dview.cpp:351
void showContrastLinePlot()
Definition: chunk2dview.cpp:228
QList< QPointF > contrastLine() const
Definition: chunk2dview.cpp:175
QImage image(const QSize &renderSize=QSize())
Definition: chunk2dview.cpp:202
void setAutoMouseWindowScaling()
Definition: chunk2dview.cpp:376