ddt 1.4.0
 
Loading...
Searching...
No Matches
ddtGraphicsView.hpp
Go to the documentation of this file.
1
11
12#ifndef DATAVISUALISATION_WIDGETSDIALOGS_SRC_INCLUDE_DDT_WIDGETS_DDTGRAPHICSVIEW_HPP_
13#define DATAVISUALISATION_WIDGETSDIALOGS_SRC_INCLUDE_DDT_WIDGETS_DDTGRAPHICSVIEW_HPP_
14
15#include <QtWidgets>
16
23#include "ddt/ddtLogger.hpp"
29#include "ddt/imageHandling.hpp"
30
33
34class DdtImageWidget;
35
66
71class DdtGraphicsView : public QGraphicsView {
72 Q_OBJECT
73
74 public:
79 explicit DdtGraphicsView(QWidget* parent = nullptr);
80
84 ~DdtGraphicsView() override;
85
91 void SetConvertPixelToDegrees(const double conv_pixel_degrees);
92
97 void SetDrawMode(const QString mode);
98
103 QString GetDrawMode() const;
104
109 void SetDrawSlitLine(const bool draw_line);
110
118 void SetStatisticRect(const double x1, const double y1, const double x2,
119 const double y2);
120
125 void SetOverlayImageFile(const QString filename);
126
132
138
144
150
154 void UpdateAllStatistics();
155
159 void UpdateCursorInfo();
160
161 public slots:
166 void ClearTextItemFocus();
167
168 private slots:
172 void HandleText();
173
174 protected:
179 void mouseMoveEvent(QMouseEvent* event) override;
180
185 void mousePressEvent(QMouseEvent* event) override;
186
191 void mouseReleaseEvent(QMouseEvent* event) override;
192
197 void mouseDoubleClickEvent(QMouseEvent* event) override;
198
203 void keyPressEvent(QKeyEvent* event) override;
204
209 void wheelEvent(QWheelEvent* event) override;
210
217 void drawForeground(QPainter* painter, const QRectF& rect) override;
218
222 bool IsHandleGraphicalElement() const;
223
228 void AddTextItem();
229
231
232 signals:
239 void CursorPosition(double x, double y, bool mouse_clicked);
240
249 void GraphicalElement(double x1, double y1, double x2, double y2,
250 QString draw_mode);
251
252 void GraphicalTextElement(double x1, double y1, double x2, double y2,
253 QString draw_mode, QString text);
254
255 void StatisticRectangle(double x1, double y1, double x2, double y2);
256
257 void SlitElement(double target_x, double target_y, double slit_x,
258 double slit_y, double x_offset, double y_offset);
259
263 void CalculateHistogramReferenceLine(const QPointF p1, const QPointF p2);
264
268 void CalculateDistanceLine(const QPointF p1, const QPointF p2);
269
274
279
285 void LayerIncrement(const int inc);
286
292 void LayerDecrement(const int dec);
293
294 private:
298 DdtImageWidget* parent;
299
303 bool drawing_enabled = false;
304
309 QString draw_mode = "none";
310
315 QPointF start_point;
316
321 QPointF current_point;
322
326 double convert_pixel_to_degrees = 0.0;
327
328 DdtGraphicsTextItem* text_item = nullptr;
329 QString current_text = "";
330 QPointF current_text_pos;
331
332 DdtGraphicalElementStatRectangle* statistic_rect = nullptr;
333 DdtGraphicalElementSlit* slit_element = nullptr;
334 DdtGraphicalElementRefLine* ref_line_element = nullptr;
335 DdtGraphicalElementRefLine* dist_line_element = nullptr;
336 bool draw_slit_line = false;
337 bool slit_config_read = false;
338
339 // Configurable properties of slit overlay
340 SlitConfiguration slit_config;
341
342 QString overlay_image_file;
343
344 std::unique_ptr<DdtGraphicsViewDraw> graphics_view_draw =
345 std::unique_ptr<DdtGraphicsViewDraw>(new DdtGraphicsViewDraw());
346
353 void DrawSlit(QPainter& painter, const QPointF start);
354
359 void ReadSlitParameter(const std::string config_file, double* const slit_x,
360 double* const slit_y, double* const slit_size_x,
361 double* const slit_size_y, double* const slit_angle,
362 QString* const slit_color) const;
366 void CreateSlit(const QColor line_color, const double slit_x,
367 const double slit_y, const double slit_size_x,
368 const double slit_size_y, const double slit_angle);
369
373 std::string GetConfigPath() const;
374};
375
376#endif /* DATAVISUALISATION_WIDGETSDIALOGS_SRC_INCLUDE_DDT_WIDGETS_DDTGRAPHICSVIEW_HPP_ \
377 */
Definition ddtGraphicalElementRefLine.hpp:20
Definition ddtGraphicalElementSlit.hpp:18
Definition ddtGraphicalElementStatRectangle.hpp:19
Definition ddtGraphicsTextItem.hpp:20
Definition ddtGraphicsViewDraw.hpp:27
void AddReferenceLineElementToScene()
Definition ddtGraphicsView.cpp:141
bool IsHandleGraphicalElement() const
Definition ddtGraphicsView.cpp:430
void mouseMoveEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:203
void AddDistanceLineElementToScene()
Definition ddtGraphicsView.cpp:150
void MouseIncrementScale()
void ReferenceLineHandleHoldingShift()
Definition ddtGraphicsView.cpp:241
void UpdateAllStatistics()
Definition ddtGraphicsView.cpp:159
void SetDrawSlitLine(const bool draw_line)
Definition ddtGraphicsView.cpp:95
void keyPressEvent(QKeyEvent *event) override
Definition ddtGraphicsView.cpp:471
void mouseReleaseEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:362
void mousePressEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:285
~DdtGraphicsView() override
void mouseDoubleClickEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:516
void SetStatisticRect(const double x1, const double y1, const double x2, const double y2)
Definition ddtGraphicsView.cpp:100
void ClearTextItemFocus()
Definition ddtGraphicsView.cpp:464
void GraphicalTextElement(double x1, double y1, double x2, double y2, QString draw_mode, QString text)
void SetOverlayImageFile(const QString filename)
Definition ddtGraphicsView.cpp:118
void UpdateCursorInfo()
Definition ddtGraphicsView.cpp:196
void MouseDecrementScale()
void SetDrawMode(const QString mode)
Definition ddtGraphicsView.cpp:43
void AddSlitElementToScene()
Definition ddtGraphicsView.cpp:134
void SlitElement(double target_x, double target_y, double slit_x, double slit_y, double x_offset, double y_offset)
void drawForeground(QPainter *painter, const QRectF &rect) override
Definition ddtGraphicsView.cpp:532
void StatisticRectangle(double x1, double y1, double x2, double y2)
void GraphicalElement(double x1, double y1, double x2, double y2, QString draw_mode)
void CalculateHistogramReferenceLine(const QPointF p1, const QPointF p2)
void CalculateDistanceLine(const QPointF p1, const QPointF p2)
QString GetDrawMode() const
Definition ddtGraphicsView.cpp:92
void wheelEvent(QWheelEvent *event) override
Definition ddtGraphicsView.cpp:521
DdtGraphicsView(QWidget *parent=nullptr)
Definition ddtGraphicsView.cpp:28
void SetConvertPixelToDegrees(const double conv_pixel_degrees)
Definition ddtGraphicsView.cpp:33
void CursorPosition(double x, double y, bool mouse_clicked)
void LayerIncrement(const int inc)
void LayerDecrement(const int dec)
void AddStatisticRectToScene()
Definition ddtGraphicsView.cpp:124
void AddTextItem()
Definition ddtGraphicsView.cpp:560
Definition ddtImageWidget.hpp:43
DDT Dialogs. Factory class for the DDT dialogs. Factory class for the DDT dialogs.
DDT Dialog IDs. ID values for all used dialogs. IDs for the used dialogs.
DDT Dialogs. Base class for the DDT dialogs. Base class for the DDT dialogs.
DDT Graphics. Class for images. Class for the Graphical Elements - Image.
DDT Graphics. Class for common properties of graphical elements like line width, colour etc....
DDT Graphics. Class for reference line elements. Class for the Graphical Elements - Reference Line.
DDT Graphics. Class for slit elements. Class for the Graphical Elements - Slit.
DDT Graphics. Class for rectangles for statistics. Class for the Graphical Elements - Statistics Rect...
DDT Utils. Helper classes for DDT Datavisualisation. Utilities for the DDT Datavisualisation.
DDT Widgets. Helper class for the graphics display of the DDT Image Widget. Helper class for the Grap...
DDT Widgets. Class for the DDT Image Widget. Class for the Image Widget. The widget is used to displa...
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
DDT Graphics. Class for the rendering of graphical elements into the view. Class for the Graphical Ov...
DDT Widgets. Base class for rendering plugins. Base class for rendering plugins.
Image Handling class, offers access to image handling functions. This file is part of the DDT Image H...
Definition ddtGraphicsView.hpp:39
double config_slit_size_y
Definition ddtGraphicsView.hpp:55
double config_slit_size_x
Definition ddtGraphicsView.hpp:51
double config_slit_y
Definition ddtGraphicsView.hpp:47
QString config_slit_color
Definition ddtGraphicsView.hpp:63
double config_slit_angle
Definition ddtGraphicsView.hpp:59
double config_slit_x
Definition ddtGraphicsView.hpp:43
string p1
Definition testCommandLineParser.cpp:355
string p2
Definition testCommandLineParser.cpp:356