summaryrefslogtreecommitdiffstats
path: root/Project/Multiplier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Project/Multiplier.cpp')
-rw-r--r--Project/Multiplier.cpp40
1 files changed, 39 insertions, 1 deletions
diff --git a/Project/Multiplier.cpp b/Project/Multiplier.cpp
index 85916fb..3bdc418 100644
--- a/Project/Multiplier.cpp
+++ b/Project/Multiplier.cpp
@@ -2,9 +2,47 @@
Multiplier::Multiplier() : ControlElement()
{
+ m_width = m_height = 36.0;
+ Node* nodeIn1 = new Node(m_position + wxPoint2DDouble(-m_width / 2, 9 - m_height / 2), Node::NODE_IN, m_borderSize);
+ nodeIn1->StartMove(m_position);
+ Node* nodeIn2 =
+ new Node(m_position + wxPoint2DDouble(-m_width / 2, 27 - m_height / 2), Node::NODE_IN, m_borderSize);
+ nodeIn2->StartMove(m_position);
+ Node* nodeOut = new Node(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);
+ nodeOut->SetAngle(180.0);
+ nodeOut->StartMove(m_position);
+ m_nodeList.push_back(nodeIn1);
+ m_nodeList.push_back(nodeIn2);
+ m_nodeList.push_back(nodeOut);
}
-Multiplier::~Multiplier()
+Multiplier::~Multiplier() {}
+
+void Multiplier::Draw(wxPoint2DDouble translation, double scale) const
{
}
+bool Multiplier::ShowForm(wxWindow* parent, Element* element) {}
+
+void Multiplier::Rotate(bool clockwise)
+{
+ if(clockwise)
+ m_angle += 90.0;
+ else
+ m_angle -= 90.0;
+ if(m_angle >= 360.0)
+ m_angle = 0.0;
+ else if(m_angle < 0)
+ m_angle = 270.0;
+
+ UpdatePoints();
+
+ for(auto it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {
+ Node* node = *it;
+ node->Rotate(clockwise);
+ }
+}
+
+void Multiplier::UpdatePoints()
+{
+}