Beispiel #1
0
        private void LoadAttitude_Click(object sender, EventArgs e)
        {
            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;
                }
            }
            string       objectPath = CommonData.objectClass + "/" + CommonData.simpleName;
            IAgStkObject obj        = CommonData.StkRoot.GetObjectFromPath(objectPath);
            string       fileName   = CommonData.directoryStr + "\\" + CommonData.simpleName + ".a";

            if (AttitudeCoordFrame.SelectedIndex == 0)
            {
                ArticFunctions.WriteVVLHAttitudeFile(fileName);
            }
            else if (AttitudeCoordFrame.SelectedIndex == 1)
            {
                ArticFunctions.WriteICRFAttitudeFile(fileName);
            }

            if (CommonData.objectClass == "Aircraft")
            {
                try
                {
                    AgAircraft aircraft = obj as AgAircraft;
                    IAgVeRouteAttitudeStandard attitude = aircraft.Attitude as IAgVeRouteAttitudeStandard;
                    attitude.External.Load(fileName);
                }
                catch (Exception)
                {
                    MessageBox.Show("Could not load attitude file");
                }
            }
            else if (CommonData.objectClass == "Satellite")
            {
                try
                {
                    IAgSatellite sat = obj as IAgSatellite;
                    IAgVeOrbitAttitudeStandard attitude = sat.Attitude as IAgVeOrbitAttitudeStandard;
                    attitude.External.Load(fileName);
                }
                catch (Exception)
                {
                    MessageBox.Show("Could not load attitude file");
                }
            }
        }
Beispiel #2
0
        private void SetAlignedConstrainedAttitude(AgSatellite satellite, IAgCrdnVector alignedVector, string alignedAxis, IAgCrdnVector constrainedVector, string constrainedAxis)
        {
            // Set attitude to Aligned & Constrained
            IAgVeOrbitAttitudeStandard attitude = satellite.Attitude as IAgVeOrbitAttitudeStandard;

            attitude.Basic.SetProfileType(AgEVeProfile.eProfileAlignedAndConstrained);

            double[] alignedBody     = GetCartesianArray(alignedAxis);
            double[] constrainedBody = GetCartesianArray(constrainedAxis);

            // Set vectors and body axis
            IAgVeProfileAlignedAndConstrained profile = attitude.Basic.Profile as IAgVeProfileAlignedAndConstrained;

            profile.AlignedVector.ReferenceVector = ((IAgCrdn)alignedVector).Path;
            profile.AlignedVector.Body.AssignXYZ(alignedBody[0], alignedBody[1], alignedBody[2]);

            profile.ConstrainedVector.ReferenceVector = ((IAgCrdn)constrainedVector).Path;
            profile.ConstrainedVector.Body.AssignXYZ(constrainedBody[0], constrainedBody[1], constrainedBody[2]);
        }
Beispiel #3
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();
            }
        }