ddt 1.2.1
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
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
240
241 signals:
248 void CursorPosition(double x, double y, bool mouse_clicked);
249
258 void GraphicalElement(double x1, double y1, double x2, double y2,
259 QString draw_mode);
260
261 void GraphicalTextElement(double x1, double y1, double x2, double y2,
262 QString draw_mode, QString text);
263
264 void StatisticRectangle(double x1, double y1, double x2, double y2);
265
266 void SlitElement(double target_x, double target_y, double slit_x,
267 double slit_y, double x_offset, double y_offset);
268
272 void CalculateHistogramReferenceLine(const QPointF p1, const QPointF p2);
273
277 void CalculateDistanceLine(const QPointF p1, const QPointF p2);
278
283
288
294 void LayerIncrement(const int inc);
295
301 void LayerDecrement(const int dec);
302
303 private:
307 DdtImageWidget* parent;
308
312 bool drawing_enabled = false;
313
318 QString draw_mode = "none";
319
324 QPointF start_point;
325
330 QPointF current_point;
331
335 double convert_pixel_to_degrees = 0.0;
336
337 DdtGraphicsTextItem* text_item = nullptr;
338 QString current_text = "";
339 QPointF current_text_pos;
340
341 DdtGraphicalElementStatRectangle* statistic_rect = nullptr;
342 DdtGraphicalElementSlit* slit_element = nullptr;
343 DdtGraphicalElementRefLine* ref_line_element = nullptr;
344 DdtGraphicalElementRefLine* dist_line_element = nullptr;
345 bool draw_slit_line = false;
346 bool slit_config_read = false;
347
348 // Configurable properties of slit overlay
349 SlitConfiguration slit_config;
350
351 QString overlay_image_file;
352
353 std::unique_ptr<DdtGraphicsViewDraw> graphics_view_draw =
354 std::unique_ptr<DdtGraphicsViewDraw>(new DdtGraphicsViewDraw());
355
362 void DrawSlit(QPainter& painter, const QPointF start);
363
368 void ReadSlitParameter(const std::string config_file, double* const slit_x,
369 double* const slit_y, double* const slit_size_x,
370 double* const slit_size_y, double* const slit_angle,
371 QString* const slit_color) const;
375 void CreateSlit(const QColor line_color, const double slit_x,
376 const double slit_y, const double slit_size_x,
377 const double slit_size_y, const double slit_angle);
378
382 std::string GetConfigPath() const;
383};
384
385#endif /* DATAVISUALISATION_WIDGETSDIALOGS_SRC_INCLUDE_DDT_WIDGETS_DDTGRAPHICSVIEW_HPP_ \
386 */
387
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:439
void mouseMoveEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:212
void AddDistanceLineElementToScene()
Definition ddtGraphicsView.cpp:159
void MouseIncrementScale()
void ReferenceLineHandleHoldingShift()
Definition ddtGraphicsView.cpp:250
void UpdateAllStatistics()
Definition ddtGraphicsView.cpp:168
void SetDrawSlitLine(const bool draw_line)
Definition ddtGraphicsView.cpp:104
void keyPressEvent(QKeyEvent *event) override
Definition ddtGraphicsView.cpp:480
void mouseReleaseEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:371
void mousePressEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:294
~DdtGraphicsView() override
void mouseDoubleClickEvent(QMouseEvent *event) override
Definition ddtGraphicsView.cpp:525
void SetStatisticRect(const double x1, const double y1, const double x2, const double y2)
Definition ddtGraphicsView.cpp:109
void ClearTextItemFocus()
Definition ddtGraphicsView.cpp:473
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:541
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:530
DdtGraphicsView(QWidget *parent=nullptr)
Definition ddtGraphicsView.cpp:37
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:569
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...
struct SlitConfiguration SlitConfiguration
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