Пример #1
0
        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)
                {
                }
            }
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
        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");
                                }
                            }
                        }
                    }
                }
            }
        }