private void simuStart(Color col) { label_wx.ForeColor = col; label_wy.ForeColor = col; label_wz.ForeColor = col; label_wa.ForeColor = col; label_wb.ForeColor = col; label_wc.ForeColor = col; Color invers = ContrastColor(col); label_wx.BackColor = invers; label_wy.BackColor = invers; label_wz.BackColor = invers; label_wa.BackColor = invers; label_wb.BackColor = invers; label_wc.BackColor = invers; simulateA = VisuGCode.containsTangential(); if (simulateA) { updateLayout(); } pbFile.Maximum = fCTBCode.LinesCount; fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast); btnSimulate.Text = Localization.getString("mainSimuStop"); simuLine = 0; fCTBCodeClickedLineNow = simuLine; fCTBCodeClickedLineLast = simuLine; simuEnabled = true; simulationTimer.Enabled = true; // VisuGCode.markSelectedFigure(-1); // VisuGCode.setPosMarkerLine(simuLine, false); btnStreamStart.Enabled = false; btnStreamStop.Enabled = false; btnStreamCheck.Enabled = false; btnSimulateFaster.Enabled = true; btnSimulateSlower.Enabled = true; VisuGCode.Simulation.Reset(); double factor = 100 * VisuGCode.Simulation.dt / 50; lblElapsed.Text = string.Format("{0} {1:0}%", Localization.getString("mainSimuSpeed"), factor); btnSimulatePause.Visible = true; lbInfo.BackColor = System.Drawing.Color.LightGreen; }
public static void sortByDistance() { List <BlockData> result = new List <BlockData>(); xyPoint first = new xyPoint(); double distanceReverse; BlockData tmp; bool allowReverse = !VisuGCode.containsG2G3Command() && !VisuGCode.containsG91Command() && !VisuGCode.containsTangential(); while (listFigures.Count > 0) { for (int i = 0; i < listFigures.Count; i++) { tmp = listFigures[i]; tmp.distance = first.DistanceTo(tmp.posStart); distanceReverse = first.DistanceTo(tmp.posEnd); if (allowReverse && (distanceReverse < tmp.distance)) { tmp.distance = distanceReverse; tmp.reverse = true; } listFigures[i] = tmp; } listFigures.Sort((x, y) => x.distance.CompareTo(y.distance)); result.Add(listFigures[0]); first = listFigures[0].posEnd; listFigures.RemoveAt(0); } listFigures.Clear(); foreach (BlockData item in result) { listFigures.Add(item); } }