diff options
Diffstat (limited to 'Project/Limiter.cpp')
-rw-r--r-- | Project/Limiter.cpp | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/Project/Limiter.cpp b/Project/Limiter.cpp index 2a1d076..7769cb2 100644 --- a/Project/Limiter.cpp +++ b/Project/Limiter.cpp @@ -107,7 +107,7 @@ void Limiter::UpdatePoints() bool Limiter::Solve(double* input, double timeStep) { - if(!input){ + if(!input) { m_output = 0.0; return true; } @@ -126,3 +126,32 @@ Element* Limiter::GetCopy() *copy = *this; return copy; } + +void Limiter::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) +{ + auto elementNode = XMLParser::AppendNode(doc, elementListNode, "Limiter"); + XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID); + + SaveCADProperties(doc, elementNode); + SaveControlNodes(doc, elementNode); + + // Element properties + auto upLimit = XMLParser::AppendNode(doc, elementNode, "UpperLimit"); + XMLParser::SetNodeValue(doc, upLimit, m_upLimit); + auto lowLimit = XMLParser::AppendNode(doc, elementNode, "LowerLimit"); + XMLParser::SetNodeValue(doc, lowLimit, m_lowLimit); +} + +bool Limiter::OpenElement(rapidxml::xml_node<>* elementNode) +{ + if(!OpenCADProperties(elementNode)) return false; + if(!OpenControlNodes(elementNode)) return false; + + // Element properties + m_upLimit = XMLParser::GetNodeValueDouble(elementNode, "UpperLimit"); + m_lowLimit = XMLParser::GetNodeValueDouble(elementNode, "LowerLimit"); + + StartMove(m_position); + UpdatePoints(); + return true; +} |