private void PopulatePossibleArtics() { string objectPath = CommonData.objectClass + "/" + CommonData.simpleName; IAgStkObject obj = CommonData.StkRoot.GetObjectFromPath(objectPath); Array names = ArticFunctions.GetArticulations(obj); foreach (var item in names) { if (item.ToString().Contains("Time")) { } else { PossibleArtics.Items.Add(item); } } if (CommonData.selectedArtic != -1) { try { int index = PossibleArtics.FindString(CommonData.sectionList[CommonData.selectedArtic].objectName + "-" + CommonData.sectionList[CommonData.selectedArtic].articName); PossibleArtics.SelectedIndex = index; } catch (Exception) { } } }
private void LinkToAttitude_CheckedChanged(object sender, EventArgs e) { CommonData.StkRoot.UnitPreferences.SetCurrentUnit("DateFormat", "EpSec"); string objectPath = CommonData.objectClass + "/" + CommonData.simpleName; IAgStkObject obj = CommonData.StkRoot.GetObjectFromPath(objectPath); if (LinkToAttitude.Checked) { AttitudeCoordFrame.Enabled = true; MainBody.Enabled = true; AttitudeCoordFrame.Items.Add("VVLH"); //AttitudeCoordFrame.Items.Add("ICRF"); AttitudeCoordFrame.SelectedIndex = 0; foreach (Section item in CommonData.sectionList) { item.linkedToAttitude = false; if (item.articName.Contains("Yaw") || item.articName.Contains("Pitch") || item.articName.Contains("Roll")) { item.linkedToAttitude = true; } } //Recreate and load articulation file ArticFunctions.CreateFile(CommonData.fileStr); ArticFunctions.LoadArticFile(); //Add possible Main Body Options to dropdown menu //Defined as possible articulation objects, not articulation movements Array names = ArticFunctions.GetArticulations(obj); string currentName = null; foreach (string name in names) { if (name.Split('-')[0] == currentName) { } else { if (name.Split('-')[0] == "Time") { } else { MainBody.Items.Add(name.Split('-')[0]); currentName = name.Split('-')[0]; } } } MainBody.SelectedIndex = 0; } else { foreach (Section item in CommonData.sectionList) { item.linkedToAttitude = false; } //recreate articulation file and reload ArticFunctions.CreateFile(CommonData.fileStr); ArticFunctions.LoadArticFile(); //turn off attitude file in object settings and disable settings on form if (CommonData.objectClass == "Aircraft") { IAgGreatArcVehicle aircraft = obj as IAgGreatArcVehicle; IAgVeRouteAttitudeStandard attitude = aircraft.Attitude as IAgVeRouteAttitudeStandard; attitude.External.Disable(); } else if (CommonData.objectClass == "Satellite") { IAgSatellite sat = obj as IAgSatellite; IAgVeOrbitAttitudeStandard attitude = sat.Attitude as IAgVeOrbitAttitudeStandard; attitude.External.Disable(); } MainBody.Enabled = false; AttitudeCoordFrame.Enabled = false; AttitudeCoordFrame.Items.Clear(); MainBody.Items.Clear(); } }
private void cbStkObjects_SelectedIndexChanged(object sender, EventArgs e) { string simpleName; string className; string ext; CommonData.totalSectionCount = 0; //Change options in articulation box StringCollection objectPaths = m_stkObjectsLibrary.GetObjectPathListFromInstanceNamesXml(CommonData.StkRoot.AllInstanceNamesToXML(), ""); foreach (string path in objectPaths) { CommonData.objectPaths.Add(path); } simpleName = cbStkObjects.Text; CreatedArtic.Items.Clear(); MainBody.Items.Clear(); LinkToAttitude.Checked = false; int startnum = CommonData.sectionList.Count; for (int i = (startnum - 1); i > -1; i--) { CommonData.sectionList.RemoveAt(i); } foreach (string path in objectPaths) { string objectName = m_stkObjectsLibrary.ObjectName(path); className = m_stkObjectsLibrary.ClassNameFromObjectPath(path); if (objectName == simpleName && className != "Scenario") { className = m_stkObjectsLibrary.ClassNameFromObjectPath(path); CommonData.objectClass = className; CommonData.simpleName = simpleName; string objectPath = className + "/" + simpleName; IAgStkObject obj = CommonData.StkRoot.GetObjectFromPath(objectPath); //Clear possible articulations if another object was previously selected PossibleArtic.Items.Clear(); //Add possible articulations to dropdown menu Array names = ArticFunctions.GetArticulations(obj); foreach (var item in names) { if (item.ToString().Contains("Time")) { } else { PossibleArtic.Items.Add(item); } } //Get the right file extension based on object class ext = ArticFunctions.GetExtension(className); AgExecCmdResult directory = (AgExecCmdResult)CommonData.StkRoot.ExecuteCommand("GetDirectory / Scenario"); CommonData.directoryStr = m_stkObjectsLibrary.GetScenarioDirectory(); CommonData.fileStr = CommonData.directoryStr + "\\" + simpleName + ext; //If file exists read the file and add current articulations to list of sections if (File.Exists(CommonData.fileStr)) { //read in file List <Section> fileSections = ArticFunctions.ReadFile(CommonData.fileStr); //populate created articulation list based on file foreach (Section item in fileSections) { CommonData.sectionList.Add(item); if (!String.IsNullOrWhiteSpace(item.sectionName)) { if (item.isLinked) { CreatedArtic.Items.Add(item.sectionName + " | LINKED"); } else if (item.linkedToList) { CreatedArtic.Items.Add(item.sectionName + " | LINKED TO INTERVAL LIST"); } else { CreatedArtic.Items.Add(item.sectionName); } } else { if (item.isLinked) { CreatedArtic.Items.Add(item.objectName + item.articName + " Start Time: " + item.startTimeValue + "sec" + " | LINKED"); } else if (item.linkedToList) { CreatedArtic.Items.Add(item.objectName + item.articName + " Start Time: " + item.startTimeValue + "sec" + " | LINKED TO INTERVAL LIST"); } else { CreatedArtic.Items.Add(item.objectName + item.articName + " Start Time: " + item.startTimeValue + "sec"); } } } } } } }