summaryrefslogtreecommitdiffstats
path: root/Project/Machines.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Project/Machines.cpp')
-rw-r--r--Project/Machines.cpp60
1 files changed, 57 insertions, 3 deletions
diff --git a/Project/Machines.cpp b/Project/Machines.cpp
index 8ee940f..351fd16 100644
--- a/Project/Machines.cpp
+++ b/Project/Machines.cpp
@@ -98,6 +98,60 @@ void Machines::Draw(wxPoint2DDouble translation, double scale) const
}
}
+void Machines::DrawDC(wxPoint2DDouble translation, double scale, wxGraphicsContext* gc) const
+{
+ OpenGLColour elementColour;
+ if (m_online) {
+ if (m_dynEvent)
+ elementColour = m_dynamicEventColour;
+ else
+ elementColour = m_onlineElementColour;
+ }
+ else
+ elementColour = m_offlineElementColour;
+
+ if (m_inserted) {
+ // Draw Selection (layer 1).
+ if (m_selected) {
+ gc->SetPen(wxPen(wxColour(m_selectionColour.GetDcRGBA()), 2 + m_borderSize * 2.0));
+ gc->SetBrush(*wxTRANSPARENT_BRUSH);
+ gc->DrawLines(m_pointList.size(), &m_pointList[0]);
+
+ gc->SetPen(*wxTRANSPARENT_PEN);
+ gc->SetBrush(wxBrush(wxColour(m_selectionColour.GetDcRGBA())));
+ DrawDCCircle(m_position, 25.0 + (m_borderSize + 1.5) / scale, 20, gc);
+
+ // Draw nodes selection.
+ DrawDCCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, gc);
+ }
+
+ // Draw Machines (layer 2).
+ // Draw node.
+ gc->SetPen(*wxTRANSPARENT_PEN);
+ gc->SetBrush(wxBrush(wxColour(elementColour.GetDcRGBA())));
+ DrawDCCircle(m_pointList[0], 5.0, 10, gc);
+
+ gc->SetPen(wxPen(wxColour(elementColour.GetDcRGBA()), 2));
+ gc->SetBrush(*wxTRANSPARENT_BRUSH);
+ gc->DrawLines(m_pointList.size(), &m_pointList[0]);
+ DrawDCCircle(m_position, 25.0, 20.0, gc);
+
+ DrawDCSwitches(gc);
+ DrawDCPowerFlowPts(gc);
+
+ gc->SetPen(*wxTRANSPARENT_PEN);
+ gc->SetBrush(*wxWHITE_BRUSH);
+ DrawDCCircle(m_position, 25.0, 20.0, gc);
+
+ gc->SetPen(wxPen(wxColour(elementColour.GetDcRGBA()), 2));
+ gc->SetBrush(*wxTRANSPARENT_BRUSH);
+ DrawDCCircle(m_position, 25.0, 20.0, gc);
+
+ // Draw machine symbol.
+ DrawDCSymbol(gc);
+ }
+}
+
void Machines::UpdateSwitchesPosition()
{
if(m_parentList[0]) {
@@ -246,14 +300,14 @@ void Machines::UpdatePowerFlowArrowsPosition()
{
std::vector<wxPoint2DDouble> edges;
switch(m_pfDirection) {
- case PF_NONE: {
+ case PowerFlowDirection::PF_NONE: {
m_powerFlowArrow.clear();
} break;
- case PF_TO_BUS: {
+ case PowerFlowDirection::PF_TO_BUS: {
edges.push_back(m_pointList[2]);
edges.push_back(m_pointList[1]);
} break;
- case PF_TO_ELEMENT: {
+ case PowerFlowDirection::PF_TO_ELEMENT: {
edges.push_back(m_pointList[1]);
edges.push_back(m_pointList[2]);
} break;