summaryrefslogtreecommitdiffstats
path: root/Project/FileHanding.cpp
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2017-10-09 22:17:10 -0300
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2017-10-09 22:17:10 -0300
commiteea796f53f5d9dc1444a620713b3326f04b73339 (patch)
tree2cc6cd35c3dfa718c26b7f5de9dcee913fb93028 /Project/FileHanding.cpp
parentaa2378020ee0bbfd041681cfdbe62a8d028687f3 (diff)
downloadPSP.git-eea796f53f5d9dc1444a620713b3326f04b73339.tar.gz
PSP.git-eea796f53f5d9dc1444a620713b3326f04b73339.tar.xz
PSP.git-eea796f53f5d9dc1444a620713b3326f04b73339.zip
Divider control element implemented
Abstract class math operations implemented Divider need to be redesigned Expor/import divider functions implemented but supressed
Diffstat (limited to 'Project/FileHanding.cpp')
-rw-r--r--Project/FileHanding.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/Project/FileHanding.cpp b/Project/FileHanding.cpp
index e1a8e4b..78abaa0 100644
--- a/Project/FileHanding.cpp
+++ b/Project/FileHanding.cpp
@@ -1994,6 +1994,32 @@ void FileHanding::SaveControlElements(rapidxml::xml_document<>& doc,
auto nodeList = AppendNode(doc, multiplierNode, "NodeList");
SaveControlNodes(doc, nodeList, multiplier->GetNodeList());
} //}
+
+ //{ Divider
+ /*auto dividersNode = AppendNode(doc, elementsNode, "DividerList");
+ auto dividersList = ctrlContainer->GetDividerList();
+ for(auto it = dividersList.begin(), itEnd = dividersList.end(); it != itEnd; ++it) {
+ Divider* divider = *it;
+ auto dividerNode = AppendNode(doc, dividersNode, "Divider");
+ SetNodeAttribute(doc, dividerNode, "ID", divider->GetID());
+ auto cadProp = AppendNode(doc, dividerNode, "CADProperties");
+ auto position = AppendNode(doc, cadProp, "Position");
+ auto posX = AppendNode(doc, position, "X");
+ SetNodeValue(doc, posX, divider->GetPosition().m_x);
+ auto posY = AppendNode(doc, position, "Y");
+ SetNodeValue(doc, posY, divider->GetPosition().m_y);
+ auto size = AppendNode(doc, cadProp, "Size");
+ auto width = AppendNode(doc, size, "Width");
+ SetNodeValue(doc, width, divider->GetWidth());
+ auto height = AppendNode(doc, size, "Height");
+ SetNodeValue(doc, height, divider->GetHeight());
+ auto angle = AppendNode(doc, cadProp, "Angle");
+ SetNodeValue(doc, angle, divider->GetAngle());
+
+ // Nodes
+ auto nodeList = AppendNode(doc, dividerNode, "NodeList");
+ SaveControlNodes(doc, nodeList, divider->GetNodeList());
+ }*/ //}
//{ Rate limiter
auto rateLimitersNode = AppendNode(doc, elementsNode, "RateLimiterList");
@@ -2381,6 +2407,42 @@ bool FileHanding::OpenControlElements(rapidxml::xml_document<>& doc,
multiplierNode = multiplierNode->next_sibling("Multiplier");
}
//}
+
+ //{ Divider
+ /*auto dividerListNode = elementsNode->first_node("DividerList");
+ if(!dividerListNode) return false;
+ auto dividerNode = dividerListNode->first_node("Divider");
+ while(dividerNode) {
+ int id = GetAttributeValueInt(dividerNode, "ID");
+ Divider* divider = new Divider(id);
+
+ auto cadPropNode = dividerNode->first_node("CADProperties");
+ if(!cadPropNode) return false;
+
+ auto position = cadPropNode->first_node("Position");
+ double posX = GetNodeValueDouble(position, "X");
+ double posY = GetNodeValueDouble(position, "Y");
+ auto size = cadPropNode->first_node("Size");
+ double width = GetNodeValueDouble(size, "Width");
+ double height = GetNodeValueDouble(size, "Height");
+ double angle = GetNodeValueDouble(cadPropNode, "Angle");
+
+ std::vector<Node*> nodeVector;
+ if(!OpenControlNodeList(dividerNode, nodeVector)) return false;
+
+ divider->SetWidth(width);
+ divider->SetHeight(height);
+ divider->SetAngle(angle);
+ divider->SetPosition(wxPoint2DDouble(posX, posY));
+
+ divider->StartMove(divider->GetPosition());
+ divider->SetNodeList(nodeVector);
+ divider->UpdatePoints();
+ elementList.push_back(divider);
+
+ dividerNode = dividerNode->next_sibling("Divider");
+ }*/
+ //}
//{ Rate limiter
auto rateLimiterListNode = elementsNode->first_node("RateLimiterList");