summaryrefslogtreecommitdiffstats
path: root/Project/Bus.h
diff options
context:
space:
mode:
Diffstat (limited to 'Project/Bus.h')
-rw-r--r--Project/Bus.h39
1 files changed, 38 insertions, 1 deletions
diff --git a/Project/Bus.h b/Project/Bus.h
index a7fa122..836d2f7 100644
--- a/Project/Bus.h
+++ b/Project/Bus.h
@@ -1,23 +1,60 @@
#ifndef BUS_H
#define BUS_H
+#include "BusForm.h"
#include "Element.h"
+struct BusElectricalData {
+ int number = 0;
+ wxString name = "";
+ double nominalVoltage = 138.0;
+ ElectricalUnit nominalVoltageUnit = UNIT_kV;
+ bool isVoltageControlled = false;
+ double controlledVoltage = 1.0;
+ int controlledVoltageUnitChoice = 0; // 0 = p.u., 1 = same as nominalVoltageUnit (UNIT_V or UNIT_kV).
+ bool slackBus = false;
+
+ // Power flow (p.u.)
+ std::complex<double> voltage = std::complex<double>(1.0, 0.0);
+
+ // Fault
+ bool hasFault = false;
+ FaultData faultType = FAULT_THREEPHASE;
+ FaultData faultLocation = FAULT_LINE_A;
+ double faultResistance = 0.0;
+ double faultReactance = 0.0;
+
+ // Stability
+ bool plotBus = false;
+ bool stabHasFault = false;
+ double stabFaultTime = 0.0;
+ double stabFaultLength = 0.0;
+ double stabFaultResistance = 0.0;
+ double stabFaultReactance = 0.0;
+};
+
class Bus : public Element
{
public:
Bus();
Bus(wxPoint2DDouble position);
+ Bus(wxPoint2DDouble position, wxString name);
~Bus();
virtual bool AddParent(Element* parent, wxPoint2DDouble position) { return true; }
virtual bool Contains(wxPoint2DDouble position) const;
virtual bool Intersects(wxRect2DDouble rect) const;
virtual void Draw(wxPoint2DDouble translation, double scale) const;
- virtual void Rotate();
+ virtual void Rotate(bool clockwise = true);
virtual wxCursor GetBestPickboxCursor() const;
virtual void MovePickbox(wxPoint2DDouble position);
virtual bool PickboxContains(wxPoint2DDouble position);
virtual bool GetContextMenu(wxMenu& menu);
+ virtual BusElectricalData GetEletricalData() const { return m_electricalData; }
+ virtual void SetElectricalData(BusElectricalData electricalData) { m_electricalData = electricalData; }
+ virtual bool ShowForm(wxWindow* parent, Element* element);
+
+ protected:
+ BusElectricalData m_electricalData;
};
#endif // BUS_H