diff options
author | Thales1330 <thaleslima.ufu@gmail.com> | 2016-12-06 13:26:46 -0200 |
---|---|---|
committer | Thales1330 <thaleslima.ufu@gmail.com> | 2016-12-06 13:26:46 -0200 |
commit | e282ec268db0d17a1d53f813c5fff9473d25e797 (patch) | |
tree | 517e01b8685248f04548513091e7040a1b36ec0b /Project/Line.h | |
parent | d4efffcdedbb41596eecd0882a1cef76f6afc435 (diff) | |
parent | e266f5811403beea13c9cc5399c55db4a34fdd3c (diff) | |
download | PSP.git-e282ec268db0d17a1d53f813c5fff9473d25e797.tar.gz PSP.git-e282ec268db0d17a1d53f813c5fff9473d25e797.tar.xz PSP.git-e282ec268db0d17a1d53f813c5fff9473d25e797.zip |
Merge remote-tracking branch 'refs/remotes/origin/wip/currentState'
Diffstat (limited to 'Project/Line.h')
-rw-r--r-- | Project/Line.h | 62 |
1 files changed, 47 insertions, 15 deletions
diff --git a/Project/Line.h b/Project/Line.h index 08a2b36..1a9aa2b 100644 --- a/Project/Line.h +++ b/Project/Line.h @@ -1,36 +1,68 @@ #ifndef LINE_H #define LINE_H -#include <wx/msgdlg.h> +#include "LineForm.h" +#include "Branch.h" -#include "Element.h" +struct LineElectricalData { + // General + wxString name = ""; + double nominalVoltage = 138.0; + ElectricalUnit nominalVoltageUnit = UNIT_kV; + double nominalPower = 100.0; + ElectricalUnit nominalPowerUnit = UNIT_MVA; + double resistance = 0.0; + ElectricalUnit resistanceUnit = UNIT_PU; + double indReactance = 1.0; + ElectricalUnit indReactanceUnit = UNIT_PU; + double capSusceptance = 0.0; + ElectricalUnit capSusceptanceUnit = UNIT_PU; + double lineSize = 100.0; + bool useLinePower = false; -class Line : public Element + // Power flow (p.u.) + std::complex<double> current[2] = {std::complex<double>(0.0, 0.0), std::complex<double>(0.0, 0.0)}; + std::complex<double> powerFlow[2] = {std::complex<double>(0.0, 0.0), std::complex<double>(0.0, 0.0)}; + + // Fault + double zeroResistance = 0.0; + double zeroIndReactance = 1.0; + double zeroCapSusceptance = 0.0; +}; + +class Line : public Branch { public: Line(); + Line(wxString name); ~Line(); virtual bool Contains(wxPoint2DDouble position) const; virtual void Draw(wxPoint2DDouble translation, double scale) const; - virtual void Move(wxPoint2DDouble position) {} - virtual void StartMove(wxPoint2DDouble position); + virtual void Move(wxPoint2DDouble position); + virtual void StartMove(wxPoint2DDouble position); virtual void MoveNode(Element* parent, wxPoint2DDouble position); - virtual wxCursor GetBestPickboxCursor() const; + virtual bool SetNodeParent(Element* parent); + virtual wxCursor GetBestPickboxCursor() const { return wxCURSOR_SIZING; } virtual bool AddParent(Element* parent, wxPoint2DDouble position); virtual bool Intersects(wxRect2DDouble rect) const; virtual void MovePickbox(wxPoint2DDouble position); virtual bool PickboxContains(wxPoint2DDouble position); - virtual void Rotate() {} - virtual void RotateNode(Element* parent); virtual void AddPoint(wxPoint2DDouble point); - virtual bool GetContextMenu(wxMenu& menu); + virtual bool GetContextMenu(wxMenu& menu); + virtual void RemoveNode(wxPoint2DDouble point); + virtual void AddNode(wxPoint2DDouble point); + virtual void RotateNode(Element* parent, bool clockwise = true); + virtual void CalculateBoundaries(wxPoint2DDouble& leftUp, wxPoint2DDouble& rightBottom) const; + virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection); + virtual bool ShowForm(wxWindow* parent, Element* element); + virtual LineElectricalData GetElectricalData() const { return m_electricaData; } + virtual void SetElectricalData(LineElectricalData electricalData) { m_electricaData = electricalData; } + virtual void SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit); -protected: - void UpdateSwitchesPosition(); - double PointToLineDistance(wxPoint2DDouble point) const; - std::vector<wxPoint2DDouble> m_pointList; - bool m_inserted = false; - std::vector<wxPoint2DDouble> m_movePts; + protected: + double PointToLineDistance(wxPoint2DDouble point, int* segmentNumber = NULL) const; + void UpdatePowerFlowArrowsPosition(); + LineElectricalData m_electricaData; }; #endif // LINE_H |