diff options
Diffstat (limited to 'Project/TransferFunction.h')
-rw-r--r-- | Project/TransferFunction.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/Project/TransferFunction.h b/Project/TransferFunction.h index 45681ce..38e31bb 100644 --- a/Project/TransferFunction.h +++ b/Project/TransferFunction.h @@ -10,7 +10,14 @@ class TransferFunctionForm; class TransferFunction : public ControlElement { -public: + public: + struct SpaceState { + std::vector<std::vector<double> > A; + std::vector<double> B; + std::vector<double> C; + double D; + }; + TransferFunction(int id); ~TransferFunction(); @@ -19,25 +26,35 @@ public: virtual bool Intersects(wxRect2DDouble rect) const { return m_rect.Intersects(rect); } virtual bool ShowForm(wxWindow* parent, Element* element); virtual void Rotate(bool clockwise = true); - + virtual std::vector<double> GetNumerator() const { return m_numerator; } virtual std::vector<double> GetDenominator() const { return m_denominator; } virtual void SetNumerator(std::vector<double> numerator) { m_numerator = numerator; } virtual void SetDenominator(std::vector<double> denominator) { m_denominator = denominator; } virtual void UpdateTFText(); - -protected: + virtual SpaceState GetSpaceState() { return m_ss; } + virtual void CalculateSpaceState(double timeStep = 1e-3, double error = 1e-3); + virtual bool Solve(double input); + + protected: virtual void SetText(wxString numerator, wxString denominator); virtual wxString GetSuperscriptNumber(int number); virtual void GetTFString(wxString& numerator, wxString& denominator); - + wchar_t m_supNumber[10]; - + wxGLString* m_glStringNum = NULL; wxGLString* m_glStringDen = NULL; int m_fontSize = 10; + std::vector<double> m_numerator; std::vector<double> m_denominator; + SpaceState m_ss; + + std::vector<double> m_x; + std::vector<double> m_dx; + double m_timeStep = 1e-3; + double m_error = 1e-3; }; -#endif // TRANSFERFUNCTION_H +#endif // TRANSFERFUNCTION_H |