/// <summary> /// Draws the Conics window. /// </summary> private void drawConicsWindow() { GUILayout.BeginVertical(); GUIParts.drawConicsControls(options); GUILayout.EndVertical(); GUI.DragWindow(); }
/// <summary> /// Draws the Node Editor window. /// </summary> private void drawMainWindow() { Color defaultColor = GUI.backgroundColor; Color contentColor = GUI.contentColor; Color curColor = defaultColor; PatchedConicSolver solver = NodeTools.getSolver(); // Options button if (showOptions) { GUI.backgroundColor = Color.green; } if (GUI.Button(new Rect(options.mainWindowPos.width - 48, 2, 22, 18), "O")) { showOptions = !showOptions; } GUI.backgroundColor = defaultColor; // Keymapping button if (showKeymapper) { GUI.backgroundColor = Color.green; } if (GUI.Button(new Rect(options.mainWindowPos.width - 24, 2, 22, 18), "K")) { showKeymapper = !showKeymapper; } GUI.backgroundColor = defaultColor; GUILayout.BeginVertical(); if (options.showManeuverPager) { drawManeuverPager(); } // Human-readable time GUIParts.drawDoubleLabel("Time:", 100, curState.currentUT().convertUTtoHumanTime(), 150); // Increment buttons GUILayout.BeginHorizontal(); GUILayout.Label("Increment:", GUILayout.Width(100)); GUIParts.drawButton("0.01", (options.increment == 0.01?Color.yellow:defaultColor), () => { options.increment = 0.01; }); GUIParts.drawButton("0.1", (options.increment == 0.1?Color.yellow:defaultColor), () => { options.increment = 0.1; }); GUIParts.drawButton("1", (options.increment == 1?Color.yellow:defaultColor), () => { options.increment = 1; }); GUIParts.drawButton("10", (options.increment == 10?Color.yellow:defaultColor), () => { options.increment = 10; }); GUIParts.drawButton("100", (options.increment == 100?Color.yellow:defaultColor), () => { options.increment = 100; }); GUILayout.EndHorizontal(); drawTimeControls(contentColor); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); drawProgradeControls(contentColor); drawNormalControls(contentColor); drawRadialControls(contentColor); GUILayout.EndVertical(); GUILayout.BeginVertical(GUILayout.ExpandHeight(true)); GUIParts.drawButton("MS", defaultColor, () => { curState.memorize(); }, GUILayout.ExpandHeight(true)); GUI.enabled = curState.HasMemorized; GUIParts.drawButton("MR", defaultColor, () => { curState.recallMemory(); }, GUILayout.ExpandHeight(true)); GUI.enabled = true; GUILayout.EndVertical(); GUILayout.EndHorizontal(); // total delta-V display GUIParts.drawDoubleLabel("Total Δv:", 100, curState.currentMagnitude().ToString("0.##") + " m/s", 130); drawEAngle(); drawEncounter(defaultColor); // Conics mode controls if (options.showConics) { GUIParts.drawConicsControls(options); } // trip info button and vessel focus buttons GUILayout.BeginHorizontal(); GUIParts.drawButton("Trip Info", (options.showTrip?Color.yellow:defaultColor), () => { options.showTrip = !options.showTrip; }); GUIParts.drawButton("Focus on Vessel", defaultColor, () => { MapObject mapObject = PlanetariumCamera.fetch.targets.Find(o => (o.vessel != null) && o.vessel.Equals(FlightGlobals.ActiveVessel)); MapView.MapCamera.SetTarget(mapObject); }); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUI.DragWindow(); }