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"; }
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; }
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(); }