ddt 1.1.0
Loading...
Searching...
No Matches
ddtGraphicsView.hpp
Go to the documentation of this file.
1
21#ifndef DATAVISUALISATION_WIDGETSDIALOGS_SRC_INCLUDE_DDT_WIDGETS_DDTGRAPHICSVIEW_HPP_
22#define DATAVISUALISATION_WIDGETSDIALOGS_SRC_INCLUDE_DDT_WIDGETS_DDTGRAPHICSVIEW_HPP_
23
24#include <QtWidgets>
25
32#include "ddt/ddtLogger.hpp"
38#include "ddt/imageHandling.hpp"
39
42
43class DdtImageWidget;
44
48typedef struct SlitConfiguration {
73
75
80class DdtGraphicsView : public QGraphicsView {
81 Q_OBJECT
82
83 public:
88 explicit DdtGraphicsView(QWidget* parent = nullptr);
89
93 ~DdtGraphicsView() override;
94
100 void SetConvertPixelToDegrees(const double conv_pixel_degrees);
101
106 void SetDrawMode(const QString mode);
107
112 QString GetDrawMode() const;
113
118 void SetDrawSlitLine(const bool draw_line);
119
127 void SetStatisticRect(const double x1, const double y1, const double x2,
128 const double y2);
129
134 void SetOverlayImageFile(const QString filename);
135
141
147
153
159
163 void UpdateAllStatistics();
164
168 void UpdateCursorInfo();
169
170 public slots:
175 void ClearTextItemFocus();
176
177 private slots:
181 void HandleText();
182
183 protected:
188 void mouseMoveEvent(QMouseEvent* event) override;
189
194 void mousePressEvent(QMouseEvent* event) override;
195
200 void mouseReleaseEvent(QMouseEvent* event) override;
201
206 void mouseDoubleClickEvent(QMouseEvent* event) override;
207
212 void keyPressEvent(QKeyEvent* event) override;
213
218 void wheelEvent(QWheelEvent* event) override;
219
226 void drawForeground(QPainter* painter, const QRectF& rect) override;
227
231 bool IsHandleGraphicalElement() const;
232
237 void AddTextItem();
238
239 signals:
246 void CursorPosition(double x, double y, bool mouse_clicked);
247
256 void GraphicalElement(double x1, double y1, double x2, double y2,
257 QString draw_mode);
258
259 void GraphicalTextElement(double x1, double y1, double x2, double y2,
260 QString draw_mode, QString text);
261
262 void StatisticRectangle(double x1, double y1, double x2, double y2);
263
264 void SlitElement(double target_x, double target_y, double slit_x,
265 double slit_y, double x_offset, double y_offset);
266
270 void CalculateHistogramReferenceLine(const QPointF p1, const QPointF p2);
271
275 void CalculateDistanceLine(const QPointF p1, const QPointF p2);
276
281
286
292 void LayerIncrement(const int inc);
293
299 void LayerDecrement(const int dec);
300
301 private:
305 DdtImageWidget* parent;
306
310 bool drawing_enabled = false;
311
316 QString draw_mode = "none";
317
322 QPointF orig_point;
323
328 QPointF cur_point;
329
333 double convert_pixel_to_degrees = 0.0;
334
335 DdtGraphicsTextItem* text_item = nullptr;
336 QString current_text = "";
337 QPointF current_text_pos;
338
339 DdtGraphicalElementStatRectangle* statistic_rect = nullptr;
340 DdtGraphicalElementSlit* slit_element = nullptr;
341 DdtGraphicalElementRefLine* ref_line_element = nullptr;
342 DdtGraphicalElementRefLine* dist_line_element = nullptr;
343 bool draw_slit_line = false;
344 bool slit_config_read = false;
345
346 // Configurable properties of slit overlay
347 SlitConfiguration slit_config;
348
349 QString overlay_image_file;
350
351 std::unique_ptr<DdtGraphicsViewDraw> graphics_view_draw =
352 std::unique_ptr<DdtGraphicsViewDraw>(new DdtGraphicsViewDraw());
353
360 void DrawSlit(QPainter& painter, const QPointF start);
361
366 void ReadSlitParameter(const std::string config_file, double* const slit_x,
367 double* const slit_y, double* const slit_size_x,
368 double* const slit_size_y, double* const slit_angle,
369 QString* const slit_color) const;
373 void CreateSlit(const QColor line_color, const double slit_x,
374 const double slit_y, const double slit_size_x,
375 const double slit_size_y, const double slit_angle);
376
380 std::string GetConfigPath() const;
381};
382
383#endif /* DATAVISUALISATION_WIDGETSDIALOGS_SRC_INCLUDE_DDT_WIDGETS_DDTGRAPHICSVIEW_HPP_ \
384 */
385
Definition: ddtGraphicalElementRefLine.hpp:29
Definition: ddtGraphicalElementSlit.hpp:27
Definition: ddtGraphicalElementStatRectangle.hpp:28
Definition: ddtGraphicsTextItem.hpp:29
Definition: ddtGraphicsViewDraw.hpp:36
Definition: ddtGraphicsView.hpp:80
void AddReferenceLineElementToScene()
Definition: ddtGraphicsView.cpp:150
bool IsHandleGraphicalElement() const
Definition: ddtGraphicsView.cpp:394
void mouseMoveEvent(QMouseEvent *event) override
Definition: ddtGraphicsView.cpp:212
void AddDistanceLineElementToScene()
Definition: ddtGraphicsView.cpp:159
void MouseIncrementScale()
void UpdateAllStatistics()
Definition: ddtGraphicsView.cpp:168
void SetDrawSlitLine(const bool draw_line)
Definition: ddtGraphicsView.cpp:104
void keyPressEvent(QKeyEvent *event) override
Definition: ddtGraphicsView.cpp:435
void mouseReleaseEvent(QMouseEvent *event) override
Definition: ddtGraphicsView.cpp:311
void mousePressEvent(QMouseEvent *event) override
Definition: ddtGraphicsView.cpp:241
~DdtGraphicsView() override
void mouseDoubleClickEvent(QMouseEvent *event) override
Definition: ddtGraphicsView.cpp:480
void SetStatisticRect(const double x1, const double y1, const double x2, const double y2)
Definition: ddtGraphicsView.cpp:109
void ClearTextItemFocus()
Definition: ddtGraphicsView.cpp:428
void GraphicalTextElement(double x1, double y1, double x2, double y2, QString draw_mode, QString text)
void SetOverlayImageFile(const QString filename)
Definition: ddtGraphicsView.cpp:127
void UpdateCursorInfo()
Definition: ddtGraphicsView.cpp:205
void MouseDecrementScale()
void SetDrawMode(const QString mode)
Definition: ddtGraphicsView.cpp:52
void AddSlitElementToScene()
Definition: ddtGraphicsView.cpp:143
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:496
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:101
void wheelEvent(QWheelEvent *event) override
Definition: ddtGraphicsView.cpp:485
void SetConvertPixelToDegrees(const double conv_pixel_degrees)
Definition: ddtGraphicsView.cpp:42
void CursorPosition(double x, double y, bool mouse_clicked)
void LayerIncrement(const int inc)
void LayerDecrement(const int dec)
void AddStatisticRectToScene()
Definition: ddtGraphicsView.cpp:133
void AddTextItem()
Definition: ddtGraphicsView.cpp:524
Definition: ddtImageWidget.hpp:52
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:48
double config_slit_size_y
Definition: ddtGraphicsView.hpp:64
double config_slit_size_x
Definition: ddtGraphicsView.hpp:60
double config_slit_y
Definition: ddtGraphicsView.hpp:56
QString config_slit_color
Definition: ddtGraphicsView.hpp:72
double config_slit_angle
Definition: ddtGraphicsView.hpp:68
double config_slit_x
Definition: ddtGraphicsView.hpp:52
string p1
Definition: testCommandLineParser.cpp:360
string p2
Definition: testCommandLineParser.cpp:361