From cef9e14b989a3ba19321e4fe215ada2ee3998037 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Wed, 3 Jan 2018 19:01:57 -0200 Subject: Some file hand. organization and generalization --- Project/TransferFunction.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Project/TransferFunction.cpp') diff --git a/Project/TransferFunction.cpp b/Project/TransferFunction.cpp index b34633c..8ebaddc 100644 --- a/Project/TransferFunction.cpp +++ b/Project/TransferFunction.cpp @@ -386,3 +386,12 @@ bool TransferFunction::UpdateText() if(!m_glTextNum->IsTextureOK()) return false; return true; } + +void TransferFunction::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) +{ +} + +bool TransferFunction::OpenElement(rapidxml::xml_node<>* elementNode) +{ + return true; +} -- cgit From 76df1de5e2307229da9870306e4a1031170aaadf Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Thu, 4 Jan 2018 19:11:08 -0200 Subject: Control elements file handling reorganized --- Project/TransferFunction.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'Project/TransferFunction.cpp') diff --git a/Project/TransferFunction.cpp b/Project/TransferFunction.cpp index 8ebaddc..d630ea3 100644 --- a/Project/TransferFunction.cpp +++ b/Project/TransferFunction.cpp @@ -389,9 +389,52 @@ bool TransferFunction::UpdateText() void TransferFunction::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) { + auto elementNode = XMLParser::AppendNode(doc, elementListNode, "TransferFunction"); + XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID); + + SaveCADProperties(doc, elementNode); + SaveControlNodes(doc, elementNode); + + // Element properties + auto numeratorNode = XMLParser::AppendNode(doc, elementNode, "Numerator"); + for(unsigned int i = 0; i < m_numerator.size(); ++i) { + auto value = XMLParser::AppendNode(doc, numeratorNode, "Value"); + XMLParser::SetNodeValue(doc, value, m_numerator[i]); + } + auto denominatorNode = XMLParser::AppendNode(doc, elementNode, "Denominator"); + for(unsigned int i = 0; i < m_denominator.size(); ++i) { + auto value = XMLParser::AppendNode(doc, denominatorNode, "Value"); + XMLParser::SetNodeValue(doc, value, m_denominator[i]); + } } bool TransferFunction::OpenElement(rapidxml::xml_node<>* elementNode) { + if(!OpenCADProperties(elementNode)) return false; + if(!OpenControlNodes(elementNode)) return false; + + // Element properties + std::vector numerator, denominator; + m_numerator.clear(); + m_denominator.clear(); + auto numeratorNode = elementNode->first_node("Numerator"); + auto nValue = numeratorNode->first_node("Value"); + while(nValue) { + double value = 0.0; + wxString(nValue->value()).ToCDouble(&value); + m_numerator.push_back(value); + nValue = nValue->next_sibling("Value"); + } + auto denominatorNode = elementNode->first_node("Denominator"); + auto dValue = denominatorNode->first_node("Value"); + while(dValue) { + double value = 0.0; + wxString(dValue->value()).ToCDouble(&value); + m_denominator.push_back(value); + dValue = dValue->next_sibling("Value"); + } + StartMove(m_position); + UpdateTFText(); + return true; } -- cgit From c11a42ee83fcf535557d4f2cc259efae2da1b7ff Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Mon, 8 Jan 2018 20:07:47 -0200 Subject: File handling and control initialization organized --- Project/TransferFunction.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Project/TransferFunction.cpp') diff --git a/Project/TransferFunction.cpp b/Project/TransferFunction.cpp index d630ea3..8e7b68f 100644 --- a/Project/TransferFunction.cpp +++ b/Project/TransferFunction.cpp @@ -387,7 +387,8 @@ bool TransferFunction::UpdateText() return true; } -void TransferFunction::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) +rapidxml::xml_node<>* TransferFunction::SaveElement(rapidxml::xml_document<>& doc, + rapidxml::xml_node<>* elementListNode) { auto elementNode = XMLParser::AppendNode(doc, elementListNode, "TransferFunction"); XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID); @@ -406,6 +407,8 @@ void TransferFunction::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_ auto value = XMLParser::AppendNode(doc, denominatorNode, "Value"); XMLParser::SetNodeValue(doc, value, m_denominator[i]); } + + return elementNode; } bool TransferFunction::OpenElement(rapidxml::xml_node<>* elementNode) -- cgit