21#ifndef DDT_DATAVISUALISATION_DDTDIALOGS_REFERENCELINE_HPP
22#define DDT_DATAVISUALISATION_DDTDIALOGS_REFERENCELINE_HPP
24#include <QGraphicsPathItem>
25#include <QGraphicsRectItem>
27#pragma GCC diagnostic push
28#pragma GCC diagnostic ignored "-Wpedantic"
29#include <boost/math/interpolators/cardinal_cubic_b_spline.hpp>
31#pragma GCC diagnostic pop
32#include <boost/math/special_functions/trunc.hpp>
63 const QVariant parameter)
override;
71 const QVariant parameter)
override;
79 bool eventFilter(QObject *obj, QEvent *event)
override;
96 static const int DIALOG_WIDTH = 850;
97 static const int DIALOG_HEIGHT = 600;
99 static const int CHART_SIZE_X = 500;
100 static const int CHART_SIZE_Y = 300;
101 static const int AXIS_X_HEIGHT = 30;
102 static const int AXIS_Y_WIDTH = 100;
104 static const int LINE_EDIT_VALUE_WIDTH = 120;
105 static const int LINE_EDIT_VALUE_HEIGHT = 10;
107 QVBoxLayout* vertical_layout =
nullptr;
108 QHBoxLayout* horizontal_layout_up =
nullptr;
109 QHBoxLayout* horizontal_layout_down =
nullptr;
110 QGridLayout* chart_layout =
nullptr;
111 QLabel* label_low =
nullptr;
112 QLineEdit* line_edit_low =
nullptr;
113 QLabel* label_high =
nullptr;
114 QLineEdit* line_edit_high =
nullptr;
115 QPushButton* push_button_auto =
nullptr;
116 QLabel* label_x =
nullptr;
118 QLabel* label_value =
nullptr;
120 QLabel* label_smooth =
nullptr;
121 QComboBox* combo_box_interpolation =
nullptr;
122 QLabel* label_scaling =
nullptr;
123 QComboBox* checkbox_scaling_value =
nullptr;
124 QDialogButtonBox* push_buttons_box =
nullptr;
125 QPushButton* push_button_cancel =
nullptr;
126 QLabel* label_chart =
nullptr;
127 QLabel* label_xaxis =
nullptr;
128 QLabel* label_yaxis =
nullptr;
129 QLabel* label_fill =
nullptr;
130 QPushButton* push_button_help =
nullptr;
132 QList<QVariant> spectrum_values;
134 double current_range_min = 0.0;
135 double original_range_min = 0.0;
137 double current_range_max = 0.0;
138 double original_range_max = 0.0;
140 double current_value_min = 0.0;
141 double original_value_min = 0.0;
143 double current_value_max = 0.0;
144 double original_value_max = 0.0;
146 double chart_min = 0.0;
147 double chart_max = 0.0;
149 double intensity_low = 0.0;
150 double intensity_high = 0.0;
152 bool auto_mode =
true;
154 double scaling_factor = 1.0;
156 QString current_interpolation;
158 QPointF mouse_start_pos;
159 QPointF mouse_delta_pos;
160 int x_axis_scalelines = 0;
161 int y_axis_scalelines = 0;
162 int x_axis_tickstep = 0;
163 int y_axis_tickstep = 0;
164 QPoint chart_movement;
166 std::unique_ptr<QPainterPath> line_path;
167 std::unique_ptr<QGraphicsPathItem> line_path_item;
169 QList<QPointF> point_list;
172 void ClearEditWidgets();
174 void SetRangeValues(
const QList<QVariant> range_values);
175 void SetSpectrum(
const QList<QVariant> spectrum_values);
178 void DrawScaleX(
const double min_value,
const double max_value,
180 void DrawScaleY(
const double min_value,
const double max_value,
181 double *chart_min_value,
double *chart_max_value,
183 double CalculateTickPositionLinear(
const double tick,
const double min_value,
185 const double maxsize)
const;
186 void FindRangeMinMax();
187 void FindValueMinMax();
189 void FillPointList(
const double xfactor,
const double yfactor,
const int height);
190 void AddIntermediatePoints(
const double xfactor,
const double yfactor,
const int height);
191 void AddStepPoints(
const double xfactor,
const double yfactor,
const int height);
192 void AddQuadraticPoints(
const double xfactor,
const double yfactor,
const int height);
193 void AddNaturalPoints(
const double xfactor,
const double yfactor,
const int height);
218 void DisplayXYValuesUnderCursor(
const double chart_x,
const double chart_y);
219 void ScaleChanged(
const QString &text);
227 const QVariant parameter);
Definition ddtDialog.hpp:27
Definition ddtReferenceLineDialog.hpp:41
DdtReferenceLineDialog(QWidget *parent=nullptr)
Definition ddtReferenceLineDialog.cpp:36
QString GetDialogName() override
Definition ddtReferenceLineDialog.cpp:41
void closeEvent(QCloseEvent *event) override
Definition ddtReferenceLineDialog.cpp:839
void changeEvent(QEvent *event) override
Definition ddtReferenceLineDialog.cpp:825
void SetChangedParameter(const QString param_id, const QVariant parameter) override
Definition ddtReferenceLineDialog.cpp:867
void AutoPressed()
Definition ddtReferenceLineDialog.cpp:902
void focusInEvent(QFocusEvent *event) override
Definition ddtReferenceLineDialog.cpp:833
void QuitPressed() override
Definition ddtReferenceLineDialog.cpp:910
bool eventFilter(QObject *obj, QEvent *event) override
Definition ddtReferenceLineDialog.cpp:742
virtual ~DdtReferenceLineDialog()=default
void SetInitialParameter(const QString parameter_id, const QVariant parameter) override
Definition ddtReferenceLineDialog.cpp:846
virtual void CreateDialog() override
Definition ddtReferenceLineDialog.cpp:45
void ParameterChanged(const QString dialog_id, const QString param_id, const QVariant parameter)
virtual void RetranslateUi()
Definition ddtReferenceLineDialog.cpp:230
void UpdateIntensityValues()
Definition ddtReferenceLineDialog.cpp:936
void InterpolationChanged(const QString &text)
Definition ddtReferenceLineDialog.cpp:917
Definition ddtDatavisualisationUtils.hpp:27
DDT Utils. Helper classes for DDT Datavisualisation. Utilities for the DDT Datavisualisation.
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.