88 virtual void OnPaint(wxPaintEvent& event);
89 virtual void OnMouseEnter(wxMouseEvent& event);
90 virtual void OnMouseLeave(wxMouseEvent& event);
91 virtual void OnLeftClickDown(wxMouseEvent& event);
92 virtual void OnLeftClickUp(wxMouseEvent& event);
96 wxPoint m_labelPosition;
100 wxPoint m_imagePosition;
102 int m_borderSize = 2;
103 bool m_mouseAbove =
false;
104 bool m_selected =
false;
112 enum class ControlEditorMode :
int {
124 ControlEditor(wxWindow* parent) : ControlEditorBase(parent) {}
126 int ioflags = IOControl::IN_TERMINAL_VOLTAGE | IOControl::IN_VELOCITY | IOControl::OUT_FIELD_VOLTAGE |
127 IOControl::OUT_MEC_POWER);
130 virtual void AddElement(ControlElementButtonID
id);
132 virtual void Redraw() { m_cePanel->Refresh(); }
133 virtual void SetJustOpened(
bool justOpened) { m_justOpened = justOpened; }
134 virtual void RotateSelectedElements(
bool clockwise);
135 virtual void DeleteSelectedElements();
136 virtual void CheckConnections();
137 virtual std::vector< std::shared_ptr<ConnectionLine> > GetConnectionLineList()
const {
return m_connectionList; }
138 virtual std::vector< std::shared_ptr<ControlElement> > GetControlElementList()
const {
return m_elementList; }
139 virtual void SetElementsList(
const std::vector< std::shared_ptr<ControlElement> >& elementList) { m_elementList = elementList; }
140 virtual void SetConnectionsList(
const std::vector< std::shared_ptr<ConnectionLine> >& connectionList) { m_connectionList = connectionList; }
142 virtual void SetPlotLib(
int plotLib) { m_plotLib = plotLib; }
144 virtual void OnClose(wxCloseEvent& event);
145 virtual void OnTestClick(wxCommandEvent& event);
146 virtual void OnButtonOKClick(wxCommandEvent& event) { Close(); }
147 virtual void OnImportClick(wxCommandEvent& event);
148 virtual void OnExportClick(wxCommandEvent& event);
149 virtual void OnKeyDown(wxKeyEvent& event);
150 virtual void OnIdle(wxIdleEvent& event);
151 virtual void OnScroll(wxMouseEvent& event);
152 virtual void OnDoubleClick(wxMouseEvent& event);
153 virtual void OnLeftClickDown(wxMouseEvent& event);
154 virtual void OnLeftClickUp(wxMouseEvent& event);
155 virtual void OnMiddleDown(wxMouseEvent& event);
156 virtual void OnMiddleUp(wxMouseEvent& event);
157 virtual void OnMouseMotion(wxMouseEvent& event);
158 virtual void OnPaint(wxPaintEvent& event);
159 virtual void LeftClickDown(wxMouseEvent& event);
161 virtual void BuildColourList();
162 virtual wxColour GetNextColour();
164 void BuildControlElementPanel();
170 std::vector< std::shared_ptr<ConnectionLine> >::iterator DeleteLineFromList(std::vector< std::shared_ptr<ConnectionLine> >::iterator& it);
173 Camera* m_camera =
nullptr;
175 ControlEditorMode m_mode = ControlEditorMode::MODE_EDIT;
177 wxRect2DDouble m_selectionRect;
178 wxPoint2DDouble m_startSelRect;
181 std::vector< std::shared_ptr<ControlElement> > m_elementList;
183 std::vector< std::shared_ptr<ConnectionLine> > m_connectionList;
187 bool m_justOpened =
false;
191 double m_startTime = 1.0;
192 double m_slope = 1.0;
193 double m_timeStep = 1e-4;
194 double m_simTime = 10.0;
197 std::vector<wxColour> m_colourList;
198 std::vector<wxColour>::iterator m_itColourList;