25 m_width = m_height = 36.0;
26 Node* nodeIn1 =
new Node(m_position + wxPoint2DDouble(-18, -9), Node::NodeType::NODE_IN, m_borderSize);
27 nodeIn1->StartMove(m_position);
28 Node* nodeIn2 =
new Node(m_position + wxPoint2DDouble(-18, 9), Node::NodeType::NODE_IN, m_borderSize);
29 nodeIn2->StartMove(m_position);
30 Node* nodeOut =
new Node(m_position + wxPoint2DDouble(18, 0), Node::NodeType::NODE_OUT, m_borderSize);
31 nodeOut->SetAngle(180.0);
32 nodeOut->StartMove(m_position);
33 m_nodeList.push_back(nodeIn1);
34 m_nodeList.push_back(nodeIn2);
35 m_nodeList.push_back(nodeOut);
38MathOperation::~MathOperation() {}
43 gc->SetPen(*wxTRANSPARENT_PEN);
44 gc->SetBrush(wxBrush(guiColour->selection));
45 double borderSize = (m_borderSize * 2.0 + 1.0) / scale;
46 gc->DrawRectangle(m_position.m_x - m_width / 2 - borderSize / 2, m_position.m_y - m_height / 2 - borderSize / 2, m_width + borderSize, m_height + borderSize);
48 gc->SetPen(guiColour->enabled);
49 gc->SetBrush(guiColour->background);
51 gc->DrawRectangle(m_position.m_x - m_width / 2, m_position.m_y - m_height / 2, m_width, m_height);
54 DrawDCSymbol(guiColour, gc);
56 gc->SetPen(*wxTRANSPARENT_PEN);
57 gc->SetBrush(guiColour->enabled);
74 for(
auto it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {
76 node->Rotate(clockwise);
80void MathOperation::UpdatePoints()
83 m_nodeList[0]->SetPosition(m_position + wxPoint2DDouble(-18, -9));
84 m_nodeList[1]->SetPosition(m_position + wxPoint2DDouble(-18, 9));
85 m_nodeList[2]->SetPosition(m_position + wxPoint2DDouble(18, 0));
86 }
else if(m_angle == 90.0) {
87 m_nodeList[0]->SetPosition(m_position + wxPoint2DDouble(9, -18));
88 m_nodeList[1]->SetPosition(m_position + wxPoint2DDouble(-9, -18));
89 m_nodeList[2]->SetPosition(m_position + wxPoint2DDouble(0, 18));
90 }
else if(m_angle == 180.0) {
91 m_nodeList[0]->SetPosition(m_position + wxPoint2DDouble(18, 9));
92 m_nodeList[1]->SetPosition(m_position + wxPoint2DDouble(18, -9));
93 m_nodeList[2]->SetPosition(m_position + wxPoint2DDouble(-18, 0));
94 }
else if(m_angle == 270.0) {
95 m_nodeList[0]->SetPosition(m_position + wxPoint2DDouble(-9, 18));
96 m_nodeList[1]->SetPosition(m_position + wxPoint2DDouble(9, 18));
97 m_nodeList[2]->SetPosition(m_position + wxPoint2DDouble(0, -18));
virtual void DrawDC(GUIColour *guiColour, wxPoint2DDouble translation, double scale, wxGraphicsContext *gc) const
Draw the element using GDI+.
virtual void Rotate(bool clockwise=true)
Rotate the element.
Node of a control element. This class manages the user interaction with the connection and control el...