private List <DisplayItem> getPhysicalData(CelestialBody body) { var radius = DisplayItem.Create("Radius: ", (body.Radius / 1000d).ToString("N0") + "km"); var mass = DisplayItem.Create("Mass: ", body.Mass.ToString("0.###E+0") + "kg"); var gm = DisplayItem.Create("GM: ", body.gravParameter.ToString("0.###E+0")); var gravity = DisplayItem.Create("Surface Gravity: ", body.GeeASL.ToString("0.####") + "g"); var escape = 2d * body.gravParameter / body.Radius; escape = Math.Sqrt(escape); var escapeVelocity = DisplayItem.Create("Escape Velocity: ", escape.ToString("0.0") + "m/s"); double alt = body.atmosphere ? body.atmosphereDepth + 20000 : 15000; var orbitVelocity = Math.Sqrt(body.gravParameter / (body.Radius + alt)); var standardOrbitVelocity = DisplayItem.Create("Std Orbit Velocity: ", orbitVelocity.ToString("0.0") + "m/s @ " + Converters.Distance(alt)); var rotationalPeriod = DisplayItem.Create("Rotational Period: ", Converters.Duration(body.rotationPeriod)); var tidalLocked = DisplayItem.Create("Tidally Locked: ", body.tidallyLocked ? "Yes" : "No"); var soiSize = DisplayItem.Create("SOI Size: ", (body.sphereOfInfluence / 1000d).ToString("N0") + "km"); return(new List <DisplayItem> { radius, mass, gm, gravity, standardOrbitVelocity, escapeVelocity, rotationalPeriod, tidalLocked, soiSize }); }