19#include "../elements/controlElement/TransferFunction.h"
21TransferFunctionForm::TransferFunctionForm(wxWindow* parent,
TransferFunction* transferFunction)
22 : TransferFunctionFormBase(parent)
24 SetSize(GetBestSize());
27 m_tf = transferFunction;
31TransferFunctionForm::~TransferFunctionForm() {}
32void TransferFunctionForm::OnCancelClick(wxCommandEvent& event) { EndModal(wxID_CANCEL); }
33void TransferFunctionForm::OnOKClick(wxCommandEvent& event)
35 if(ValidateData()) EndModal(wxID_OK);
38void TransferFunctionForm::LoadTFData()
40 auto num = m_tf->GetNumerator();
41 auto den = m_tf->GetDenominator();
44 for(
auto it = num.begin(), itEnd = num.end(); it != itEnd; ++it) {
51 m_textCtrlNumerator->SetValue(numStr);
54 for(
auto it = den.begin(), itEnd = den.end(); it != itEnd; ++it) {
61 m_textCtrlDenominator->SetValue(denStr);
64bool TransferFunctionForm::ValidateData()
66 wxString num = m_textCtrlNumerator->GetValue();
67 std::vector<double> numerator;
70 wxString strValue = num.BeforeFirst(
' ', &rest);
74 _(
"Value entered incorrectly in the field \"Numerator parameters\".")))
76 numerator.push_back(value);
79 wxString den = m_textCtrlDenominator->GetValue();
80 std::vector<double> denominator;
83 wxString strValue = den.BeforeFirst(
' ', &rest);
87 _(
"Value entered incorrectly in the field \"Denominator parameters\".")))
89 denominator.push_back(value);
91 m_tf->SetNumerator(numerator);
92 m_tf->SetDenominator(denominator);
static bool DoubleFromString(wxWindow *parent, wxString strValue, double &value, wxString errorMsg)
Get a double value from a string. Show a error message if the conversion fail.
static wxString StringFromDouble(double value, int minDecimal=1, int maxDecimals=13)
Convert a double value to string.
Calculates the time response by a frequency domain transfer function.