41 QList<std::complex<double>> impedances;
42 QList<double> frequencies;
70 void addTrace(
const QString& name,
const Trace& trace);
71 void removeTrace(
const QString&);
73 void setCharacteristicImpedance(
double z0);
74 double characteristicImpedance()
const {
return z0; }
75 QPen getTracePen(
const QString& traceName)
const;
76 void setTracePen(
const QString& traceName,
const QPen& pen);
77 QMap<QString, QPen> getTracesInfo()
const;
79 bool addMarker(
const QString& markerId,
double frequency,
80 const QPen& pen = QPen(Qt::red, 2));
81 bool removeMarker(
const QString& markerId);
82 bool updateMarkerFrequency(
const QString& markerId,
double newFrequency);
85 QMap<QString, double> getMarkers()
const;
88 void impedanceSelected(
const std::complex<double>& impedance);
91 void paintEvent(QPaintEvent* event)
override;
92 void mousePressEvent(QMouseEvent* event)
override;
95 void drawSmithChartGrid(QPainter* painter);
96 void drawReactanceArc(QPainter* painter,
const QPointF& center,
double radius,
98 void drawSusceptanceArc(QPainter* painter,
const QPointF& center,
99 double radius,
double susceptance);
100 void plotImpedanceData(QPainter* painter);
102 void drawMarkers(QPainter* painter);
103 QPointF smithChartToWidget(
const std::complex<double>& reflectionCoefficient);
104 std::complex<double> widgetToSmithChart(
const QPointF& widgetPoint);
106 interpolateImpedance(
const QList<double>& frequencies,
107 const QList<std::complex<double>>& impedances,
110 void calculateArcPoints(
const QRectF& arcRect,
double startAngle,
111 double sweepAngle, QPointF& startPoint,
115 QMap<QString, Trace> traces;
116 QMap<QString, Marker> markers;
118 QPointF lastMousePos;
126 void onZ0Changed(
int index);
127 void onShowAdmittanceChartChanged(
int);
128 void onShowConstantCurvesChanged(
int);
131 QComboBox* m_Z0ComboBox;
132 QCheckBox* m_ShowAdmittanceChartCheckBox;
134 m_ShowConstantCurvesCheckBox;
135 bool m_showConstantCurves;
136 bool m_showAdmittanceChart;
137 QVBoxLayout* m_layout;
141 QDoubleSpinBox* m_minFreqSpinBox;
142 QDoubleSpinBox* m_maxFreqSpinBox;
143 QComboBox* m_freqUnitComboBox;
149 void onMinFreqChanged(
double value);
150 void onMaxFreqChanged(
double value);
151 void onFreqUnitChanged(
int index);
152 double getFrequencyMultiplier()
const;
153 void updateFrequencyRange();