private void OnGUI()
{
if (!_mouseOver)
return;
GUI.skin = HighLogic.Skin;
Orbit orbit = _hitOrbit;
Vector3d deltaPos = orbit.getPositionAtUT(_hitUT) - orbit.referenceBody.position;
double altitude = deltaPos.magnitude - orbit.referenceBody.Radius;
double speed = orbit.getOrbitalSpeedAt(orbit.getObtAtUT(_hitUT));
string labelText = "";
if (_showTime)
{
labelText += "T: " + KSPUtil.PrintTime((int)(Planetarium.GetUniversalTime() - _hitUT), 5, true) + "\n";
}
if (_showAltitude)
{
labelText += "Alt: " + altitude.ToString("N0", CultureInfo.CurrentCulture) + "m\n";
}
if (_showSpeed)
{
labelText += "Vel: " + speed.ToString("N0", CultureInfo.CurrentCulture) + "m/s\n";
}
if (_showAngleToPrograde && orbit.referenceBody.orbit != null)
{
Vector3d bodyVel = orbit.referenceBody.orbit.getOrbitalVelocityAtUT(_hitUT);
Vector3d shipPos = orbit.getRelativePositionAtUT(_hitUT);
double angle = Vector3d.Angle(shipPos, bodyVel);
Vector3d rotatedBodyVel = QuaternionD.AngleAxis(90.0, Vector3d.forward) * bodyVel;
if (Vector3d.Dot(rotatedBodyVel, shipPos) > 0)
{
angle = 360 - angle;
}
labelText += "\u03B1P: " + angle.ToString("N1", CultureInfo.CurrentCulture) + "\u00B0\n";
}
GUILayout.BeginArea(GUIUtility.ScreenToGUIRect(_popup));
GUIStyle labelStyle = new GUIStyle(GUI.skin.GetStyle("Label"));
if (_isTarget)
labelStyle.normal.textColor = Color.cyan;
GUILayout.Label(labelText, labelStyle);
GUILayout.EndArea();
}