summaryrefslogtreecommitdiffstats
path: root/Project/ControlElement.h
diff options
context:
space:
mode:
Diffstat (limited to 'Project/ControlElement.h')
-rw-r--r--Project/ControlElement.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/Project/ControlElement.h b/Project/ControlElement.h
index dbff95e..84e23b6 100644
--- a/Project/ControlElement.h
+++ b/Project/ControlElement.h
@@ -58,6 +58,7 @@ class Node
void SetConnected(bool connected = true) { m_connected = connected; }
int GetID() const { return m_id; }
void SetID(int id) { m_id = id; }
+
protected:
int m_id = -1;
@@ -94,7 +95,7 @@ class ControlElement : public Element
std::vector<Node*> GetNodeList() const { return m_nodeList; }
virtual void DrawNodes() const;
virtual void ReplaceNode(Node* oldNode, Node* newNode);
-
+
/**
* @brief Update the OpenGL text in the element (if present).
* @return true if OpenGLText is ok, false otherwise.
@@ -106,10 +107,20 @@ class ControlElement : public Element
virtual bool Initialize() { return true; }
virtual double GetOutput() const { return m_output; }
virtual void SetOutput(double output) { m_output = output; }
+
+ static ControlElement* GetControlElementFromID(std::vector<ControlElement*> elementList, int id);
+
+ // File handling methods
+ void SaveControlNodes(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* nodesN, std::vector<Node*> nodeList);
+ bool OpenControlNodeList(rapidxml::xml_node<>* elementNode, std::vector<Node*>& nodeVector);
+
protected:
std::vector<Node*> m_nodeList;
bool m_solved = false;
double m_output = 0.0;
+
+ void SaveControlNodes(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementNode);
+ bool OpenControlNodes(rapidxml::xml_node<>* elementNode);
};
#endif // CONTROLELEMENT_H