summaryrefslogtreecommitdiffstats
path: root/Project/Multiplier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Project/Multiplier.cpp')
-rw-r--r--Project/Multiplier.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/Project/Multiplier.cpp b/Project/Multiplier.cpp
index b25a406..a32d494 100644
--- a/Project/Multiplier.cpp
+++ b/Project/Multiplier.cpp
@@ -15,8 +15,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#include "Multiplier.h"
#include "ConnectionLine.h"
+#include "Multiplier.h"
Multiplier::Multiplier(int id) : MathOperation(id) {}
Multiplier::~Multiplier() {}
@@ -58,9 +58,7 @@ bool Multiplier::Solve(double* input, double timeStep)
}
m_output = 1.0;
- for(unsigned int i = 0; i < inputVector.size(); ++i) {
- m_output *= inputVector[i];
- }
+ for(unsigned int i = 0; i < inputVector.size(); ++i) { m_output *= inputVector[i]; }
return true;
}
@@ -71,3 +69,22 @@ Element* Multiplier::GetCopy()
*copy = *this;
return copy;
}
+
+void Multiplier::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode)
+{
+ auto elementNode = XMLParser::AppendNode(doc, elementListNode, "Multiplier");
+ XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID);
+
+ SaveCADProperties(doc, elementNode);
+ SaveControlNodes(doc, elementNode);
+}
+
+bool Multiplier::OpenElement(rapidxml::xml_node<>* elementNode)
+{
+ if(!OpenCADProperties(elementNode)) return false;
+ if(!OpenControlNodes(elementNode)) return false;
+
+ StartMove(m_position);
+ UpdatePoints();
+ return true;
+}