/// Constructor /// Give the navigator to which this control is for public Controls(Navigator navigator) { // Defaults window defaultWindow = new DefaultWindow(navigator); // Assign navigator field this.navigator = navigator; Debug.Log(this.navigator.ToString()); // Controls window id id = GUIUtility.GetControlID(FocusType.Keyboard); // Initial time if (navigator.UT0 == 0) { UT0 = Planetarium.GetUniversalTime(); } else { UT0 = navigator.UT0; } Debug.Log(UT0.ToString()); // Off navigator control navigatorOff = Control.Default(navigator, this); // If the navigator doesn't have saved controls, return default if (String.IsNullOrEmpty(navigator.frames) || String.IsNullOrEmpty(navigator.angle0s) || String.IsNullOrEmpty(navigator.angle1s) || String.IsNullOrEmpty(navigator.angle2s) || String.IsNullOrEmpty(navigator.throttles) || String.IsNullOrEmpty(navigator.sailons) || String.IsNullOrEmpty(navigator.durations)) { ncontrols = 1; controls = new List <Control>(); controls.Add(Control.Default(navigator, this)); } else { // Otherwise, parse saved controls // Split into arrays var frameStrings = navigator.frames.Split(delimiter); var angle0Strings = navigator.angle0s.Split(delimiter); var angle1Strings = navigator.angle1s.Split(delimiter); var angle2Strings = navigator.angle2s.Split(delimiter); var throttleStrings = navigator.throttles.Split(delimiter); var durationStrings = navigator.durations.Split(delimiter); var sailonStrings = navigator.sailons.Split(delimiter); // Find number of controls ncontrols = Math.Min(frameStrings.Length, Math.Min(angle0Strings.Length, Math.Min(angle1Strings.Length, Math.Min(angle2Strings.Length, Math.Min(throttleStrings.Length, Math.Min(durationStrings.Length, sailonStrings.Length)))))); // Initialize controls array controls = new List <Control>(); // Populate controls for (var i = 0; i < ncontrols; i++) { var angles = new float[] { Utils.ParseSingle(angle0Strings[i]), Utils.ParseSingle(angle1Strings[i]), Utils.ParseSingle(angle2Strings[i]) }; controls.Add(new Control(navigator, this, angles, Utils.ParseSingle(throttleStrings[i]), Utils.ParseBool(sailonStrings[i]), Utils.ParseDouble(durationStrings[i]), navigator.defaultIWarp, frameStrings[i])); } } // Preview preview = new Preview(navigator); }
bool updateTargetLine = false; // Indicate if target line needs updating #endregion Fields #region Constructors // Constructor // Give the navigator to which this control is for public Controls(Navigator navigator) { // Defaults window defaultWindow = new DefaultWindow(navigator); // Assign navigator field this.navigator = navigator; Debug.Log(this.navigator.ToString()); // Controls window id id = GUIUtility.GetControlID(FocusType.Keyboard); // Initial time if (navigator.UT0 == 0) { UT0 = Planetarium.GetUniversalTime(); } else { UT0 = navigator.UT0; } Debug.Log(UT0.ToString()); // Off navigator control navigatorOff = Control.Default(navigator, this); // If the navigator doesn't have saved controls, return default if (String.IsNullOrEmpty(navigator.frames) || String.IsNullOrEmpty(navigator.angle0s) || String.IsNullOrEmpty(navigator.angle1s) || String.IsNullOrEmpty(navigator.angle2s) || String.IsNullOrEmpty(navigator.throttles) || String.IsNullOrEmpty(navigator.sailons) || String.IsNullOrEmpty(navigator.durations)) { ncontrols = 1; controls = new List<Control>(); controls.Add(Control.Default(navigator, this)); } else { // Otherwise, parse saved controls // Split into arrays var frameStrings = navigator.frames.Split(delimiter); var angle0Strings = navigator.angle0s.Split(delimiter); var angle1Strings = navigator.angle1s.Split(delimiter); var angle2Strings = navigator.angle2s.Split(delimiter); var throttleStrings = navigator.throttles.Split(delimiter); var durationStrings = navigator.durations.Split(delimiter); var sailonStrings = navigator.sailons.Split(delimiter); // Find number of controls ncontrols = Math.Min(frameStrings.Length, Math.Min(angle0Strings.Length, Math.Min(angle1Strings.Length, Math.Min(angle2Strings.Length, Math.Min(throttleStrings.Length, Math.Min(durationStrings.Length, sailonStrings.Length)))))); // Initialize controls array controls = new List<Control>(); // Populate controls for(var i = 0; i < ncontrols; i++) { var angles = new float [] { Utils.ParseSingle(angle0Strings[i]), Utils.ParseSingle(angle1Strings[i]), Utils.ParseSingle(angle2Strings[i]) }; controls.Add(new Control(navigator, this, angles, Utils.ParseSingle(throttleStrings[i]), Utils.ParseBool(sailonStrings[i]), Utils.ParseDouble(durationStrings[i]), navigator.defaultIWarp, frameStrings[i])); } } // Preview preview = new Preview(navigator); }