コード例 #1
0
        private void createFacility_Click(object sender, EventArgs e)
        {
            //Add child object (sensor)
            AgFacility facility = null;

            if (CommonData.StkRoot.CurrentScenario.Children.Contains(AgESTKObjectType.eFacility, facilityName.Text))
            {
                facility = (AgFacility)CommonData.StkRoot.GetObjectFromPath("Facility/" + facilityName.Text);
            }
            else
            {
                facility = CommonData.StkRoot.CurrentScenario.Children.New(AgESTKObjectType.eFacility, facilityName.Text) as AgFacility;
            }

            // Assign lat, lon and alt
            double lat = Convert.ToDouble(latTb.Text);
            double lon = Convert.ToDouble(lonTb.Text);
            double alt = Convert.ToDouble(altTb.Text);

            CommonData.StkRoot.UnitPreferences.SetCurrentUnit("LatitudeUnit", "deg");
            CommonData.StkRoot.UnitPreferences.SetCurrentUnit("LongitudeUnit", "deg");
            facility.UseTerrain = false; // Altitude is ignored if terrain is on. Height above ground can be used with terrain
            facility.Position.AssignPlanetodetic(lat, lon, alt);

            // Query lat, lon and alt
            //object latOut, lonOut; double altValue, latValue, lonValue;
            //facility.Position.QueryPlanetodetic(out latOut, out lonOut, out altValue);
            //latValue = double.Parse(latOut.ToString());
            //lonValue = double.Parse(lonOut.ToString());

            facility.Graphics.UseInstNameLabel = false;
            facility.Graphics.LabelName        = facilityName.Text + "CustomLabel";
        }
コード例 #2
0
        private void createSensorButton_Click(object sender, EventArgs e)
        {
            AgFacility facility = null;

            if (CommonData.StkRoot.CurrentScenario.Children.Contains(AgESTKObjectType.eFacility, facilityName.Text))
            {
                facility = (AgFacility)CommonData.StkRoot.GetObjectFromPath("Facility/" + facilityName.Text);
            }
            else
            {
                facility = CommonData.StkRoot.CurrentScenario.Children.New(AgESTKObjectType.eFacility, facilityName.Text) as AgFacility;
            }

            //Add child object (sensor)
            IAgSensor sensor = null;

            if (facility.Children.Contains(AgESTKObjectType.eSensor, "MySensor"))
            {
                sensor = (IAgSensor)CommonData.StkRoot.GetObjectFromPath("*/Facility/" + facilityName.Text + "/Sensor/MySensor");
            }
            else
            {
                sensor = facility.Children.New(AgESTKObjectType.eSensor, "MySensor") as IAgSensor;
            }


            // Set Sensor type and shape
            double InnerConeHalfAngle = 50;
            double OuterConeHalfAngle = 90;
            double MinimumClockAngle  = 0;
            double MaximumClockAngle  = 90;

            sensor.SetPatternType(AgESnPattern.eSnComplexConic);
            sensor.CommonTasks.SetPatternComplexConic(InnerConeHalfAngle, OuterConeHalfAngle, MinimumClockAngle, MaximumClockAngle);


            //Add range constraint to sensor
            double rangeConstraintValue          = 40;
            IAgAccessCnstrMinMax rangeConstraint = null;

            if (!sensor.AccessConstraints.IsConstraintActive(AgEAccessConstraints.eCstrRange))
            {
                rangeConstraint = sensor.AccessConstraints.AddConstraint(AgEAccessConstraints.eCstrRange) as IAgAccessCnstrMinMax;
            }
            else
            {
                rangeConstraint = sensor.AccessConstraints.GetActiveConstraint(AgEAccessConstraints.eCstrRange) as IAgAccessCnstrMinMax;
            }
            rangeConstraint.EnableMax = true;
            rangeConstraint.Max       = rangeConstraintValue;
        }
コード例 #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            AgUiApplication uiApplication = new AgUiApplication();

            uiApplication.LoadPersonality("STK");
            uiApplication.Visible = false;
            IAgStkObjectRoot root = uiApplication.Personality2 as IAgStkObjectRoot;

            root.NewScenario("scenario");
            IAgStar star = root.CurrentScenario.Children.New(AgESTKObjectType.eStar, "MyStar") as IAgStar;

            //wait();

            run();

            //wait();

            AgFacility facility = root.CurrentScenario.Children.New(AgESTKObjectType.eFacility, "MyFacility") as AgFacility;

            button1.Text = root.CurrentScenario.Children.Count.ToString();
            uiApplication.Quit();
        }