private float CalculateRouteMaxDistFromOrigin() { if (dataGridViewRouteSystems.Rows.Count < 2) { return(100); } double maxdist = 25; var rows = dataGridViewRouteSystems.Rows.OfType <DataGridViewRow>().Where(r => r.Cells[0].Value != null).ToList(); List <SystemClass> systems = rows.Select(r => r.Cells[0].Tag as SystemClass).ToList(); SystemClass sys0 = systems.FirstOrDefault(s => s != null && s.HasCoordinate); if (sys0 != null) { foreach (var sys in systems.Where(s => s != null)) { double dist = SystemClass.DistanceIncludeDB(sys0, sys); if (dist > maxdist) { maxdist = dist; } } } return((float)maxdist); }
public static void UpdateVisitedSystemsEntries(VisitedSystemsClass item, VisitedSystemsClass item2, bool usedistancedb) // this is a split in two version with the same code of AddHistoryRow.. { SystemClass sys1 = SystemClass.GetSystem(item.Name); if (sys1 == null) { sys1 = new SystemClass(item.Name); if (item.HasTravelCoordinates) { sys1.x = item.X; sys1.y = item.Y; sys1.z = item.Z; } } SystemClass sys2 = null; if (item2 != null) { sys2 = SystemClass.GetSystem(item2.Name); if (sys2 == null) { sys2 = new SystemClass(item2.Name); if (item2.HasTravelCoordinates) { sys2.x = item2.X; sys2.y = item2.Y; sys2.z = item2.Z; } } } else { sys2 = null; } item.curSystem = sys1; item.prevSystem = sys2; string diststr = ""; if (sys2 != null) { double dist = usedistancedb ? SystemClass.DistanceIncludeDB(sys1, sys2) : SystemClass.Distance(sys1, sys2); if (dist > 0) { diststr = dist.ToString("0.00"); } } item.strDistance = diststr; }
private void UpdateSystemRow(int rowindex) { if (rowindex < dataGridViewRouteSystems.Rows.Count && dataGridViewRouteSystems[0, rowindex].Value != null) { string sysname = dataGridViewRouteSystems[0, rowindex].Value.ToString(); var sys = GetSystem(sysname); dataGridViewRouteSystems[1, rowindex].Value = ""; if (rowindex > 0 && rowindex < dataGridViewRouteSystems.Rows.Count && dataGridViewRouteSystems[0, rowindex - 1].Value != null && dataGridViewRouteSystems[0, rowindex].Value != null) { string prevsysname = dataGridViewRouteSystems[0, rowindex - 1].Value.ToString(); var prevsys = GetSystem(prevsysname); if (sys != null && prevsys != null) { double dist = SystemClass.DistanceIncludeDB(sys, prevsys); string strdist = dist >= 0 ? ((double)dist).ToString("0.00") : ""; dataGridViewRouteSystems[1, rowindex].Value = strdist; } } dataGridViewRouteSystems[0, rowindex].Tag = sys; dataGridViewRouteSystems.Rows[rowindex].DefaultCellStyle.ForeColor = (sys != null && sys.HasCoordinate) ? _discoveryForm.theme.VisitedSystemColor : _discoveryForm.theme.NonVisitedSystemColor; if (sys != null) { dataGridViewRouteSystems[2, rowindex].Value = SystemNoteClass.GetSystemNoteOrEmpty(sys.name); } if (sys == null && sysname != "") { dataGridViewRouteSystems.Rows[rowindex].ErrorText = "System not known to EDSM"; } else { dataGridViewRouteSystems.Rows[rowindex].ErrorText = ""; } } }